From 16290b59cbf75f256c6c83eaf132f0ccfabdc9c4 Mon Sep 17 00:00:00 2001 From: Adam L Date: Fri, 22 May 2015 09:04:03 -0700 Subject: [PATCH 01/34] Pushed react ver requirement back --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7b06d4b..ac3ea5f 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "author": "seethroughtrees", "homepage": "https://seethroughtrees.github.io/react-ux-password-field/", "dependencies": { - "react": ">=0.13.3" + "react": ">=0.12.0" }, "devDependencies": { "autoprefixer-core": "^5.1.11", From ad7b60590c57194c1feb8c02ed8e974508802c72 Mon Sep 17 00:00:00 2001 From: Adam L Date: Sun, 12 Jul 2015 23:37:24 -0700 Subject: [PATCH 02/34] Updated check of var --- demo/demo.bundle.js | 4 ++-- demo/demo.bundle.js.map | 2 +- lib/react-ux-password-field.js | 4 ++-- lib/react-ux-password-field.min.js | 4 ++-- package.json | 2 +- src/index.js | 2 +- 6 files changed, 9 insertions(+), 9 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 21093ad..1a1ded6 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -12,14 +12,14 @@ function(t,e,n){"use strict";window.Rainbow=function(){function t(t){var e,n=t.g \****************************************/ function(t,e,n){/*! * React UX Password Field - * version: 0.9.5 + * version: 0.9.6 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -"use strict";!function(e,a){t.exports=a(n(/*! react */1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"]));return r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=l},function(e,n,a){e.exports=t},function(t,e,n){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){f&&clearTimeout(f),g&&clearTimeout(g),g=f=y=void 0}function r(){var n=e-(l()-h);if(0>=n||n>e){g&&clearTimeout(g);var a=y;g=f=y=void 0,a&&(v=l(),d=t.apply(m,u),f||g||(u=m=null))}else f=setTimeout(r,n)}function c(){f&&clearTimeout(f),g=f=y=void 0,(w||b!==e)&&(v=l(),d=t.apply(m,u),f||g||(u=m=null))}function p(){if(u=arguments,h=l(),m=this,y=w&&(f||!x),b===!1)var n=x&&!f;else{g||x||(v=h);var a=b-(h-v),s=0>=a||a>b;s?(g&&(g=clearTimeout(g)),v=h,d=t.apply(m,u)):g||(g=setTimeout(c,a))}return s&&f?f=clearTimeout(f):f||e===b||(f=setTimeout(r,e)),n&&(s=!0,d=t.apply(m,u)),!s||f||g||(u=m=null),d}var u,g,d,h,m,f,y,v=0,b=!1,w=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var x=!0;w=!1}else s(n)&&(x=n.leading,b="maxWait"in n&&i(+n.maxWait||0,e),w="trailing"in n?n.trailing:w);return p.cancel=a,p}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=a},function(t,e,n){function a(t){return"string"==typeof t?t:null==t?"":t+""}function s(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:m.call(t)==c?f.test(d.call(t)):s(t)&&u.test(t)}function i(t){return t=a(t),t&&p.test(t)?t.replace(l,"\\$&"):t}var c="[object Function]",l=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(l.source),u=/^\[object .+?Constructor\]$/,g=Object.prototype,d=Function.prototype.toString,h=g.hasOwnProperty,m=g.toString,f=RegExp("^"+i(d.call(h)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ +"use strict";!function(e,a){t.exports=a(n(/*! react */1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"]));return r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=l},function(e,n,a){e.exports=t},function(t,e,n){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){f&&clearTimeout(f),g&&clearTimeout(g),g=f=y=void 0}function r(){var n=e-(l()-h);if(0>=n||n>e){g&&clearTimeout(g);var a=y;g=f=y=void 0,a&&(v=l(),d=t.apply(m,u),f||g||(u=m=null))}else f=setTimeout(r,n)}function c(){f&&clearTimeout(f),g=f=y=void 0,(w||b!==e)&&(v=l(),d=t.apply(m,u),f||g||(u=m=null))}function p(){if(u=arguments,h=l(),m=this,y=w&&(f||!x),b===!1)var n=x&&!f;else{g||x||(v=h);var a=b-(h-v),s=0>=a||a>b;s?(g&&(g=clearTimeout(g)),v=h,d=t.apply(m,u)):g||(g=setTimeout(c,a))}return s&&f?f=clearTimeout(f):f||e===b||(f=setTimeout(r,e)),n&&(s=!0,d=t.apply(m,u)),!s||f||g||(u=m=null),d}var u,g,d,h,m,f,y,v=0,b=!1,w=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var x=!0;w=!1}else s(n)&&(x=n.leading,b="maxWait"in n&&i(+n.maxWait||0,e),w="trailing"in n?n.trailing:w);return p.cancel=a,p}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=a},function(t,e,n){function a(t){return"string"==typeof t?t:null==t?"":t+""}function s(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:m.call(t)==c?f.test(d.call(t)):s(t)&&u.test(t)}function i(t){return t=a(t),t&&p.test(t)?t.replace(l,"\\$&"):t}var c="[object Function]",l=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(l.source),u=/^\[object .+?Constructor\]$/,g=Object.prototype,d=Function.prototype.toString,h=g.hasOwnProperty,m=g.toString,f=RegExp("^"+i(d.call(h)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ !*** ./demo/src/vendor/github.css ***! \************************************/ function(t,e,n){},/*!**************************************!*\ diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index e742698..8efb371 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap f4b59f9ba01b5ca0f83d","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","cb","e","valid","score","console","log","render","createElement","htmlFor","name","placeholder","minScore","minLength","onChange","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbn","zxcvbnSrc","getInitialState","value","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontStyle","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","val","validity","handleToggleMask","handleZxcvbn","handleMinLength","maskPassword","stats","currentScore","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","trailingCall","delayed","remaining","now","stamp","isCalled","lastCalled","result","apply","thisArg","args","maxDelayed","trailing","maxWait","debounced","leading","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","baseToString","isObjectLike","object","isNative","objToString","funcTag","reIsNative","test","fnToString","reIsHostCtor","escapeRegExp","reHasRegExpChars","reRegExpChars","RegExp","objectProto","Function","toString"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\t// Demo callback\n\tvar cb = function cb(e, valid, score) {\n\t return console.log('Running callback', e, valid, score);\n\t};\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t onChange: cb\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.5\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontStyle: 'italic',\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: 0.25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2 },\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tvar val = e.target.value;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, this.state.score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tthis.handleZxcvbn(val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (!zxcvbn) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar isCalled = trailingCall;\n\t\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (trailing || maxWait !== wait) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\t\t\t\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t\t\t\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\t\t\t\tfunction baseToString(value) {\n\t\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\treturn value == null ? '' : value + '';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (objToString.call(value) == funcTag) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\t\t\t\tfunction escapeRegExp(string) {\n\t\t\t\t\tstring = baseToString(string);\n\t\t\t\t\treturn string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap f4b59f9ba01b5ca0f83d\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\n// Demo callback\nconst cb = (e, valid, score) =>\n console.log('Running callback', e, valid, score);\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontStyle: 'italic',\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: 0.25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2 },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\t var val = e.target.value;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid\n\t });\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, this.state.score);\n\t }\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t this.handleZxcvbn(val);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (!zxcvbn) {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || maxWait !== wait) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t return value == null ? '' : value + '';\n\t}\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (objToString.call(value) == funcTag) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\tfunction escapeRegExp(string) {\n\t string = baseToString(string);\n\t return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap d811c39a42828b3dcfd1","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","cb","e","valid","score","console","log","render","createElement","htmlFor","name","placeholder","minScore","minLength","onChange","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbn","zxcvbnSrc","getInitialState","value","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontStyle","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","val","validity","handleToggleMask","handleZxcvbn","handleMinLength","maskPassword","stats","currentScore","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","trailingCall","delayed","remaining","now","stamp","isCalled","lastCalled","result","apply","thisArg","args","maxDelayed","trailing","maxWait","debounced","leading","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","baseToString","isObjectLike","object","isNative","objToString","funcTag","reIsNative","test","fnToString","reIsHostCtor","escapeRegExp","reHasRegExpChars","reRegExpChars","RegExp","objectProto","Function","toString"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\t// Demo callback\n\tvar cb = function cb(e, valid, score) {\n\t return console.log('Running callback', e, valid, score);\n\t};\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t onChange: cb\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.6\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontStyle: 'italic',\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: 0.25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2 },\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tvar val = e.target.value;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, this.state.score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tthis.handleZxcvbn(val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar isCalled = trailingCall;\n\t\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (trailing || maxWait !== wait) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\t\t\t\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t\t\t\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\t\t\t\tfunction baseToString(value) {\n\t\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\treturn value == null ? '' : value + '';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (objToString.call(value) == funcTag) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\t\t\t\tfunction escapeRegExp(string) {\n\t\t\t\t\tstring = baseToString(string);\n\t\t\t\t\treturn string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap d811c39a42828b3dcfd1\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\n// Demo callback\nconst cb = (e, valid, score) =>\n console.log('Running callback', e, valid, score);\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontStyle: 'italic',\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: 0.25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2 },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\t var val = e.target.value;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid\n\t });\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, this.state.score);\n\t }\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t this.handleZxcvbn(val);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || maxWait !== wait) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t return value == null ? '' : value + '';\n\t}\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (objToString.call(value) == funcTag) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\tfunction escapeRegExp(string) {\n\t string = baseToString(string);\n\t return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index 00e745f..b509d1c 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.5 + * version: 0.9.6 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ @@ -215,7 +215,7 @@ return /******/ (function(modules) { // webpackBootstrap handleZxcvbn: function handleZxcvbn(val) { - if (!zxcvbn) { + if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') { return; } diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 527e10c..318937b 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -1,10 +1,10 @@ /*! * React UX Password Field - * version: 0.9.5 + * version: 0.9.6 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,s(e,["onChange"]));return a.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},a.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=c},function(t,e,n){"use strict";function s(t,e,n){function s(){y&&clearTimeout(y),h&&clearTimeout(h),h=y=b=void 0}function a(){var n=e-(c()-g);if(0>=n||n>e){h&&clearTimeout(h);var s=b;h=y=b=void 0,s&&(f=c(),d=t.apply(v,u),y||h||(u=v=null))}else y=setTimeout(a,n)}function l(){y&&clearTimeout(y),h=y=b=void 0,(M||m!==e)&&(f=c(),d=t.apply(v,u),y||h||(u=v=null))}function p(){if(u=arguments,g=c(),v=this,b=M&&(y||!A),m===!1)var n=A&&!y;else{h||A||(f=g);var s=m-(g-f),i=0>=s||s>m;i?(h&&(h=clearTimeout(h)),f=g,d=t.apply(v,u)):h||(h=setTimeout(l,s))}return i&&y?y=clearTimeout(y):y||e===m||(y=setTimeout(a,e)),n&&(i=!0,d=t.apply(v,u)),!i||y||h||(u=v=null),d}var u,h,d,g,v,y,b,f=0,m=!1,M=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var A=!0;M=!1}else i(n)&&(A=n.leading,m="maxWait"in n&&r(+n.maxWait||0,e),M="trailing"in n?n.trailing:M);return p.cancel=s,p}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var a=n(2),o="Expected a function",r=Math.max,l=a(Date,"now"),c=l||function(){return(new Date).getTime()};t.exports=s},function(t,e,n){"use strict";function s(t){return"string"==typeof t?t:null==t?"":t+""}function i(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:v.call(t)==l?y.test(d.call(t)):i(t)&&u.test(t)}function r(t){return t=s(t),t&&p.test(t)?t.replace(c,"\\$&"):t}var l="[object Function]",c=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(c.source),u=/^\[object .+?Constructor\]$/,h=Object.prototype,d=Function.prototype.toString,g=h.hasOwnProperty,v=h.toString,y=RegExp("^"+r(d.call(g)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e,n){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n,s){e.exports=t}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,s(e,["onChange"]));return a.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},a.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=c},function(t,e,n){"use strict";function s(t,e,n){function s(){y&&clearTimeout(y),d&&clearTimeout(d),d=y=f=void 0}function a(){var n=e-(c()-g);if(0>=n||n>e){d&&clearTimeout(d);var s=f;d=y=f=void 0,s&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}else y=setTimeout(a,n)}function l(){y&&clearTimeout(y),d=y=f=void 0,(M||m!==e)&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}function p(){if(u=arguments,g=c(),v=this,f=M&&(y||!w),m===!1)var n=w&&!y;else{d||w||(b=g);var s=m-(g-b),i=0>=s||s>m;i?(d&&(d=clearTimeout(d)),b=g,h=t.apply(v,u)):d||(d=setTimeout(l,s))}return i&&y?y=clearTimeout(y):y||e===m||(y=setTimeout(a,e)),n&&(i=!0,h=t.apply(v,u)),!i||y||d||(u=v=null),h}var u,d,h,g,v,y,f,b=0,m=!1,M=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var w=!0;M=!1}else i(n)&&(w=n.leading,m="maxWait"in n&&r(+n.maxWait||0,e),M="trailing"in n?n.trailing:M);return p.cancel=s,p}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var a=n(2),o="Expected a function",r=Math.max,l=a(Date,"now"),c=l||function(){return(new Date).getTime()};t.exports=s},function(t,e,n){"use strict";function s(t){return"string"==typeof t?t:null==t?"":t+""}function i(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:v.call(t)==l?y.test(h.call(t)):i(t)&&u.test(t)}function r(t){return t=s(t),t&&p.test(t)?t.replace(c,"\\$&"):t}var l="[object Function]",c=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(c.source),u=/^\[object .+?Constructor\]$/,d=Object.prototype,h=Function.prototype.toString,g=d.hasOwnProperty,v=d.toString,y=RegExp("^"+r(h.call(g)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e,n){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n,s){e.exports=t}])}); \ No newline at end of file diff --git a/package.json b/package.json index ac3ea5f..44a313f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.5", + "version": "0.9.6", "main": "lib/react-ux-password-field.js", "description": "A UX forward password field for react-js", "scripts": { diff --git a/src/index.js b/src/index.js index 13ca838..76929c1 100644 --- a/src/index.js +++ b/src/index.js @@ -151,7 +151,7 @@ var InputPassword = React.createClass({ handleZxcvbn(val) { - if (!zxcvbn) { + if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') { return; } From 37112795e94efaf86a3522ab8be706124953a0aa Mon Sep 17 00:00:00 2001 From: Adam L Date: Sun, 12 Jul 2015 23:38:00 -0700 Subject: [PATCH 03/34] Removed bump --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 44a313f..ac3ea5f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.6", + "version": "0.9.5", "main": "lib/react-ux-password-field.js", "description": "A UX forward password field for react-js", "scripts": { From 3dc52e16ca71fcb37ca18d37b65581eb5f4bf965 Mon Sep 17 00:00:00 2001 From: Adam L Date: Thu, 16 Jul 2015 21:09:00 -0700 Subject: [PATCH 04/34] Fixed package pointer --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ac3ea5f..e0204ea 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "react-ux-password-field", "version": "0.9.5", - "main": "lib/react-ux-password-field.js", + "main": "src/index.js", "description": "A UX forward password field for react-js", "scripts": { "dev": "webpack --watch --port 9501 --colors", From 99c54e43ad451a1c595e1863c9a6f36cf8765971 Mon Sep 17 00:00:00 2001 From: Michael Heuberger Date: Tue, 21 Jul 2015 15:30:06 +1200 Subject: [PATCH 05/34] Add more parameters in callbacks and bump packages --- .gitignore | 1 + demo/demo.bundle.js | 18 +-- demo/demo.bundle.js.map | 2 +- demo/style.css | 2 +- lib/react-ux-password-field.js | 183 +++++++++++++++-------------- lib/react-ux-password-field.min.js | 2 +- package.json | 50 ++++---- src/index.js | 21 ++-- 8 files changed, 149 insertions(+), 130 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3c3629e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +node_modules diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 1a1ded6..e4478b7 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -4,10 +4,10 @@ function(t,e,n){"use strict";n(/*! normalize.css/normalize.css */7),n(/*! ./vendor/skeleton.css */5),n(/*! ./vendor/github.css */4),n(/*! ./vendor/syntax.css */6),n(/*! ./vendor/rainbow-custom.min.js */2),n(/*! ./css/style.scss */9),n(/*! ./css/demo.scss */8);var a=n(/*! react */1),s=n(/*! ../../lib/react-ux-password-field.js */3),r=function(t,e,n){return console.log("Running callback",t,e,n)};a.render(a.createElement("form",null,a.createElement("fieldset",null,a.createElement("label",{htmlFor:"password1"},"Password"),a.createElement(s,{id:"password1",name:"password1",placeholder:"Try me out! Enter a random password.",minScore:1,minLength:5,onChange:r}))),document.getElementById("content"))},/*!************************!*\ !*** external "React" ***! \************************/ -function(t,e,n){t.exports=React},/*!***********************************************!*\ +function(t,e){t.exports=React},/*!***********************************************!*\ !*** ./demo/src/vendor/rainbow-custom.min.js ***! \***********************************************/ -function(t,e,n){"use strict";window.Rainbow=function(){function t(t){var e,n=t.getAttribute&&t.getAttribute("data-language")||0;if(!n)for(t=t.attributes,e=0;e=t&&e>=h[y][n])&&(delete h[y][n],delete d[y][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,l){if("undefined"==typeof t||null===t)l();else{var p=t.exec(i);if(p){++b,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=p[0],g=p.index,m=p[0].length+g,f=function(){function n(){s(t,e,i,l)}b%100>0?n():setTimeout(n,0)};if(n(g,m))f();else{var v=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=p[n[t]];if(r){var i=e.matches[n[t]],l=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[y]);n(t,a,0,e)}function c(t,e,n){var a=m[e]||[],s=m[v]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function l(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(p=u=void 0,s=!1,o=t&&e>=h[v][n])&&(delete h[v][n],delete d[v][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,p){if("undefined"==typeof t||null===t)p();else{var l=t.exec(i);if(l){++b,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=l[0],g=l.index,m=l[0].length+g,f=function(){function n(){s(t,e,i,p)}b%100>0?n():setTimeout(n,0)};if(n(g,m))f();else{var y=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=l[n[t]];if(r){var i=e.matches[n[t]],p=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[v]);n(t,a,0,e)}function c(t,e,n){var a=m[e]||[],s=m[y]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function p(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(l=u=void 0,s=!1,o=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"]));return r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=l},function(e,n,a){e.exports=t},function(t,e,n){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){f&&clearTimeout(f),g&&clearTimeout(g),g=f=y=void 0}function r(){var n=e-(l()-h);if(0>=n||n>e){g&&clearTimeout(g);var a=y;g=f=y=void 0,a&&(v=l(),d=t.apply(m,u),f||g||(u=m=null))}else f=setTimeout(r,n)}function c(){f&&clearTimeout(f),g=f=y=void 0,(w||b!==e)&&(v=l(),d=t.apply(m,u),f||g||(u=m=null))}function p(){if(u=arguments,h=l(),m=this,y=w&&(f||!x),b===!1)var n=x&&!f;else{g||x||(v=h);var a=b-(h-v),s=0>=a||a>b;s?(g&&(g=clearTimeout(g)),v=h,d=t.apply(m,u)):g||(g=setTimeout(c,a))}return s&&f?f=clearTimeout(f):f||e===b||(f=setTimeout(r,e)),n&&(s=!0,d=t.apply(m,u)),!s||f||g||(u=m=null),d}var u,g,d,h,m,f,y,v=0,b=!1,w=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var x=!0;w=!1}else s(n)&&(x=n.leading,b="maxWait"in n&&i(+n.maxWait||0,e),w="trailing"in n?n.trailing:w);return p.cancel=a,p}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=a},function(t,e,n){function a(t){return"string"==typeof t?t:null==t?"":t+""}function s(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:m.call(t)==c?f.test(d.call(t)):s(t)&&u.test(t)}function i(t){return t=a(t),t&&p.test(t)?t.replace(l,"\\$&"):t}var c="[object Function]",l=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(l.source),u=/^\[object .+?Constructor\]$/,g=Object.prototype,d=Function.prototype.toString,h=g.hasOwnProperty,m=g.toString,f=RegExp("^"+i(d.call(h)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ +"use strict";!function(e,a){t.exports=a(n(/*! react */1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"]));return r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){v&&clearTimeout(v),d&&clearTimeout(d),b=0,d=v=y=void 0}function r(e,n){n&&clearTimeout(n),d=v=y=void 0,e&&(b=p(),h=t.apply(f,g),v||d||(g=f=void 0))}function c(){var t=e-(p()-m);0>=t||t>e?r(y,d):v=setTimeout(c,t)}function l(){r(x,v)}function u(){if(g=arguments,m=p(),f=this,y=x&&(v||!M),w===!1)var n=M&&!v;else{d||M||(b=m);var a=w-(m-b),s=0>=a||a>w;s?(d&&(d=clearTimeout(d)),b=m,h=t.apply(f,g)):d||(d=setTimeout(l,a))}return s&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(c,e)),n&&(s=!0,h=t.apply(f,g)),!s||v||d||(g=f=void 0),h}var g,d,h,m,f,v,y,b=0,w=!1,x=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var M=!0;x=!1}else s(n)&&(M=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),x="trailing"in n?!!n.trailing:x);return u.cancel=a,u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),p=c||function(){return(new Date).getTime()};t.exports=a},function(t,e){function n(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function s(t){return r(t)&&g.call(t)==i}function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return null==t?!1:s(t)?d.test(l.call(t)):n(t)&&c.test(t)}var i="[object Function]",c=/^\[object .+?Constructor\]$/,p=Object.prototype,l=Function.prototype.toString,u=p.hasOwnProperty,g=p.toString,d=RegExp("^"+l.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ !*** ./demo/src/vendor/github.css ***! \************************************/ -function(t,e,n){},/*!**************************************!*\ +function(t,e){},/*!**************************************!*\ !*** ./demo/src/vendor/skeleton.css ***! \**************************************/ -function(t,e,n){},/*!************************************!*\ +function(t,e){},/*!************************************!*\ !*** ./demo/src/vendor/syntax.css ***! \************************************/ -function(t,e,n){},/*!***************************************!*\ +function(t,e){},/*!***************************************!*\ !*** ./~/normalize.css/normalize.css ***! \***************************************/ -function(t,e,n){},/*!********************************!*\ +function(t,e){},/*!********************************!*\ !*** ./demo/src/css/demo.scss ***! \********************************/ -function(t,e,n){},/*!*********************************!*\ +function(t,e){},/*!*********************************!*\ !*** ./demo/src/css/style.scss ***! \*********************************/ -function(t,e,n){}]); +function(t,e){}]); //# sourceMappingURL=demo.bundle.js.map \ No newline at end of file diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index 8efb371..fd61fd9 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap d811c39a42828b3dcfd1","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","cb","e","valid","score","console","log","render","createElement","htmlFor","name","placeholder","minScore","minLength","onChange","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbn","zxcvbnSrc","getInitialState","value","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontStyle","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","val","validity","handleToggleMask","handleZxcvbn","handleMinLength","maskPassword","stats","currentScore","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","trailingCall","delayed","remaining","now","stamp","isCalled","lastCalled","result","apply","thisArg","args","maxDelayed","trailing","maxWait","debounced","leading","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","baseToString","isObjectLike","object","isNative","objToString","funcTag","reIsNative","test","fnToString","reIsHostCtor","escapeRegExp","reHasRegExpChars","reRegExpChars","RegExp","objectProto","Function","toString"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\t// Demo callback\n\tvar cb = function cb(e, valid, score) {\n\t return console.log('Running callback', e, valid, score);\n\t};\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t onChange: cb\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.6\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontStyle: 'italic',\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: 0.25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2 },\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\t\t\t\t\tvar val = e.target.value;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, this.state.score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tthis.handleZxcvbn(val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar isCalled = trailingCall;\n\t\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (trailing || maxWait !== wait) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\t\t\t\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t\t\t\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\t\t\t\tfunction baseToString(value) {\n\t\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\treturn value == null ? '' : value + '';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (objToString.call(value) == funcTag) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\t\t\t\tfunction escapeRegExp(string) {\n\t\t\t\t\tstring = baseToString(string);\n\t\t\t\t\treturn string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap d811c39a42828b3dcfd1\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\n// Demo callback\nconst cb = (e, valid, score) =>\n console.log('Running callback', e, valid, score);\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontStyle: 'italic',\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: 0.25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2 },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\t var val = e.target.value;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid\n\t });\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, this.state.score);\n\t }\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t this.handleZxcvbn(val);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || maxWait !== wait) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t return value == null ? '' : value + '';\n\t}\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (objToString.call(value) == funcTag) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\tfunction escapeRegExp(string) {\n\t string = baseToString(string);\n\t return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 4b4d1e46ac23729ed870","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","cb","e","valid","score","console","log","render","createElement","htmlFor","name","placeholder","minScore","minLength","onChange","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbn","zxcvbnSrc","getInitialState","value","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontStyle","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","val","validity","handleToggleMask","handleZxcvbn","handleMinLength","maskPassword","stats","currentScore","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","test","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\t// Demo callback\n\tvar cb = function cb(e, valid, score) {\n\t return console.log('Running callback', e, valid, score);\n\t};\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t onChange: cb\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.6\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontStyle: 'italic',\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4b4d1e46ac23729ed870\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\n// Demo callback\nconst cb = (e, valid, score) =>\n console.log('Running callback', e, valid, score);\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontStyle: 'italic',\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/demo/style.css b/demo/style.css index f28f023..455e6f3 100644 --- a/demo/style.css +++ b/demo/style.css @@ -1,2 +1,2 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */hr,input[type=search]{box-sizing:content-box}img,legend{border:0}legend,td,th{padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}.column,.columns,.container,.u-full-width{box-sizing:border-box;width:100%}h1,h2,h3{letter-spacing:-.1rem}body,h6{line-height:1.6}fieldset,hr{border-width:0}.container{position:relative;max-width:960px;margin:0 auto;padding:0 20px}ol,p,ul{margin-top:0}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}html{font-size:62.5%}body{font-size:1.5em;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;letter-spacing:0}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#FFF;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#FFF;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}.button,button,li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:12px 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);.ribbon,.ribbon.black{background:#000}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:16px;font-weight:500;border:1px solid rgba(255,255,255,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted rgba(100,100,100,.2)}pre{background:#002b36;word-wrap:break-word;margin:0 0 20px;padding:10px;color:#839496;font-size:14px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}h3,h4{font-size:2em}h4,header{text-align:center}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}.passwordField,form{width:100%}form{margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:12px;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:0;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField__strength{color:#999} +@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.container{position:relative;max-width:60pc;margin:0 auto;padding:0 20px}.column,.columns,.container{width:100%;box-sizing:border-box}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{font-size:1.5em;line-height:1.6;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h1,h2{letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:550px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#fff;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#fff;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:9pt 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.button,button{margin-bottom:1rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;background:#000;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:1pc;font-weight:500;border:1px solid hsla(0,0%,100%,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.black{background:#000}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted hsla(0,0%,39%,.2)}pre{background:#002b36;word-wrap:break-word;margin:0;padding:10px;color:#839496;font-size:14px;margin-bottom:20px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}header{text-align:center}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h3,h4{font-size:2em}h4{text-align:center}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}form{width:100%;margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:9pt;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:0;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField{width:100%}.passwordField__strength{color:#999} /*# sourceMappingURL=style.css.map*/ \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index b509d1c..b6235e7 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -123,7 +123,7 @@ return /******/ (function(modules) { // webpackBootstrap return { width: this.props.zxcvbn ? width + '%' : '100%', maxWidth: '85%', - opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1', + opacity: this.props.zxcvbn ? width * .01 + .5 : '1', background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor, height: 5, transition: 'all 400ms linear', @@ -148,7 +148,7 @@ return /******/ (function(modules) { // webpackBootstrap iconStyle: { display: 'inline-block', - opacity: 0.25, + opacity: .25, position: 'relative', top: 2, width: '3%' @@ -157,7 +157,8 @@ return /******/ (function(modules) { // webpackBootstrap strengthLangStyle: { fontSize: 12, position: 'relative', - top: 2 }, + top: 2 + }, /*========== METHODS ==========*/ @@ -177,24 +178,28 @@ return /******/ (function(modules) { // webpackBootstrap handleChange: function handleChange(e) { e.preventDefault(); + var val = e.target.value; + var score; this.setState({ value: val, isValid: e.target.validity.valid }); - // call onChange prop passed from parent - if (this.props.onChange) { - this.props.onChange(val, this.state.isValid, this.state.score); - } - if (this.props.toggleMask) { this.handleToggleMask(); } if (this.props.zxcvbn) { - this.handleZxcvbn(val); + score = this.handleZxcvbn(val); + } else { + score = this.state.score; + } + + // call onChange prop passed from parent + if (this.props.onChange) { + this.props.onChange(val, this.state.isValid, score); } if (this.props.minLength) { @@ -235,12 +240,14 @@ return /******/ (function(modules) { // webpackBootstrap // if score changed and callback provided if (this.props.changeCb && this.state.score !== currentScore) { - this.props.changeCb(this.state.score, currentScore); + this.props.changeCb(this.state.score, currentScore, val); } if (this.props.zxcvbn === 'debug') { console.debug(stats); } + + return currentScore; }, handleMinLength: function handleMinLength(len) { @@ -326,13 +333,13 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 1 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { 'use strict'; @@ -350,7 +357,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { /** - * lodash 3.1.0 (Custom Build) + * lodash 3.1.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 @@ -469,9 +476,9 @@ return /******/ (function(modules) { // webpackBootstrap var leading = true; trailing = false; } else if (isObject(options)) { - leading = options.leading; + leading = !!options.leading; maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); - trailing = 'trailing' in options ? options.trailing : trailing; + trailing = 'trailing' in options ? !!options.trailing : trailing; } function cancel() { @@ -481,41 +488,35 @@ return /******/ (function(modules) { // webpackBootstrap if (maxTimeoutId) { clearTimeout(maxTimeoutId); } + lastCalled = 0; + maxTimeoutId = timeoutId = trailingCall = undefined; + } + + function complete(isCalled, id) { + if (id) { + clearTimeout(id); + } maxTimeoutId = timeoutId = trailingCall = undefined; + if (isCalled) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = undefined; + } + } } function delayed() { var remaining = wait - (now() - stamp); if (remaining <= 0 || remaining > wait) { - if (maxTimeoutId) { - clearTimeout(maxTimeoutId); - } - var isCalled = trailingCall; - maxTimeoutId = timeoutId = trailingCall = undefined; - if (isCalled) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } + complete(trailingCall, maxTimeoutId); } else { timeoutId = setTimeout(delayed, remaining); } } function maxDelayed() { - if (timeoutId) { - clearTimeout(timeoutId); - } - maxTimeoutId = timeoutId = trailingCall = undefined; - if (trailing || maxWait !== wait) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } + complete(trailing, timeoutId); } function debounced() { @@ -553,7 +554,7 @@ return /******/ (function(modules) { // webpackBootstrap result = func.apply(thisArg, args); } if (isCalled && !timeoutId && !maxTimeoutId) { - args = thisArg = null; + args = thisArg = undefined; } return result; } @@ -592,10 +593,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 4 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { /** - * lodash 3.9.0 (Custom Build) + * lodash 3.9.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 @@ -608,32 +609,9 @@ return /******/ (function(modules) { // webpackBootstrap var funcTag = '[object Function]'; - /** - * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special). - * In addition to special characters the forward slash is escaped to allow for - * easier `eval` use and `Function` compilation. - */ - var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, - reHasRegExpChars = RegExp(reRegExpChars.source); - /** Used to detect host constructors (Safari > 5). */ var reIsHostCtor = /^\[object .+?Constructor\]$/; - /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - if (typeof value == 'string') { - return value; - } - return value == null ? '' : value + ''; - } - /** * Checks if `value` is object-like. * @@ -655,13 +633,13 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objToString = objectProto.toString; /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); + var reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); /** * Gets the native function at `key` of `object`. @@ -676,6 +654,56 @@ return /******/ (function(modules) { // webpackBootstrap return isNative(value) ? value : undefined; } + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + /** * Checks if `value` is a native function. * @@ -696,36 +724,17 @@ return /******/ (function(modules) { // webpackBootstrap if (value == null) { return false; } - if (objToString.call(value) == funcTag) { + if (isFunction(value)) { return reIsNative.test(fnToString.call(value)); } return isObjectLike(value) && reIsHostCtor.test(value); } - /** - * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", - * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' - */ - function escapeRegExp(string) { - string = baseToString(string); - return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\$&') : string; - } - module.exports = getNative; /***/ }, /* 5 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=" diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 318937b..868c579 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -7,4 +7,4 @@ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,s(e,["onChange"]));return a.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},a.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=c},function(t,e,n){"use strict";function s(t,e,n){function s(){y&&clearTimeout(y),d&&clearTimeout(d),d=y=f=void 0}function a(){var n=e-(c()-g);if(0>=n||n>e){d&&clearTimeout(d);var s=f;d=y=f=void 0,s&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}else y=setTimeout(a,n)}function l(){y&&clearTimeout(y),d=y=f=void 0,(M||m!==e)&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}function p(){if(u=arguments,g=c(),v=this,f=M&&(y||!w),m===!1)var n=w&&!y;else{d||w||(b=g);var s=m-(g-b),i=0>=s||s>m;i?(d&&(d=clearTimeout(d)),b=g,h=t.apply(v,u)):d||(d=setTimeout(l,s))}return i&&y?y=clearTimeout(y):y||e===m||(y=setTimeout(a,e)),n&&(i=!0,h=t.apply(v,u)),!i||y||d||(u=v=null),h}var u,d,h,g,v,y,f,b=0,m=!1,M=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var w=!0;M=!1}else i(n)&&(w=n.leading,m="maxWait"in n&&r(+n.maxWait||0,e),M="trailing"in n?n.trailing:M);return p.cancel=s,p}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var a=n(2),o="Expected a function",r=Math.max,l=a(Date,"now"),c=l||function(){return(new Date).getTime()};t.exports=s},function(t,e,n){"use strict";function s(t){return"string"==typeof t?t:null==t?"":t+""}function i(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:v.call(t)==l?y.test(h.call(t)):i(t)&&u.test(t)}function r(t){return t=s(t),t&&p.test(t)?t.replace(c,"\\$&"):t}var l="[object Function]",c=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(c.source),u=/^\[object .+?Constructor\]$/,d=Object.prototype,h=Function.prototype.toString,g=d.hasOwnProperty,v=d.toString,y=RegExp("^"+r(h.call(g)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e,n){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n,s){e.exports=t}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"]));return o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e,n){"use strict";function s(t,e,n){function s(){f&&clearTimeout(f),h&&clearTimeout(h),m=0,h=f=b=void 0}function o(e,n){n&&clearTimeout(n),h=f=b=void 0,e&&(m=l(),g=t.apply(y,d),f||h||(d=y=void 0))}function c(){var t=e-(l()-v);0>=t||t>e?o(b,h):f=setTimeout(c,t)}function p(){o(w,f)}function u(){if(d=arguments,v=l(),y=this,b=w&&(f||!A),M===!1)var n=A&&!f;else{h||A||(m=v);var s=M-(v-m),i=0>=s||s>M;i?(h&&(h=clearTimeout(h)),m=v,g=t.apply(y,d)):h||(h=setTimeout(p,s))}return i&&f?f=clearTimeout(f):f||e===M||(f=setTimeout(c,e)),n&&(i=!0,g=t.apply(y,d)),!i||f||h||(d=y=void 0),g}var d,h,g,v,y,f,b,m=0,M=!1,w=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var A=!0;w=!1}else i(n)&&(A=!!n.leading,M="maxWait"in n&&r(+n.maxWait||0,e),w="trailing"in n?!!n.trailing:w);return u.cancel=s,u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(2),a="Expected a function",r=Math.max,c=o(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=s},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}function s(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function i(t){return o(t)&&d.call(t)==r}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function a(t){return null==t?!1:i(t)?h.test(p.call(t)):n(t)&&c.test(t)}var r="[object Function]",c=/^\[object .+?Constructor\]$/,l=Object.prototype,p=Function.prototype.toString,u=l.hasOwnProperty,d=l.toString,h=RegExp("^"+p.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=s},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file diff --git a/package.json b/package.json index e0204ea..92809ff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.5", + "version": "0.9.6", "main": "src/index.js", "description": "A UX forward password field for react-js", "scripts": { @@ -31,32 +31,36 @@ ], "author": "seethroughtrees", "homepage": "https://seethroughtrees.github.io/react-ux-password-field/", + "engines": { + "iojs": ">=2.x.x", + "nodejs": ">=0.11.x" + }, "dependencies": { - "react": ">=0.12.0" + "react": ">=0.13.0" }, "devDependencies": { - "autoprefixer-core": "^5.1.11", - "babel": "^5.4.7", - "babel-core": "^5.4.7", - "babel-jest": "^5.2.0", - "babel-loader": "^5.1.3", - "css-loader": ">=0.13.1", - "csswring": "^3.0.5", - "extract-text-webpack-plugin": "^0.8.0", - "file-loader": ">=0.8.3", - "gh-pages-deploy": "^0.3.0", - "jest-cli": "^0.4.5", - "jsx-loader": ">=0.13.2", - "lodash.debounce": "^3.1.0", - "normalize.css": "^3.0.3", - "postcss-loader": "^0.4.3", - "root-require": "^0.3.1", + "autoprefixer-core": "5.2.1", + "babel": "5.6.23", + "babel-core": "5.7.4", + "babel-jest": "5.3.0", + "babel-loader": "5.3.2", + "css-loader": "0.15.5", + "csswring": "3.0.5", + "extract-text-webpack-plugin": "0.8.2", + "file-loader": "0.8.4", + "gh-pages-deploy": "0.3.0", + "jest-cli": "facebook/jest#0.5.x", + "jsx-loader": "0.13.2", + "lodash.debounce": "3.1.1", + "normalize.css": "3.0.3", + "postcss-loader": "0.5.1", + "root-require": "0.3.1", "sass-loader": "1.0.2", - "script-loader": ">=0.6.1", - "style-loader": ">=0.12.2", - "url-loader": ">=0.5.5", - "webpack": "^1.9.8", - "webpack-dev-server": "^1.9.0" + "script-loader": "0.6.1", + "style-loader": "0.12.3", + "url-loader": "0.5.6", + "webpack": "1.10.1", + "webpack-dev-server": "1.10.1" }, "gh-pages-deploy": { "staticpath": "demo", diff --git a/src/index.js b/src/index.js index 76929c1..fd82bc3 100644 --- a/src/index.js +++ b/src/index.js @@ -112,30 +112,33 @@ var InputPassword = React.createClass({ handleChange(e) { e.preventDefault(); + var val = e.target.value; + var score; this.setState({ value: val, isValid: e.target.validity.valid }); - // call onChange prop passed from parent - if (this.props.onChange) { - this.props.onChange(val, this.state.isValid, this.state.score); - } - if (this.props.toggleMask) { this.handleToggleMask(); } if (this.props.zxcvbn) { - this.handleZxcvbn(val); + score = this.handleZxcvbn(val); + } else { + score = this.state.score; + } + + // call onChange prop passed from parent + if (this.props.onChange) { + this.props.onChange(val, this.state.isValid, score); } if (this.props.minLength) { this.handleMinLength(e.target.value.length) } - }, handleToggleMask() { @@ -171,12 +174,14 @@ var InputPassword = React.createClass({ // if score changed and callback provided if (this.props.changeCb && this.state.score !== currentScore) { - this.props.changeCb(this.state.score, currentScore) + this.props.changeCb(this.state.score, currentScore, val) } if (this.props.zxcvbn === 'debug') { console.debug(stats); } + + return currentScore; }, handleMinLength(len) { From e25ade0ff741f65d1aa0bbf86439926a09743c1a Mon Sep 17 00:00:00 2001 From: Frankie Bagnardi Date: Fri, 7 Aug 2015 08:03:19 -0700 Subject: [PATCH 06/34] Add "browser" field to package.json --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 92809ff..2ef4529 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "react-ux-password-field", "version": "0.9.6", "main": "src/index.js", + "browser": "./lib/react-ux-password-field.js", "description": "A UX forward password field for react-js", "scripts": { "dev": "webpack --watch --port 9501 --colors", From 8fd5f7d984d3f19b5ee2c0c7cd82ff3a3796dae4 Mon Sep 17 00:00:00 2001 From: Adam L Date: Thu, 20 Aug 2015 16:56:30 -0700 Subject: [PATCH 07/34] bumped version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2ef4529..9eca168 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.6", + "version": "0.9.7", "main": "src/index.js", "browser": "./lib/react-ux-password-field.js", "description": "A UX forward password field for react-js", From 69434a53894cff6b28ce93bc51ee72a560d1fd35 Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 31 Aug 2015 00:17:49 -0700 Subject: [PATCH 08/34] Added license --- LICENSE | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 LICENSE diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..04130e0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2015 Adam L (seethroughtrees) + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. From 560bab04a16e9b77aeef04d4314170a1aeb724e0 Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 31 Aug 2015 09:34:45 -0700 Subject: [PATCH 09/34] Added license --- package.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 9eca168..234aa13 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,7 @@ { "name": "react-ux-password-field", "version": "0.9.7", + "license": "MIT", "main": "src/index.js", "browser": "./lib/react-ux-password-field.js", "description": "A UX forward password field for react-js", @@ -37,9 +38,6 @@ "nodejs": ">=0.11.x" }, "dependencies": { - "react": ">=0.13.0" - }, - "devDependencies": { "autoprefixer-core": "5.2.1", "babel": "5.6.23", "babel-core": "5.7.4", @@ -50,11 +48,11 @@ "extract-text-webpack-plugin": "0.8.2", "file-loader": "0.8.4", "gh-pages-deploy": "0.3.0", - "jest-cli": "facebook/jest#0.5.x", "jsx-loader": "0.13.2", "lodash.debounce": "3.1.1", "normalize.css": "3.0.3", "postcss-loader": "0.5.1", + "react": ">=0.13.0", "root-require": "0.3.1", "sass-loader": "1.0.2", "script-loader": "0.6.1", @@ -63,6 +61,9 @@ "webpack": "1.10.1", "webpack-dev-server": "1.10.1" }, + "devDependencies": { + "jest-cli": "facebook/jest#0.5.x" + }, "gh-pages-deploy": { "staticpath": "demo", "prep": [ From c340197a10358d906c6f80494a932666102bcdf7 Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 31 Aug 2015 09:34:58 -0700 Subject: [PATCH 10/34] Removed italic --- src/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/index.js b/src/index.js index fd82bc3..274b610 100644 --- a/src/index.js +++ b/src/index.js @@ -67,7 +67,6 @@ var InputPassword = React.createClass({ unMaskStyle: { color: config.unMaskColor, - fontStyle: 'italic', fontWeight: 200 }, From 5fca414b172679d79d05fe8a4975647de714f677 Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 31 Aug 2015 09:41:28 -0700 Subject: [PATCH 11/34] Updated deps --- package.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index 234aa13..7e8790b 100644 --- a/package.json +++ b/package.json @@ -39,30 +39,30 @@ }, "dependencies": { "autoprefixer-core": "5.2.1", - "babel": "5.6.23", - "babel-core": "5.7.4", + "babel": "5.8.23", + "babel-core": "5.8.23", "babel-jest": "5.3.0", "babel-loader": "5.3.2", - "css-loader": "0.15.5", - "csswring": "3.0.5", + "css-loader": "0.16.0", + "csswring": "4.0.0", "extract-text-webpack-plugin": "0.8.2", "file-loader": "0.8.4", "gh-pages-deploy": "0.3.0", "jsx-loader": "0.13.2", "lodash.debounce": "3.1.1", "normalize.css": "3.0.3", - "postcss-loader": "0.5.1", + "postcss-loader": "0.6.0", "react": ">=0.13.0", "root-require": "0.3.1", - "sass-loader": "1.0.2", + "sass-loader": "2.0.1", "script-loader": "0.6.1", "style-loader": "0.12.3", "url-loader": "0.5.6", - "webpack": "1.10.1", + "webpack": "1.12.0", "webpack-dev-server": "1.10.1" }, "devDependencies": { - "jest-cli": "facebook/jest#0.5.x" + "jest-cli": "0.5.0" }, "gh-pages-deploy": { "staticpath": "demo", From e0a48c17a3186c825973940ac26fa2a5d41fc6b2 Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 31 Aug 2015 09:49:54 -0700 Subject: [PATCH 12/34] Updated deps --- package.json | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/package.json b/package.json index 7e8790b..84f2522 100644 --- a/package.json +++ b/package.json @@ -38,28 +38,28 @@ "nodejs": ">=0.11.x" }, "dependencies": { - "autoprefixer-core": "5.2.1", - "babel": "5.8.23", - "babel-core": "5.8.23", - "babel-jest": "5.3.0", - "babel-loader": "5.3.2", - "css-loader": "0.16.0", - "csswring": "4.0.0", - "extract-text-webpack-plugin": "0.8.2", - "file-loader": "0.8.4", - "gh-pages-deploy": "0.3.0", - "jsx-loader": "0.13.2", - "lodash.debounce": "3.1.1", - "normalize.css": "3.0.3", - "postcss-loader": "0.6.0", + "autoprefixer-core": "^5.2.1", + "babel": "^5.8.23", + "babel-core": "^5.8.23", + "babel-jest": "^5.3.0", + "babel-loader": "^5.3.2", + "css-loader": "^0.16.0", + "csswring": "^4.0.0", + "extract-text-webpack-plugin": "^0.8.2", + "file-loader": "^0.8.4", + "gh-pages-deploy": "^0.3.0", + "jsx-loader": "^0.13.2", + "lodash.debounce": "^3.1.1", + "normalize.css": "^3.0.3", + "postcss-loader": "^0.6.0", "react": ">=0.13.0", - "root-require": "0.3.1", - "sass-loader": "2.0.1", - "script-loader": "0.6.1", - "style-loader": "0.12.3", - "url-loader": "0.5.6", - "webpack": "1.12.0", - "webpack-dev-server": "1.10.1" + "root-require": "^0.3.1", + "sass-loader": "^2.0.1", + "script-loader": "^0.6.1", + "style-loader": "^0.12.3", + "url-loader": "^0.5.6", + "webpack": "^1.12.0", + "webpack-dev-server": "^1.10.1" }, "devDependencies": { "jest-cli": "0.5.0" From f995905798786f6ca91c3f6f0d4d2e733c50ddcd Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 31 Aug 2015 09:55:53 -0700 Subject: [PATCH 13/34] Updated to 0.9.8 --- demo/demo.bundle.js | 4 ++-- demo/demo.bundle.js.map | 2 +- lib/react-ux-password-field.js | 7 +++---- lib/react-ux-password-field.min.js | 4 ++-- package.json | 2 +- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index e4478b7..0f91ac8 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -12,14 +12,14 @@ function(t,e){"use strict";window.Rainbow=function(){function t(t){var e,n=t.get \****************************************/ function(t,e,n){/*! * React UX Password Field - * version: 0.9.6 + * version: 0.9.8 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -"use strict";!function(e,a){t.exports=a(n(/*! react */1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"]));return r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){v&&clearTimeout(v),d&&clearTimeout(d),b=0,d=v=y=void 0}function r(e,n){n&&clearTimeout(n),d=v=y=void 0,e&&(b=p(),h=t.apply(f,g),v||d||(g=f=void 0))}function c(){var t=e-(p()-m);0>=t||t>e?r(y,d):v=setTimeout(c,t)}function l(){r(x,v)}function u(){if(g=arguments,m=p(),f=this,y=x&&(v||!M),w===!1)var n=M&&!v;else{d||M||(b=m);var a=w-(m-b),s=0>=a||a>w;s?(d&&(d=clearTimeout(d)),b=m,h=t.apply(f,g)):d||(d=setTimeout(l,a))}return s&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(c,e)),n&&(s=!0,h=t.apply(f,g)),!s||v||d||(g=f=void 0),h}var g,d,h,m,f,v,y,b=0,w=!1,x=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var M=!0;x=!1}else s(n)&&(M=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),x="trailing"in n?!!n.trailing:x);return u.cancel=a,u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),p=c||function(){return(new Date).getTime()};t.exports=a},function(t,e){function n(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function s(t){return r(t)&&g.call(t)==i}function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return null==t?!1:s(t)?d.test(l.call(t)):n(t)&&c.test(t)}var i="[object Function]",c=/^\[object .+?Constructor\]$/,p=Object.prototype,l=Function.prototype.toString,u=p.hasOwnProperty,g=p.toString,d=RegExp("^"+l.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ +"use strict";!function(e,a){t.exports=a(n(/*! react */1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"]));return r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){v&&clearTimeout(v),d&&clearTimeout(d),b=0,d=v=y=void 0}function r(e,n){n&&clearTimeout(n),d=v=y=void 0,e&&(b=p(),h=t.apply(f,g),v||d||(g=f=void 0))}function c(){var t=e-(p()-m);0>=t||t>e?r(y,d):v=setTimeout(c,t)}function l(){r(x,v)}function u(){if(g=arguments,m=p(),f=this,y=x&&(v||!M),w===!1)var n=M&&!v;else{d||M||(b=m);var a=w-(m-b),s=0>=a||a>w;s?(d&&(d=clearTimeout(d)),b=m,h=t.apply(f,g)):d||(d=setTimeout(l,a))}return s&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(c,e)),n&&(s=!0,h=t.apply(f,g)),!s||v||d||(g=f=void 0),h}var g,d,h,m,f,v,y,b=0,w=!1,x=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var M=!0;x=!1}else s(n)&&(M=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),x="trailing"in n?!!n.trailing:x);return u.cancel=a,u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),p=c||function(){return(new Date).getTime()};t.exports=a},function(t,e){function n(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function s(t){return r(t)&&g.call(t)==i}function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return null==t?!1:s(t)?d.test(l.call(t)):n(t)&&c.test(t)}var i="[object Function]",c=/^\[object .+?Constructor\]$/,p=Object.prototype,l=Function.prototype.toString,u=p.hasOwnProperty,g=p.toString,d=RegExp("^"+l.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ !*** ./demo/src/vendor/github.css ***! \************************************/ function(t,e){},/*!**************************************!*\ diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index fd61fd9..b11cc02 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 4b4d1e46ac23729ed870","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","cb","e","valid","score","console","log","render","createElement","htmlFor","name","placeholder","minScore","minLength","onChange","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbn","zxcvbnSrc","getInitialState","value","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontStyle","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","val","validity","handleToggleMask","handleZxcvbn","handleMinLength","maskPassword","stats","currentScore","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","test","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\t// Demo callback\n\tvar cb = function cb(e, valid, score) {\n\t return console.log('Running callback', e, valid, score);\n\t};\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t onChange: cb\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.6\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontStyle: 'italic',\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 4b4d1e46ac23729ed870\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\n// Demo callback\nconst cb = (e, valid, score) =>\n console.log('Running callback', e, valid, score);\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontStyle: 'italic',\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 7991d8d9377bb389bd1e","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","cb","e","valid","score","console","log","render","createElement","htmlFor","name","placeholder","minScore","minLength","onChange","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbn","zxcvbnSrc","getInitialState","value","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","val","validity","handleToggleMask","handleZxcvbn","handleMinLength","maskPassword","stats","currentScore","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","test","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\t// Demo callback\n\tvar cb = function cb(e, valid, score) {\n\t return console.log('Running callback', e, valid, score);\n\t};\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t onChange: cb\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.8\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7991d8d9377bb389bd1e\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\n// Demo callback\nconst cb = (e, valid, score) =>\n console.log('Running callback', e, valid, score);\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index b6235e7..bb13037 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.6 + * version: 0.9.8 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ @@ -134,7 +134,6 @@ return /******/ (function(modules) { // webpackBootstrap unMaskStyle: { color: config.unMaskColor, - fontStyle: 'italic', fontWeight: 200 }, @@ -269,8 +268,8 @@ return /******/ (function(modules) { // webpackBootstrap // snippet to async load zxcvbn if enabled (function () { var a;a = function () { - var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a); - };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1); + var a, b;b = document.createElement("script");b.src = zxcvbnSrc;b.type = "text/javascript";b.async = !0;a = document.getElementsByTagName("head")[0];return a.parentNode.insertBefore(b, a); + };null != window.attachEvent ? window.attachEvent("onload", a) : window.addEventListener("load", a, !1); }).call(this); } diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 868c579..f675884 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -1,10 +1,10 @@ /*! * React UX Password Field - * version: 0.9.6 + * version: 0.9.8 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"]));return o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e,n){"use strict";function s(t,e,n){function s(){f&&clearTimeout(f),h&&clearTimeout(h),m=0,h=f=b=void 0}function o(e,n){n&&clearTimeout(n),h=f=b=void 0,e&&(m=l(),g=t.apply(y,d),f||h||(d=y=void 0))}function c(){var t=e-(l()-v);0>=t||t>e?o(b,h):f=setTimeout(c,t)}function p(){o(w,f)}function u(){if(d=arguments,v=l(),y=this,b=w&&(f||!A),M===!1)var n=A&&!f;else{h||A||(m=v);var s=M-(v-m),i=0>=s||s>M;i?(h&&(h=clearTimeout(h)),m=v,g=t.apply(y,d)):h||(h=setTimeout(p,s))}return i&&f?f=clearTimeout(f):f||e===M||(f=setTimeout(c,e)),n&&(i=!0,g=t.apply(y,d)),!i||f||h||(d=y=void 0),g}var d,h,g,v,y,f,b,m=0,M=!1,w=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var A=!0;w=!1}else i(n)&&(A=!!n.leading,M="maxWait"in n&&r(+n.maxWait||0,e),w="trailing"in n?!!n.trailing:w);return u.cancel=s,u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(2),a="Expected a function",r=Math.max,c=o(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=s},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}function s(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function i(t){return o(t)&&d.call(t)==r}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function a(t){return null==t?!1:i(t)?h.test(p.call(t)):n(t)&&c.test(t)}var r="[object Function]",c=/^\[object .+?Constructor\]$/,l=Object.prototype,p=Function.prototype.toString,u=l.hasOwnProperty,d=l.toString,h=RegExp("^"+p.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=s},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"]));return o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e,n){"use strict";function s(t,e,n){function s(){f&&clearTimeout(f),h&&clearTimeout(h),m=0,h=f=b=void 0}function o(e,n){n&&clearTimeout(n),h=f=b=void 0,e&&(m=l(),g=t.apply(y,d),f||h||(d=y=void 0))}function c(){var t=e-(l()-v);0>=t||t>e?o(b,h):f=setTimeout(c,t)}function p(){o(w,f)}function u(){if(d=arguments,v=l(),y=this,b=w&&(f||!A),M===!1)var n=A&&!f;else{h||A||(m=v);var s=M-(v-m),i=0>=s||s>M;i?(h&&(h=clearTimeout(h)),m=v,g=t.apply(y,d)):h||(h=setTimeout(p,s))}return i&&f?f=clearTimeout(f):f||e===M||(f=setTimeout(c,e)),n&&(i=!0,g=t.apply(y,d)),!i||f||h||(d=y=void 0),g}var d,h,g,v,y,f,b,m=0,M=!1,w=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var A=!0;w=!1}else i(n)&&(A=!!n.leading,M="maxWait"in n&&r(+n.maxWait||0,e),w="trailing"in n?!!n.trailing:w);return u.cancel=s,u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(2),a="Expected a function",r=Math.max,c=o(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=s},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}function s(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function i(t){return o(t)&&d.call(t)==r}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function a(t){return null==t?!1:i(t)?h.test(p.call(t)):n(t)&&c.test(t)}var r="[object Function]",c=/^\[object .+?Constructor\]$/,l=Object.prototype,p=Function.prototype.toString,u=l.hasOwnProperty,d=l.toString,h=RegExp("^"+p.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=s},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file diff --git a/package.json b/package.json index 84f2522..aab023d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.7", + "version": "0.9.8", "license": "MIT", "main": "src/index.js", "browser": "./lib/react-ux-password-field.js", From 0f1bdfbbe165485b7e10611fcb86436f898cba90 Mon Sep 17 00:00:00 2001 From: Adam L Date: Wed, 9 Sep 2015 23:27:50 -0700 Subject: [PATCH 14/34] Compiled Firefox bug fixes --- CHANGELOG.md | 43 +++++++ demo/demo.bundle.js | 20 +-- demo/demo.bundle.js.map | 2 +- demo/index.html | 2 + demo/src/index.js | 6 +- demo/style.css | 2 +- dev_server/index.html | 4 +- lib/react-ux-password-field.js | 189 +++++++++++++++-------------- lib/react-ux-password-field.min.js | 2 +- package.json | 2 +- src/index.js | 20 ++- 11 files changed, 179 insertions(+), 113 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..38477b9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,43 @@ +# Change Log + +## [Unreleased](https://github.com/seethroughtrees/react-ux-password-field/tree/HEAD) + +[Full Changelog](https://github.com/seethroughtrees/react-ux-password-field/compare/0.9.8...HEAD) + +**Closed issues:** + +- Add license [\#22](https://github.com/seethroughtrees/react-ux-password-field/issues/22) +- option needed: unMaskStyle [\#21](https://github.com/seethroughtrees/react-ux-password-field/issues/21) +- Warning: setState\(...\): Can only update a mounted or mounting component. This usually means you called setState\(\) on an unmounted component. This is a no-op. [\#14](https://github.com/seethroughtrees/react-ux-password-field/issues/14) + +## [0.9.8](https://github.com/seethroughtrees/react-ux-password-field/tree/0.9.8) (2015-08-31) +**Implemented enhancements:** + +- Hide meter until user starts typing [\#11](https://github.com/seethroughtrees/react-ux-password-field/issues/11) + +**Fixed bugs:** + +- zxcvbn is not defined [\#13](https://github.com/seethroughtrees/react-ux-password-field/issues/13) + +**Closed issues:** + +- Why is v0.9.7 on npm when you are still on v0.9.6? [\#23](https://github.com/seethroughtrees/react-ux-password-field/issues/23) +- Pass on the value in changeCb\(\) too [\#17](https://github.com/seethroughtrees/react-ux-password-field/issues/17) +- this.props.onChange\(\) should be called after handleZxcvbn [\#16](https://github.com/seethroughtrees/react-ux-password-field/issues/16) +- using it directly on bower [\#10](https://github.com/seethroughtrees/react-ux-password-field/issues/10) +- Bug: first character I type causes strength meter to disappear [\#8](https://github.com/seethroughtrees/react-ux-password-field/issues/8) +- make this.props.onChange conditional [\#7](https://github.com/seethroughtrees/react-ux-password-field/issues/7) +- Styling of strength meter [\#6](https://github.com/seethroughtrees/react-ux-password-field/issues/6) +- How to add a custom strength / score for repeated password inputs? [\#5](https://github.com/seethroughtrees/react-ux-password-field/issues/5) +- Adding onChange breaks functionality [\#4](https://github.com/seethroughtrees/react-ux-password-field/issues/4) +- Uncaught ReferenceError: zxcvbn is not defined [\#3](https://github.com/seethroughtrees/react-ux-password-field/issues/3) + +**Merged pull requests:** + +- Add "browser" field to package.json [\#20](https://github.com/seethroughtrees/react-ux-password-field/pull/20) ([brigand](https://github.com/brigand)) +- Add more parameters in callbacks and bump packages [\#18](https://github.com/seethroughtrees/react-ux-password-field/pull/18) ([binarykitchen](https://github.com/binarykitchen)) +- onChange branch change [\#2](https://github.com/seethroughtrees/react-ux-password-field/pull/2) ([Dignifiedquire](https://github.com/Dignifiedquire)) + + + +\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* \ No newline at end of file diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 0f91ac8..2b65b3c 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -1,13 +1,13 @@ !function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([/*!***************************!*\ !*** ./demo/src/index.js ***! \***************************/ -function(t,e,n){"use strict";n(/*! normalize.css/normalize.css */7),n(/*! ./vendor/skeleton.css */5),n(/*! ./vendor/github.css */4),n(/*! ./vendor/syntax.css */6),n(/*! ./vendor/rainbow-custom.min.js */2),n(/*! ./css/style.scss */9),n(/*! ./css/demo.scss */8);var a=n(/*! react */1),s=n(/*! ../../lib/react-ux-password-field.js */3),r=function(t,e,n){return console.log("Running callback",t,e,n)};a.render(a.createElement("form",null,a.createElement("fieldset",null,a.createElement("label",{htmlFor:"password1"},"Password"),a.createElement(s,{id:"password1",name:"password1",placeholder:"Try me out! Enter a random password.",minScore:1,minLength:5,onChange:r}))),document.getElementById("content"))},/*!************************!*\ +function(t,e,n){"use strict";n(/*! normalize.css/normalize.css */7),n(/*! ./vendor/skeleton.css */5),n(/*! ./vendor/github.css */4),n(/*! ./vendor/syntax.css */6),n(/*! ./vendor/rainbow-custom.min.js */2),n(/*! ./css/style.scss */9),n(/*! ./css/demo.scss */8);var a=n(/*! react */1),s=n(/*! ../../lib/react-ux-password-field.js */3);a.render(a.createElement("form",null,a.createElement("fieldset",null,a.createElement("label",{htmlFor:"password1"},"Password"),a.createElement(s,{id:"password1",name:"password1",placeholder:"Try me out! Enter a random password.",minScore:1,minLength:5,zxcvbn:"debug"}))),document.getElementById("content"))},/*!************************!*\ !*** external "React" ***! \************************/ -function(t,e){t.exports=React},/*!***********************************************!*\ +function(t,e,n){t.exports=React},/*!***********************************************!*\ !*** ./demo/src/vendor/rainbow-custom.min.js ***! \***********************************************/ -function(t,e){"use strict";window.Rainbow=function(){function t(t){var e,n=t.getAttribute&&t.getAttribute("data-language")||0;if(!n)for(t=t.attributes,e=0;e=t&&e>=h[v][n])&&(delete h[v][n],delete d[v][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,p){if("undefined"==typeof t||null===t)p();else{var l=t.exec(i);if(l){++b,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=l[0],g=l.index,m=l[0].length+g,f=function(){function n(){s(t,e,i,p)}b%100>0?n():setTimeout(n,0)};if(n(g,m))f();else{var y=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=l[n[t]];if(r){var i=e.matches[n[t]],p=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[v]);n(t,a,0,e)}function c(t,e,n){var a=m[e]||[],s=m[y]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function p(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(l=u=void 0,s=!1,o=t&&e>=m[v][n])&&(delete m[v][n],delete d[v][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,l){if("undefined"==typeof t||null===t)l();else{var p=t.exec(i);if(p){++b,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=p[0],g=p.index,h=p[0].length+g,f=function(){function n(){s(t,e,i,l)}b%100>0?n():setTimeout(n,0)};if(n(g,h))f();else{var y=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=p[n[t]];if(r){var i=e.matches[n[t]],l=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[v]);n(t,a,0,e)}function c(t,e,n){var a=h[e]||[],s=h[y]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function l(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(p=u=void 0,s=!1,o=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"]));return r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){v&&clearTimeout(v),d&&clearTimeout(d),b=0,d=v=y=void 0}function r(e,n){n&&clearTimeout(n),d=v=y=void 0,e&&(b=p(),h=t.apply(f,g),v||d||(g=f=void 0))}function c(){var t=e-(p()-m);0>=t||t>e?r(y,d):v=setTimeout(c,t)}function l(){r(x,v)}function u(){if(g=arguments,m=p(),f=this,y=x&&(v||!M),w===!1)var n=M&&!v;else{d||M||(b=m);var a=w-(m-b),s=0>=a||a>w;s?(d&&(d=clearTimeout(d)),b=m,h=t.apply(f,g)):d||(d=setTimeout(l,a))}return s&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(c,e)),n&&(s=!0,h=t.apply(f,g)),!s||v||d||(g=f=void 0),h}var g,d,h,m,f,v,y,b=0,w=!1,x=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var M=!0;x=!1}else s(n)&&(M=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),x="trailing"in n?!!n.trailing:x);return u.cancel=a,u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),p=c||function(){return(new Date).getTime()};t.exports=a},function(t,e){function n(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function s(t){return r(t)&&g.call(t)==i}function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return null==t?!1:s(t)?d.test(l.call(t)):n(t)&&c.test(t)}var i="[object Function]",c=/^\[object .+?Constructor\]$/,p=Object.prototype,l=Function.prototype.toString,u=p.hasOwnProperty,g=p.toString,d=RegExp("^"+l.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ +"use strict";!function(e,a){t.exports=a(n(/*! react */1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"])),i=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=i.refs[i.props.id].getDOMNode();t.selectionStart=i.state.selectionStart,t.selectionEnd=i.state.selectionEnd}},1),r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=l},function(e,n,a){e.exports=t},function(t,e,n){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){f&&clearTimeout(f),g&&clearTimeout(g),g=f=v=void 0}function r(){var n=e-(l()-m);if(0>=n||n>e){g&&clearTimeout(g);var a=v;g=f=v=void 0,a&&(y=l(),d=t.apply(h,u),f||g||(u=h=null))}else f=setTimeout(r,n)}function c(){f&&clearTimeout(f),g=f=v=void 0,(w||b!==e)&&(y=l(),d=t.apply(h,u),f||g||(u=h=null))}function p(){if(u=arguments,m=l(),h=this,v=w&&(f||!x),b===!1)var n=x&&!f;else{g||x||(y=m);var a=b-(m-y),s=0>=a||a>b;s?(g&&(g=clearTimeout(g)),y=m,d=t.apply(h,u)):g||(g=setTimeout(c,a))}return s&&f?f=clearTimeout(f):f||e===b||(f=setTimeout(r,e)),n&&(s=!0,d=t.apply(h,u)),!s||f||g||(u=h=null),d}var u,g,d,m,h,f,v,y=0,b=!1,w=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var x=!0;w=!1}else s(n)&&(x=n.leading,b="maxWait"in n&&i(+n.maxWait||0,e),w="trailing"in n?n.trailing:w);return p.cancel=a,p}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=a},function(t,e,n){function a(t){return"string"==typeof t?t:null==t?"":t+""}function s(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:h.call(t)==c?f.test(d.call(t)):s(t)&&u.test(t)}function i(t){return t=a(t),t&&p.test(t)?t.replace(l,"\\$&"):t}var c="[object Function]",l=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(l.source),u=/^\[object .+?Constructor\]$/,g=Object.prototype,d=Function.prototype.toString,m=g.hasOwnProperty,h=g.toString,f=RegExp("^"+i(d.call(m)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ !*** ./demo/src/vendor/github.css ***! \************************************/ -function(t,e){},/*!**************************************!*\ +function(t,e,n){},/*!**************************************!*\ !*** ./demo/src/vendor/skeleton.css ***! \**************************************/ -function(t,e){},/*!************************************!*\ +function(t,e,n){},/*!************************************!*\ !*** ./demo/src/vendor/syntax.css ***! \************************************/ -function(t,e){},/*!***************************************!*\ +function(t,e,n){},/*!***************************************!*\ !*** ./~/normalize.css/normalize.css ***! \***************************************/ -function(t,e){},/*!********************************!*\ +function(t,e,n){},/*!********************************!*\ !*** ./demo/src/css/demo.scss ***! \********************************/ -function(t,e){},/*!*********************************!*\ +function(t,e,n){},/*!*********************************!*\ !*** ./demo/src/css/style.scss ***! \*********************************/ -function(t,e){}]); +function(t,e,n){}]); //# sourceMappingURL=demo.bundle.js.map \ No newline at end of file diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index b11cc02..8d4b6a8 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 7991d8d9377bb389bd1e","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","cb","e","valid","score","console","log","render","createElement","htmlFor","name","placeholder","minScore","minLength","onChange","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbn","zxcvbnSrc","getInitialState","value","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","val","validity","handleToggleMask","handleZxcvbn","handleMinLength","maskPassword","stats","currentScore","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","test","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\t// Demo callback\n\tvar cb = function cb(e, valid, score) {\n\t return console.log('Running callback', e, valid, score);\n\t};\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t onChange: cb\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.8\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 7991d8d9377bb389bd1e\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\n// Demo callback\nconst cb = (e, valid, score) =>\n console.log('Running callback', e, valid, score);\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 768ac6c8316070cc2166","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","trailingCall","delayed","remaining","now","stamp","isCalled","lastCalled","result","apply","thisArg","args","maxDelayed","trailing","maxWait","debounced","leading","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","baseToString","isObjectLike","object","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","escapeRegExp","reHasRegExpChars","reRegExpChars","RegExp","objectProto","Function","toString"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.8\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string },\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: 0.25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2 },\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd });\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar isCalled = trailingCall;\n\t\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (trailing || maxWait !== wait) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\t\t\t\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t\t\t\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\t\t\t\tfunction baseToString(value) {\n\t\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\treturn value == null ? '' : value + '';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (objToString.call(value) == funcTag) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\t\t\t\tfunction escapeRegExp(string) {\n\t\t\t\t\tstring = baseToString(string);\n\t\t\t\t\treturn string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 768ac6c8316070cc2166\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
\n
\n \n \n
\n
\n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: 0.25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2 },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || maxWait !== wait) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t return value == null ? '' : value + '';\n\t}\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (objToString.call(value) == funcTag) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\tfunction escapeRegExp(string) {\n\t string = baseToString(string);\n\t return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/demo/index.html b/demo/index.html index e13a16e..a03fa42 100644 --- a/demo/index.html +++ b/demo/index.html @@ -34,6 +34,8 @@

React UX Password Field

  • Stateful Class - Know the HTML5 validity of your field by class.
  • +

    Inspect element to see all your password info with debug mode on!

    +

    Install

    diff --git a/demo/src/index.js b/demo/src/index.js index ca37105..001b6b5 100644 --- a/demo/src/index.js +++ b/demo/src/index.js @@ -17,10 +17,6 @@ require('./css/demo.scss'); const React = require('react'), InputPassword = require('../../lib/react-ux-password-field.js'); -// Demo callback -const cb = (e, valid, score) => - console.log('Running callback', e, valid, score); - React.render(
    @@ -31,7 +27,7 @@ React.render( placeholder="Try me out! Enter a random password." minScore={1} minLength={5} - onChange={cb} + zxcvbn="debug" />
    diff --git a/demo/style.css b/demo/style.css index 455e6f3..f28f023 100644 --- a/demo/style.css +++ b/demo/style.css @@ -1,2 +1,2 @@ -@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.container{position:relative;max-width:60pc;margin:0 auto;padding:0 20px}.column,.columns,.container{width:100%;box-sizing:border-box}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{font-size:1.5em;line-height:1.6;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h1,h2{letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:550px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#fff;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#fff;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:9pt 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.button,button{margin-bottom:1rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;background:#000;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:1pc;font-weight:500;border:1px solid hsla(0,0%,100%,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.black{background:#000}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted hsla(0,0%,39%,.2)}pre{background:#002b36;word-wrap:break-word;margin:0;padding:10px;color:#839496;font-size:14px;margin-bottom:20px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}header{text-align:center}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h3,h4{font-size:2em}h4{text-align:center}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}form{width:100%;margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:9pt;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:0;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField{width:100%}.passwordField__strength{color:#999} +/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */hr,input[type=search]{box-sizing:content-box}img,legend{border:0}legend,td,th{padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}.column,.columns,.container,.u-full-width{box-sizing:border-box;width:100%}h1,h2,h3{letter-spacing:-.1rem}body,h6{line-height:1.6}fieldset,hr{border-width:0}.container{position:relative;max-width:960px;margin:0 auto;padding:0 20px}ol,p,ul{margin-top:0}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}html{font-size:62.5%}body{font-size:1.5em;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;letter-spacing:0}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#FFF;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#FFF;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}.button,button,li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:12px 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);.ribbon,.ribbon.black{background:#000}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:16px;font-weight:500;border:1px solid rgba(255,255,255,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted rgba(100,100,100,.2)}pre{background:#002b36;word-wrap:break-word;margin:0 0 20px;padding:10px;color:#839496;font-size:14px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}h3,h4{font-size:2em}h4,header{text-align:center}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}.passwordField,form{width:100%}form{margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:12px;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:0;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField__strength{color:#999} /*# sourceMappingURL=style.css.map*/ \ No newline at end of file diff --git a/dev_server/index.html b/dev_server/index.html index d7d0ac4..12ccef2 100644 --- a/dev_server/index.html +++ b/dev_server/index.html @@ -33,6 +33,8 @@

    React UX Password Field

  • Stateful Class - Know the HTML5 validity of your field by class.
  • +

    Inspect element to see all your password info with debug mode on!

    +

    Install

    @@ -83,7 +85,7 @@

    -

    Password Strength

    +

    Password Strength

    zxcvbn (bool|string) default: true

    diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index bb13037..e68dc72 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -88,8 +88,8 @@ return /******/ (function(modules) { // webpackBootstrap toggleMask: RP.bool, unMaskTime: RP.number, minLength: RP.number, - strengthLang: RP.array - }, + strengthLang: RP.array, + id: RP.string }, /*========== DEFAULTS ==========*/ @@ -102,7 +102,8 @@ return /******/ (function(modules) { // webpackBootstrap minScore: 0, toggleMask: true, unMaskTime: config.unMaskTime, - strengthLang: config.strengthLang + strengthLang: config.strengthLang, + id: 'input' }; }, @@ -123,7 +124,7 @@ return /******/ (function(modules) { // webpackBootstrap return { width: this.props.zxcvbn ? width + '%' : '100%', maxWidth: '85%', - opacity: this.props.zxcvbn ? width * .01 + .5 : '1', + opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1', background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor, height: 5, transition: 'all 400ms linear', @@ -147,7 +148,7 @@ return /******/ (function(modules) { // webpackBootstrap iconStyle: { display: 'inline-block', - opacity: .25, + opacity: 0.25, position: 'relative', top: 2, width: '3%' @@ -156,8 +157,7 @@ return /******/ (function(modules) { // webpackBootstrap strengthLangStyle: { fontSize: 12, position: 'relative', - top: 2 - }, + top: 2 }, /*========== METHODS ==========*/ @@ -178,13 +178,15 @@ return /******/ (function(modules) { // webpackBootstrap handleChange: function handleChange(e) { e.preventDefault(); + var native_target = e.nativeEvent.target; var val = e.target.value; var score; this.setState({ value: val, - isValid: e.target.validity.valid - }); + isValid: e.target.validity.valid, + selectionStart: native_target.selectionStart, + selectionEnd: native_target.selectionEnd }); if (this.props.toggleMask) { this.handleToggleMask(); @@ -268,8 +270,8 @@ return /******/ (function(modules) { // webpackBootstrap // snippet to async load zxcvbn if enabled (function () { var a;a = function () { - var a, b;b = document.createElement("script");b.src = zxcvbnSrc;b.type = "text/javascript";b.async = !0;a = document.getElementsByTagName("head")[0];return a.parentNode.insertBefore(b, a); - };null != window.attachEvent ? window.attachEvent("onload", a) : window.addEventListener("load", a, !1); + var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a); + };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1); }).call(this); } @@ -306,6 +308,15 @@ return /******/ (function(modules) { // webpackBootstrap var props = _objectWithoutProperties(_props, ['onChange']); + // overcome problem with firefox resetting the input selection point + var that = this; + setTimeout(function () { + if (!/Firefox/.test(navigator.userAgent)) return; + var elem = that.refs[that.props.id].getDOMNode(); + elem.selectionStart = that.state.selectionStart; + elem.selectionEnd = that.state.selectionEnd; + }, 1); + return React.createElement( 'div', { @@ -332,13 +343,13 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 1 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { 'use strict'; @@ -356,7 +367,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { /** - * lodash 3.1.1 (Custom Build) + * lodash 3.1.0 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 @@ -475,9 +486,9 @@ return /******/ (function(modules) { // webpackBootstrap var leading = true; trailing = false; } else if (isObject(options)) { - leading = !!options.leading; + leading = options.leading; maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); - trailing = 'trailing' in options ? !!options.trailing : trailing; + trailing = 'trailing' in options ? options.trailing : trailing; } function cancel() { @@ -487,35 +498,41 @@ return /******/ (function(modules) { // webpackBootstrap if (maxTimeoutId) { clearTimeout(maxTimeoutId); } - lastCalled = 0; maxTimeoutId = timeoutId = trailingCall = undefined; } - function complete(isCalled, id) { - if (id) { - clearTimeout(id); - } - maxTimeoutId = timeoutId = trailingCall = undefined; - if (isCalled) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = undefined; - } - } - } - function delayed() { var remaining = wait - (now() - stamp); if (remaining <= 0 || remaining > wait) { - complete(trailingCall, maxTimeoutId); + if (maxTimeoutId) { + clearTimeout(maxTimeoutId); + } + var isCalled = trailingCall; + maxTimeoutId = timeoutId = trailingCall = undefined; + if (isCalled) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = null; + } + } } else { timeoutId = setTimeout(delayed, remaining); } } function maxDelayed() { - complete(trailing, timeoutId); + if (timeoutId) { + clearTimeout(timeoutId); + } + maxTimeoutId = timeoutId = trailingCall = undefined; + if (trailing || maxWait !== wait) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = null; + } + } } function debounced() { @@ -553,7 +570,7 @@ return /******/ (function(modules) { // webpackBootstrap result = func.apply(thisArg, args); } if (isCalled && !timeoutId && !maxTimeoutId) { - args = thisArg = undefined; + args = thisArg = null; } return result; } @@ -592,10 +609,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 4 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { /** - * lodash 3.9.1 (Custom Build) + * lodash 3.9.0 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 @@ -608,9 +625,32 @@ return /******/ (function(modules) { // webpackBootstrap var funcTag = '[object Function]'; + /** + * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special). + * In addition to special characters the forward slash is escaped to allow for + * easier `eval` use and `Function` compilation. + */ + var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, + reHasRegExpChars = RegExp(reRegExpChars.source); + /** Used to detect host constructors (Safari > 5). */ var reIsHostCtor = /^\[object .+?Constructor\]$/; + /** + * Converts `value` to a string if it's not one. An empty string is returned + * for `null` or `undefined` values. + * + * @private + * @param {*} value The value to process. + * @returns {string} Returns the string. + */ + function baseToString(value) { + if (typeof value == 'string') { + return value; + } + return value == null ? '' : value + ''; + } + /** * Checks if `value` is object-like. * @@ -632,13 +672,13 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) * of values. */ var objToString = objectProto.toString; /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); + var reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); /** * Gets the native function at `key` of `object`. @@ -653,56 +693,6 @@ return /******/ (function(modules) { // webpackBootstrap return isNative(value) ? value : undefined; } - /** - * Checks if `value` is classified as a `Function` object. - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 equivalents which return 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; - } - - /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. - * @example - * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); - * // => true - * - * _.isObject(1); - * // => false - */ - function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); - } - /** * Checks if `value` is a native function. * @@ -723,17 +713,36 @@ return /******/ (function(modules) { // webpackBootstrap if (value == null) { return false; } - if (isFunction(value)) { + if (objToString.call(value) == funcTag) { return reIsNative.test(fnToString.call(value)); } return isObjectLike(value) && reIsHostCtor.test(value); } + /** + * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", + * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. + * + * @static + * @memberOf _ + * @category String + * @param {string} [string=''] The string to escape. + * @returns {string} Returns the escaped string. + * @example + * + * _.escapeRegExp('[lodash](https://lodash.com/)'); + * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' + */ + function escapeRegExp(string) { + string = baseToString(string); + return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\$&') : string; + } + module.exports = getNative; /***/ }, /* 5 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=" diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index f675884..41ae7ea 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -7,4 +7,4 @@ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"]));return o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e,n){"use strict";function s(t,e,n){function s(){f&&clearTimeout(f),h&&clearTimeout(h),m=0,h=f=b=void 0}function o(e,n){n&&clearTimeout(n),h=f=b=void 0,e&&(m=l(),g=t.apply(y,d),f||h||(d=y=void 0))}function c(){var t=e-(l()-v);0>=t||t>e?o(b,h):f=setTimeout(c,t)}function p(){o(w,f)}function u(){if(d=arguments,v=l(),y=this,b=w&&(f||!A),M===!1)var n=A&&!f;else{h||A||(m=v);var s=M-(v-m),i=0>=s||s>M;i?(h&&(h=clearTimeout(h)),m=v,g=t.apply(y,d)):h||(h=setTimeout(p,s))}return i&&f?f=clearTimeout(f):f||e===M||(f=setTimeout(c,e)),n&&(i=!0,g=t.apply(y,d)),!i||f||h||(d=y=void 0),g}var d,h,g,v,y,f,b,m=0,M=!1,w=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var A=!0;w=!1}else i(n)&&(A=!!n.leading,M="maxWait"in n&&r(+n.maxWait||0,e),w="trailing"in n?!!n.trailing:w);return u.cancel=s,u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(2),a="Expected a function",r=Math.max,c=o(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=s},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}function s(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function i(t){return o(t)&&d.call(t)==r}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function a(t){return null==t?!1:i(t)?h.test(p.call(t)):n(t)&&c.test(t)}var r="[object Function]",c=/^\[object .+?Constructor\]$/,l=Object.prototype,p=Function.prototype.toString,u=l.hasOwnProperty,d=l.toString,h=RegExp("^"+p.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=s},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"])),r=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=r.refs[r.props.id].getDOMNode();t.selectionStart=r.state.selectionStart,t.selectionEnd=r.state.selectionEnd}},1),o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=c},function(t,e,n){"use strict";function s(t,e,n){function s(){y&&clearTimeout(y),d&&clearTimeout(d),d=y=f=void 0}function o(){var n=e-(c()-g);if(0>=n||n>e){d&&clearTimeout(d);var s=f;d=y=f=void 0,s&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}else y=setTimeout(o,n)}function l(){y&&clearTimeout(y),d=y=f=void 0,(M||m!==e)&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}function p(){if(u=arguments,g=c(),v=this,f=M&&(y||!x),m===!1)var n=x&&!y;else{d||x||(b=g);var s=m-(g-b),i=0>=s||s>m;i?(d&&(d=clearTimeout(d)),b=g,h=t.apply(v,u)):d||(d=setTimeout(l,s))}return i&&y?y=clearTimeout(y):y||e===m||(y=setTimeout(o,e)),n&&(i=!0,h=t.apply(v,u)),!i||y||d||(u=v=null),h}var u,d,h,g,v,y,f,b=0,m=!1,M=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var x=!0;M=!1}else i(n)&&(x=n.leading,m="maxWait"in n&&r(+n.maxWait||0,e),M="trailing"in n?n.trailing:M);return p.cancel=s,p}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(2),a="Expected a function",r=Math.max,l=o(Date,"now"),c=l||function(){return(new Date).getTime()};t.exports=s},function(t,e,n){"use strict";function s(t){return"string"==typeof t?t:null==t?"":t+""}function i(t){return!!t&&"object"==typeof t}function o(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function a(t){return null==t?!1:v.call(t)==l?y.test(h.call(t)):i(t)&&u.test(t)}function r(t){return t=s(t),t&&p.test(t)?t.replace(c,"\\$&"):t}var l="[object Function]",c=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(c.source),u=/^\[object .+?Constructor\]$/,d=Object.prototype,h=Function.prototype.toString,g=d.hasOwnProperty,v=d.toString,y=RegExp("^"+r(h.call(g)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=o},function(t,e,n){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n,s){e.exports=t}])}); \ No newline at end of file diff --git a/package.json b/package.json index aab023d..d2bd73b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.8", + "version": "0.9.9", "license": "MIT", "main": "src/index.js", "browser": "./lib/react-ux-password-field.js", diff --git a/src/index.js b/src/index.js index 274b610..9244b38 100644 --- a/src/index.js +++ b/src/index.js @@ -19,7 +19,8 @@ var InputPassword = React.createClass({ toggleMask: RP.bool, unMaskTime: RP.number, minLength: RP.number, - strengthLang:RP.array + strengthLang:RP.array, + id: RP.string, }, @@ -34,7 +35,8 @@ var InputPassword = React.createClass({ minScore: 0, toggleMask: true, unMaskTime: config.unMaskTime, - strengthLang: config.strengthLang + strengthLang: config.strengthLang, + id: 'input' } }, @@ -112,12 +114,15 @@ var InputPassword = React.createClass({ handleChange(e) { e.preventDefault(); + var native_target = e.nativeEvent.target; var val = e.target.value; var score; this.setState({ value: val, - isValid: e.target.validity.valid + isValid: e.target.validity.valid, + selectionStart : native_target.selectionStart, + selectionEnd : native_target.selectionEnd, }); if (this.props.toggleMask) { @@ -230,6 +235,15 @@ var InputPassword = React.createClass({ // allow onChange to be passed from parent and not override default prop var {onChange, ...props} = this.props; + // overcome problem with firefox resetting the input selection point + var that = this; + setTimeout(function() { + if (!/Firefox/.test(navigator.userAgent)) return; + var elem = that.refs[that.props.id].getDOMNode(); + elem.selectionStart = that.state.selectionStart; + elem.selectionEnd = that.state.selectionEnd; + }, 1); + return (

    Date: Wed, 9 Sep 2015 23:29:40 -0700 Subject: [PATCH 15/34] Upgraded to 0.9.9 --- demo/demo.bundle.js | 2 +- demo/demo.bundle.js.map | 2 +- lib/react-ux-password-field.js | 2 +- lib/react-ux-password-field.min.js | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 2b65b3c..09aaa76 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -12,7 +12,7 @@ function(t,e,n){"use strict";window.Rainbow=function(){function t(t){var e,n=t.g \****************************************/ function(t,e,n){/*! * React UX Password Field - * version: 0.9.8 + * version: 0.9.9 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index 8d4b6a8..3b45c83 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 768ac6c8316070cc2166","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","trailingCall","delayed","remaining","now","stamp","isCalled","lastCalled","result","apply","thisArg","args","maxDelayed","trailing","maxWait","debounced","leading","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","baseToString","isObjectLike","object","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","escapeRegExp","reHasRegExpChars","reRegExpChars","RegExp","objectProto","Function","toString"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.8\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string },\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: 0.25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2 },\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd });\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar isCalled = trailingCall;\n\t\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (trailing || maxWait !== wait) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\t\t\t\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t\t\t\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\t\t\t\tfunction baseToString(value) {\n\t\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\treturn value == null ? '' : value + '';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (objToString.call(value) == funcTag) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\t\t\t\tfunction escapeRegExp(string) {\n\t\t\t\t\tstring = baseToString(string);\n\t\t\t\t\treturn string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 768ac6c8316070cc2166\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: 0.25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2 },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || maxWait !== wait) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t return value == null ? '' : value + '';\n\t}\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (objToString.call(value) == funcTag) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\tfunction escapeRegExp(string) {\n\t string = baseToString(string);\n\t return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 9c2ec25293f43e09c659","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","trailingCall","delayed","remaining","now","stamp","isCalled","lastCalled","result","apply","thisArg","args","maxDelayed","trailing","maxWait","debounced","leading","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","baseToString","isObjectLike","object","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","escapeRegExp","reHasRegExpChars","reRegExpChars","RegExp","objectProto","Function","toString"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.9\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string },\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: 0.25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2 },\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd });\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar isCalled = trailingCall;\n\t\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (trailing || maxWait !== wait) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\t\t\t\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t\t\t\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\t\t\t\tfunction baseToString(value) {\n\t\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\treturn value == null ? '' : value + '';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (objToString.call(value) == funcTag) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\t\t\t\tfunction escapeRegExp(string) {\n\t\t\t\t\tstring = baseToString(string);\n\t\t\t\t\treturn string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 9c2ec25293f43e09c659\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: 0.25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2 },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || maxWait !== wait) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t return value == null ? '' : value + '';\n\t}\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (objToString.call(value) == funcTag) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\tfunction escapeRegExp(string) {\n\t string = baseToString(string);\n\t return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index e68dc72..abc1462 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.8 + * version: 0.9.9 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 41ae7ea..9502fd1 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.8 + * version: 0.9.9 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ From 745c5f860b58261fee52c26ed19b141d71ae287e Mon Sep 17 00:00:00 2001 From: Adam L Date: Wed, 9 Sep 2015 23:31:44 -0700 Subject: [PATCH 16/34] Updated changelog --- CHANGELOG.md | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 38477b9..529ae80 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,7 @@ # Change Log -## [Unreleased](https://github.com/seethroughtrees/react-ux-password-field/tree/HEAD) - -[Full Changelog](https://github.com/seethroughtrees/react-ux-password-field/compare/0.9.8...HEAD) +## [0.9.9](https://github.com/seethroughtrees/react-ux-password-field/tree/0.9.9) (2015-09-10) +[Full Changelog](https://github.com/seethroughtrees/react-ux-password-field/compare/0.9.8...0.9.9) **Closed issues:** @@ -11,6 +10,13 @@ - Warning: setState\(...\): Can only update a mounted or mounting component. This usually means you called setState\(\) on an unmounted component. This is a no-op. [\#14](https://github.com/seethroughtrees/react-ux-password-field/issues/14) ## [0.9.8](https://github.com/seethroughtrees/react-ux-password-field/tree/0.9.8) (2015-08-31) +[Full Changelog](https://github.com/seethroughtrees/react-ux-password-field/compare/list...0.9.8) + +**Closed issues:** + +- Why is v0.9.7 on npm when you are still on v0.9.6? [\#23](https://github.com/seethroughtrees/react-ux-password-field/issues/23) + +## [list](https://github.com/seethroughtrees/react-ux-password-field/tree/list) (2015-08-20) **Implemented enhancements:** - Hide meter until user starts typing [\#11](https://github.com/seethroughtrees/react-ux-password-field/issues/11) @@ -21,7 +27,6 @@ **Closed issues:** -- Why is v0.9.7 on npm when you are still on v0.9.6? [\#23](https://github.com/seethroughtrees/react-ux-password-field/issues/23) - Pass on the value in changeCb\(\) too [\#17](https://github.com/seethroughtrees/react-ux-password-field/issues/17) - this.props.onChange\(\) should be called after handleZxcvbn [\#16](https://github.com/seethroughtrees/react-ux-password-field/issues/16) - using it directly on bower [\#10](https://github.com/seethroughtrees/react-ux-password-field/issues/10) From a35edbbf08aa1e3497b11840fcc6d07af8032896 Mon Sep 17 00:00:00 2001 From: Michael Heuberger Date: Mon, 12 Oct 2015 12:07:34 +1300 Subject: [PATCH 17/34] Fixes #25 which will cancel the debouncer when umounted. Also bumps Jest for newer nodejs versions --- package.json | 2 +- src/index.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d2bd73b..e148b0e 100644 --- a/package.json +++ b/package.json @@ -62,7 +62,7 @@ "webpack-dev-server": "^1.10.1" }, "devDependencies": { - "jest-cli": "0.5.0" + "jest-cli": "0.5.10" }, "gh-pages-deploy": { "staticpath": "demo", diff --git a/src/index.js b/src/index.js index 9244b38..a3d3ff0 100644 --- a/src/index.js +++ b/src/index.js @@ -214,6 +214,14 @@ var InputPassword = React.createClass({ } }, + componentWillUnmount() { + // cancel the debouncer when component is not used anymore. This to avoid + // setting the state unnecessarily, see issue #24 + if (this.maskPassword) { + this.maskPassword.cancel() + } + }, + render() { var infoBar; From 2afda5e32f727463f4d32bb6161d41798ea52121 Mon Sep 17 00:00:00 2001 From: Adam L Date: Sun, 18 Oct 2015 21:41:14 -0700 Subject: [PATCH 18/34] Updated deps --- package.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index e148b0e..22f9d09 100644 --- a/package.json +++ b/package.json @@ -38,12 +38,12 @@ "nodejs": ">=0.11.x" }, "dependencies": { - "autoprefixer-core": "^5.2.1", + "autoprefixer-core": "^6.0.1", "babel": "^5.8.23", - "babel-core": "^5.8.23", + "babel-core": "^5.8.25", "babel-jest": "^5.3.0", "babel-loader": "^5.3.2", - "css-loader": "^0.16.0", + "css-loader": "^0.20.1", "csswring": "^4.0.0", "extract-text-webpack-plugin": "^0.8.2", "file-loader": "^0.8.4", @@ -54,12 +54,12 @@ "postcss-loader": "^0.6.0", "react": ">=0.13.0", "root-require": "^0.3.1", - "sass-loader": "^2.0.1", + "sass-loader": "^3.0.0", "script-loader": "^0.6.1", - "style-loader": "^0.12.3", + "style-loader": "^0.12.4", "url-loader": "^0.5.6", - "webpack": "^1.12.0", - "webpack-dev-server": "^1.10.1" + "webpack": "^1.12.2", + "webpack-dev-server": "^1.12.1" }, "devDependencies": { "jest-cli": "0.5.10" From 9b741863ceaa91e92d06b804288613b995a057da Mon Sep 17 00:00:00 2001 From: Adam L Date: Sun, 18 Oct 2015 21:51:56 -0700 Subject: [PATCH 19/34] Updated deps --- demo/demo.bundle.js | 18 +-- demo/demo.bundle.js.map | 2 +- demo/style.css | 2 +- lib/react-ux-password-field.js | 181 ++++++++++++++++------------- lib/react-ux-password-field.min.js | 2 +- 5 files changed, 109 insertions(+), 96 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 09aaa76..8952a54 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -4,10 +4,10 @@ function(t,e,n){"use strict";n(/*! normalize.css/normalize.css */7),n(/*! ./vendor/skeleton.css */5),n(/*! ./vendor/github.css */4),n(/*! ./vendor/syntax.css */6),n(/*! ./vendor/rainbow-custom.min.js */2),n(/*! ./css/style.scss */9),n(/*! ./css/demo.scss */8);var a=n(/*! react */1),s=n(/*! ../../lib/react-ux-password-field.js */3);a.render(a.createElement("form",null,a.createElement("fieldset",null,a.createElement("label",{htmlFor:"password1"},"Password"),a.createElement(s,{id:"password1",name:"password1",placeholder:"Try me out! Enter a random password.",minScore:1,minLength:5,zxcvbn:"debug"}))),document.getElementById("content"))},/*!************************!*\ !*** external "React" ***! \************************/ -function(t,e,n){t.exports=React},/*!***********************************************!*\ +function(t,e){t.exports=React},/*!***********************************************!*\ !*** ./demo/src/vendor/rainbow-custom.min.js ***! \***********************************************/ -function(t,e,n){"use strict";window.Rainbow=function(){function t(t){var e,n=t.getAttribute&&t.getAttribute("data-language")||0;if(!n)for(t=t.attributes,e=0;e=t&&e>=m[v][n])&&(delete m[v][n],delete d[v][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,l){if("undefined"==typeof t||null===t)l();else{var p=t.exec(i);if(p){++b,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=p[0],g=p.index,h=p[0].length+g,f=function(){function n(){s(t,e,i,l)}b%100>0?n():setTimeout(n,0)};if(n(g,h))f();else{var y=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=p[n[t]];if(r){var i=e.matches[n[t]],l=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[v]);n(t,a,0,e)}function c(t,e,n){var a=h[e]||[],s=h[y]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function l(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(p=u=void 0,s=!1,o=t&&e>=m[v][n])&&(delete m[v][n],delete d[v][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,p){if("undefined"==typeof t||null===t)p();else{var l=t.exec(i);if(l){++b,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=l[0],g=l.index,h=l[0].length+g,f=function(){function n(){s(t,e,i,p)}b%100>0?n():setTimeout(n,0)};if(n(g,h))f();else{var y=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=l[n[t]];if(r){var i=e.matches[n[t]],p=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[v]);n(t,a,0,e)}function c(t,e,n){var a=h[e]||[],s=h[y]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function p(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(l=u=void 0,s=!1,o=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"])),i=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=i.refs[i.props.id].getDOMNode();t.selectionStart=i.state.selectionStart,t.selectionEnd=i.state.selectionEnd}},1),r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=l},function(e,n,a){e.exports=t},function(t,e,n){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){f&&clearTimeout(f),g&&clearTimeout(g),g=f=v=void 0}function r(){var n=e-(l()-m);if(0>=n||n>e){g&&clearTimeout(g);var a=v;g=f=v=void 0,a&&(y=l(),d=t.apply(h,u),f||g||(u=h=null))}else f=setTimeout(r,n)}function c(){f&&clearTimeout(f),g=f=v=void 0,(w||b!==e)&&(y=l(),d=t.apply(h,u),f||g||(u=h=null))}function p(){if(u=arguments,m=l(),h=this,v=w&&(f||!x),b===!1)var n=x&&!f;else{g||x||(y=m);var a=b-(m-y),s=0>=a||a>b;s?(g&&(g=clearTimeout(g)),y=m,d=t.apply(h,u)):g||(g=setTimeout(c,a))}return s&&f?f=clearTimeout(f):f||e===b||(f=setTimeout(r,e)),n&&(s=!0,d=t.apply(h,u)),!s||f||g||(u=h=null),d}var u,g,d,m,h,f,v,y=0,b=!1,w=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var x=!0;w=!1}else s(n)&&(x=n.leading,b="maxWait"in n&&i(+n.maxWait||0,e),w="trailing"in n?n.trailing:w);return p.cancel=a,p}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=a},function(t,e,n){function a(t){return"string"==typeof t?t:null==t?"":t+""}function s(t){return!!t&&"object"==typeof t}function r(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function o(t){return null==t?!1:h.call(t)==c?f.test(d.call(t)):s(t)&&u.test(t)}function i(t){return t=a(t),t&&p.test(t)?t.replace(l,"\\$&"):t}var c="[object Function]",l=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(l.source),u=/^\[object .+?Constructor\]$/,g=Object.prototype,d=Function.prototype.toString,m=g.hasOwnProperty,h=g.toString,f=RegExp("^"+i(d.call(m)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=r},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ +"use strict";!function(e,a){t.exports=a(n(/*! react */1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"])),i=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=i.refs[i.props.id].getDOMNode();t.selectionStart=i.state.selectionStart,t.selectionEnd=i.state.selectionEnd}},1),r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){v&&clearTimeout(v),d&&clearTimeout(d),b=0,d=v=y=void 0}function r(e,n){n&&clearTimeout(n),d=v=y=void 0,e&&(b=p(),m=t.apply(f,g),v||d||(g=f=void 0))}function c(){var t=e-(p()-h);0>=t||t>e?r(y,d):v=setTimeout(c,t)}function l(){r(x,v)}function u(){if(g=arguments,h=p(),f=this,y=x&&(v||!M),w===!1)var n=M&&!v;else{d||M||(b=h);var a=w-(h-b),s=0>=a||a>w;s?(d&&(d=clearTimeout(d)),b=h,m=t.apply(f,g)):d||(d=setTimeout(l,a))}return s&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(c,e)),n&&(s=!0,m=t.apply(f,g)),!s||v||d||(g=f=void 0),m}var g,d,m,h,f,v,y,b=0,w=!1,x=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var M=!0;x=!1}else s(n)&&(M=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),x="trailing"in n?!!n.trailing:x);return u.cancel=a,u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),p=c||function(){return(new Date).getTime()};t.exports=a},function(t,e){function n(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function s(t){return r(t)&&g.call(t)==i}function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return null==t?!1:s(t)?d.test(l.call(t)):n(t)&&c.test(t)}var i="[object Function]",c=/^\[object .+?Constructor\]$/,p=Object.prototype,l=Function.prototype.toString,u=p.hasOwnProperty,g=p.toString,d=RegExp("^"+l.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ !*** ./demo/src/vendor/github.css ***! \************************************/ -function(t,e,n){},/*!**************************************!*\ +function(t,e){},/*!**************************************!*\ !*** ./demo/src/vendor/skeleton.css ***! \**************************************/ -function(t,e,n){},/*!************************************!*\ +function(t,e){},/*!************************************!*\ !*** ./demo/src/vendor/syntax.css ***! \************************************/ -function(t,e,n){},/*!***************************************!*\ +function(t,e){},/*!***************************************!*\ !*** ./~/normalize.css/normalize.css ***! \***************************************/ -function(t,e,n){},/*!********************************!*\ +function(t,e){},/*!********************************!*\ !*** ./demo/src/css/demo.scss ***! \********************************/ -function(t,e,n){},/*!*********************************!*\ +function(t,e){},/*!*********************************!*\ !*** ./demo/src/css/style.scss ***! \*********************************/ -function(t,e,n){}]); +function(t,e){}]); //# sourceMappingURL=demo.bundle.js.map \ No newline at end of file diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index 3b45c83..e283fa1 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 9c2ec25293f43e09c659","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","trailingCall","delayed","remaining","now","stamp","isCalled","lastCalled","result","apply","thisArg","args","maxDelayed","trailing","maxWait","debounced","leading","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","baseToString","isObjectLike","object","isNative","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","escapeRegExp","reHasRegExpChars","reRegExpChars","RegExp","objectProto","Function","toString"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return \"\" + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.9\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define(['react'], factory);else if (typeof exports === 'object') exports['react-ux-password-field'] = factory(require('react'));else root['react-ux-password-field'] = factory(root['React']);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn ( /******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = '';\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})([\n\t\t\t/* 0 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string },\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: 0.25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2 },\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd });\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar isCalled = trailingCall;\n\t\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (trailing || maxWait !== wait) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\t\t\t\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t\t\t\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\t\t\t\tfunction baseToString(value) {\n\t\t\t\t\tif (typeof value == 'string') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\treturn value == null ? '' : value + '';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (objToString.call(value) == funcTag) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\t\t\t\tfunction escapeRegExp(string) {\n\t\t\t\t\tstring = baseToString(string);\n\t\t\t\t\treturn string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\t/***/function (module, exports, __webpack_require__) {\n\t\n\t\t\t\tmodule.exports = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII='\n\t\n\t\t\t\t/***/;\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t\n\t/************************************************************************/\n\t/******/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 9c2ec25293f43e09c659\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: 0.25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2 },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t var isCalled = trailingCall;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (trailing || maxWait !== wait) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t }\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = null;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.9.0 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/**\n\t * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n\t * In addition to special characters the forward slash is escaped to allow for\n\t * easier `eval` use and `Function` compilation.\n\t */\n\tvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n\t reHasRegExpChars = RegExp(reRegExpChars.source);\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Converts `value` to a string if it's not one. An empty string is returned\n\t * for `null` or `undefined` values.\n\t *\n\t * @private\n\t * @param {*} value The value to process.\n\t * @returns {string} Returns the string.\n\t */\n\tfunction baseToString(value) {\n\t if (typeof value == 'string') {\n\t return value;\n\t }\n\t return value == null ? '' : value + '';\n\t}\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (objToString.call(value) == funcTag) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\t/**\n\t * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n\t * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category String\n\t * @param {string} [string=''] The string to escape.\n\t * @returns {string} Returns the escaped string.\n\t * @example\n\t *\n\t * _.escapeRegExp('[lodash](https://lodash.com/)');\n\t * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n\t */\n\tfunction escapeRegExp(string) {\n\t string = baseToString(string);\n\t return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\\\$&') : string;\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 68838914d39eb91a18cf","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.9\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 68838914d39eb91a18cf\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/demo/style.css b/demo/style.css index f28f023..455e6f3 100644 --- a/demo/style.css +++ b/demo/style.css @@ -1,2 +1,2 @@ -/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */hr,input[type=search]{box-sizing:content-box}img,legend{border:0}legend,td,th{padding:0}html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0}pre,textarea{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}table{border-collapse:collapse;border-spacing:0}.column,.columns,.container,.u-full-width{box-sizing:border-box;width:100%}h1,h2,h3{letter-spacing:-.1rem}body,h6{line-height:1.6}fieldset,hr{border-width:0}.container{position:relative;max-width:960px;margin:0 auto;padding:0 20px}ol,p,ul{margin-top:0}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}html{font-size:62.5%}body{font-size:1.5em;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;letter-spacing:0}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#FFF;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#FFF;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}.button,button,li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:12px 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);.ribbon,.ribbon.black{background:#000}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:16px;font-weight:500;border:1px solid rgba(255,255,255,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted rgba(100,100,100,.2)}pre{background:#002b36;word-wrap:break-word;margin:0 0 20px;padding:10px;color:#839496;font-size:14px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}h3,h4{font-size:2em}h4,header{text-align:center}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}.passwordField,form{width:100%}form{margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:12px;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:0;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField__strength{color:#999} +@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.container{position:relative;max-width:60pc;margin:0 auto;padding:0 20px}.column,.columns,.container{width:100%;box-sizing:border-box}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{font-size:1.5em;line-height:1.6;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h1,h2{letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:550px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#fff;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#fff;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:9pt 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.button,button{margin-bottom:1rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;background:#000;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:1pc;font-weight:500;border:1px solid hsla(0,0%,100%,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.black{background:#000}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted hsla(0,0%,39%,.2)}pre{background:#002b36;word-wrap:break-word;margin:0;padding:10px;color:#839496;font-size:14px;margin-bottom:20px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}header{text-align:center}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h3,h4{font-size:2em}h4{text-align:center}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}form{width:100%;margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:9pt;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:0;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField{width:100%}.passwordField__strength{color:#999} /*# sourceMappingURL=style.css.map*/ \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index abc1462..462b735 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -89,7 +89,8 @@ return /******/ (function(modules) { // webpackBootstrap unMaskTime: RP.number, minLength: RP.number, strengthLang: RP.array, - id: RP.string }, + id: RP.string + }, /*========== DEFAULTS ==========*/ @@ -124,7 +125,7 @@ return /******/ (function(modules) { // webpackBootstrap return { width: this.props.zxcvbn ? width + '%' : '100%', maxWidth: '85%', - opacity: this.props.zxcvbn ? width * 0.01 + 0.5 : '1', + opacity: this.props.zxcvbn ? width * .01 + .5 : '1', background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor, height: 5, transition: 'all 400ms linear', @@ -148,7 +149,7 @@ return /******/ (function(modules) { // webpackBootstrap iconStyle: { display: 'inline-block', - opacity: 0.25, + opacity: .25, position: 'relative', top: 2, width: '3%' @@ -157,7 +158,8 @@ return /******/ (function(modules) { // webpackBootstrap strengthLangStyle: { fontSize: 12, position: 'relative', - top: 2 }, + top: 2 + }, /*========== METHODS ==========*/ @@ -186,7 +188,8 @@ return /******/ (function(modules) { // webpackBootstrap value: val, isValid: e.target.validity.valid, selectionStart: native_target.selectionStart, - selectionEnd: native_target.selectionEnd }); + selectionEnd: native_target.selectionEnd + }); if (this.props.toggleMask) { this.handleToggleMask(); @@ -270,8 +273,8 @@ return /******/ (function(modules) { // webpackBootstrap // snippet to async load zxcvbn if enabled (function () { var a;a = function () { - var a, b;b = document.createElement('script');b.src = zxcvbnSrc;b.type = 'text/javascript';b.async = !0;a = document.getElementsByTagName('head')[0];return a.parentNode.insertBefore(b, a); - };null != window.attachEvent ? window.attachEvent('onload', a) : window.addEventListener('load', a, !1); + var a, b;b = document.createElement("script");b.src = zxcvbnSrc;b.type = "text/javascript";b.async = !0;a = document.getElementsByTagName("head")[0];return a.parentNode.insertBefore(b, a); + };null != window.attachEvent ? window.attachEvent("onload", a) : window.addEventListener("load", a, !1); }).call(this); } @@ -281,6 +284,14 @@ return /******/ (function(modules) { // webpackBootstrap } }, + componentWillUnmount: function componentWillUnmount() { + // cancel the debouncer when component is not used anymore. This to avoid + // setting the state unnecessarily, see issue #24 + if (this.maskPassword) { + this.maskPassword.cancel(); + } + }, + render: function render() { var infoBar; @@ -343,13 +354,13 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 1 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { module.exports = __WEBPACK_EXTERNAL_MODULE_1__; /***/ }, /* 2 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { 'use strict'; @@ -367,7 +378,7 @@ return /******/ (function(modules) { // webpackBootstrap /***/ function(module, exports, __webpack_require__) { /** - * lodash 3.1.0 (Custom Build) + * lodash 3.1.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 @@ -486,9 +497,9 @@ return /******/ (function(modules) { // webpackBootstrap var leading = true; trailing = false; } else if (isObject(options)) { - leading = options.leading; + leading = !!options.leading; maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); - trailing = 'trailing' in options ? options.trailing : trailing; + trailing = 'trailing' in options ? !!options.trailing : trailing; } function cancel() { @@ -498,41 +509,35 @@ return /******/ (function(modules) { // webpackBootstrap if (maxTimeoutId) { clearTimeout(maxTimeoutId); } + lastCalled = 0; + maxTimeoutId = timeoutId = trailingCall = undefined; + } + + function complete(isCalled, id) { + if (id) { + clearTimeout(id); + } maxTimeoutId = timeoutId = trailingCall = undefined; + if (isCalled) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = undefined; + } + } } function delayed() { var remaining = wait - (now() - stamp); if (remaining <= 0 || remaining > wait) { - if (maxTimeoutId) { - clearTimeout(maxTimeoutId); - } - var isCalled = trailingCall; - maxTimeoutId = timeoutId = trailingCall = undefined; - if (isCalled) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } + complete(trailingCall, maxTimeoutId); } else { timeoutId = setTimeout(delayed, remaining); } } function maxDelayed() { - if (timeoutId) { - clearTimeout(timeoutId); - } - maxTimeoutId = timeoutId = trailingCall = undefined; - if (trailing || maxWait !== wait) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = null; - } - } + complete(trailing, timeoutId); } function debounced() { @@ -570,7 +575,7 @@ return /******/ (function(modules) { // webpackBootstrap result = func.apply(thisArg, args); } if (isCalled && !timeoutId && !maxTimeoutId) { - args = thisArg = null; + args = thisArg = undefined; } return result; } @@ -609,10 +614,10 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 4 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { /** - * lodash 3.9.0 (Custom Build) + * lodash 3.9.1 (Custom Build) * Build: `lodash modern modularize exports="npm" -o ./` * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 @@ -625,32 +630,9 @@ return /******/ (function(modules) { // webpackBootstrap var funcTag = '[object Function]'; - /** - * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special). - * In addition to special characters the forward slash is escaped to allow for - * easier `eval` use and `Function` compilation. - */ - var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g, - reHasRegExpChars = RegExp(reRegExpChars.source); - /** Used to detect host constructors (Safari > 5). */ var reIsHostCtor = /^\[object .+?Constructor\]$/; - /** - * Converts `value` to a string if it's not one. An empty string is returned - * for `null` or `undefined` values. - * - * @private - * @param {*} value The value to process. - * @returns {string} Returns the string. - */ - function baseToString(value) { - if (typeof value == 'string') { - return value; - } - return value == null ? '' : value + ''; - } - /** * Checks if `value` is object-like. * @@ -672,13 +654,13 @@ return /******/ (function(modules) { // webpackBootstrap var hasOwnProperty = objectProto.hasOwnProperty; /** - * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring) + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) * of values. */ var objToString = objectProto.toString; /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + escapeRegExp(fnToString.call(hasOwnProperty)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); + var reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); /** * Gets the native function at `key` of `object`. @@ -693,6 +675,56 @@ return /******/ (function(modules) { // webpackBootstrap return isNative(value) ? value : undefined; } + /** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; + } + + /** + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); + * // => false + */ + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); + } + /** * Checks if `value` is a native function. * @@ -713,36 +745,17 @@ return /******/ (function(modules) { // webpackBootstrap if (value == null) { return false; } - if (objToString.call(value) == funcTag) { + if (isFunction(value)) { return reIsNative.test(fnToString.call(value)); } return isObjectLike(value) && reIsHostCtor.test(value); } - /** - * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?", - * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`. - * - * @static - * @memberOf _ - * @category String - * @param {string} [string=''] The string to escape. - * @returns {string} Returns the escaped string. - * @example - * - * _.escapeRegExp('[lodash](https://lodash.com/)'); - * // => '\[lodash\]\(https:\/\/lodash\.com\/\)' - */ - function escapeRegExp(string) { - string = baseToString(string); - return string && reHasRegExpChars.test(string) ? string.replace(reRegExpChars, '\\$&') : string; - } - module.exports = getNative; /***/ }, /* 5 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=" diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 9502fd1..51c2e54 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -7,4 +7,4 @@ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"])),r=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=r.refs[r.props.id].getDOMNode();t.selectionStart=r.state.selectionStart,t.selectionEnd=r.state.selectionEnd}},1),o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=c},function(t,e,n){"use strict";function s(t,e,n){function s(){y&&clearTimeout(y),d&&clearTimeout(d),d=y=f=void 0}function o(){var n=e-(c()-g);if(0>=n||n>e){d&&clearTimeout(d);var s=f;d=y=f=void 0,s&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}else y=setTimeout(o,n)}function l(){y&&clearTimeout(y),d=y=f=void 0,(M||m!==e)&&(b=c(),h=t.apply(v,u),y||d||(u=v=null))}function p(){if(u=arguments,g=c(),v=this,f=M&&(y||!x),m===!1)var n=x&&!y;else{d||x||(b=g);var s=m-(g-b),i=0>=s||s>m;i?(d&&(d=clearTimeout(d)),b=g,h=t.apply(v,u)):d||(d=setTimeout(l,s))}return i&&y?y=clearTimeout(y):y||e===m||(y=setTimeout(o,e)),n&&(i=!0,h=t.apply(v,u)),!i||y||d||(u=v=null),h}var u,d,h,g,v,y,f,b=0,m=!1,M=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var x=!0;M=!1}else i(n)&&(x=n.leading,m="maxWait"in n&&r(+n.maxWait||0,e),M="trailing"in n?n.trailing:M);return p.cancel=s,p}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(2),a="Expected a function",r=Math.max,l=o(Date,"now"),c=l||function(){return(new Date).getTime()};t.exports=s},function(t,e,n){"use strict";function s(t){return"string"==typeof t?t:null==t?"":t+""}function i(t){return!!t&&"object"==typeof t}function o(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function a(t){return null==t?!1:v.call(t)==l?y.test(h.call(t)):i(t)&&u.test(t)}function r(t){return t=s(t),t&&p.test(t)?t.replace(c,"\\$&"):t}var l="[object Function]",c=/[.*+?^${}()|[\]\/\\]/g,p=RegExp(c.source),u=/^\[object .+?Constructor\]$/,d=Object.prototype,h=Function.prototype.toString,g=d.hasOwnProperty,v=d.toString,y=RegExp("^"+r(h.call(g)).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=o},function(t,e,n){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n,s){e.exports=t}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"])),r=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=r.refs[r.props.id].getDOMNode();t.selectionStart=r.state.selectionStart,t.selectionEnd=r.state.selectionEnd}},1),o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}function s(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function i(t){return o(t)&&d.call(t)==r}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function a(t){return null==t?!1:i(t)?h.test(p.call(t)):n(t)&&c.test(t)}var r="[object Function]",c=/^\[object .+?Constructor\]$/,l=Object.prototype,p=Function.prototype.toString,u=l.hasOwnProperty,d=l.toString,h=RegExp("^"+p.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=s},function(t,e,n){"use strict";function s(t,e,n){function s(){f&&clearTimeout(f),h&&clearTimeout(h),b=0,h=f=m=void 0}function o(e,n){n&&clearTimeout(n),h=f=m=void 0,e&&(b=l(),g=t.apply(y,d),f||h||(d=y=void 0))}function c(){var t=e-(l()-v);0>=t||t>e?o(m,h):f=setTimeout(c,t)}function p(){o(w,f)}function u(){if(d=arguments,v=l(),y=this,m=w&&(f||!A),M===!1)var n=A&&!f;else{h||A||(b=v);var s=M-(v-b),i=0>=s||s>M;i?(h&&(h=clearTimeout(h)),b=v,g=t.apply(y,d)):h||(h=setTimeout(p,s))}return i&&f?f=clearTimeout(f):f||e===M||(f=setTimeout(c,e)),n&&(i=!0,g=t.apply(y,d)),!i||f||h||(d=y=void 0),g}var d,h,g,v,y,f,m,b=0,M=!1,w=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var A=!0;w=!1}else i(n)&&(A=!!n.leading,M="maxWait"in n&&r(+n.maxWait||0,e),w="trailing"in n?!!n.trailing:w);return u.cancel=s,u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(1),a="Expected a function",r=Math.max,c=o(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=s},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file From f3bfef23a32a18b3ce00c08d2b3e5913383b8496 Mon Sep 17 00:00:00 2001 From: Adam L Date: Sun, 18 Oct 2015 21:55:03 -0700 Subject: [PATCH 20/34] Updated version --- demo/demo.bundle.js | 2 +- demo/demo.bundle.js.map | 2 +- lib/react-ux-password-field.js | 2 +- lib/react-ux-password-field.min.js | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 8952a54..3d1e566 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -12,7 +12,7 @@ function(t,e){"use strict";window.Rainbow=function(){function t(t){var e,n=t.get \****************************************/ function(t,e,n){/*! * React UX Password Field - * version: 0.9.9 + * version: 0.9.10 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index e283fa1..dfaedf8 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 68838914d39eb91a18cf","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.9\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 68838914d39eb91a18cf\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 25d821ec2675cacf8c3e","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.10\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 25d821ec2675cacf8c3e\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index 462b735..f348f00 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.9 + * version: 0.9.10 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 51c2e54..29a0605 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.9 + * version: 0.9.10 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/package.json b/package.json index 22f9d09..876b086 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.9", + "version": "0.9.10", "license": "MIT", "main": "src/index.js", "browser": "./lib/react-ux-password-field.js", From bf293371359fbd38d8d6ea0747be2d42cfb69e39 Mon Sep 17 00:00:00 2001 From: Malcolm Ahoy Date: Wed, 24 Feb 2016 12:28:46 -0800 Subject: [PATCH 21/34] Move build-time npm packages to devDependencies The only run-time packages that the src/index.js file uses is 'react' and 'lodash.debounce'. Everything else can be installed as a devDependency. This helps reduce the cruft for users that want to `npm shrinkwrap`. --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 876b086..c6398bd 100644 --- a/package.json +++ b/package.json @@ -38,6 +38,10 @@ "nodejs": ">=0.11.x" }, "dependencies": { + "lodash.debounce": "^3.1.1", + "react": ">=0.13.0" + }, + "devDependencies": { "autoprefixer-core": "^6.0.1", "babel": "^5.8.23", "babel-core": "^5.8.25", @@ -49,10 +53,9 @@ "file-loader": "^0.8.4", "gh-pages-deploy": "^0.3.0", "jsx-loader": "^0.13.2", - "lodash.debounce": "^3.1.1", + "jest-cli": "0.5.10", "normalize.css": "^3.0.3", "postcss-loader": "^0.6.0", - "react": ">=0.13.0", "root-require": "^0.3.1", "sass-loader": "^3.0.0", "script-loader": "^0.6.1", @@ -61,9 +64,6 @@ "webpack": "^1.12.2", "webpack-dev-server": "^1.12.1" }, - "devDependencies": { - "jest-cli": "0.5.10" - }, "gh-pages-deploy": { "staticpath": "demo", "prep": [ From 5950111f59efb57dd2059b800ba89d805f26b2c4 Mon Sep 17 00:00:00 2001 From: Adam Taylor Date: Tue, 26 Apr 2016 18:40:55 -0700 Subject: [PATCH 22/34] adds check for existence of global navigator variable Signed-off-by: Adam Taylor --- src/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index a3d3ff0..f932e5f 100644 --- a/src/index.js +++ b/src/index.js @@ -246,7 +246,7 @@ var InputPassword = React.createClass({ // overcome problem with firefox resetting the input selection point var that = this; setTimeout(function() { - if (!/Firefox/.test(navigator.userAgent)) return; + if (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return; var elem = that.refs[that.props.id].getDOMNode(); elem.selectionStart = that.state.selectionStart; elem.selectionEnd = that.state.selectionEnd; From ec4fe72e46cc3f6d70199c29a8b1dff5c91dc0cd Mon Sep 17 00:00:00 2001 From: Adam L Date: Tue, 26 Apr 2016 22:50:40 -0700 Subject: [PATCH 23/34] Updated package --- demo/demo.bundle.js | 6 +- demo/demo.bundle.js.map | 2 +- demo/style.css | 2 +- lib/react-ux-password-field.js | 485 +++++++++++++++-------------- lib/react-ux-password-field.min.js | 2 +- package.json | 33 +- 6 files changed, 273 insertions(+), 257 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 3d1e566..0a53a46 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -1,13 +1,13 @@ !function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([/*!***************************!*\ !*** ./demo/src/index.js ***! \***************************/ -function(t,e,n){"use strict";n(/*! normalize.css/normalize.css */7),n(/*! ./vendor/skeleton.css */5),n(/*! ./vendor/github.css */4),n(/*! ./vendor/syntax.css */6),n(/*! ./vendor/rainbow-custom.min.js */2),n(/*! ./css/style.scss */9),n(/*! ./css/demo.scss */8);var a=n(/*! react */1),s=n(/*! ../../lib/react-ux-password-field.js */3);a.render(a.createElement("form",null,a.createElement("fieldset",null,a.createElement("label",{htmlFor:"password1"},"Password"),a.createElement(s,{id:"password1",name:"password1",placeholder:"Try me out! Enter a random password.",minScore:1,minLength:5,zxcvbn:"debug"}))),document.getElementById("content"))},/*!************************!*\ +function(t,e,n){"use strict";n(7),n(5),n(4),n(6),n(2),n(9),n(8);var a=n(1),s=n(3);a.render(a.createElement("form",null,a.createElement("fieldset",null,a.createElement("label",{htmlFor:"password1"},"Password"),a.createElement(s,{id:"password1",name:"password1",placeholder:"Try me out! Enter a random password.",minScore:1,minLength:5,zxcvbn:"debug"}))),document.getElementById("content"))},/*!************************!*\ !*** external "React" ***! \************************/ function(t,e){t.exports=React},/*!***********************************************!*\ !*** ./demo/src/vendor/rainbow-custom.min.js ***! \***********************************************/ -function(t,e){"use strict";window.Rainbow=function(){function t(t){var e,n=t.getAttribute&&t.getAttribute("data-language")||0;if(!n)for(t=t.attributes,e=0;e=t&&e>=m[v][n])&&(delete m[v][n],delete d[v][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,p){if("undefined"==typeof t||null===t)p();else{var l=t.exec(i);if(l){++b,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=l[0],g=l.index,h=l[0].length+g,f=function(){function n(){s(t,e,i,p)}b%100>0?n():setTimeout(n,0)};if(n(g,h))f();else{var y=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=l[n[t]];if(r){var i=e.matches[n[t]],p=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[v]);n(t,a,0,e)}function c(t,e,n){var a=h[e]||[],s=h[y]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function p(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(l=u=void 0,s=!1,o=t&&e>=h[v][n])&&(delete h[v][n],delete d[v][n]),t>=n&&tn&&e'+e+""}function s(t,e,i,p){if("undefined"==typeof t||null===t)p();else{var l=t.exec(i);if(l){++y,!e.name&&"string"==typeof e.matches[0]&&(e.name=e.matches[0],delete e.matches[0]);var u=l[0],g=l.index,m=l[0].length+g,f=function(){function n(){s(t,e,i,p)}y%100>0?n():setTimeout(n,0)};if(n(g,m))f();else{var b=r(e.matches),w=function x(t,n,s){if(t>=n.length)s(u);else{var r=l[n[t]];if(r){var i=e.matches[n[t]],p=i.language,g=i.name&&i.matches?i.matches:i,d=function(e,r,o){var i;i=0;var c;for(c=1;c0?r():setTimeout(r,0)}else s(t)}var a=r(d[v]);n(t,a,0,e)}function c(t,e,n){var a=m[e]||[],s=m[b]||[],e=f[e]?a:a.concat(s);o(t.replace(//g,">").replace(/&(?![\w\#]+;)/g,"&"),e,n)}function p(t,n,a){var s=!0;t:for(;s;){var r=t,o=n,i=a;if(s=!1,o=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"])),i=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=i.refs[i.props.id].getDOMNode();t.selectionStart=i.state.selectionStart,t.selectionEnd=i.state.selectionEnd}},1),r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e,n){function a(t,e,n){function a(){v&&clearTimeout(v),d&&clearTimeout(d),b=0,d=v=y=void 0}function r(e,n){n&&clearTimeout(n),d=v=y=void 0,e&&(b=p(),m=t.apply(f,g),v||d||(g=f=void 0))}function c(){var t=e-(p()-h);0>=t||t>e?r(y,d):v=setTimeout(c,t)}function l(){r(x,v)}function u(){if(g=arguments,h=p(),f=this,y=x&&(v||!M),w===!1)var n=M&&!v;else{d||M||(b=h);var a=w-(h-b),s=0>=a||a>w;s?(d&&(d=clearTimeout(d)),b=h,m=t.apply(f,g)):d||(d=setTimeout(l,a))}return s&&v?v=clearTimeout(v):v||e===w||(v=setTimeout(c,e)),n&&(s=!0,m=t.apply(f,g)),!s||v||d||(g=f=void 0),m}var g,d,m,h,f,v,y,b=0,w=!1,x=!0;if("function"!=typeof t)throw new TypeError(o);if(e=0>e?0:+e||0,n===!0){var M=!0;x=!1}else s(n)&&(M=!!n.leading,w="maxWait"in n&&i(+n.maxWait||0,e),x="trailing"in n?!!n.trailing:x);return u.cancel=a,u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var r=n(4),o="Expected a function",i=Math.max,c=r(Date,"now"),p=c||function(){return(new Date).getTime()};t.exports=a},function(t,e){function n(t){return!!t&&"object"==typeof t}function a(t,e){var n=null==t?void 0:t[e];return o(n)?n:void 0}function s(t){return r(t)&&g.call(t)==i}function r(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return null==t?!1:s(t)?d.test(l.call(t)):n(t)&&c.test(t)}var i="[object Function]",c=/^\[object .+?Constructor\]$/,p=Object.prototype,l=Function.prototype.toString,u=p.hasOwnProperty,g=p.toString,d=RegExp("^"+l.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=a},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ +"use strict";!function(e,a){t.exports=a(n(1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"])),i=this;return setTimeout(function(){if("undefined"==typeof navigator||/Firefox/.test(navigator.userAgent)){var t=i.refs[i.props.id].getDOMNode();t.selectionStart=i.state.selectionStart,t.selectionEnd=i.state.selectionEnd}},1),r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){function n(t,e,n){function a(e){var n=m,a=f;return m=f=void 0,S=e,b=t.apply(a,n)}function r(t){return S=t,y=setTimeout(l,e),A?a(t):b}function o(t){var n=t-k,a=t-S,s=e-n;return E?x(s,v-a):s}function p(t){var n=t-k,a=t-S;return!k||n>=e||0>n||E&&a>=v}function l(){var t=M();return p(t)?u(t):void(y=setTimeout(l,o(t)))}function u(t){return clearTimeout(y),y=void 0,N&&m?a(t):(m=f=void 0,b)}function g(){void 0!==y&&clearTimeout(y),k=S=0,m=f=y=void 0}function d(){return void 0===y?b:u(M())}function h(){var t=M(),n=p(t);if(m=arguments,f=this,k=t,n){if(void 0===y)return r(k);if(E)return clearTimeout(y),y=setTimeout(l,e),a(k)}return void 0===y&&(y=setTimeout(l,e)),b}var m,f,v,b,y,k=0,S=0,A=!1,E=!1,N=!0;if("function"!=typeof t)throw new TypeError(c);return e=i(e)||0,s(n)&&(A=!!n.leading,E="maxWait"in n,v=E?w(i(n.maxWait)||0,e):v,N="trailing"in n?!!n.trailing:N),h.cancel=g,h.flush=d,h}function a(t){var e=s(t)?y.call(t):"";return e==l||e==u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function r(t){return!!t&&"object"==typeof t}function o(t){return"symbol"==typeof t||r(t)&&y.call(t)==g}function i(t){if("number"==typeof t)return t;if(o(t))return p;if(s(t)){var e=a(t.valueOf)?t.valueOf():t;t=s(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(d,"");var n=m.test(t);return n||f.test(t)?v(t.slice(2),n?2:8):h.test(t)?p:+t}var c="Expected a function",p=NaN,l="[object Function]",u="[object GeneratorFunction]",g="[object Symbol]",d=/^\s+|\s+$/g,h=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,f=/^0o[0-7]+$/i,v=parseInt,b=Object.prototype,y=b.toString,w=Math.max,x=Math.min,M=Date.now;t.exports=n},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ !*** ./demo/src/vendor/github.css ***! \************************************/ function(t,e){},/*!**************************************!*\ diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index dfaedf8..e7c278c 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 25d821ec2675cacf8c3e","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","undefined","indexOf","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass",1,2,3,4,5,"root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","test","navigator","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","complete","isCalled","now","result","apply","thisArg","args","delayed","remaining","stamp","maxDelayed","trailing","debounced","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","getNative","Math","max","nativeNow","Date","getTime","isObjectLike","object","isNative","isFunction","objToString","funcTag","reIsNative","fnToString","reIsHostCtor","objectProto","Function","toString","RegExp"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t d = e = undefined;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return (e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t }));\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.10\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar getNative = __webpack_require__(4);\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/* Native method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeNow = getNative(Date, 'now');\n\t\n\t\t\t\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\t\t\t\tvar now = nativeNow || function () {\n\t\t\t\t\treturn new Date().getTime();\n\t\t\t\t};\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar args,\n\t\t\t\t\t maxTimeoutId,\n\t\t\t\t\t result,\n\t\t\t\t\t stamp,\n\t\t\t\t\t thisArg,\n\t\t\t\t\t timeoutId,\n\t\t\t\t\t trailingCall,\n\t\t\t\t\t lastCalled = 0,\n\t\t\t\t\t maxWait = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = wait < 0 ? 0 : +wait || 0;\n\t\t\t\t\tif (options === true) {\n\t\t\t\t\t\tvar leading = true;\n\t\t\t\t\t\ttrailing = false;\n\t\t\t\t\t} else if (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timeoutId) {\n\t\t\t\t\t\t\tclearTimeout(timeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\tclearTimeout(maxTimeoutId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCalled = 0;\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction complete(isCalled, id) {\n\t\t\t\t\t\tif (id) {\n\t\t\t\t\t\t\tclearTimeout(id);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmaxTimeoutId = timeoutId = trailingCall = undefined;\n\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\tlastCalled = now();\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\tif (!timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction delayed() {\n\t\t\t\t\t\tvar remaining = wait - (now() - stamp);\n\t\t\t\t\t\tif (remaining <= 0 || remaining > wait) {\n\t\t\t\t\t\t\tcomplete(trailingCall, maxTimeoutId);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, remaining);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction maxDelayed() {\n\t\t\t\t\t\tcomplete(trailing, timeoutId);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\targs = arguments;\n\t\t\t\t\t\tstamp = now();\n\t\t\t\t\t\tthisArg = this;\n\t\t\t\t\t\ttrailingCall = trailing && (timeoutId || !leading);\n\t\n\t\t\t\t\t\tif (maxWait === false) {\n\t\t\t\t\t\t\tvar leadingCall = leading && !timeoutId;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (!maxTimeoutId && !leading) {\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvar remaining = maxWait - (stamp - lastCalled),\n\t\t\t\t\t\t\t isCalled = remaining <= 0 || remaining > maxWait;\n\t\n\t\t\t\t\t\t\tif (isCalled) {\n\t\t\t\t\t\t\t\tif (maxTimeoutId) {\n\t\t\t\t\t\t\t\t\tmaxTimeoutId = clearTimeout(maxTimeoutId);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tlastCalled = stamp;\n\t\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t\t} else if (!maxTimeoutId) {\n\t\t\t\t\t\t\t\tmaxTimeoutId = setTimeout(maxDelayed, remaining);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && timeoutId) {\n\t\t\t\t\t\t\ttimeoutId = clearTimeout(timeoutId);\n\t\t\t\t\t\t} else if (!timeoutId && wait !== maxWait) {\n\t\t\t\t\t\t\ttimeoutId = setTimeout(delayed, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (leadingCall) {\n\t\t\t\t\t\t\tisCalled = true;\n\t\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (isCalled && !timeoutId && !maxTimeoutId) {\n\t\t\t\t\t\t\targs = thisArg = undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar funcTag = '[object Function]';\n\t\n\t\t\t\t/** Used to detect host constructors (Safari > 5). */\n\t\t\t\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/** Used for native method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/** Used to resolve the decompiled source of functions. */\n\t\t\t\tvar fnToString = Function.prototype.toString;\n\t\n\t\t\t\t/** Used to check objects for own properties. */\n\t\t\t\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\t\n\t\t\t\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objToString = objectProto.toString;\n\t\n\t\t\t\t/** Used to detect if a method is native. */\n\t\t\t\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\t\n\t\t\t\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\t\t\t\tfunction getNative(object, key) {\n\t\t\t\t\tvar value = object == null ? undefined : object[key];\n\t\t\t\t\treturn isNative(value) ? value : undefined;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in older versions of Chrome and Safari which return 'function' for regexes\n\t\t\t\t\t// and Safari 8 equivalents which return 'object' for typed array constructors.\n\t\t\t\t\treturn isObject(value) && objToString.call(value) == funcTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\t// Avoid a V8 JIT bug in Chrome 19-20.\n\t\t\t\t\t// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\t\t\t\tfunction isNative(value) {\n\t\t\t\t\tif (value == null) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tif (isFunction(value)) {\n\t\t\t\t\t\treturn reIsNative.test(fnToString.call(value));\n\t\t\t\t\t}\n\t\t\t\t\treturn isObjectLike(value) && reIsHostCtor.test(value);\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = getNative;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 5 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 25d821ec2675cacf8c3e\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/**\n\t * lodash 3.1.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\t'use strict';\n\n\tvar getNative = __webpack_require__(4);\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/* Native method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeNow = getNative(Date, 'now');\n\n\t/**\n\t * Gets the number of milliseconds that have elapsed since the Unix epoch\n\t * (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Date\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => logs the number of milliseconds it took for the deferred function to be invoked\n\t */\n\tvar now = nativeNow || function () {\n\t return new Date().getTime();\n\t};\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed invocations. Provide an options object to indicate that `func`\n\t * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n\t * Subsequent calls to the debounced function return the result of the last\n\t * `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options] The options object.\n\t * @param {boolean} [options.leading=false] Specify invoking on the leading\n\t * edge of the timeout.\n\t * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n\t * delayed before it is invoked.\n\t * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n\t * edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // avoid costly calculations while the window size is in flux\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n\t * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // ensure `batchLog` is invoked once after 1 second of debounced calls\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', _.debounce(batchLog, 250, {\n\t * 'maxWait': 1000\n\t * }));\n\t *\n\t * // cancel a debounced call\n\t * var todoChanges = _.debounce(batchLog, 1000);\n\t * Object.observe(models.todo, todoChanges);\n\t *\n\t * Object.observe(models, function(changes) {\n\t * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n\t * todoChanges.cancel();\n\t * }\n\t * }, ['delete']);\n\t *\n\t * // ...at some point `models.todo` is changed\n\t * models.todo.completed = true;\n\t *\n\t * // ...before 1 second has passed `models.todo` is deleted\n\t * // which cancels the debounced `todoChanges` call\n\t * delete models.todo;\n\t */\n\tfunction debounce(func, wait, options) {\n\t var args,\n\t maxTimeoutId,\n\t result,\n\t stamp,\n\t thisArg,\n\t timeoutId,\n\t trailingCall,\n\t lastCalled = 0,\n\t maxWait = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = wait < 0 ? 0 : +wait || 0;\n\t if (options === true) {\n\t var leading = true;\n\t trailing = false;\n\t } else if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function cancel() {\n\t if (timeoutId) {\n\t clearTimeout(timeoutId);\n\t }\n\t if (maxTimeoutId) {\n\t clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = 0;\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t }\n\n\t function complete(isCalled, id) {\n\t if (id) {\n\t clearTimeout(id);\n\t }\n\t maxTimeoutId = timeoutId = trailingCall = undefined;\n\t if (isCalled) {\n\t lastCalled = now();\n\t result = func.apply(thisArg, args);\n\t if (!timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t }\n\t }\n\n\t function delayed() {\n\t var remaining = wait - (now() - stamp);\n\t if (remaining <= 0 || remaining > wait) {\n\t complete(trailingCall, maxTimeoutId);\n\t } else {\n\t timeoutId = setTimeout(delayed, remaining);\n\t }\n\t }\n\n\t function maxDelayed() {\n\t complete(trailing, timeoutId);\n\t }\n\n\t function debounced() {\n\t args = arguments;\n\t stamp = now();\n\t thisArg = this;\n\t trailingCall = trailing && (timeoutId || !leading);\n\n\t if (maxWait === false) {\n\t var leadingCall = leading && !timeoutId;\n\t } else {\n\t if (!maxTimeoutId && !leading) {\n\t lastCalled = stamp;\n\t }\n\t var remaining = maxWait - (stamp - lastCalled),\n\t isCalled = remaining <= 0 || remaining > maxWait;\n\n\t if (isCalled) {\n\t if (maxTimeoutId) {\n\t maxTimeoutId = clearTimeout(maxTimeoutId);\n\t }\n\t lastCalled = stamp;\n\t result = func.apply(thisArg, args);\n\t } else if (!maxTimeoutId) {\n\t maxTimeoutId = setTimeout(maxDelayed, remaining);\n\t }\n\t }\n\t if (isCalled && timeoutId) {\n\t timeoutId = clearTimeout(timeoutId);\n\t } else if (!timeoutId && wait !== maxWait) {\n\t timeoutId = setTimeout(delayed, wait);\n\t }\n\t if (leadingCall) {\n\t isCalled = true;\n\t result = func.apply(thisArg, args);\n\t }\n\t if (isCalled && !timeoutId && !maxTimeoutId) {\n\t args = thisArg = undefined;\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 3.9.1 (Custom Build) \n\t * Build: `lodash modern modularize exports=\"npm\" -o ./`\n\t * Copyright 2012-2015 The Dojo Foundation \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t * Available under MIT license \n\t */\n\n\t/** `Object#toString` result references. */\n\t'use strict';\n\n\tvar funcTag = '[object Function]';\n\n\t/** Used to detect host constructors (Safari > 5). */\n\tvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n\t/**\n\t * Checks if `value` is object-like.\n\t *\n\t * @private\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/** Used for native method references. */\n\tvar objectProto = Object.prototype;\n\n\t/** Used to resolve the decompiled source of functions. */\n\tvar fnToString = Function.prototype.toString;\n\n\t/** Used to check objects for own properties. */\n\tvar hasOwnProperty = objectProto.hasOwnProperty;\n\n\t/**\n\t * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objToString = objectProto.toString;\n\n\t/** Used to detect if a method is native. */\n\tvar reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&').replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$');\n\n\t/**\n\t * Gets the native function at `key` of `object`.\n\t *\n\t * @private\n\t * @param {Object} object The object to query.\n\t * @param {string} key The key of the method to get.\n\t * @returns {*} Returns the function if it's native, else `undefined`.\n\t */\n\tfunction getNative(object, key) {\n\t var value = object == null ? undefined : object[key];\n\t return isNative(value) ? value : undefined;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in older versions of Chrome and Safari which return 'function' for regexes\n\t // and Safari 8 equivalents which return 'object' for typed array constructors.\n\t return isObject(value) && objToString.call(value) == funcTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n\t * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(1);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t // Avoid a V8 JIT bug in Chrome 19-20.\n\t // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is a native function.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n\t * @example\n\t *\n\t * _.isNative(Array.prototype.push);\n\t * // => true\n\t *\n\t * _.isNative(_);\n\t * // => false\n\t */\n\tfunction isNative(value) {\n\t if (value == null) {\n\t return false;\n\t }\n\t if (isFunction(value)) {\n\t return reIsNative.test(fnToString.call(value));\n\t }\n\t return isObjectLike(value) && reIsHostCtor.test(value);\n\t}\n\n\tmodule.exports = getNative;\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 561e70245c61b9445b60","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","indexOf","undefined","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass","1","2","3","4","5","root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","navigator","test","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","invokeFunc","time","args","lastArgs","thisArg","lastThis","lastInvokeTime","result","apply","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","clearTimeout","trailing","flush","debounced","isInvoking","TypeError","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","isFunction","tag","objectToString","funcTag","genTag","isObjectLike","isSymbol","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","slice","reIsBadHex","objectProto","toString","Math","max","min","Date"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t });\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t d = e = undefined;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.10\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/** Used as references for various `Number` constants. */\n\t\t\t\tvar NAN = 0 / 0;\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\tvar funcTag = '[object Function]',\n\t\t\t\t genTag = '[object GeneratorFunction]',\n\t\t\t\t symbolTag = '[object Symbol]';\n\t\n\t\t\t\t/** Used to match leading and trailing whitespace. */\n\t\t\t\tvar reTrim = /^\\s+|\\s+$/g;\n\t\n\t\t\t\t/** Used to detect bad signed hexadecimal string values. */\n\t\t\t\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\t\n\t\t\t\t/** Used to detect binary string values. */\n\t\t\t\tvar reIsBinary = /^0b[01]+$/i;\n\t\n\t\t\t\t/** Used to detect octal string values. */\n\t\t\t\tvar reIsOctal = /^0o[0-7]+$/i;\n\t\n\t\t\t\t/** Built-in method references without a dependency on `root`. */\n\t\t\t\tvar freeParseInt = parseInt;\n\t\n\t\t\t\t/** Used for built-in method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objectToString = objectProto.toString;\n\t\n\t\t\t\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeMin = Math.min;\n\t\n\t\t\t\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\t\t\t\tvar now = Date.now;\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar lastArgs,\n\t\t\t\t\t lastThis,\n\t\t\t\t\t maxWait,\n\t\t\t\t\t result,\n\t\t\t\t\t timerId,\n\t\t\t\t\t lastCallTime = 0,\n\t\t\t\t\t lastInvokeTime = 0,\n\t\t\t\t\t leading = false,\n\t\t\t\t\t maxing = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = toNumber(wait) || 0;\n\t\t\t\t\tif (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxing = 'maxWait' in options;\n\t\t\t\t\t\tmaxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction invokeFunc(time) {\n\t\t\t\t\t\tvar args = lastArgs,\n\t\t\t\t\t\t thisArg = lastThis;\n\t\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction leadingEdge(time) {\n\t\t\t\t\t\t// Reset any `maxWait` timer.\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\t// Start the timer for the trailing edge.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t// Invoke the leading edge.\n\t\t\t\t\t\treturn leading ? invokeFunc(time) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction remainingWait(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime,\n\t\t\t\t\t\t result = wait - timeSinceLastCall;\n\t\n\t\t\t\t\t\treturn maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction shouldInvoke(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime;\n\t\n\t\t\t\t\t\t// Either this is the first call, activity has stopped and we're at the\n\t\t\t\t\t\t// trailing edge, the system time has gone backwards and we're treating\n\t\t\t\t\t\t// it as the trailing edge, or we've hit the `maxWait` limit.\n\t\t\t\t\t\treturn !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction timerExpired() {\n\t\t\t\t\t\tvar time = now();\n\t\t\t\t\t\tif (shouldInvoke(time)) {\n\t\t\t\t\t\t\treturn trailingEdge(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Restart the timer.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, remainingWait(time));\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction trailingEdge(time) {\n\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\ttimerId = undefined;\n\t\n\t\t\t\t\t\t// Only invoke if we have `lastArgs` which means `func` has been\n\t\t\t\t\t\t// debounced at least once.\n\t\t\t\t\t\tif (trailing && lastArgs) {\n\t\t\t\t\t\t\treturn invokeFunc(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timerId !== undefined) {\n\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCallTime = lastInvokeTime = 0;\n\t\t\t\t\t\tlastArgs = lastThis = timerId = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction flush() {\n\t\t\t\t\t\treturn timerId === undefined ? result : trailingEdge(now());\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\tvar time = now(),\n\t\t\t\t\t\t isInvoking = shouldInvoke(time);\n\t\n\t\t\t\t\t\tlastArgs = arguments;\n\t\t\t\t\t\tlastThis = this;\n\t\t\t\t\t\tlastCallTime = time;\n\t\n\t\t\t\t\t\tif (isInvoking) {\n\t\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\t\treturn leadingEdge(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (maxing) {\n\t\t\t\t\t\t\t\t// Handle invocations in a tight loop.\n\t\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t\t\treturn invokeFunc(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\tdebounced.flush = flush;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t\t\t\t\t// and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t\t\t\t\tvar tag = isObject(value) ? objectToString.call(value) : '';\n\t\t\t\t\treturn tag == funcTag || tag == genTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\t\t\t\tfunction isSymbol(value) {\n\t\t\t\t\treturn typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\t\t\t\tfunction toNumber(value) {\n\t\t\t\t\tif (typeof value == 'number') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\tif (isSymbol(value)) {\n\t\t\t\t\t\treturn NAN;\n\t\t\t\t\t}\n\t\t\t\t\tif (isObject(value)) {\n\t\t\t\t\t\tvar other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t\t\t\t\t\tvalue = isObject(other) ? other + '' : other;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value != 'string') {\n\t\t\t\t\t\treturn value === 0 ? value : +value;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = value.replace(reTrim, '');\n\t\t\t\t\tvar isBinary = reIsBinary.test(value);\n\t\t\t\t\treturn isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 561e70245c61b9445b60\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t'use strict';\n\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/** Used as references for various `Number` constants. */\n\tvar NAN = 0 / 0;\n\n\t/** `Object#toString` result references. */\n\tvar funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t symbolTag = '[object Symbol]';\n\n\t/** Used to match leading and trailing whitespace. */\n\tvar reTrim = /^\\s+|\\s+$/g;\n\n\t/** Used to detect bad signed hexadecimal string values. */\n\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n\t/** Used to detect binary string values. */\n\tvar reIsBinary = /^0b[01]+$/i;\n\n\t/** Used to detect octal string values. */\n\tvar reIsOctal = /^0o[0-7]+$/i;\n\n\t/** Built-in method references without a dependency on `root`. */\n\tvar freeParseInt = parseInt;\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeMin = Math.min;\n\n\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\tvar now = Date.now;\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\tfunction debounce(func, wait, options) {\n\t var lastArgs,\n\t lastThis,\n\t maxWait,\n\t result,\n\t timerId,\n\t lastCallTime = 0,\n\t lastInvokeTime = 0,\n\t leading = false,\n\t maxing = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = toNumber(wait) || 0;\n\t if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxing = 'maxWait' in options;\n\t maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function invokeFunc(time) {\n\t var args = lastArgs,\n\t thisArg = lastThis;\n\n\t lastArgs = lastThis = undefined;\n\t lastInvokeTime = time;\n\t result = func.apply(thisArg, args);\n\t return result;\n\t }\n\n\t function leadingEdge(time) {\n\t // Reset any `maxWait` timer.\n\t lastInvokeTime = time;\n\t // Start the timer for the trailing edge.\n\t timerId = setTimeout(timerExpired, wait);\n\t // Invoke the leading edge.\n\t return leading ? invokeFunc(time) : result;\n\t }\n\n\t function remainingWait(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime,\n\t result = wait - timeSinceLastCall;\n\n\t return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t }\n\n\t function shouldInvoke(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime;\n\n\t // Either this is the first call, activity has stopped and we're at the\n\t // trailing edge, the system time has gone backwards and we're treating\n\t // it as the trailing edge, or we've hit the `maxWait` limit.\n\t return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t }\n\n\t function timerExpired() {\n\t var time = now();\n\t if (shouldInvoke(time)) {\n\t return trailingEdge(time);\n\t }\n\t // Restart the timer.\n\t timerId = setTimeout(timerExpired, remainingWait(time));\n\t }\n\n\t function trailingEdge(time) {\n\t clearTimeout(timerId);\n\t timerId = undefined;\n\n\t // Only invoke if we have `lastArgs` which means `func` has been\n\t // debounced at least once.\n\t if (trailing && lastArgs) {\n\t return invokeFunc(time);\n\t }\n\t lastArgs = lastThis = undefined;\n\t return result;\n\t }\n\n\t function cancel() {\n\t if (timerId !== undefined) {\n\t clearTimeout(timerId);\n\t }\n\t lastCallTime = lastInvokeTime = 0;\n\t lastArgs = lastThis = timerId = undefined;\n\t }\n\n\t function flush() {\n\t return timerId === undefined ? result : trailingEdge(now());\n\t }\n\n\t function debounced() {\n\t var time = now(),\n\t isInvoking = shouldInvoke(time);\n\n\t lastArgs = arguments;\n\t lastThis = this;\n\t lastCallTime = time;\n\n\t if (isInvoking) {\n\t if (timerId === undefined) {\n\t return leadingEdge(lastCallTime);\n\t }\n\t if (maxing) {\n\t // Handle invocations in a tight loop.\n\t clearTimeout(timerId);\n\t timerId = setTimeout(timerExpired, wait);\n\t return invokeFunc(lastCallTime);\n\t }\n\t }\n\t if (timerId === undefined) {\n\t timerId = setTimeout(timerExpired, wait);\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t debounced.flush = flush;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t}\n\n\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\tfunction toNumber(value) {\n\t if (typeof value == 'number') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return NAN;\n\t }\n\t if (isObject(value)) {\n\t var other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t value = isObject(other) ? other + '' : other;\n\t }\n\t if (typeof value != 'string') {\n\t return value === 0 ? value : +value;\n\t }\n\t value = value.replace(reTrim, '');\n\t var isBinary = reIsBinary.test(value);\n\t return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/demo/style.css b/demo/style.css index 455e6f3..26edcd6 100644 --- a/demo/style.css +++ b/demo/style.css @@ -1,2 +1,2 @@ -@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-appearance:textfield;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}.container{position:relative;max-width:60pc;margin:0 auto;padding:0 20px}.column,.columns,.container{width:100%;box-sizing:border-box}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{font-size:1.5em;line-height:1.6;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h1,h2{letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:550px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#fff;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#fff;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:9pt 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.button,button{margin-bottom:1rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;background:#000;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);-ms-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:1pc;font-weight:500;border:1px solid hsla(0,0%,100%,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.black{background:#000}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted hsla(0,0%,39%,.2)}pre{background:#002b36;word-wrap:break-word;margin:0;padding:10px;color:#839496;font-size:14px;margin-bottom:20px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}header{text-align:center}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h3,h4{font-size:2em}h4{text-align:center}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}form{width:100%;margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:9pt;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:0;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField{width:100%}.passwordField__strength{color:#999} +@import url(http://fonts.googleapis.com/css?family=Cabin+Condensed:500&text=Fork%20me%20on%20GitHub);/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block}audio:not([controls]){display:none;height:0}progress{vertical-align:baseline}[hidden],template{display:none}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:inherit;font-weight:bolder}dfn{font-style:italic}h1{font-size:2em;margin:.67em 0}mark{background-color:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-family:monospace;font-size:1em}figure{margin:1em 40px}hr{box-sizing:content-box;height:0;overflow:visible}button,input,select,textarea{font:inherit;margin:0}optgroup{font-weight:700}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-input-placeholder{color:inherit;opacity:.54}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.container{position:relative;max-width:960px;margin:0 auto;padding:0 20px}.column,.columns,.container{width:100%;box-sizing:border-box}.column,.columns{float:left}@media(min-width:400px){.container{width:85%;padding:0}}@media(min-width:550px){.container{width:80%}.column,.columns{margin-left:4%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{font-size:1.5em;line-height:1.6;font-weight:400;font-family:Raleway,HelveticaNeue,Helvetica Neue,Helvetica,Arial,sans-serif;color:#222}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:2rem;font-weight:300}h1{font-size:4rem;line-height:1.2}h1,h2{letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:550px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2.4rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}.button,button,input[type=button],input[type=reset],input[type=submit]{display:inline-block;height:38px;padding:0 30px;color:#555;text-align:center;font-size:11px;font-weight:600;line-height:38px;letter-spacing:.1rem;text-transform:uppercase;text-decoration:none;white-space:nowrap;background-color:transparent;border-radius:4px;border:1px solid #bbb;cursor:pointer;box-sizing:border-box}.button:focus,.button:hover,button:focus,button:hover,input[type=button]:focus,input[type=button]:hover,input[type=reset]:focus,input[type=reset]:hover,input[type=submit]:focus,input[type=submit]:hover{color:#333;border-color:#888;outline:0}.button.button-primary,button.button-primary,input[type=button].button-primary,input[type=reset].button-primary,input[type=submit].button-primary{color:#fff;background-color:#33c3f0;border-color:#33c3f0}.button.button-primary:focus,.button.button-primary:hover,button.button-primary:focus,button.button-primary:hover,input[type=button].button-primary:focus,input[type=button].button-primary:hover,input[type=reset].button-primary:focus,input[type=reset].button-primary:hover,input[type=submit].button-primary:focus,input[type=submit].button-primary:hover{color:#fff;background-color:#1eaedb;border-color:#1eaedb}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{height:38px;padding:6px 10px;background-color:#fff;border:1px solid #d1d1d1;border-radius:4px;box-shadow:none;box-sizing:border-box}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none}textarea{min-height:65px;padding-top:6px;padding-bottom:6px}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #33c3f0;outline:0}label,legend{display:block;margin-bottom:.5rem;font-weight:600}fieldset{padding:0;border-width:0}input[type=checkbox],input[type=radio]{display:inline}label>.label-body{display:inline-block;margin-left:.5rem;font-weight:400}ul{list-style:circle inside}ol{list-style:decimal inside}ol,ul{padding-left:0;margin-top:0}ol ol,ol ul,ul ol,ul ul{margin:1.5rem 0 1.5rem 3rem;font-size:90%}li{margin-bottom:1rem}code{padding:.2rem .5rem;margin:0 .2rem;font-size:90%;white-space:nowrap;border-radius:4px}pre>code{display:block;padding:1rem 1.5rem;white-space:pre}td,th{padding:12px 15px;text-align:left;border-bottom:1px solid #e1e1e1}td:first-child,th:first-child{padding-left:0}td:last-child,th:last-child{padding-right:0}.button,button{margin-bottom:1rem}fieldset,input,select,textarea{margin-bottom:1.5rem}blockquote,dl,figure,form,ol,p,pre,table,ul{margin-bottom:2.5rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}hr{margin-top:3rem;margin-bottom:3.5rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}body{overflow-x:hidden}.ribbon{position:absolute;top:42px;width:200px;padding:1px 0;background:#000;color:#eee;box-shadow:0 0 10px rgba(0,0,0,.5)}.ribbon.left{left:-42px;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.ribbon.right{right:-42px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ribbon a,.ribbon a:active,.ribbon a:hover,.ribbon a:visited{display:block;padding:1px 0;height:24px;line-height:24px;color:inherit;text-align:center;text-decoration:none;font-family:Cabin Condensed,sans-serif;font-size:16px;font-weight:500;border:1px solid hsla(0,0%,100%,.3);-moz-text-shadow:0 0 10px rgba(0,0,0,.31);-webkit-text-shadow:0 0 10px rgba(0,0,0,.31);text-shadow:0 0 10px rgba(0,0,0,.31)}.ribbon.black{background:#000}.ribbon.red{background:#c00}.ribbon.blue{background:#09e}.ribbon.green{background:#0a0}.ribbon.orange{background:#d80}.ribbon.purple{background:#c0c}.ribbon.grey{background:#888}.ribbon.white{background:#eee;color:#000}.ribbon.white a{border:2px dotted hsla(0,0%,39%,.2)}pre{background:#002b36;word-wrap:break-word;margin:0;padding:10px;color:#839496;font-size:14px;margin-bottom:20px}code,pre{font-family:Monaco,courier,monospace}pre .comment{color:#586e75}pre .constant{color:#839496}pre .constant.language{color:#268bd2}pre .constant.regexp{color:#2aa198}pre .storage{color:#268bd2}pre .comment.docstring,pre .string,pre .string.regexp,pre .string.regexp.close,pre .string.regexp.open,pre .support.tag.script,pre .support.tag.style{color:#2aa198}pre .keyword,pre .selector{color:#859900}pre .inherited-class{font-style:italic}pre .entity{color:#b58900}[data-language=c] .function.call,pre .support{color:#859900}pre .support.method,pre .support.property,pre .variable.class,pre .variable.global,pre .variable.instance{color:#839496}*{box-sizing:border-box;-webkit-transition:all 2ms linear;transition:all 2ms linear}body,html{background:#fefefe;font-family:Roboto Slab,serif;font-weight:400;font-weight:300;color:#555;min-height:100%}.container{max-width:680px;padding:3em 1em}header{text-align:center}hr{border-color:#e7e7e7}a{color:#41bfcf;text-decoration:none}a:hover{color:#16daf4;text-decoration:underline}h3,h4{font-size:2em}h4{text-align:center}h5{font-size:1.4em}h5 span{font-size:.75em}h5 span.default{font-style:italic;color:#777}form{width:100%;margin:40px auto;background:#f1f1f1;border-radius:5px;padding:3em 2em;color:#555}fieldset{border:0;max-width:580px;margin:0 auto}label{font-size:12px;text-transform:uppercase;display:block;padding-top:0;margin-top:0}input[type=email],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=url],select,textarea{line-height:2.5;height:auto;border-radius:0;font-size:1.25em;padding:8px 20px;outline:none;width:100%}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=url]:focus,select:focus,textarea:focus{border:1px solid #c3c3c3}.passwordField{width:100%}.passwordField__strength{color:#999} /*# sourceMappingURL=style.css.map*/ \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index f348f00..d98dde9 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -302,7 +302,7 @@ return /******/ (function(modules) { // webpackBootstrap React.createElement( 'span', { style: this.iconStyle, className: 'passwordField__icon' }, - React.createElement('img', { src: __webpack_require__(5), height: '10', width: '10' }) + React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' }) ), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement( @@ -322,7 +322,7 @@ return /******/ (function(modules) { // webpackBootstrap // overcome problem with firefox resetting the input selection point var that = this; setTimeout(function () { - if (!/Firefox/.test(navigator.userAgent)) return; + if (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return; var elem = that.refs[that.props.id].getDOMNode(); elem.selectionStart = that.state.selectionStart; elem.selectionEnd = that.state.selectionEnd; @@ -375,220 +375,285 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 3 */ -/***/ function(module, exports, __webpack_require__) { +/***/ function(module, exports) { /** - * lodash 3.1.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation + * lodash 4.0.6 (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright jQuery Foundation and other contributors + * Released under MIT license * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ - 'use strict'; - - var getNative = __webpack_require__(4); /** Used as the `TypeError` message for "Functions" methods. */ + 'use strict'; + var FUNC_ERROR_TEXT = 'Expected a function'; - /* Native method references for those with the same name as other `lodash` methods. */ + /** Used as references for various `Number` constants. */ + var NAN = 0 / 0; + + /** `Object#toString` result references. */ + var funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + symbolTag = '[object Symbol]'; + + /** Used to match leading and trailing whitespace. */ + var reTrim = /^\s+|\s+$/g; + + /** Used to detect bad signed hexadecimal string values. */ + var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; + + /** Used to detect binary string values. */ + var reIsBinary = /^0b[01]+$/i; + + /** Used to detect octal string values. */ + var reIsOctal = /^0o[0-7]+$/i; + + /** Built-in method references without a dependency on `root`. */ + var freeParseInt = parseInt; + + /** Used for built-in method references. */ + var objectProto = Object.prototype; + + /** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objectToString = objectProto.toString; + + /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, - nativeNow = getNative(Date, 'now'); + nativeMin = Math.min; /** - * Gets the number of milliseconds that have elapsed since the Unix epoch - * (1 January 1970 00:00:00 UTC). + * Gets the timestamp of the number of milliseconds that have elapsed since + * the Unix epoch (1 January 1970 00:00:00 UTC). * * @static * @memberOf _ + * @since 2.4.0 + * @type {Function} * @category Date + * @returns {number} Returns the timestamp. * @example * * _.defer(function(stamp) { * console.log(_.now() - stamp); * }, _.now()); - * // => logs the number of milliseconds it took for the deferred function to be invoked + * // => Logs the number of milliseconds it took for the deferred function to be invoked. */ - var now = nativeNow || function () { - return new Date().getTime(); - }; + var now = Date.now; /** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel - * delayed invocations. Provide an options object to indicate that `func` - * should be invoked on the leading and/or trailing edge of the `wait` timeout. - * Subsequent calls to the debounced function return the result of the last - * `func` invocation. + * delayed `func` invocations and a `flush` method to immediately invoke them. + * Provide an options object to indicate whether `func` should be invoked on + * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked + * with the last arguments provided to the debounced function. Subsequent calls + * to the debounced function return the result of the last `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked - * on the trailing edge of the timeout only if the the debounced function is + * on the trailing edge of the timeout only if the debounced function is * invoked more than once during the `wait` timeout. * - * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) + * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ + * @since 0.1.0 * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options] The options object. - * @param {boolean} [options.leading=false] Specify invoking on the leading - * edge of the timeout. - * @param {number} [options.maxWait] The maximum time `func` is allowed to be - * delayed before it is invoked. - * @param {boolean} [options.trailing=true] Specify invoking on the trailing - * edge of the timeout. + * @param {Object} [options={}] The options object. + * @param {boolean} [options.leading=false] + * Specify invoking on the leading edge of the timeout. + * @param {number} [options.maxWait] + * The maximum time `func` is allowed to be delayed before it's invoked. + * @param {boolean} [options.trailing=true] + * Specify invoking on the trailing edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * - * // avoid costly calculations while the window size is in flux + * // Avoid costly calculations while the window size is in flux. * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * - * // invoke `sendMail` when the click event is fired, debouncing subsequent calls - * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { + * // Invoke `sendMail` when clicked, debouncing subsequent calls. + * jQuery(element).on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * - * // ensure `batchLog` is invoked once after 1 second of debounced calls + * // Ensure `batchLog` is invoked once after 1 second of debounced calls. + * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); * var source = new EventSource('/stream'); - * jQuery(source).on('message', _.debounce(batchLog, 250, { - * 'maxWait': 1000 - * })); - * - * // cancel a debounced call - * var todoChanges = _.debounce(batchLog, 1000); - * Object.observe(models.todo, todoChanges); + * jQuery(source).on('message', debounced); * - * Object.observe(models, function(changes) { - * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { - * todoChanges.cancel(); - * } - * }, ['delete']); - * - * // ...at some point `models.todo` is changed - * models.todo.completed = true; - * - * // ...before 1 second has passed `models.todo` is deleted - * // which cancels the debounced `todoChanges` call - * delete models.todo; + * // Cancel the trailing debounced invocation. + * jQuery(window).on('popstate', debounced.cancel); */ function debounce(func, wait, options) { - var args, - maxTimeoutId, + var lastArgs, + lastThis, + maxWait, result, - stamp, - thisArg, - timeoutId, - trailingCall, - lastCalled = 0, - maxWait = false, + timerId, + lastCallTime = 0, + lastInvokeTime = 0, + leading = false, + maxing = false, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } - wait = wait < 0 ? 0 : +wait || 0; - if (options === true) { - var leading = true; - trailing = false; - } else if (isObject(options)) { + wait = toNumber(wait) || 0; + if (isObject(options)) { leading = !!options.leading; - maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); + maxing = 'maxWait' in options; + maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; trailing = 'trailing' in options ? !!options.trailing : trailing; } - function cancel() { - if (timeoutId) { - clearTimeout(timeoutId); - } - if (maxTimeoutId) { - clearTimeout(maxTimeoutId); - } - lastCalled = 0; - maxTimeoutId = timeoutId = trailingCall = undefined; + function invokeFunc(time) { + var args = lastArgs, + thisArg = lastThis; + + lastArgs = lastThis = undefined; + lastInvokeTime = time; + result = func.apply(thisArg, args); + return result; + } + + function leadingEdge(time) { + // Reset any `maxWait` timer. + lastInvokeTime = time; + // Start the timer for the trailing edge. + timerId = setTimeout(timerExpired, wait); + // Invoke the leading edge. + return leading ? invokeFunc(time) : result; + } + + function remainingWait(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime, + result = wait - timeSinceLastCall; + + return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result; } - function complete(isCalled, id) { - if (id) { - clearTimeout(id); + function shouldInvoke(time) { + var timeSinceLastCall = time - lastCallTime, + timeSinceLastInvoke = time - lastInvokeTime; + + // Either this is the first call, activity has stopped and we're at the + // trailing edge, the system time has gone backwards and we're treating + // it as the trailing edge, or we've hit the `maxWait` limit. + return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; + } + + function timerExpired() { + var time = now(); + if (shouldInvoke(time)) { + return trailingEdge(time); } - maxTimeoutId = timeoutId = trailingCall = undefined; - if (isCalled) { - lastCalled = now(); - result = func.apply(thisArg, args); - if (!timeoutId && !maxTimeoutId) { - args = thisArg = undefined; - } + // Restart the timer. + timerId = setTimeout(timerExpired, remainingWait(time)); + } + + function trailingEdge(time) { + clearTimeout(timerId); + timerId = undefined; + + // Only invoke if we have `lastArgs` which means `func` has been + // debounced at least once. + if (trailing && lastArgs) { + return invokeFunc(time); } + lastArgs = lastThis = undefined; + return result; } - function delayed() { - var remaining = wait - (now() - stamp); - if (remaining <= 0 || remaining > wait) { - complete(trailingCall, maxTimeoutId); - } else { - timeoutId = setTimeout(delayed, remaining); + function cancel() { + if (timerId !== undefined) { + clearTimeout(timerId); } + lastCallTime = lastInvokeTime = 0; + lastArgs = lastThis = timerId = undefined; } - function maxDelayed() { - complete(trailing, timeoutId); + function flush() { + return timerId === undefined ? result : trailingEdge(now()); } function debounced() { - args = arguments; - stamp = now(); - thisArg = this; - trailingCall = trailing && (timeoutId || !leading); + var time = now(), + isInvoking = shouldInvoke(time); - if (maxWait === false) { - var leadingCall = leading && !timeoutId; - } else { - if (!maxTimeoutId && !leading) { - lastCalled = stamp; + lastArgs = arguments; + lastThis = this; + lastCallTime = time; + + if (isInvoking) { + if (timerId === undefined) { + return leadingEdge(lastCallTime); } - var remaining = maxWait - (stamp - lastCalled), - isCalled = remaining <= 0 || remaining > maxWait; - - if (isCalled) { - if (maxTimeoutId) { - maxTimeoutId = clearTimeout(maxTimeoutId); - } - lastCalled = stamp; - result = func.apply(thisArg, args); - } else if (!maxTimeoutId) { - maxTimeoutId = setTimeout(maxDelayed, remaining); + if (maxing) { + // Handle invocations in a tight loop. + clearTimeout(timerId); + timerId = setTimeout(timerExpired, wait); + return invokeFunc(lastCallTime); } } - if (isCalled && timeoutId) { - timeoutId = clearTimeout(timeoutId); - } else if (!timeoutId && wait !== maxWait) { - timeoutId = setTimeout(delayed, wait); - } - if (leadingCall) { - isCalled = true; - result = func.apply(thisArg, args); - } - if (isCalled && !timeoutId && !maxTimeoutId) { - args = thisArg = undefined; + if (timerId === undefined) { + timerId = setTimeout(timerExpired, wait); } return result; } debounced.cancel = cancel; + debounced.flush = flush; return debounced; } /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 8 which returns 'object' for typed array and weak map constructors, + // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. + var tag = isObject(value) ? objectToString.call(value) : ''; + return tag == funcTag || tag == genTag; + } + + /** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ + * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. @@ -600,161 +665,113 @@ return /******/ (function(modules) { // webpackBootstrap * _.isObject([1, 2, 3]); * // => true * - * _.isObject(1); + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); * // => false */ function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type = typeof value; return !!value && (type == 'object' || type == 'function'); } - module.exports = debounce; - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - /** - * lodash 3.9.1 (Custom Build) - * Build: `lodash modern modularize exports="npm" -o ./` - * Copyright 2012-2015 The Dojo Foundation - * Based on Underscore.js 1.8.3 - * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - * Available under MIT license - */ - - /** `Object#toString` result references. */ - 'use strict'; - - var funcTag = '[object Function]'; - - /** Used to detect host constructors (Safari > 5). */ - var reIsHostCtor = /^\[object .+?Constructor\]$/; - - /** - * Checks if `value` is object-like. - * - * @private - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. - */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; - } - - /** Used for native method references. */ - var objectProto = Object.prototype; - - /** Used to resolve the decompiled source of functions. */ - var fnToString = Function.prototype.toString; - - /** Used to check objects for own properties. */ - var hasOwnProperty = objectProto.hasOwnProperty; - - /** - * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objToString = objectProto.toString; - - /** Used to detect if a method is native. */ - var reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); - - /** - * Gets the native function at `key` of `object`. - * - * @private - * @param {Object} object The object to query. - * @param {string} key The key of the method to get. - * @returns {*} Returns the function if it's native, else `undefined`. - */ - function getNative(object, key) { - var value = object == null ? undefined : object[key]; - return isNative(value) ? value : undefined; - } - /** - * Checks if `value` is classified as a `Function` object. + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * - * _.isFunction(_); + * _.isObjectLike({}); * // => true * - * _.isFunction(/abc/); + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); * // => false */ - function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in older versions of Chrome and Safari which return 'function' for regexes - // and Safari 8 equivalents which return 'object' for typed array constructors. - return isObject(value) && objToString.call(value) == funcTag; + function isObjectLike(value) { + return !!value && typeof value == 'object'; } /** - * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. - * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ + * @since 4.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, + * else `false`. * @example * - * _.isObject({}); - * // => true - * - * _.isObject([1, 2, 3]); + * _.isSymbol(Symbol.iterator); * // => true * - * _.isObject(1); + * _.isSymbol('abc'); * // => false */ - function isObject(value) { - // Avoid a V8 JIT bug in Chrome 19-20. - // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. - var type = typeof value; - return !!value && (type == 'object' || type == 'function'); + function isSymbol(value) { + return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag; } /** - * Checks if `value` is a native function. + * Converts `value` to a number. * * @static * @memberOf _ + * @since 4.0.0 * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is a native function, else `false`. + * @param {*} value The value to process. + * @returns {number} Returns the number. * @example * - * _.isNative(Array.prototype.push); - * // => true + * _.toNumber(3); + * // => 3 * - * _.isNative(_); - * // => false + * _.toNumber(Number.MIN_VALUE); + * // => 5e-324 + * + * _.toNumber(Infinity); + * // => Infinity + * + * _.toNumber('3'); + * // => 3 */ - function isNative(value) { - if (value == null) { - return false; + function toNumber(value) { + if (typeof value == 'number') { + return value; } - if (isFunction(value)) { - return reIsNative.test(fnToString.call(value)); + if (isSymbol(value)) { + return NAN; } - return isObjectLike(value) && reIsHostCtor.test(value); + if (isObject(value)) { + var other = isFunction(value.valueOf) ? value.valueOf() : value; + value = isObject(other) ? other + '' : other; + } + if (typeof value != 'string') { + return value === 0 ? value : +value; + } + value = value.replace(reTrim, ''); + var isBinary = reIsBinary.test(value); + return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; } - module.exports = getNative; + module.exports = debounce; /***/ }, -/* 5 */ +/* 4 */ /***/ function(module, exports) { module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=" diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 29a0605..beb2f33 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -7,4 +7,4 @@ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"])),r=this;return setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=r.refs[r.props.id].getDOMNode();t.selectionStart=r.state.selectionStart,t.selectionEnd=r.state.selectionEnd}},1),o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e){"use strict";function n(t){return!!t&&"object"==typeof t}function s(t,e){var n=null==t?void 0:t[e];return a(n)?n:void 0}function i(t){return o(t)&&d.call(t)==r}function o(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function a(t){return null==t?!1:i(t)?h.test(p.call(t)):n(t)&&c.test(t)}var r="[object Function]",c=/^\[object .+?Constructor\]$/,l=Object.prototype,p=Function.prototype.toString,u=l.hasOwnProperty,d=l.toString,h=RegExp("^"+p.call(u).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");t.exports=s},function(t,e,n){"use strict";function s(t,e,n){function s(){f&&clearTimeout(f),h&&clearTimeout(h),b=0,h=f=m=void 0}function o(e,n){n&&clearTimeout(n),h=f=m=void 0,e&&(b=l(),g=t.apply(y,d),f||h||(d=y=void 0))}function c(){var t=e-(l()-v);0>=t||t>e?o(m,h):f=setTimeout(c,t)}function p(){o(w,f)}function u(){if(d=arguments,v=l(),y=this,m=w&&(f||!A),M===!1)var n=A&&!f;else{h||A||(b=v);var s=M-(v-b),i=0>=s||s>M;i?(h&&(h=clearTimeout(h)),b=v,g=t.apply(y,d)):h||(h=setTimeout(p,s))}return i&&f?f=clearTimeout(f):f||e===M||(f=setTimeout(c,e)),n&&(i=!0,g=t.apply(y,d)),!i||f||h||(d=y=void 0),g}var d,h,g,v,y,f,m,b=0,M=!1,w=!0;if("function"!=typeof t)throw new TypeError(a);if(e=0>e?0:+e||0,n===!0){var A=!0;w=!1}else i(n)&&(A=!!n.leading,M="maxWait"in n&&r(+n.maxWait||0,e),w="trailing"in n?!!n.trailing:w);return u.cancel=s,u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}var o=n(1),a="Expected a function",r=Math.max,c=o(Date,"now"),l=c||function(){return(new Date).getTime()};t.exports=s},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"])),r=this;return setTimeout(function(){if("undefined"==typeof navigator||/Firefox/.test(navigator.userAgent)){var t=r.refs[r.props.id].getDOMNode();t.selectionStart=r.state.selectionStart,t.selectionEnd=r.state.selectionEnd}},1),o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e){"use strict";function n(t,e,n){function s(e){var n=v,s=f;return v=f=void 0,k=e,b=t.apply(s,n)}function o(t){return k=t,m=setTimeout(p,e),S?s(t):b}function a(t){var n=t-x,s=t-k,i=e-n;return I?A(i,y-s):i}function l(t){var n=t-x,s=t-k;return!x||n>=e||0>n||I&&s>=y}function p(){var t=w();return l(t)?u(t):void(m=setTimeout(p,a(t)))}function u(t){return clearTimeout(m),m=void 0,E&&v?s(t):(v=f=void 0,b)}function d(){void 0!==m&&clearTimeout(m),x=k=0,v=f=m=void 0}function h(){return void 0===m?b:u(w())}function g(){var t=w(),n=l(t);if(v=arguments,f=this,x=t,n){if(void 0===m)return o(x);if(I)return clearTimeout(m),m=setTimeout(p,e),s(x)}return void 0===m&&(m=setTimeout(p,e)),b}var v,f,y,b,m,x=0,k=0,S=!1,I=!1,E=!0;if("function"!=typeof t)throw new TypeError(c);return e=r(e)||0,i(n)&&(S=!!n.leading,I="maxWait"in n,y=I?M(r(n.maxWait)||0,e):y,E="trailing"in n?!!n.trailing:E),g.cancel=d,g.flush=h,g}function s(t){var e=i(t)?m.call(t):"";return e==p||e==u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return!!t&&"object"==typeof t}function a(t){return"symbol"==typeof t||o(t)&&m.call(t)==d}function r(t){if("number"==typeof t)return t;if(a(t))return l;if(i(t)){var e=s(t.valueOf)?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(h,"");var n=v.test(t);return n||f.test(t)?y(t.slice(2),n?2:8):g.test(t)?l:+t}var c="Expected a function",l=NaN,p="[object Function]",u="[object GeneratorFunction]",d="[object Symbol]",h=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,f=/^0o[0-7]+$/i,y=parseInt,b=Object.prototype,m=b.toString,M=Math.max,A=Math.min,w=Date.now;t.exports=n},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file diff --git a/package.json b/package.json index c6398bd..662264a 100644 --- a/package.json +++ b/package.json @@ -38,31 +38,30 @@ "nodejs": ">=0.11.x" }, "dependencies": { - "lodash.debounce": "^3.1.1", - "react": ">=0.13.0" + "lodash.debounce": "^4.0.6", + "react": ">=15.0.1" }, "devDependencies": { "autoprefixer-core": "^6.0.1", "babel": "^5.8.23", "babel-core": "^5.8.25", - "babel-jest": "^5.3.0", "babel-loader": "^5.3.2", - "css-loader": "^0.20.1", - "csswring": "^4.0.0", - "extract-text-webpack-plugin": "^0.8.2", - "file-loader": "^0.8.4", - "gh-pages-deploy": "^0.3.0", + "css-loader": "^0.23.1", + "csswring": "^4.2.2", + "extract-text-webpack-plugin": "^1.0.1", + "file-loader": "^0.8.5", + "gh-pages-deploy": "^0.4.2", "jsx-loader": "^0.13.2", - "jest-cli": "0.5.10", - "normalize.css": "^3.0.3", - "postcss-loader": "^0.6.0", + "node-sass": "^3.6.0", + "normalize.css": "^4.1.1", + "postcss-loader": "^0.8.2", "root-require": "^0.3.1", - "sass-loader": "^3.0.0", - "script-loader": "^0.6.1", - "style-loader": "^0.12.4", - "url-loader": "^0.5.6", - "webpack": "^1.12.2", - "webpack-dev-server": "^1.12.1" + "sass-loader": "^3.2.0", + "script-loader": "^0.7.0", + "style-loader": "^0.13.1", + "url-loader": "^0.5.7", + "webpack": "^1.13.0", + "webpack-dev-server": "^1.14.1" }, "gh-pages-deploy": { "staticpath": "demo", From 60b14cf7fdf70cfab819381e2bafe4f623a38f55 Mon Sep 17 00:00:00 2001 From: Adam L Date: Tue, 26 Apr 2016 22:51:28 -0700 Subject: [PATCH 24/34] Bumped version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 662264a..7e14e00 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.10", + "version": "0.9.11", "license": "MIT", "main": "src/index.js", "browser": "./lib/react-ux-password-field.js", From 9987f97d7483b7c52589118dbd829ab0bb83a227 Mon Sep 17 00:00:00 2001 From: Adam L Date: Tue, 26 Apr 2016 22:52:47 -0700 Subject: [PATCH 25/34] Pushed require react back to support older versions --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7e14e00..ae4d2bd 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,7 @@ }, "dependencies": { "lodash.debounce": "^4.0.6", - "react": ">=15.0.1" + "react": ">=0.13.0" }, "devDependencies": { "autoprefixer-core": "^6.0.1", From 2e994aabe4477c014e03e57eed6e43d5b5ee194d Mon Sep 17 00:00:00 2001 From: Adam L Date: Tue, 26 Apr 2016 22:53:59 -0700 Subject: [PATCH 26/34] Pushed require lodash back to support older if necessary --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ae4d2bd..4e713b8 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "nodejs": ">=0.11.x" }, "dependencies": { - "lodash.debounce": "^4.0.6", + "lodash.debounce": "^3.1.1", "react": ">=0.13.0" }, "devDependencies": { From 736b42c720bd9e5ecc4cede019f610ea6195c3e4 Mon Sep 17 00:00:00 2001 From: Adam L Date: Tue, 26 Apr 2016 22:58:55 -0700 Subject: [PATCH 27/34] Updated changelog --- CHANGELOG.md | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 529ae80..8eac55c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,35 @@ # Change Log +## [Unreleased](https://github.com/seethroughtrees/react-ux-password-field/tree/HEAD) + +[Full Changelog](https://github.com/seethroughtrees/react-ux-password-field/compare/0.9.10...HEAD) + +**Closed issues:** + +- dangerouslySetInnerHTML error when nesting HTML within InputPassword component [\#35](https://github.com/seethroughtrees/react-ux-password-field/issues/35) +- Organize npm dependencies [\#33](https://github.com/seethroughtrees/react-ux-password-field/issues/33) +- When 'handleChange' is called the wrong 'isValid' value is sent to parent component [\#28](https://github.com/seethroughtrees/react-ux-password-field/issues/28) + +**Merged pull requests:** + +- Feature/update [\#38](https://github.com/seethroughtrees/react-ux-password-field/pull/38) ([seethroughtrees](https://github.com/seethroughtrees)) +- adds check for existence of global navigator variable [\#37](https://github.com/seethroughtrees/react-ux-password-field/pull/37) ([AppSorcery](https://github.com/AppSorcery)) +- Move build-time npm packages to devDependencies [\#34](https://github.com/seethroughtrees/react-ux-password-field/pull/34) ([ahoym](https://github.com/ahoym)) +- Load zxcvbn when component is mounted. Fixes \#27. [\#31](https://github.com/seethroughtrees/react-ux-password-field/pull/31) ([dylanjbarth](https://github.com/dylanjbarth)) + +## [0.9.10](https://github.com/seethroughtrees/react-ux-password-field/tree/0.9.10) (2015-10-19) +[Full Changelog](https://github.com/seethroughtrees/react-ux-password-field/compare/0.9.9...0.9.10) + +**Closed issues:** + +- Do not call addPasswordType\(\) when umounted [\#25](https://github.com/seethroughtrees/react-ux-password-field/issues/25) +- Input behaves weird on latest Firefox [\#15](https://github.com/seethroughtrees/react-ux-password-field/issues/15) +- Need DOM access to password input [\#9](https://github.com/seethroughtrees/react-ux-password-field/issues/9) + +**Merged pull requests:** + +- Fixes \#25 which will cancel the debouncer when umounted. Also bumps J… [\#26](https://github.com/seethroughtrees/react-ux-password-field/pull/26) ([binarykitchen](https://github.com/binarykitchen)) + ## [0.9.9](https://github.com/seethroughtrees/react-ux-password-field/tree/0.9.9) (2015-09-10) [Full Changelog](https://github.com/seethroughtrees/react-ux-password-field/compare/0.9.8...0.9.9) @@ -41,7 +71,7 @@ - Add "browser" field to package.json [\#20](https://github.com/seethroughtrees/react-ux-password-field/pull/20) ([brigand](https://github.com/brigand)) - Add more parameters in callbacks and bump packages [\#18](https://github.com/seethroughtrees/react-ux-password-field/pull/18) ([binarykitchen](https://github.com/binarykitchen)) -- onChange branch change [\#2](https://github.com/seethroughtrees/react-ux-password-field/pull/2) ([Dignifiedquire](https://github.com/Dignifiedquire)) +- onChange branch change [\#2](https://github.com/seethroughtrees/react-ux-password-field/pull/2) ([dignifiedquire](https://github.com/dignifiedquire)) From cfdf638e120bb802d8bf1a1cee0f22f7f175acd6 Mon Sep 17 00:00:00 2001 From: Adam Taylor Date: Fri, 29 Apr 2016 19:45:07 -0700 Subject: [PATCH 28/34] fixes additional prerendering bug from getDOMNode() Signed-off-by: Adam Taylor --- src/index.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/index.js b/src/index.js index f932e5f..c1ca5c6 100644 --- a/src/index.js +++ b/src/index.js @@ -245,12 +245,14 @@ var InputPassword = React.createClass({ // overcome problem with firefox resetting the input selection point var that = this; - setTimeout(function() { - if (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return; - var elem = that.refs[that.props.id].getDOMNode(); - elem.selectionStart = that.state.selectionStart; - elem.selectionEnd = that.state.selectionEnd; - }, 1); + if (typeof navigator !== 'undefined') { + setTimeout(function() { + if (!/Firefox/.test(navigator.userAgent)) return; + var elem = that.refs[that.props.id].getDOMNode(); + elem.selectionStart = that.state.selectionStart; + elem.selectionEnd = that.state.selectionEnd; + }, 1); + } return (
    Date: Mon, 2 May 2016 23:26:26 -0700 Subject: [PATCH 29/34] Updated build --- demo/demo.bundle.js | 4 ++-- demo/demo.bundle.js.map | 2 +- lib/react-ux-password-field.js | 16 +++++++++------- lib/react-ux-password-field.min.js | 4 ++-- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 0a53a46..8dac338 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -12,14 +12,14 @@ function(t,e){"use strict";window.Rainbow=function(){function t(t){var e,n=t.get \****************************************/ function(t,e,n){/*! * React UX Password Field - * version: 0.9.10 + * version: 0.9.11 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -"use strict";!function(e,a){t.exports=a(n(1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"])),i=this;return setTimeout(function(){if("undefined"==typeof navigator||/Firefox/.test(navigator.userAgent)){var t=i.refs[i.props.id].getDOMNode();t.selectionStart=i.state.selectionStart,t.selectionEnd=i.state.selectionEnd}},1),r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){function n(t,e,n){function a(e){var n=m,a=f;return m=f=void 0,S=e,b=t.apply(a,n)}function r(t){return S=t,y=setTimeout(l,e),A?a(t):b}function o(t){var n=t-k,a=t-S,s=e-n;return E?x(s,v-a):s}function p(t){var n=t-k,a=t-S;return!k||n>=e||0>n||E&&a>=v}function l(){var t=M();return p(t)?u(t):void(y=setTimeout(l,o(t)))}function u(t){return clearTimeout(y),y=void 0,N&&m?a(t):(m=f=void 0,b)}function g(){void 0!==y&&clearTimeout(y),k=S=0,m=f=y=void 0}function d(){return void 0===y?b:u(M())}function h(){var t=M(),n=p(t);if(m=arguments,f=this,k=t,n){if(void 0===y)return r(k);if(E)return clearTimeout(y),y=setTimeout(l,e),a(k)}return void 0===y&&(y=setTimeout(l,e)),b}var m,f,v,b,y,k=0,S=0,A=!1,E=!1,N=!0;if("function"!=typeof t)throw new TypeError(c);return e=i(e)||0,s(n)&&(A=!!n.leading,E="maxWait"in n,v=E?w(i(n.maxWait)||0,e):v,N="trailing"in n?!!n.trailing:N),h.cancel=g,h.flush=d,h}function a(t){var e=s(t)?y.call(t):"";return e==l||e==u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function r(t){return!!t&&"object"==typeof t}function o(t){return"symbol"==typeof t||r(t)&&y.call(t)==g}function i(t){if("number"==typeof t)return t;if(o(t))return p;if(s(t)){var e=a(t.valueOf)?t.valueOf():t;t=s(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(d,"");var n=m.test(t);return n||f.test(t)?v(t.slice(2),n?2:8):h.test(t)?p:+t}var c="Expected a function",p=NaN,l="[object Function]",u="[object GeneratorFunction]",g="[object Symbol]",d=/^\s+|\s+$/g,h=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,f=/^0o[0-7]+$/i,v=parseInt,b=Object.prototype,y=b.toString,w=Math.max,x=Math.min,M=Date.now;t.exports=n},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ +"use strict";!function(e,a){t.exports=a(n(1))}(void 0,function(t){return function(t){function e(a){if(n[a])return n[a].exports;var s=n[a]={exports:{},id:a,loaded:!1};return t[a].call(s.exports,s,s.exports,e),s.loaded=!0,s.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){function a(t,e){var n={};for(var a in t)e.indexOf(a)>=0||Object.prototype.hasOwnProperty.call(t,a)&&(n[a]=t[a]);return n}var s=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,o=(e.onChange,a(e,["onChange"])),i=this;return"undefined"!=typeof navigator&&setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=i.refs[i.props.id].getDOMNode();t.selectionStart=i.state.selectionStart,t.selectionEnd=i.state.selectionEnd}},1),r.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},r.createElement("input",s({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},o)),t)}});t.exports=p},function(e,n){e.exports=t},function(t,e){t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){function n(t,e,n){function a(e){var n=m,a=f;return m=f=void 0,S=e,b=t.apply(a,n)}function r(t){return S=t,y=setTimeout(l,e),A?a(t):b}function o(t){var n=t-k,a=t-S,s=e-n;return E?x(s,v-a):s}function p(t){var n=t-k,a=t-S;return!k||n>=e||0>n||E&&a>=v}function l(){var t=M();return p(t)?u(t):void(y=setTimeout(l,o(t)))}function u(t){return clearTimeout(y),y=void 0,N&&m?a(t):(m=f=void 0,b)}function g(){void 0!==y&&clearTimeout(y),k=S=0,m=f=y=void 0}function d(){return void 0===y?b:u(M())}function h(){var t=M(),n=p(t);if(m=arguments,f=this,k=t,n){if(void 0===y)return r(k);if(E)return clearTimeout(y),y=setTimeout(l,e),a(k)}return void 0===y&&(y=setTimeout(l,e)),b}var m,f,v,b,y,k=0,S=0,A=!1,E=!1,N=!0;if("function"!=typeof t)throw new TypeError(c);return e=i(e)||0,s(n)&&(A=!!n.leading,E="maxWait"in n,v=E?w(i(n.maxWait)||0,e):v,N="trailing"in n?!!n.trailing:N),h.cancel=g,h.flush=d,h}function a(t){var e=s(t)?y.call(t):"";return e==l||e==u}function s(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function r(t){return!!t&&"object"==typeof t}function o(t){return"symbol"==typeof t||r(t)&&y.call(t)==g}function i(t){if("number"==typeof t)return t;if(o(t))return p;if(s(t)){var e=a(t.valueOf)?t.valueOf():t;t=s(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(d,"");var n=m.test(t);return n||f.test(t)?v(t.slice(2),n?2:8):h.test(t)?p:+t}var c="Expected a function",p=NaN,l="[object Function]",u="[object GeneratorFunction]",g="[object Symbol]",d=/^\s+|\s+$/g,h=/^[-+]0x[0-9a-f]+$/i,m=/^0b[01]+$/i,f=/^0o[0-7]+$/i,v=parseInt,b=Object.prototype,y=b.toString,w=Math.max,x=Math.min,M=Date.now;t.exports=n},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="}])})},/*!************************************!*\ !*** ./demo/src/vendor/github.css ***! \************************************/ function(t,e){},/*!**************************************!*\ diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index e7c278c..51ba23a 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 561e70245c61b9445b60","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","indexOf","undefined","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass","1","2","3","4","5","root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","navigator","test","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","invokeFunc","time","args","lastArgs","thisArg","lastThis","lastInvokeTime","result","apply","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","clearTimeout","trailing","flush","debounced","isInvoking","TypeError","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","isFunction","tag","objectToString","funcTag","genTag","isObjectLike","isSymbol","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","slice","reIsBadHex","objectProto","toString","Math","max","min","Date"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t });\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t d = e = undefined;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.10\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\tif (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t}, 1);\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/** Used as references for various `Number` constants. */\n\t\t\t\tvar NAN = 0 / 0;\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\tvar funcTag = '[object Function]',\n\t\t\t\t genTag = '[object GeneratorFunction]',\n\t\t\t\t symbolTag = '[object Symbol]';\n\t\n\t\t\t\t/** Used to match leading and trailing whitespace. */\n\t\t\t\tvar reTrim = /^\\s+|\\s+$/g;\n\t\n\t\t\t\t/** Used to detect bad signed hexadecimal string values. */\n\t\t\t\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\t\n\t\t\t\t/** Used to detect binary string values. */\n\t\t\t\tvar reIsBinary = /^0b[01]+$/i;\n\t\n\t\t\t\t/** Used to detect octal string values. */\n\t\t\t\tvar reIsOctal = /^0o[0-7]+$/i;\n\t\n\t\t\t\t/** Built-in method references without a dependency on `root`. */\n\t\t\t\tvar freeParseInt = parseInt;\n\t\n\t\t\t\t/** Used for built-in method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objectToString = objectProto.toString;\n\t\n\t\t\t\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeMin = Math.min;\n\t\n\t\t\t\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\t\t\t\tvar now = Date.now;\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar lastArgs,\n\t\t\t\t\t lastThis,\n\t\t\t\t\t maxWait,\n\t\t\t\t\t result,\n\t\t\t\t\t timerId,\n\t\t\t\t\t lastCallTime = 0,\n\t\t\t\t\t lastInvokeTime = 0,\n\t\t\t\t\t leading = false,\n\t\t\t\t\t maxing = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = toNumber(wait) || 0;\n\t\t\t\t\tif (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxing = 'maxWait' in options;\n\t\t\t\t\t\tmaxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction invokeFunc(time) {\n\t\t\t\t\t\tvar args = lastArgs,\n\t\t\t\t\t\t thisArg = lastThis;\n\t\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction leadingEdge(time) {\n\t\t\t\t\t\t// Reset any `maxWait` timer.\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\t// Start the timer for the trailing edge.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t// Invoke the leading edge.\n\t\t\t\t\t\treturn leading ? invokeFunc(time) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction remainingWait(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime,\n\t\t\t\t\t\t result = wait - timeSinceLastCall;\n\t\n\t\t\t\t\t\treturn maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction shouldInvoke(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime;\n\t\n\t\t\t\t\t\t// Either this is the first call, activity has stopped and we're at the\n\t\t\t\t\t\t// trailing edge, the system time has gone backwards and we're treating\n\t\t\t\t\t\t// it as the trailing edge, or we've hit the `maxWait` limit.\n\t\t\t\t\t\treturn !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction timerExpired() {\n\t\t\t\t\t\tvar time = now();\n\t\t\t\t\t\tif (shouldInvoke(time)) {\n\t\t\t\t\t\t\treturn trailingEdge(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Restart the timer.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, remainingWait(time));\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction trailingEdge(time) {\n\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\ttimerId = undefined;\n\t\n\t\t\t\t\t\t// Only invoke if we have `lastArgs` which means `func` has been\n\t\t\t\t\t\t// debounced at least once.\n\t\t\t\t\t\tif (trailing && lastArgs) {\n\t\t\t\t\t\t\treturn invokeFunc(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timerId !== undefined) {\n\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCallTime = lastInvokeTime = 0;\n\t\t\t\t\t\tlastArgs = lastThis = timerId = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction flush() {\n\t\t\t\t\t\treturn timerId === undefined ? result : trailingEdge(now());\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\tvar time = now(),\n\t\t\t\t\t\t isInvoking = shouldInvoke(time);\n\t\n\t\t\t\t\t\tlastArgs = arguments;\n\t\t\t\t\t\tlastThis = this;\n\t\t\t\t\t\tlastCallTime = time;\n\t\n\t\t\t\t\t\tif (isInvoking) {\n\t\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\t\treturn leadingEdge(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (maxing) {\n\t\t\t\t\t\t\t\t// Handle invocations in a tight loop.\n\t\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t\t\treturn invokeFunc(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\tdebounced.flush = flush;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t\t\t\t\t// and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t\t\t\t\tvar tag = isObject(value) ? objectToString.call(value) : '';\n\t\t\t\t\treturn tag == funcTag || tag == genTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\t\t\t\tfunction isSymbol(value) {\n\t\t\t\t\treturn typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\t\t\t\tfunction toNumber(value) {\n\t\t\t\t\tif (typeof value == 'number') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\tif (isSymbol(value)) {\n\t\t\t\t\t\treturn NAN;\n\t\t\t\t\t}\n\t\t\t\t\tif (isObject(value)) {\n\t\t\t\t\t\tvar other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t\t\t\t\t\tvalue = isObject(other) ? other + '' : other;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value != 'string') {\n\t\t\t\t\t\treturn value === 0 ? value : +value;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = value.replace(reTrim, '');\n\t\t\t\t\tvar isBinary = reIsBinary.test(value);\n\t\t\t\t\treturn isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 561e70245c61b9445b60\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t setTimeout(function () {\n\t if (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t'use strict';\n\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/** Used as references for various `Number` constants. */\n\tvar NAN = 0 / 0;\n\n\t/** `Object#toString` result references. */\n\tvar funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t symbolTag = '[object Symbol]';\n\n\t/** Used to match leading and trailing whitespace. */\n\tvar reTrim = /^\\s+|\\s+$/g;\n\n\t/** Used to detect bad signed hexadecimal string values. */\n\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n\t/** Used to detect binary string values. */\n\tvar reIsBinary = /^0b[01]+$/i;\n\n\t/** Used to detect octal string values. */\n\tvar reIsOctal = /^0o[0-7]+$/i;\n\n\t/** Built-in method references without a dependency on `root`. */\n\tvar freeParseInt = parseInt;\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeMin = Math.min;\n\n\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\tvar now = Date.now;\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\tfunction debounce(func, wait, options) {\n\t var lastArgs,\n\t lastThis,\n\t maxWait,\n\t result,\n\t timerId,\n\t lastCallTime = 0,\n\t lastInvokeTime = 0,\n\t leading = false,\n\t maxing = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = toNumber(wait) || 0;\n\t if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxing = 'maxWait' in options;\n\t maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function invokeFunc(time) {\n\t var args = lastArgs,\n\t thisArg = lastThis;\n\n\t lastArgs = lastThis = undefined;\n\t lastInvokeTime = time;\n\t result = func.apply(thisArg, args);\n\t return result;\n\t }\n\n\t function leadingEdge(time) {\n\t // Reset any `maxWait` timer.\n\t lastInvokeTime = time;\n\t // Start the timer for the trailing edge.\n\t timerId = setTimeout(timerExpired, wait);\n\t // Invoke the leading edge.\n\t return leading ? invokeFunc(time) : result;\n\t }\n\n\t function remainingWait(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime,\n\t result = wait - timeSinceLastCall;\n\n\t return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t }\n\n\t function shouldInvoke(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime;\n\n\t // Either this is the first call, activity has stopped and we're at the\n\t // trailing edge, the system time has gone backwards and we're treating\n\t // it as the trailing edge, or we've hit the `maxWait` limit.\n\t return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t }\n\n\t function timerExpired() {\n\t var time = now();\n\t if (shouldInvoke(time)) {\n\t return trailingEdge(time);\n\t }\n\t // Restart the timer.\n\t timerId = setTimeout(timerExpired, remainingWait(time));\n\t }\n\n\t function trailingEdge(time) {\n\t clearTimeout(timerId);\n\t timerId = undefined;\n\n\t // Only invoke if we have `lastArgs` which means `func` has been\n\t // debounced at least once.\n\t if (trailing && lastArgs) {\n\t return invokeFunc(time);\n\t }\n\t lastArgs = lastThis = undefined;\n\t return result;\n\t }\n\n\t function cancel() {\n\t if (timerId !== undefined) {\n\t clearTimeout(timerId);\n\t }\n\t lastCallTime = lastInvokeTime = 0;\n\t lastArgs = lastThis = timerId = undefined;\n\t }\n\n\t function flush() {\n\t return timerId === undefined ? result : trailingEdge(now());\n\t }\n\n\t function debounced() {\n\t var time = now(),\n\t isInvoking = shouldInvoke(time);\n\n\t lastArgs = arguments;\n\t lastThis = this;\n\t lastCallTime = time;\n\n\t if (isInvoking) {\n\t if (timerId === undefined) {\n\t return leadingEdge(lastCallTime);\n\t }\n\t if (maxing) {\n\t // Handle invocations in a tight loop.\n\t clearTimeout(timerId);\n\t timerId = setTimeout(timerExpired, wait);\n\t return invokeFunc(lastCallTime);\n\t }\n\t }\n\t if (timerId === undefined) {\n\t timerId = setTimeout(timerExpired, wait);\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t debounced.flush = flush;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t}\n\n\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\tfunction toNumber(value) {\n\t if (typeof value == 'number') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return NAN;\n\t }\n\t if (isObject(value)) {\n\t var other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t value = isObject(other) ? other + '' : other;\n\t }\n\t if (typeof value != 'string') {\n\t return value === 0 ? value : +value;\n\t }\n\t value = value.replace(reTrim, '');\n\t var isBinary = reIsBinary.test(value);\n\t return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 48263daf91bf48063e9f","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","indexOf","undefined","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass","1","2","3","4","5","root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","navigator","test","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","invokeFunc","time","args","lastArgs","thisArg","lastThis","lastInvokeTime","result","apply","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","clearTimeout","trailing","flush","debounced","isInvoking","TypeError","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","isFunction","tag","objectToString","funcTag","genTag","isObjectLike","isSymbol","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","slice","reIsBadHex","objectProto","toString","Math","max","min","Date"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t });\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t d = e = undefined;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.11\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tif (typeof navigator !== 'undefined') {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/** Used as references for various `Number` constants. */\n\t\t\t\tvar NAN = 0 / 0;\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\tvar funcTag = '[object Function]',\n\t\t\t\t genTag = '[object GeneratorFunction]',\n\t\t\t\t symbolTag = '[object Symbol]';\n\t\n\t\t\t\t/** Used to match leading and trailing whitespace. */\n\t\t\t\tvar reTrim = /^\\s+|\\s+$/g;\n\t\n\t\t\t\t/** Used to detect bad signed hexadecimal string values. */\n\t\t\t\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\t\n\t\t\t\t/** Used to detect binary string values. */\n\t\t\t\tvar reIsBinary = /^0b[01]+$/i;\n\t\n\t\t\t\t/** Used to detect octal string values. */\n\t\t\t\tvar reIsOctal = /^0o[0-7]+$/i;\n\t\n\t\t\t\t/** Built-in method references without a dependency on `root`. */\n\t\t\t\tvar freeParseInt = parseInt;\n\t\n\t\t\t\t/** Used for built-in method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objectToString = objectProto.toString;\n\t\n\t\t\t\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeMin = Math.min;\n\t\n\t\t\t\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\t\t\t\tvar now = Date.now;\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar lastArgs,\n\t\t\t\t\t lastThis,\n\t\t\t\t\t maxWait,\n\t\t\t\t\t result,\n\t\t\t\t\t timerId,\n\t\t\t\t\t lastCallTime = 0,\n\t\t\t\t\t lastInvokeTime = 0,\n\t\t\t\t\t leading = false,\n\t\t\t\t\t maxing = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = toNumber(wait) || 0;\n\t\t\t\t\tif (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxing = 'maxWait' in options;\n\t\t\t\t\t\tmaxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction invokeFunc(time) {\n\t\t\t\t\t\tvar args = lastArgs,\n\t\t\t\t\t\t thisArg = lastThis;\n\t\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction leadingEdge(time) {\n\t\t\t\t\t\t// Reset any `maxWait` timer.\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\t// Start the timer for the trailing edge.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t// Invoke the leading edge.\n\t\t\t\t\t\treturn leading ? invokeFunc(time) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction remainingWait(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime,\n\t\t\t\t\t\t result = wait - timeSinceLastCall;\n\t\n\t\t\t\t\t\treturn maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction shouldInvoke(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime;\n\t\n\t\t\t\t\t\t// Either this is the first call, activity has stopped and we're at the\n\t\t\t\t\t\t// trailing edge, the system time has gone backwards and we're treating\n\t\t\t\t\t\t// it as the trailing edge, or we've hit the `maxWait` limit.\n\t\t\t\t\t\treturn !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction timerExpired() {\n\t\t\t\t\t\tvar time = now();\n\t\t\t\t\t\tif (shouldInvoke(time)) {\n\t\t\t\t\t\t\treturn trailingEdge(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Restart the timer.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, remainingWait(time));\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction trailingEdge(time) {\n\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\ttimerId = undefined;\n\t\n\t\t\t\t\t\t// Only invoke if we have `lastArgs` which means `func` has been\n\t\t\t\t\t\t// debounced at least once.\n\t\t\t\t\t\tif (trailing && lastArgs) {\n\t\t\t\t\t\t\treturn invokeFunc(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timerId !== undefined) {\n\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCallTime = lastInvokeTime = 0;\n\t\t\t\t\t\tlastArgs = lastThis = timerId = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction flush() {\n\t\t\t\t\t\treturn timerId === undefined ? result : trailingEdge(now());\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\tvar time = now(),\n\t\t\t\t\t\t isInvoking = shouldInvoke(time);\n\t\n\t\t\t\t\t\tlastArgs = arguments;\n\t\t\t\t\t\tlastThis = this;\n\t\t\t\t\t\tlastCallTime = time;\n\t\n\t\t\t\t\t\tif (isInvoking) {\n\t\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\t\treturn leadingEdge(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (maxing) {\n\t\t\t\t\t\t\t\t// Handle invocations in a tight loop.\n\t\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t\t\treturn invokeFunc(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\tdebounced.flush = flush;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t\t\t\t\t// and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t\t\t\t\tvar tag = isObject(value) ? objectToString.call(value) : '';\n\t\t\t\t\treturn tag == funcTag || tag == genTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\t\t\t\tfunction isSymbol(value) {\n\t\t\t\t\treturn typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\t\t\t\tfunction toNumber(value) {\n\t\t\t\t\tif (typeof value == 'number') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\tif (isSymbol(value)) {\n\t\t\t\t\t\treturn NAN;\n\t\t\t\t\t}\n\t\t\t\t\tif (isObject(value)) {\n\t\t\t\t\t\tvar other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t\t\t\t\t\tvalue = isObject(other) ? other + '' : other;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value != 'string') {\n\t\t\t\t\t\treturn value === 0 ? value : +value;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = value.replace(reTrim, '');\n\t\t\t\t\tvar isBinary = reIsBinary.test(value);\n\t\t\t\t\treturn isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 48263daf91bf48063e9f\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t if (typeof navigator !== 'undefined') {\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\t }\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t'use strict';\n\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/** Used as references for various `Number` constants. */\n\tvar NAN = 0 / 0;\n\n\t/** `Object#toString` result references. */\n\tvar funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t symbolTag = '[object Symbol]';\n\n\t/** Used to match leading and trailing whitespace. */\n\tvar reTrim = /^\\s+|\\s+$/g;\n\n\t/** Used to detect bad signed hexadecimal string values. */\n\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n\t/** Used to detect binary string values. */\n\tvar reIsBinary = /^0b[01]+$/i;\n\n\t/** Used to detect octal string values. */\n\tvar reIsOctal = /^0o[0-7]+$/i;\n\n\t/** Built-in method references without a dependency on `root`. */\n\tvar freeParseInt = parseInt;\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeMin = Math.min;\n\n\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\tvar now = Date.now;\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\tfunction debounce(func, wait, options) {\n\t var lastArgs,\n\t lastThis,\n\t maxWait,\n\t result,\n\t timerId,\n\t lastCallTime = 0,\n\t lastInvokeTime = 0,\n\t leading = false,\n\t maxing = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = toNumber(wait) || 0;\n\t if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxing = 'maxWait' in options;\n\t maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function invokeFunc(time) {\n\t var args = lastArgs,\n\t thisArg = lastThis;\n\n\t lastArgs = lastThis = undefined;\n\t lastInvokeTime = time;\n\t result = func.apply(thisArg, args);\n\t return result;\n\t }\n\n\t function leadingEdge(time) {\n\t // Reset any `maxWait` timer.\n\t lastInvokeTime = time;\n\t // Start the timer for the trailing edge.\n\t timerId = setTimeout(timerExpired, wait);\n\t // Invoke the leading edge.\n\t return leading ? invokeFunc(time) : result;\n\t }\n\n\t function remainingWait(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime,\n\t result = wait - timeSinceLastCall;\n\n\t return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t }\n\n\t function shouldInvoke(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime;\n\n\t // Either this is the first call, activity has stopped and we're at the\n\t // trailing edge, the system time has gone backwards and we're treating\n\t // it as the trailing edge, or we've hit the `maxWait` limit.\n\t return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t }\n\n\t function timerExpired() {\n\t var time = now();\n\t if (shouldInvoke(time)) {\n\t return trailingEdge(time);\n\t }\n\t // Restart the timer.\n\t timerId = setTimeout(timerExpired, remainingWait(time));\n\t }\n\n\t function trailingEdge(time) {\n\t clearTimeout(timerId);\n\t timerId = undefined;\n\n\t // Only invoke if we have `lastArgs` which means `func` has been\n\t // debounced at least once.\n\t if (trailing && lastArgs) {\n\t return invokeFunc(time);\n\t }\n\t lastArgs = lastThis = undefined;\n\t return result;\n\t }\n\n\t function cancel() {\n\t if (timerId !== undefined) {\n\t clearTimeout(timerId);\n\t }\n\t lastCallTime = lastInvokeTime = 0;\n\t lastArgs = lastThis = timerId = undefined;\n\t }\n\n\t function flush() {\n\t return timerId === undefined ? result : trailingEdge(now());\n\t }\n\n\t function debounced() {\n\t var time = now(),\n\t isInvoking = shouldInvoke(time);\n\n\t lastArgs = arguments;\n\t lastThis = this;\n\t lastCallTime = time;\n\n\t if (isInvoking) {\n\t if (timerId === undefined) {\n\t return leadingEdge(lastCallTime);\n\t }\n\t if (maxing) {\n\t // Handle invocations in a tight loop.\n\t clearTimeout(timerId);\n\t timerId = setTimeout(timerExpired, wait);\n\t return invokeFunc(lastCallTime);\n\t }\n\t }\n\t if (timerId === undefined) {\n\t timerId = setTimeout(timerExpired, wait);\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t debounced.flush = flush;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t}\n\n\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\tfunction toNumber(value) {\n\t if (typeof value == 'number') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return NAN;\n\t }\n\t if (isObject(value)) {\n\t var other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t value = isObject(other) ? other + '' : other;\n\t }\n\t if (typeof value != 'string') {\n\t return value === 0 ? value : +value;\n\t }\n\t value = value.replace(reTrim, '');\n\t var isBinary = reIsBinary.test(value);\n\t return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index d98dde9..c48ddc5 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.10 + * version: 0.9.11 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ @@ -321,12 +321,14 @@ return /******/ (function(modules) { // webpackBootstrap // overcome problem with firefox resetting the input selection point var that = this; - setTimeout(function () { - if (typeof navigator !== 'undefined' && !/Firefox/.test(navigator.userAgent)) return; - var elem = that.refs[that.props.id].getDOMNode(); - elem.selectionStart = that.state.selectionStart; - elem.selectionEnd = that.state.selectionEnd; - }, 1); + if (typeof navigator !== 'undefined') { + setTimeout(function () { + if (!/Firefox/.test(navigator.userAgent)) return; + var elem = that.refs[that.props.id].getDOMNode(); + elem.selectionStart = that.state.selectionStart; + elem.selectionEnd = that.state.selectionEnd; + }, 1); + } return React.createElement( 'div', diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index beb2f33..117ea8c 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -1,10 +1,10 @@ /*! * React UX Password Field - * version: 0.9.10 + * version: 0.9.11 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ * demo: https://seethroughtrees.github.io/react-ux-password-field/ * */ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"])),r=this;return setTimeout(function(){if("undefined"==typeof navigator||/Firefox/.test(navigator.userAgent)){var t=r.refs[r.props.id].getDOMNode();t.selectionStart=r.state.selectionStart,t.selectionEnd=r.state.selectionEnd}},1),o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e){"use strict";function n(t,e,n){function s(e){var n=v,s=f;return v=f=void 0,k=e,b=t.apply(s,n)}function o(t){return k=t,m=setTimeout(p,e),S?s(t):b}function a(t){var n=t-x,s=t-k,i=e-n;return I?A(i,y-s):i}function l(t){var n=t-x,s=t-k;return!x||n>=e||0>n||I&&s>=y}function p(){var t=w();return l(t)?u(t):void(m=setTimeout(p,a(t)))}function u(t){return clearTimeout(m),m=void 0,E&&v?s(t):(v=f=void 0,b)}function d(){void 0!==m&&clearTimeout(m),x=k=0,v=f=m=void 0}function h(){return void 0===m?b:u(w())}function g(){var t=w(),n=l(t);if(v=arguments,f=this,x=t,n){if(void 0===m)return o(x);if(I)return clearTimeout(m),m=setTimeout(p,e),s(x)}return void 0===m&&(m=setTimeout(p,e)),b}var v,f,y,b,m,x=0,k=0,S=!1,I=!1,E=!0;if("function"!=typeof t)throw new TypeError(c);return e=r(e)||0,i(n)&&(S=!!n.leading,I="maxWait"in n,y=I?M(r(n.maxWait)||0,e):y,E="trailing"in n?!!n.trailing:E),g.cancel=d,g.flush=h,g}function s(t){var e=i(t)?m.call(t):"";return e==p||e==u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return!!t&&"object"==typeof t}function a(t){return"symbol"==typeof t||o(t)&&m.call(t)==d}function r(t){if("number"==typeof t)return t;if(a(t))return l;if(i(t)){var e=s(t.valueOf)?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(h,"");var n=v.test(t);return n||f.test(t)?y(t.slice(2),n?2:8):g.test(t)?l:+t}var c="Expected a function",l=NaN,p="[object Function]",u="[object GeneratorFunction]",d="[object Symbol]",h=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,f=/^0o[0-7]+$/i,y=parseInt,b=Object.prototype,m=b.toString,M=Math.max,A=Math.min,w=Date.now;t.exports=n},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("react")):"function"==typeof define&&define.amd?define(["react"],e):"object"==typeof exports?exports["react-ux-password-field"]=e(require("react")):t["react-ux-password-field"]=e(t.React)}(this,function(t){return function(t){function e(s){if(n[s])return n[s].exports;var i=n[s]={exports:{},id:s,loaded:!1};return t[s].call(i.exports,i,i.exports,e),i.loaded=!0,i.exports}var n={};return e.m=t,e.c=n,e.p="",e(0)}([function(t,e,n){"use strict";function s(t,e){var n={};for(var s in t)e.indexOf(s)>=0||Object.prototype.hasOwnProperty.call(t,s)&&(n[s]=t[s]);return n}var i=Object.assign||function(t){for(var e=1;e0&&this.props.strengthLang.length>0?this.props.strengthLang[this.state.score]:null)));var e=this.props,a=(e.onChange,s(e,["onChange"])),r=this;return"undefined"!=typeof navigator&&setTimeout(function(){if(/Firefox/.test(navigator.userAgent)){var t=r.refs[r.props.id].getDOMNode();t.selectionStart=r.state.selectionStart,t.selectionEnd=r.state.selectionEnd}},1),o.createElement("div",{style:{position:"relative",display:"inline-block"},className:"passwordField","data-valid":this.state.isValid,"data-score":this.state.score,"data-entropy":this.state.entropy},o.createElement("input",i({ref:this.props.id,className:"passwordField__input",type:this.state.isPassword?"password":"text",value:this.state.value,style:this.state.isPassword?null:this.unMaskStyle,onChange:this.handleChange},a)),t)}});t.exports=l},function(t,e){"use strict";function n(t,e,n){function s(e){var n=v,s=f;return v=f=void 0,k=e,b=t.apply(s,n)}function o(t){return k=t,m=setTimeout(p,e),S?s(t):b}function a(t){var n=t-x,s=t-k,i=e-n;return I?A(i,y-s):i}function l(t){var n=t-x,s=t-k;return!x||n>=e||0>n||I&&s>=y}function p(){var t=w();return l(t)?u(t):void(m=setTimeout(p,a(t)))}function u(t){return clearTimeout(m),m=void 0,E&&v?s(t):(v=f=void 0,b)}function d(){void 0!==m&&clearTimeout(m),x=k=0,v=f=m=void 0}function h(){return void 0===m?b:u(w())}function g(){var t=w(),n=l(t);if(v=arguments,f=this,x=t,n){if(void 0===m)return o(x);if(I)return clearTimeout(m),m=setTimeout(p,e),s(x)}return void 0===m&&(m=setTimeout(p,e)),b}var v,f,y,b,m,x=0,k=0,S=!1,I=!1,E=!0;if("function"!=typeof t)throw new TypeError(c);return e=r(e)||0,i(n)&&(S=!!n.leading,I="maxWait"in n,y=I?M(r(n.maxWait)||0,e):y,E="trailing"in n?!!n.trailing:E),g.cancel=d,g.flush=h,g}function s(t){var e=i(t)?m.call(t):"";return e==p||e==u}function i(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function o(t){return!!t&&"object"==typeof t}function a(t){return"symbol"==typeof t||o(t)&&m.call(t)==d}function r(t){if("number"==typeof t)return t;if(a(t))return l;if(i(t)){var e=s(t.valueOf)?t.valueOf():t;t=i(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(h,"");var n=v.test(t);return n||f.test(t)?y(t.slice(2),n?2:8):g.test(t)?l:+t}var c="Expected a function",l=NaN,p="[object Function]",u="[object GeneratorFunction]",d="[object Symbol]",h=/^\s+|\s+$/g,g=/^[-+]0x[0-9a-f]+$/i,v=/^0b[01]+$/i,f=/^0o[0-7]+$/i,y=parseInt,b=Object.prototype,m=b.toString,M=Math.max,A=Math.min,w=Date.now;t.exports=n},function(t,e){"use strict";t.exports={statusColor:"#5CE592",statusInactiveColor:"#FC6F6F",unMaskColor:"#c7c7c7",unMaskTime:1400,zxcvbnSrc:"https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js",strengthLang:["Weak","Okay","Good","Strong","Great"]}},function(t,e){t.exports="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII="},function(e,n){e.exports=t}])}); \ No newline at end of file From 5d2c0275ca786411292ab0a41cf3e2b7e9f1dd4b Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 2 May 2016 23:27:55 -0700 Subject: [PATCH 30/34] Bumped version --- demo/demo.bundle.js | 2 +- demo/demo.bundle.js.map | 2 +- lib/react-ux-password-field.js | 2 +- lib/react-ux-password-field.min.js | 2 +- package.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/demo/demo.bundle.js b/demo/demo.bundle.js index 8dac338..716956f 100644 --- a/demo/demo.bundle.js +++ b/demo/demo.bundle.js @@ -12,7 +12,7 @@ function(t,e){"use strict";window.Rainbow=function(){function t(t){var e,n=t.get \****************************************/ function(t,e,n){/*! * React UX Password Field - * version: 0.9.11 + * version: 0.9.12 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/demo/demo.bundle.js.map b/demo/demo.bundle.js.map index 51ba23a..dc2c4b1 100644 --- a/demo/demo.bundle.js.map +++ b/demo/demo.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 48263daf91bf48063e9f","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","indexOf","undefined","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass","1","2","3","4","5","root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","navigator","test","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","invokeFunc","time","args","lastArgs","thisArg","lastThis","lastInvokeTime","result","apply","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","clearTimeout","trailing","flush","debounced","isInvoking","TypeError","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","isFunction","tag","objectToString","funcTag","genTag","isObjectLike","isSymbol","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","slice","reIsBadHex","objectProto","toString","Math","max","min","Date"],"mappings":"CAAS,SAAUA,GCInB,QAAAC,GAAAC,GAGA,GAAAC,EAAAD,GACA,MAAAC,GAAAD,GAAAE,OAGA,IAAAC,GAAAF,EAAAD,IACAE,WACAE,GAAAJ,EACAK,QAAA,EAUA,OANAP,GAAAE,GAAAM,KAAAH,EAAAD,QAAAC,IAAAD,QAAAH,GAGAI,EAAAE,QAAA,EAGAF,EAAAD,QAvBA,GAAAD,KAqCA,OATAF,GAAAQ,EAAAT,EAGAC,EAAAS,EAAAP,EAGAF,EAAAU,EAAA,GAGAV,EAAA;;;ADSM,SAASI,EAAQD,EAASH,GE/ChC,YAGAA,GAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GACRA,EAAQ,GAGRA,EAAQ,EAKR,IAAMW,GAAgBX,EAAQ,GAC1BY,EAAgBZ,EAAQ,EAE5BW,GAAME,OACJF,EAAAG,cFgDC,OACA,KEhDCH,EAAAG,cFkDC,WACA,KElDCH,EAAAG,cFoDC,SEpDMC,QAAQ,aFsDd,YErDDJ,EAAAG,cAACF,GACCP,GAAG,YACHW,KAAK,YACLC,YAAY,wCACZC,SAAU,EACVC,UAAW,EACXC,OAAO,YAIbC,SAASC,eAAe;;;AF6DpB,SAASlB,EAAQD,GG9FvBC,EAAAD,QAAAQ;;;AHuGM,SAASP,EAAQD,GAGtB,YIzGDoB,QAAOC,QAAQ,WAAW,QAASC,GAAEC,GAAG,GAAIC,GAAElB,EAAEiB,EAAEE,cAAcF,EAAEE,aAAa,kBAAkB,CAAE,KAAInB,EAAkB,IAAfiB,EAAEA,EAAEG,WAAeF,EAAE,EAAEA,EAAED,EAAEI,SAASH,EAAE,GAAG,kBAAkBD,EAAEC,GAAGI,SAAS,MAAOL,GAAEC,GAAGK,SAAU,OAAOvB,GAAE,QAASwB,GAAEP,GAAG,GAAIC,GAAEF,EAAEC,IAAID,EAAEC,EAAEQ,WAAY,KAAIP,EAAE,CAAC,GAAIlB,GAAE,yBAAyBiB,EAAEA,EAAES,UAAUC,MAAM3B,IAAIiB,EAAEQ,WAAWC,UAAUC,MAAM3B,MAAMkB,EAAED,EAAE,IAAI,MAAOC,GAAE,QAASU,GAAEX,EAAEC,GAAG,IAAI,GAAIlB,KAAK6B,GAAEC,GAA0F,GAAtF9B,EAAE+B,SAAS/B,EAAE,KAAOiB,GAAGjB,GAAGkB,GAAGW,EAAEC,GAAG9B,GAAG,EAAKA,GAAHiB,GAAMC,GAAGW,EAAEC,GAAG9B,YAAU6B,GAAEC,GAAG9B,SAAUgC,GAAEF,GAAG9B,IAAMiB,GAAGjB,GAAGiB,EAAEY,EAAEC,GAAG9B,IACvfkB,EAAElB,GAAGkB,EAAEW,EAAEC,GAAG9B,GAAG,OAAM,CAAG,QAAM,EAAG,QAASiC,GAAEhB,EAAEC,GAAG,MAAM,gBAAgBD,EAAEiB,QAAQ,MAAM,MAAMC,EAAE,IAAIA,EAAE,IAAI,KAAKjB,EAAE,UAAU,QAASkB,GAAEnB,EAAEC,EAAElB,EAAEqC,GAAG,GAAG,mBAAqBpB,IAAG,OAAOA,EAAEoB,QAAQ,CAAC,GAAIC,GAAErB,EAAEsB,KAAKvC,EAAG,IAAGsC,EAAE,GAAGE,GAAGtB,EAAEX,MAAM,gBAAiBW,GAAEuB,QAAQ,KAAKvB,EAAEX,KAAKW,EAAEuB,QAAQ,SAAUvB,GAAEuB,QAAQ,GAAI,IAAIC,GAAEJ,EAAE,GAAGK,EAAEL,EAAEM,MAAMC,EAAEP,EAAE,GAAGjB,OAAOsB,EAAEG,EAAE,WAAW,QAASR,KAAIF,EAAEnB,EAAEC,EAAElB,EAAEqC,GAAGG,EAAE,IAAI,EAAEF,IAAIS,WAAWT,EAAE,GAAI,IAAGV,EAAEe,EAAEE,GAAGC,QAAQ,CAAC,GAAI/C,GAAEiD,EAAE9B,EAAEuB,SAASN,EAAE,QAAFA,GAAWlB,EAAEjB,EAAEqC,GAAG,GAAGpB,GAAGjB,EAAEqB,OAAOgB,EAAEK,OAAO,CAAC,GAAIZ,GAAEQ,EAAEtC,EAAEiB,GAAI,IAAGa,EAAE,CAAC,GAAIa,GACvfzB,EAAEuB,QAAQzC,EAAEiB,IAAIY,EAAEc,EAAEM,SAASH,EAAEH,EAAEpC,MAAMoC,EAAEF,QAAQE,EAAEF,QAAQE,EAAEX,EAAE,SAASd,EAAEY,EAAEa,GAAG,GAAId,EAAEA,GAAE,CAAE,IAAIiB,EAAE,KAAIA,EAAE,EAAEA,EAAE9C,EAAEiB,KAAK6B,EAAER,EAAEQ,KAAKjB,GAAIS,EAAEQ,GAAGzB,OAAQS,GAAEa,EAAEV,EAAEU,EAAEb,GAAGA,EAAEY,EAAEA,EAAEQ,OAAO,EAAErB,GAAGa,EAAEQ,OAAOrB,GAAGK,QAAQhB,EAAEY,GAAGK,IAAIlB,EAAEjB,EAAEqC,GAAIR,GAAEsB,EAAErB,EAAED,EAAE,SAASZ,GAAGe,EAAEF,EAAEb,KAAgB,gBAAJ0B,GAAaX,EAAEF,EAAEA,EAAEa,GAAGS,EAAEtB,EAAEgB,EAAEzB,OAAOyB,GAAGA,GAAG,SAAS7B,GAAGe,EAAEF,EAAEb,EAAE0B,EAAEF,QAAQE,EAAEpC,KAAK,SAAU4B,KAAIlB,EAAEjB,EAAEqC,IAAKF,GAAE,EAAEpC,EAAE,SAASkB,GAAGC,EAAEX,OAAOU,EAAEgB,EAAEf,EAAEX,KAAKU,IAAQe,EAAEF,KAAIE,EAAEF,MAAMD,EAAEC,OAAME,EAAEF,GAAGa,IAAIT,QAAQI,EAAE,GAAGe,OAAOpC,GAAGY,EAAEC,GAAGa,GAAGE,EAAEC,WAAYT,MAAK,QAASW,GAAE/B,GAAG,GAASjB,GAALkB,IAAO,KAAIlB,IAAKiB,GAAEA,EAAEqC,eAAetD,IACvgBkB,EAAEqC,KAAKvD,EAAG,OAAOkB,GAAEsC,KAAK,SAASvC,EAAEC,GAAG,MAAOA,GAAED,IAAI,QAASmC,GAAEnC,EAAEC,EAAElB,GAAG,QAASqC,GAAEnB,EAAEwB,GAAGA,EAAExB,EAAEG,OAAOe,EAAElB,EAAEwB,GAAGe,QAAQvC,EAAEwB,GAAGzB,EAAE,WAAWoB,EAAEnB,IAAIwB,KAAKgB,EAAEzC,EAAE,SAASA,SAAUe,GAAEF,SAAUD,GAAEC,KAAKA,EAAE9B,EAAEiB,OAAOa,EAAEO,EAAEnB,EAAE,GAAG,QAASwC,GAAEzC,EAAEC,GAAG,QAASlB,GAAEiB,EAAEC,EAAEmB,EAAER,GAAG,GAAGQ,EAAEnB,EAAEG,OAAO,GAAGsC,CAAE,IAAIb,GAAE5B,EAAEmB,GAAGF,EAAEH,EAAEF,GAAGgB,GAAG7B,EAAEA,EAAEiC,OAAO,EAAEJ,GAAG7B,EAAEiC,OAAOJ,GAAGZ,QAAQC,EAAED,QAAQC,EAAE,SAASW,EAAE,WAAW9C,EAAEiB,EAAEC,IAAImB,EAAER,GAAM8B,GAAE,IAAJ,EAAQb,IAAIC,WAAWD,EAAE,OAAQjB,GAAEZ,GAAG,GAAIoB,GAAEW,EAAEhB,EAAEF,GAAI9B,GAAEiB,EAAEoB,EAAE,EAAEnB,GAAG,QAASiC,GAAElC,EAAEC,EAAElB,GAAG,GAAI8B,GAAE/B,EAAEmB,OAAOoB,EAAEvC,EAAE6D,OAAO1C,EAAE2C,EAAE3C,GAAGY,EAAEA,EAAEgC,OAAOxB,EAAGc,GAAEnC,EAAEiB,QAAQ,KACtf,QAAQA,QAAQ,KAAK,QAAQA,QAAQ,iBAAiB,SAAShB,EAAElB,GAAG,QAAS+D,GAACC,EAAAC,EAAAC,GJuLzE,GAAIC,IAAS,CAEbC,GAAW,KAAOD,GIzL8D,CJ0L9E,GI1LwElD,GAAC+C,EAAC9C,EAAC+C,EAACjE,EAACkE,CAAE,IJ6L/EC,GAAS,EI7LyEjD,EAAED,EAAEI,OAAO,CAAC,GAAIS,GAAEb,EAAEC,GAAGoB,EAAEd,EAAEM,EAAS,IAAE,IAAI,IAAIA,EAAEJ,UAAU,KAAK2C,QAAQ,eAAe/B,EJsM/J,CACL0B,EIvM+U/C,EJwM/UgD,IIxMmV/C,EJyMnVgD,EIzMqVlE,EJ0MrVmE,GAAS,EI1MqFrC,EAAOQ,EAACgC,MJ4MtG,SAASF,GAXT,MIjMuK9B,GAAEA,EAAEiC,cAAczC,EAAEJ,WAAWI,EAAEJ,UAAU,WAAW,UAAUyB,EAAErB,EAAE0C,UAAUlC,EAAE,SAASI,GAAGZ,EAAE0C,UAAU9B,EAAEV,KAAKH,KAAK5B,GAAGA,EAAE6B,EAAEQ,GAAGS,WAAW,WAAWgB,EAAE9C,IAAIC,EAAElB,IAAI,KAAiBA,GAAGA,KAAI,QAASyE,GAAExD,EAAEC,GAAG,GAC1XoB,GAD8XrB,EAAEA,GAAG,kBAAmBA,GAAEyD,qBAAqBzD,EAAEL,SAASZ,EAAEiB,EAAEyD,qBAAqB,OAAO5C,EAAEb,EAAEyD,qBAAqB,QAC/e7C,KAAKc,IAAK,KAAIL,EAAE,EAAEA,EAAEtC,EAAEqB,SAASiB,EAAEtC,EAAEsC,GAAGoC,qBAAqB,QAAQrD,OAAOrB,EAAEsC,GAAGkC,UAAUxE,EAAEsC,GAAGkC,UAAUtC,QAAQ,OAAO,IAAIA,QAAQ,OAAO,IAAIL,EAAE0B,KAAKvD,EAAEsC,GAAI,KAAIA,EAAE,EAAEA,EAAER,EAAET,SAASiB,EAAEK,EAAEY,KAAKzB,EAAEQ,GAAIyB,GAAEpB,EAAEmB,OAAOjC,GAAG,EAAEX,GAAG,GAAwCiB,GAAElC,EAAtC+B,KAAKH,KAAK9B,KAAK8D,KAAK/B,EAAE,EAAE8B,EAAE,EAAEpB,EAAE,EAAEmB,EAAE,CAAM,QAAOgB,OAAO,SAAS1D,EAAEC,EAAElB,GAAG,GAAG4E,UAAUvD,SAASH,EAAED,EAAEA,EAAE2C,GAAGC,EAAE5C,GAAGjB,EAAED,EAAEkB,GAAGC,EAAE4C,OAAO/D,EAAEkB,SAASC,EAAE,SAASD,GAAGhB,EAAEgB,GAAGA,EAAE,SAAS4D,GAAG1C,EAAE0C,GAAGC,MAAM,SAAS7D,EAAEC,EAAElB,GAAG,MAAG,gBAAiBiB,GAASkC,EAAElC,EAAEC,EAAElB,GAAM,kBAAmBiB,GAASwD,EAAE,EAAExD,OAAGwD,GAAExD,EAAEC,QACzeN,SAASmE,iBAAiBnE,SAASmE,iBAAiB,mBAAmBhE,QAAQ+D,OAAM,GAAIhE,OAAOkE,YAAY,SAASjE,QAAQ+D,OAAO/D,QAAQkE,YAAYlE,QAAQG,EAAEH,QAAQmE,SAASnE,QAAQE,EAAEF,QAAQ4D,SAASlC,SAAS0C,IAAI5E,KAAK,mBAAmBkD,QAAQ,WAAWlD,KAAK,cAAckD,QAAQ,QAAQ2B,GAAG7E,KAAK,SAASkC,SAASlC,KAAK,4BAA4BkD,QAAQ,iBAAiBA,QAAQ,sDAAsDlD,KAAK,UAAUkD,QAAQ,0CAA0ClD,KAAK,mBAAmBkD,QAAQ,wDAAwDhB,SAAS0C,EAAE,WAAW1B,QAAQ,0UACjnBlD,KAAK,oBAAoBkD,QAAQ,qBAAqBlD,KAAK,mBAAmBkD,QAAQ,qCAAqChB,SAAS0C,EAAE,iBAAiB1B,QAAQ,kBAAkBhB,SAAS0C,EAAE,mBAAmBC,EAAE,wBAAwB3B,QAAQ,8BAA8B1C,QAAQ4D,OAAO,UAAUpE,KAAK,QAAQkC,SAAS0C,GAAGlC,SAAS,UAAUQ,QAAQ,uBAAuBhB,SAAS2C,EAAE,UAAU3B,QAAQ,uCAAuClD,KAAK,mBAAmBkD,QAAQ,qBAAqBlD,KAAK,UAAUkD,QAAQ,kBAAkBlD,KAAK,mBAAmBkD,QAAQ,2BAA2BlD,KAAK,kBAAkBkD,QAAQ,gFAAgFhB,SAAS0C,EAAE,WAAW1B,QAAQ,wIAC9tB,GAAI1C,QAAQ4D,OAAO,eAAepE,KAAK,WAAWkD,QAAQ,uBAAuBlD,KAAK,UAAUkD,QAAQ,2BAA2BhB,SAAS0C,EAAE,oBAAoB1B,QAAQ,mCAAmChB,SAAS0C,EAAE,oBAAoB1B,QAAQ,oCAAoChB,SAAS0C,EAAE,kBAAkB1B,QAAQ,kGAAkGlD,KAAK,gBAAgBkC,SAAS0C,EAAE,qBAAqBC,GAAG7E,KAAK,yBAAyBkD,QAAQ,aAC7f4B,EAAE,sBAAsBC,EAAE,0BAA0B7B,QAAQ,oCAAoChB,SAAS0C,EAAE,UAAUE,EAAE,mBAAmB5B,QAAQ,4CAA4ChB,SAAS0C,EAAE,UAAUC,EAAE,mBAAmB3B,QAAQ,wBAAwBlD,KAAK,kBAAkBkD,QAAQ,+BAA+B1C,QAAQ4D,OAAO,SAASpE,KAAK,sBAAsBkC,SAAS2C,GAAGnC,SAAS,QAAQQ,QAAQ,8CAA8ClD,KAAK,sBAAsBkC,SAAS0C,GAAG1C,SAAS0C,EAAE,oBAAoBC,IAAI7E,KAAK,mBAAmBkD,QAAQ,YAAYlD,KAAK,SAASkD,QAAQ,oBAAoBlD,KAAK,6BAA6BkD,QAAQ,WAAW4B,EAAE,qBAAqB5B,QAAQ,8BAA8B2B,GAAGnC,SAAS,OAAOoC,EAAE,oBAAoBC,EAAE,mBAAmBC,EAAE,qBAAqB9B,QAAQ,wDAC1zBlD,KAAK,qBAAqBkC,SAAS0C,GAAG1C,SAAS0C,EAAE,qBAAqBC,IAAI7E,KAAK,oBAAoBkD,QAAQ,aAAalD,KAAK,SAASkD,QAAQ,oBAAoBlD,KAAK,8BAA8BkD,QAAQ,WAAW4B,EAAE,sBAAsB5B,QAAQ,+BAA+B2B,GAAGnC,SAAS,cAAcoC,EAAE,qBAAqBC,EAAE,oBAAoBC,EAAE,sBAAsB9B,QAAQ,kEAAkElD,KAAK,eAAekD,QAAQ,4BAC5dhB,SAAS0C,EAAE,mBAAmBC,EAAE,qBAAqB3B,QAAQ,yBAAyBlD,KAAK,cAAckC,SAAS0C,EAAE,cAAcC,EAAE,sBAAsBC,EAAE,oBAAoB5B,QAAQ,4BAA4BhB,SAAS0C,EAAE,qBAAqB1B,QAAQ,sBAAsBhB,SAAS0C,EAAE,mBAAmBC,EAAE,eAAeC,EAAE,eAAeC,EAAE,gBAAgB7B,QAAQ,uBAAuBhB,SAAS0C,EAAE,mBAAmBC,EAAE,iBAAiB3B,QAAQ,2BAA2BhB,SAAS0C,EAAE,qBACne1B,QAAQ,wCAAuC;;;AJ2OzC,SAAS9D,EAAQD,EAASH;;;;;;;;;AAW/B,cK1PD,SAA2CiG,EAAMC,GAE/C9F,EAAOD,QAAU+F,EAAQlG,EAAQ,KAOlC+E,OAAQ,SAASoB,GAClB,MAAgB,UAAUpG,GAKhB,QAASC,GAAoBC,GAG5B,GAAGC,EAAiBD,GACnB,MAAOC,GAAiBD,GAAUE,OAGnC,IAAIC,GAASF,EAAiBD,IAC7BE,WACAE,GAAIJ,EACJK,QAAQ,EAUT,OANAP,GAAQE,GAAUM,KAAKH,EAAOD,QAASC,EAAQA,EAAOD,QAASH,GAG/DI,EAAOE,QAAS,EAGTF,EAAOD,QAvBf,GAAID,KAqCJ,OATAF,GAAoBQ,EAAIT,EAGxBC,EAAoBS,EAAIP,EAGxBF,EAAoBU,EAAI,GAGjBV,EAAoB,KAK/B,SAASI,EAAQD,EAASH,GAM/B,QAASoG,GAAyBC,EAAKC,GAAQ,GAAIC,KAAa,KAAK,GAAIzD,KAAKuD,GAAWC,EAAKxB,QAAQhC,IAAM,GAAkB0D,OAAOC,UAAU1C,eAAexD,KAAK8F,EAAKvD,KAAcyD,EAAOzD,GAAKuD,EAAIvD,GAAM,OAAOyD,GAFnN,GAAIG,GAAWF,OAAOG,QAAU,SAAUJ,GAAU,IAAK,GAAIzD,GAAI,EAAGA,EAAIuC,UAAUvD,OAAQgB,IAAK,CAAE,GAAI8D,GAASvB,UAAUvC,EAAI,KAAK,GAAI+D,KAAOD,GAAcJ,OAAOC,UAAU1C,eAAexD,KAAKqG,EAAQC,KAAQN,EAAOM,GAAOD,EAAOC,IAAY,MAAON,IAInP5F,EAAQX,EAAoB,GAC5B8G,EAAKnG,EAAMoG,UACXC,EAAShH,EAAoB,GAC7BiH,EAAWjH,EAAoB,GAE/BY,EAAgBD,EAAMuG,aACxBC,YAAa,gBAIbC,WACEC,QAASP,EAAGQ,KACZC,YAAaT,EAAGU,OAChBC,oBAAqBX,EAAGU,OACxBtG,SAAU4F,EAAGY,OACbC,SAAUb,EAAGc,KACbC,WAAYf,EAAGQ,KACfQ,WAAYhB,EAAGY,OACfvG,UAAW2F,EAAGY,OACdK,aAAcjB,EAAGkB,MACjB3H,GAAIyG,EAAGU,QAKTS,gBAAiB,WACf,OACEZ,SAAS,EACTE,YAAaP,EAAOO,YACpBE,oBAAqBT,EAAOS,oBAC5BrG,OAAQ4F,EAAOkB,UACfhH,SAAU,EACV2G,YAAY,EACZC,WAAYd,EAAOc,WACnBC,aAAcf,EAAOe,aACrB1H,GAAI,UAIR8H,gBAAiB,WACf,OACEC,MAAO,GACPC,MAAO,EACPC,QAAS,EACTC,YAAY,EACZC,SAAS,IAMbC,cAAe,SAAuBJ,GACpC,GAAIK,GAA6B,KAArBC,KAAKC,MAAMR,MAAe,EAAI,GAAKC,EAAQ,CACvD,QACEK,MAAOC,KAAKE,MAAMzH,OAASsH,EAAQ,IAAM,OACzCI,SAAU,MACVC,QAASJ,KAAKE,MAAMzH,OAAiB,IAARsH,EAAc,GAAK,IAChDM,WAAYL,KAAKC,MAAMJ,QAAUG,KAAKE,MAAMtB,YAAcoB,KAAKE,MAAMpB,oBACrEwB,OAAQ,EACRC,WAAY,mBACZC,QAAS,eACTC,YAAa,OAIjBC,aACE9D,MAAOyB,EAAOsC,YACdC,WAAY,KAGdC,WACEC,SAAU,WACVC,OAAQ,IACRhB,MAAO,OACPiB,SAAU,SACVV,OAAQ,IAGVW,WACET,QAAS,eACTJ,QAAS,IACTU,SAAU,WACVI,IAAK,EACLnB,MAAO,MAGToB,mBACEC,SAAU,GACVN,SAAU,WACVI,IAAK,GAKPG,gBAAiB,WACfrB,KAAKsB,UACH1B,YAAY,KAMhB2B,gBAAiB,WACfvB,KAAKsB,UACH1B,YAAaI,KAAKC,MAAML,cAI5B4B,aAAc,SAAsBpH,GAClCA,EAAEqH,gBAEF,IAEI/B,GAFAgC,EAAgBtH,EAAEuH,YAAY/D,OAC9BgE,EAAMxH,EAAEwD,OAAO6B,KAGnBO,MAAKsB,UACH7B,MAAOmC,EACP/B,QAASzF,EAAEwD,OAAOiE,SAASC,MAC3BC,eAAgBL,EAAcK,eAC9BC,aAAcN,EAAcM,eAG1BhC,KAAKE,MAAMhB,YACbc,KAAKiC,mBAILvC,EADEM,KAAKE,MAAMzH,OACLuH,KAAKkC,aAAaN,GAElB5B,KAAKC,MAAMP,MAIjBM,KAAKE,MAAMiC,UACbnC,KAAKE,MAAMiC,SAASP,EAAK5B,KAAKC,MAAMJ,QAASH,GAG3CM,KAAKE,MAAM1H,WACbwH,KAAKoC,gBAAgBhI,EAAEwD,OAAO6B,MAAMtG,SAIxC8I,iBAAkB,WAGhBjC,KAAKsB,UACH1B,YAAY,IAIdI,KAAKqC,gBAGPH,aAAc,SAAsBN,GAElC,GAAsB,mBAAXnJ,SAAmD,mBAAlBG,QAAOH,OAAnD,CAIA,GAAI6J,GAAQ7J,OAAOmJ,GACfW,EAAeD,EAAM5C,KAsBzB,OApBAM,MAAKsB,UACH5B,MAAO6C,EACP5C,QAAS2C,EAAM3C,UAGb4C,EAAevC,KAAKE,MAAM3H,UAC5ByH,KAAKsB,UACHzB,SAAS,IAKTG,KAAKE,MAAMlB,UAAYgB,KAAKC,MAAMP,QAAU6C,GAC9CvC,KAAKE,MAAMlB,SAASgB,KAAKC,MAAMP,MAAO6C,EAAcX,GAG5B,UAAtB5B,KAAKE,MAAMzH,QACb+J,QAAQC,MAAMH,GAGTC,IAGTH,gBAAiB,SAAyBM,GACpCA,GAAO1C,KAAKE,MAAM1H,WACpBwH,KAAKsB,UACHzB,SAAS,KAKf8C,mBAAoB,WAClB,GAAIpD,EAGAS,MAAKE,MAAMzH,QAA4B,mBAAXA,UAE9B8G,EAAkC,UAAtBS,KAAKE,MAAMzH,OAAqBuH,KAAKE,MAAMzH,OAAS4F,EAAOkB,UAGvE,WACE,GAAIxG,EAAEA,GAAI,WACR,GAAIA,GAAGC,CAA8I,OAA5IA,GAAIN,SAASP,cAAc,UAAUa,EAAE4J,IAAMrD,EAAUvG,EAAE6J,KAAO,kBAAkB7J,EAAE8J,OAAQ,EAAG/J,EAAIL,SAAS8D,qBAAqB,QAAQ,GAAUzD,EAAEQ,WAAWwJ,aAAa/J,EAAGD,IACzL,MAAQH,OAAOkE,YAAclE,OAAOkE,YAAY,SAAU/D,GAAKH,OAAOiE,iBAAiB,OAAQ9D,GAAG,IACnGnB,KAAKoI,OAINA,KAAKE,MAAMhB,aACbc,KAAKqC,aAAe/D,EAAS0B,KAAKqB,gBAAiBrB,KAAKE,MAAMf,cAIlE6D,qBAAsB,WAGhBhD,KAAKqC,cACPrC,KAAKqC,aAAaY,UAItB/K,OAAQ,WACN,GAAIwG,EAEAsB,MAAKE,MAAMxB,UACbA,EAAU1G,EAAMG,cACd,OACEqB,UAAW,sBAAuB0J,MAAOlD,KAAKa,WAChD7I,EAAMG,cACJ,QACE+K,MAAOlD,KAAKiB,UAAWzH,UAAW,uBACpCxB,EAAMG,cAAc,OAASyK,IAAKvL,EAAoB,GAAIiJ,OAAQ,KAAMP,MAAO,QAEjF/H,EAAMG,cAAc,QAAU+K,MAAOlD,KAAKF,cAAcE,KAAKC,MAAMP,OAAQlG,UAAW,yBACtFxB,EAAMG,cACJ,QACE+K,MAAOlD,KAAKmB,kBAAmB3H,UAAW,2BAC5CwG,KAAKE,MAAMzH,QAAUuH,KAAKC,MAAMR,MAAMtG,OAAS,GAAK6G,KAAKE,MAAMd,aAAajG,OAAS,EAAI6G,KAAKE,MAAMd,aAAaY,KAAKC,MAAMP,OAAS,OAM3I,IAAIyD,GAASnD,KAAKE,MAGdA,GAFWiD,EAAOhB,SAEV1E,EAAyB0F,GAAS,cAG1CC,EAAOpD,IAUX,OATyB,mBAAdqD,YACTxI,WAAW,WACT,GAAK,UAAUyI,KAAKD,UAAUE,WAA9B,CACA,GAAIC,GAAOJ,EAAKK,KAAKL,EAAKlD,MAAMxI,IAAIgM,YACpCF,GAAKzB,eAAiBqB,EAAKnD,MAAM8B,eACjCyB,EAAKxB,aAAeoB,EAAKnD,MAAM+B,eAC9B,GAGEhK,EAAMG,cACX,OAEE+K,OAASpC,SAAU,WAAYN,QAAS,gBACxChH,UAAW,gBACXmK,aAAc3D,KAAKC,MAAMJ,QACzB+D,aAAc5D,KAAKC,MAAMP,MACzBmE,eAAgB7D,KAAKC,MAAMN,SAE7B3H,EAAMG,cAAc,QAAS4F,GAC3B+F,IAAK9D,KAAKE,MAAMxI,GAChB8B,UAAW,uBACXqJ,KAAM7C,KAAKC,MAAML,WAAa,WAAa,OAC3CH,MAAOO,KAAKC,MAAMR,MAClByD,MAAOlD,KAAKC,MAAML,WAAa,KAAOI,KAAKU,YAC3CyB,SAAUnC,KAAKwB,cACdtB,IACHxB,KAKNjH,GAAOD,QAAUS,GAIZ,SAASR,EAAQD,GAEtBC,EAAOD,QAAUgG,GAIZ,SAAS/F,EAAQD,GAItBC,EAAOD,SACLoH,YAAa,UACbE,oBAAqB,UACrB6B,YAAa,UACbxB,WAAY,KACZI,UAAW,kEACXH,cAAe,OAAQ,OAAQ,OAAQ,SAAU,WAK9C,SAAS3H,EAAQD,GA0HtB,QAAS8G,GAASW,EAAM8E,EAAMC,GAuB5B,QAASC,GAAWC,GAClB,GAAIC,GAAOC,EACPC,EAAUC,CAKd,OAHAF,GAAWE,EAAWlI,OACtBmI,EAAiBL,EACjBM,EAASvF,EAAKwF,MAAMJ,EAASF,GAI/B,QAASO,GAAYR,GAMnB,MAJAK,GAAiBL,EAEjBS,EAAU9J,WAAW+J,EAAcb,GAE5Bc,EAAUZ,EAAWC,GAAQM,EAGtC,QAASM,GAAcZ,GACrB,GAAIa,GAAoBb,EAAOc,EAC3BC,EAAsBf,EAAOK,EAC7BC,EAAST,EAAOgB,CAEpB,OAAOG,GAASC,EAAUX,EAAQY,EAAUH,GAAuBT,EAGrE,QAASa,GAAanB,GACpB,GAAIa,GAAoBb,EAAOc,EAC3BC,EAAsBf,EAAOK,CAKjC,QAAQS,GAAgBD,GAAqBhB,GAA4B,EAApBgB,GAAyBG,GAAUD,GAAuBG,EAGjH,QAASR,KACP,GAAIV,GAAOoB,GACX,OAAID,GAAanB,GACRqB,EAAarB,QAGtBS,EAAU9J,WAAW+J,EAAcE,EAAcZ,KAGnD,QAASqB,GAAarB,GAMpB,MALAsB,cAAab,GACbA,EAAUvI,OAINqJ,GAAYrB,EACPH,EAAWC,IAEpBE,EAAWE,EAAWlI,OACfoI,GAGT,QAASvB,KACS7G,SAAZuI,GACFa,aAAab,GAEfK,EAAeT,EAAiB,EAChCH,EAAWE,EAAWK,EAAUvI,OAGlC,QAASsJ,KACP,MAAmBtJ,UAAZuI,EAAwBH,EAASe,EAAaD,KAGvD,QAASK,KACP,GAAIzB,GAAOoB,IACPM,EAAaP,EAAanB,EAM9B,IAJAE,EAAW1H,UACX4H,EAAWtE,KACXgF,EAAed,EAEX0B,EAAY,CACd,GAAgBxJ,SAAZuI,EACF,MAAOD,GAAYM,EAErB,IAAIE,EAIF,MAFAM,cAAab,GACbA,EAAU9J,WAAW+J,EAAcb,GAC5BE,EAAWe,GAMtB,MAHgB5I,UAAZuI,IACFA,EAAU9J,WAAW+J,EAAcb,IAE9BS,EAnHT,GAAIJ,GACAE,EACAc,EACAZ,EACAG,EACAK,EAAe,EACfT,EAAiB,EACjBM,GAAU,EACVK,GAAS,EACTO,GAAW,CAEf,IAAmB,kBAARxG,GACT,KAAM,IAAI4G,WAAUC,EA2GtB,OAzGA/B,GAAOgC,EAAShC,IAAS,EACrBiC,EAAShC,KACXa,IAAYb,EAAQa,QACpBK,EAAS,WAAalB,GACtBoB,EAAUF,EAASe,EAAUF,EAAS/B,EAAQoB,UAAY,EAAGrB,GAAQqB,EACrEK,EAAW,YAAczB,KAAYA,EAAQyB,SAAWA,GAkG1DE,EAAU1C,OAASA,EACnB0C,EAAUD,MAAQA,EACXC,EAqBT,QAASO,GAAWzG,GAIlB,GAAI0G,GAAMH,EAASvG,GAAS2G,EAAexO,KAAK6H,GAAS,EACzD,OAAO0G,IAAOE,GAAWF,GAAOG,EA4BlC,QAASN,GAASvG,GAChB,GAAIoD,SAAcpD,EAClB,SAASA,IAAkB,UAARoD,GAA4B,YAARA,GA2BzC,QAAS0D,GAAa9G,GACpB,QAASA,GAAyB,gBAATA,GAqB3B,QAAS+G,GAAS/G,GAChB,MAAuB,gBAATA,IAAqB8G,EAAa9G,IAAU2G,EAAexO,KAAK6H,IAAUgH,EA0B1F,QAASV,GAAStG,GAChB,GAAoB,gBAATA,GACT,MAAOA,EAET,IAAI+G,EAAS/G,GACX,MAAOiH,EAET,IAAIV,EAASvG,GAAQ,CACnB,GAAIkH,GAAQT,EAAWzG,EAAMmH,SAAWnH,EAAMmH,UAAYnH,CAC1DA,GAAQuG,EAASW,GAASA,EAAQ,GAAKA,EAEzC,GAAoB,gBAATlH,GACT,MAAiB,KAAVA,EAAcA,GAASA,CAEhCA,GAAQA,EAAMzF,QAAQ6M,EAAQ,GAC9B,IAAIC,GAAWC,EAAWzD,KAAK7D,EAC/B,OAAOqH,IAAYE,EAAU1D,KAAK7D,GAASwH,EAAaxH,EAAMyH,MAAM,GAAIJ,EAAW,EAAI,GAAKK,EAAW7D,KAAK7D,GAASiH,GAAOjH,EAxX9H,GAAIqG,GAAkB,sBAGlBY,EAAM,IAGNL,EAAU,oBACVC,EAAS,6BACTG,EAAY,kBAGZI,EAAS,aAGTM,EAAa,qBAGbJ,EAAa,aAGbC,EAAY,cAGZC,EAAepN,SAGfuN,EAAcvJ,OAAOC,UAOrBsI,EAAiBgB,EAAYC,SAG7BpB,EAAYqB,KAAKC,IACjBpC,EAAYmC,KAAKE,IAmBjBlC,EAAMmC,KAAKnC,GAmUf7N,GAAOD,QAAU8G,GAIZ,SAAS7G,EAAQD,GAEtBC,EAAOD,QAAU;;;ALmQZ,SAASC,EAAQD;;;AASjB,SAASC,EAAQD;;;AASjB,SAASC,EAAQD;;;AASjB,SAASC,EAAQD;;;AASjB,SAASC,EAAQD;;;AASjB,SAASC,EAAQD","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t });\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t d = e = undefined;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.11\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tif (typeof navigator !== 'undefined') {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/** Used as references for various `Number` constants. */\n\t\t\t\tvar NAN = 0 / 0;\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\tvar funcTag = '[object Function]',\n\t\t\t\t genTag = '[object GeneratorFunction]',\n\t\t\t\t symbolTag = '[object Symbol]';\n\t\n\t\t\t\t/** Used to match leading and trailing whitespace. */\n\t\t\t\tvar reTrim = /^\\s+|\\s+$/g;\n\t\n\t\t\t\t/** Used to detect bad signed hexadecimal string values. */\n\t\t\t\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\t\n\t\t\t\t/** Used to detect binary string values. */\n\t\t\t\tvar reIsBinary = /^0b[01]+$/i;\n\t\n\t\t\t\t/** Used to detect octal string values. */\n\t\t\t\tvar reIsOctal = /^0o[0-7]+$/i;\n\t\n\t\t\t\t/** Built-in method references without a dependency on `root`. */\n\t\t\t\tvar freeParseInt = parseInt;\n\t\n\t\t\t\t/** Used for built-in method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objectToString = objectProto.toString;\n\t\n\t\t\t\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeMin = Math.min;\n\t\n\t\t\t\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\t\t\t\tvar now = Date.now;\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar lastArgs,\n\t\t\t\t\t lastThis,\n\t\t\t\t\t maxWait,\n\t\t\t\t\t result,\n\t\t\t\t\t timerId,\n\t\t\t\t\t lastCallTime = 0,\n\t\t\t\t\t lastInvokeTime = 0,\n\t\t\t\t\t leading = false,\n\t\t\t\t\t maxing = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = toNumber(wait) || 0;\n\t\t\t\t\tif (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxing = 'maxWait' in options;\n\t\t\t\t\t\tmaxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction invokeFunc(time) {\n\t\t\t\t\t\tvar args = lastArgs,\n\t\t\t\t\t\t thisArg = lastThis;\n\t\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction leadingEdge(time) {\n\t\t\t\t\t\t// Reset any `maxWait` timer.\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\t// Start the timer for the trailing edge.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t// Invoke the leading edge.\n\t\t\t\t\t\treturn leading ? invokeFunc(time) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction remainingWait(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime,\n\t\t\t\t\t\t result = wait - timeSinceLastCall;\n\t\n\t\t\t\t\t\treturn maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction shouldInvoke(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime;\n\t\n\t\t\t\t\t\t// Either this is the first call, activity has stopped and we're at the\n\t\t\t\t\t\t// trailing edge, the system time has gone backwards and we're treating\n\t\t\t\t\t\t// it as the trailing edge, or we've hit the `maxWait` limit.\n\t\t\t\t\t\treturn !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction timerExpired() {\n\t\t\t\t\t\tvar time = now();\n\t\t\t\t\t\tif (shouldInvoke(time)) {\n\t\t\t\t\t\t\treturn trailingEdge(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Restart the timer.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, remainingWait(time));\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction trailingEdge(time) {\n\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\ttimerId = undefined;\n\t\n\t\t\t\t\t\t// Only invoke if we have `lastArgs` which means `func` has been\n\t\t\t\t\t\t// debounced at least once.\n\t\t\t\t\t\tif (trailing && lastArgs) {\n\t\t\t\t\t\t\treturn invokeFunc(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timerId !== undefined) {\n\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCallTime = lastInvokeTime = 0;\n\t\t\t\t\t\tlastArgs = lastThis = timerId = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction flush() {\n\t\t\t\t\t\treturn timerId === undefined ? result : trailingEdge(now());\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\tvar time = now(),\n\t\t\t\t\t\t isInvoking = shouldInvoke(time);\n\t\n\t\t\t\t\t\tlastArgs = arguments;\n\t\t\t\t\t\tlastThis = this;\n\t\t\t\t\t\tlastCallTime = time;\n\t\n\t\t\t\t\t\tif (isInvoking) {\n\t\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\t\treturn leadingEdge(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (maxing) {\n\t\t\t\t\t\t\t\t// Handle invocations in a tight loop.\n\t\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t\t\treturn invokeFunc(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\tdebounced.flush = flush;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t\t\t\t\t// and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t\t\t\t\tvar tag = isObject(value) ? objectToString.call(value) : '';\n\t\t\t\t\treturn tag == funcTag || tag == genTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\t\t\t\tfunction isSymbol(value) {\n\t\t\t\t\treturn typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\t\t\t\tfunction toNumber(value) {\n\t\t\t\t\tif (typeof value == 'number') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\tif (isSymbol(value)) {\n\t\t\t\t\t\treturn NAN;\n\t\t\t\t\t}\n\t\t\t\t\tif (isObject(value)) {\n\t\t\t\t\t\tvar other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t\t\t\t\t\tvalue = isObject(other) ? other + '' : other;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value != 'string') {\n\t\t\t\t\t\treturn value === 0 ? value : +value;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = value.replace(reTrim, '');\n\t\t\t\t\tvar isBinary = reIsBinary.test(value);\n\t\t\t\t\treturn isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 48263daf91bf48063e9f\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t if (typeof navigator !== 'undefined') {\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\t }\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t'use strict';\n\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/** Used as references for various `Number` constants. */\n\tvar NAN = 0 / 0;\n\n\t/** `Object#toString` result references. */\n\tvar funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t symbolTag = '[object Symbol]';\n\n\t/** Used to match leading and trailing whitespace. */\n\tvar reTrim = /^\\s+|\\s+$/g;\n\n\t/** Used to detect bad signed hexadecimal string values. */\n\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n\t/** Used to detect binary string values. */\n\tvar reIsBinary = /^0b[01]+$/i;\n\n\t/** Used to detect octal string values. */\n\tvar reIsOctal = /^0o[0-7]+$/i;\n\n\t/** Built-in method references without a dependency on `root`. */\n\tvar freeParseInt = parseInt;\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeMin = Math.min;\n\n\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\tvar now = Date.now;\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\tfunction debounce(func, wait, options) {\n\t var lastArgs,\n\t lastThis,\n\t maxWait,\n\t result,\n\t timerId,\n\t lastCallTime = 0,\n\t lastInvokeTime = 0,\n\t leading = false,\n\t maxing = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = toNumber(wait) || 0;\n\t if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxing = 'maxWait' in options;\n\t maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function invokeFunc(time) {\n\t var args = lastArgs,\n\t thisArg = lastThis;\n\n\t lastArgs = lastThis = undefined;\n\t lastInvokeTime = time;\n\t result = func.apply(thisArg, args);\n\t return result;\n\t }\n\n\t function leadingEdge(time) {\n\t // Reset any `maxWait` timer.\n\t lastInvokeTime = time;\n\t // Start the timer for the trailing edge.\n\t timerId = setTimeout(timerExpired, wait);\n\t // Invoke the leading edge.\n\t return leading ? invokeFunc(time) : result;\n\t }\n\n\t function remainingWait(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime,\n\t result = wait - timeSinceLastCall;\n\n\t return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t }\n\n\t function shouldInvoke(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime;\n\n\t // Either this is the first call, activity has stopped and we're at the\n\t // trailing edge, the system time has gone backwards and we're treating\n\t // it as the trailing edge, or we've hit the `maxWait` limit.\n\t return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t }\n\n\t function timerExpired() {\n\t var time = now();\n\t if (shouldInvoke(time)) {\n\t return trailingEdge(time);\n\t }\n\t // Restart the timer.\n\t timerId = setTimeout(timerExpired, remainingWait(time));\n\t }\n\n\t function trailingEdge(time) {\n\t clearTimeout(timerId);\n\t timerId = undefined;\n\n\t // Only invoke if we have `lastArgs` which means `func` has been\n\t // debounced at least once.\n\t if (trailing && lastArgs) {\n\t return invokeFunc(time);\n\t }\n\t lastArgs = lastThis = undefined;\n\t return result;\n\t }\n\n\t function cancel() {\n\t if (timerId !== undefined) {\n\t clearTimeout(timerId);\n\t }\n\t lastCallTime = lastInvokeTime = 0;\n\t lastArgs = lastThis = timerId = undefined;\n\t }\n\n\t function flush() {\n\t return timerId === undefined ? result : trailingEdge(now());\n\t }\n\n\t function debounced() {\n\t var time = now(),\n\t isInvoking = shouldInvoke(time);\n\n\t lastArgs = arguments;\n\t lastThis = this;\n\t lastCallTime = time;\n\n\t if (isInvoking) {\n\t if (timerId === undefined) {\n\t return leadingEdge(lastCallTime);\n\t }\n\t if (maxing) {\n\t // Handle invocations in a tight loop.\n\t clearTimeout(timerId);\n\t timerId = setTimeout(timerExpired, wait);\n\t return invokeFunc(lastCallTime);\n\t }\n\t }\n\t if (timerId === undefined) {\n\t timerId = setTimeout(timerExpired, wait);\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t debounced.flush = flush;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t}\n\n\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\tfunction toNumber(value) {\n\t if (typeof value == 'number') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return NAN;\n\t }\n\t if (isObject(value)) {\n\t var other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t value = isObject(other) ? other + '' : other;\n\t }\n\t if (typeof value != 'string') {\n\t return value === 0 ? value : +value;\n\t }\n\t value = value.replace(reTrim, '');\n\t var isBinary = reIsBinary.test(value);\n\t return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///demo.bundle.js","webpack:///webpack/bootstrap 99fc2cdeace5d68cc154","webpack:///./demo/src/index.js","webpack:///external \"React\"","webpack:///./demo/src/vendor/rainbow-custom.min.js","webpack:///./lib/react-ux-password-field.js"],"names":["modules","__webpack_require__","moduleId","installedModules","exports","module","id","loaded","call","m","c","p","React","InputPassword","render","createElement","htmlFor","name","placeholder","minScore","minLength","zxcvbn","document","getElementById","window","Rainbow","q","a","b","getAttribute","attributes","length","nodeName","nodeValue","B","parentNode","className","match","C","f","d","parseInt","j","r","replace","l","s","i","e","exec","t","matches","k","g","index","u","h","setTimeout","v","language","substr","n","w","with","hasOwnProperty","push","sort","pattern","D","x","y","z","concat","o","_x","_x2","_x3","_again","_function","indexOf","undefined","toLowerCase","innerHTML","A","getElementsByTagName","extend","arguments","_a","color","addEventListener","attachEvent","onHighlight","addClass","1","2","3","4","5","root","factory","__WEBPACK_EXTERNAL_MODULE_1__","_objectWithoutProperties","obj","keys","target","Object","prototype","_extends","assign","source","key","RP","PropTypes","config","debounce","createClass","displayName","propTypes","infoBar","bool","statusColor","string","statusInactiveColor","number","changeCb","func","toggleMask","unMaskTime","strengthLang","array","getDefaultProps","zxcvbnSrc","getInitialState","value","score","entropy","isPassword","isValid","getMeterStyle","width","this","state","props","maxWidth","opacity","background","height","transition","display","marginRight","unMaskStyle","unMaskColor","fontWeight","infoStyle","position","bottom","overflow","iconStyle","top","strengthLangStyle","fontSize","addPasswordType","setState","handleInputType","handleChange","preventDefault","native_target","nativeEvent","val","validity","valid","selectionStart","selectionEnd","handleToggleMask","handleZxcvbn","onChange","handleMinLength","maskPassword","stats","currentScore","console","debug","len","componentWillMount","src","type","async","insertBefore","componentWillUnmount","cancel","style","_props","that","navigator","test","userAgent","elem","refs","getDOMNode","data-valid","data-score","data-entropy","ref","wait","options","invokeFunc","time","args","lastArgs","thisArg","lastThis","lastInvokeTime","result","apply","leadingEdge","timerId","timerExpired","leading","remainingWait","timeSinceLastCall","lastCallTime","timeSinceLastInvoke","maxing","nativeMin","maxWait","shouldInvoke","now","trailingEdge","clearTimeout","trailing","flush","debounced","isInvoking","TypeError","FUNC_ERROR_TEXT","toNumber","isObject","nativeMax","isFunction","tag","objectToString","funcTag","genTag","isObjectLike","isSymbol","symbolTag","NAN","other","valueOf","reTrim","isBinary","reIsBinary","reIsOctal","freeParseInt","slice","reIsBadHex","objectProto","toString","Math","max","min","Date"],"mappings":"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","file":"demo.bundle.js","sourcesContent":["/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/*!***************************!*\\\n !*** ./demo/src/index.js ***!\n \\***************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t// demo pages css\n\t__webpack_require__(/*! normalize.css/normalize.css */ 7);\n\t__webpack_require__(/*! ./vendor/skeleton.css */ 5);\n\t__webpack_require__(/*! ./vendor/github.css */ 4);\n\t__webpack_require__(/*! ./vendor/syntax.css */ 6);\n\t__webpack_require__(/*! ./vendor/rainbow-custom.min.js */ 2);\n\t__webpack_require__(/*! ./css/style.scss */ 9);\n\t\n\t// css for form field\n\t__webpack_require__(/*! ./css/demo.scss */ 8);\n\t\n\t/*========== APP ==========*/\n\t\n\tvar React = __webpack_require__(/*! react */ 1),\n\t InputPassword = __webpack_require__(/*! ../../lib/react-ux-password-field.js */ 3);\n\t\n\tReact.render(React.createElement(\n\t 'form',\n\t null,\n\t React.createElement(\n\t 'fieldset',\n\t null,\n\t React.createElement(\n\t 'label',\n\t { htmlFor: 'password1' },\n\t 'Password'\n\t ),\n\t React.createElement(InputPassword, {\n\t id: 'password1',\n\t name: 'password1',\n\t placeholder: 'Try me out! Enter a random password.',\n\t minScore: 1,\n\t minLength: 5,\n\t zxcvbn: 'debug'\n\t })\n\t )\n\t), document.getElementById('content'));\n\n/***/ },\n/* 1 */\n/*!************************!*\\\n !*** external \"React\" ***!\n \\************************/\n/***/ function(module, exports) {\n\n\tmodule.exports = React;\n\n/***/ },\n/* 2 */\n/*!***********************************************!*\\\n !*** ./demo/src/vendor/rainbow-custom.min.js ***!\n \\***********************************************/\n/***/ function(module, exports) {\n\n\t/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\n\t\"use strict\";\n\t\n\twindow.Rainbow = (function () {\n\t function q(a) {\n\t var b,\n\t c = a.getAttribute && a.getAttribute(\"data-language\") || 0;if (!c) {\n\t a = a.attributes;for (b = 0; b < a.length; ++b) if (\"data-language\" === a[b].nodeName) return a[b].nodeValue;\n\t }return c;\n\t }function B(a) {\n\t var b = q(a) || q(a.parentNode);if (!b) {\n\t var c = /\\blang(?:uage)?-(\\w+)/;(a = a.className.match(c) || a.parentNode.className.match(c)) && (b = a[1]);\n\t }return b;\n\t }function C(a, b) {\n\t for (var c in f[d]) {\n\t c = parseInt(c, 10);if (a == c && b == f[d][c] ? 0 : a <= c && b >= f[d][c]) delete f[d][c], delete j[d][c];if (a >= c && a < f[d][c] || b > c && b < f[d][c]) return !0;\n\t }return !1;\n\t }function r(a, b) {\n\t return '' + b + \"\";\n\t }function s(a, b, c, i) {\n\t if (\"undefined\" === typeof a || null === a) i();else {\n\t var e = a.exec(c);if (e) {\n\t ++t;!b.name && \"string\" == typeof b.matches[0] && (b.name = b.matches[0], delete b.matches[0]);var k = e[0],\n\t g = e.index,\n\t u = e[0].length + g,\n\t h = function h() {\n\t function e() {\n\t s(a, b, c, i);\n\t }t % 100 > 0 ? e() : setTimeout(e, 0);\n\t };if (C(g, u)) h();else {\n\t var m = v(b.matches),\n\t l = function l(a, c, i) {\n\t if (a >= c.length) i(k);else {\n\t var d = e[c[a]];if (d) {\n\t var g = b.matches[c[a]],\n\t f = g.language,\n\t h = g.name && g.matches ? g.matches : g,\n\t j = function j(b, d, g) {\n\t var f;f = 0;var h;for (h = 1; h < c[a]; ++h) e[h] && (f = f + e[h].length);d = g ? r(g, d) : d;k = k.substr(0, f) + k.substr(f).replace(b, d);l(++a, c, i);\n\t };f ? n(d, f, function (a) {\n\t j(d, a);\n\t }) : typeof g === \"string\" ? j(d, d, g) : w(d, h.length ? h : [h], function (a) {\n\t j(d, a, g.matches ? g.name : 0);\n\t });\n\t } else l(++a, c, i);\n\t }\n\t };l(0, m, function (a) {\n\t b.name && (a = r(b.name, a));if (!j[d]) {\n\t j[d] = {};f[d] = {};\n\t }j[d][g] = { replace: e[0], \"with\": a };f[d][g] = u;h();\n\t });\n\t }\n\t } else i();\n\t }\n\t }function v(a) {\n\t var b = [],\n\t c;for (c in a) a.hasOwnProperty(c) && b.push(c);return b.sort(function (a, b) {\n\t return b - a;\n\t });\n\t }function w(a, b, c) {\n\t function i(b, k) {\n\t k < b.length ? s(b[k].pattern, b[k], a, function () {\n\t i(b, ++k);\n\t }) : D(a, function (a) {\n\t delete j[d];delete f[d];--d;c(a);\n\t });\n\t }++d;i(b, 0);\n\t }function D(a, b) {\n\t function c(a, b, i, f) {\n\t if (i < b.length) {\n\t ++x;var h = b[i],\n\t l = j[d][h],\n\t a = a.substr(0, h) + a.substr(h).replace(l.replace, l[\"with\"]),\n\t h = function h() {\n\t c(a, b, ++i, f);\n\t };0 < x % 250 ? h() : setTimeout(h, 0);\n\t } else f(a);\n\t }var i = v(j[d]);c(a, i, 0, b);\n\t }function n(a, b, c) {\n\t var d = m[b] || [],\n\t e = m[y] || [],\n\t b = z[b] ? d : d.concat(e);w(a.replace(//g, \">\").replace(/&(?![\\w\\#]+;)/g, \"&\"), b, c);\n\t }function o(_x, _x2, _x3) {\n\t var _again = true;\n\t\n\t _function: while (_again) {\n\t var a = _x,\n\t b = _x2,\n\t c = _x3;\n\t _again = false;\n\t if (b < a.length) {\n\t var d = a[b],\n\t e = B(d);if (!(-1 < (\" \" + d.className + \" \").indexOf(\" rainbow \")) && e) {\n\t return e = e.toLowerCase(), d.className += d.className ? \" rainbow\" : \"rainbow\", n(d.innerHTML, e, function (k) {\n\t d.innerHTML = k;j = {};f = {};p && p(d, e);setTimeout(function () {\n\t o(a, ++b, c);\n\t }, 0);\n\t });\n\t } else {\n\t _x = a;\n\t _x2 = ++b;\n\t _x3 = c;\n\t _again = true;\n\t d = e = undefined;\n\t continue _function;\n\t }\n\t }c && c();\n\t }\n\t }function A(a, b) {\n\t var a = a && \"function\" == typeof a.getElementsByTagName ? a : document,\n\t c = a.getElementsByTagName(\"pre\"),\n\t d = a.getElementsByTagName(\"code\"),\n\t e,\n\t f = [],\n\t g = [];for (e = 0; e < c.length; ++e) c[e].getElementsByTagName(\"code\").length ? c[e].innerHTML = c[e].innerHTML.replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") : f.push(c[e]);for (e = 0; e < d.length; ++e) g.push(d[e]);o(g.concat(f), 0, b);\n\t }var j = {},\n\t f = {},\n\t m = {},\n\t z = {},\n\t d = 0,\n\t y = 0,\n\t t = 0,\n\t x = 0,\n\t l,\n\t p;return { extend: function extend(a, b, c) {\n\t 1 == arguments.length && (b = a, a = y);z[a] = c;m[a] = b.concat(m[a] || []);\n\t }, b: function b(a) {\n\t p = a;\n\t }, a: function a(_a) {\n\t l = _a;\n\t }, color: function color(a, b, c) {\n\t if (\"string\" == typeof a) return n(a, b, c);if (\"function\" == typeof a) return A(0, a);A(a, b);\n\t } };\n\t})();\n\tdocument.addEventListener ? document.addEventListener(\"DOMContentLoaded\", Rainbow.color, !1) : window.attachEvent(\"onload\", Rainbow.color);Rainbow.onHighlight = Rainbow.b;Rainbow.addClass = Rainbow.a;Rainbow.extend([{ matches: { 1: [{ name: \"keyword.operator\", pattern: /\\=|\\+/g }, { name: \"keyword.dot\", pattern: /\\./g }], 2: { name: \"string\", matches: { name: \"constant.character.escape\", pattern: /\\\\('|\"){1}/g } } }, pattern: /(\\(|\\s|\\[|\\=|:|\\+|\\.)(('|\")([^\\\\\\1]|\\\\.)*?(\\3))/gm }, { name: \"comment\", pattern: /\\/\\*[\\s\\S]*?\\*\\/|(\\/\\/|\\#)[\\s\\S]*?$/gm }, { name: \"constant.numeric\", pattern: /\\b(\\d+(\\.\\d+)?(e(\\+|\\-)?\\d+)?(f|d)?|0x[\\da-f]+)\\b/gi }, { matches: { 1: \"keyword\" }, pattern: /\\b(and|array|as|b(ool(ean)?|reak)|c(ase|atch|har|lass|on(st|tinue))|d(ef|elete|o(uble)?)|e(cho|lse(if)?|xit|xtends|xcept)|f(inally|loat|or(each)?|unction)|global|if|import|int(eger)?|long|new|object|or|pr(int|ivate|otected)|public|return|self|st(ring|ruct|atic)|switch|th(en|is|row)|try|(un)?signed|var|void|while)(?=\\(|\\b)/gi }, { name: \"constant.language\", pattern: /true|false|null/g }, { name: \"keyword.operator\", pattern: /\\+|\\!|\\-|&(gt|lt|amp);|\\||\\*|\\=/g }, { matches: { 1: \"function.call\" }, pattern: /(\\w+?)(?=\\()/g }, { matches: { 1: \"storage.function\", 2: \"entity.name.function\" }, pattern: /(function)\\s(.*?)(?=\\()/g }]);Rainbow.extend(\"shell\", [{ name: \"shell\", matches: { 1: { language: \"shell\" } }, pattern: /\\$\\(([\\s\\S]*?)\\)/gm }, { matches: { 2: \"string\" }, pattern: /(\\(|\\s|\\[|\\=)(('|\")[\\s\\S]*?(\\3))/gm }, { name: \"keyword.operator\", pattern: /<|>|&/g }, { name: \"comment\", pattern: /\\#[\\s\\S]*?$/gm }, { name: \"storage.function\", pattern: /(.+?)(?=\\(\\)\\s{0,}\\{)/g }, { name: \"support.command\", pattern: /\\b(echo|rm|ls|(mk|rm)dir|cd|find|cp|exit|pwd|exec|trap|source|shift|unset)/g }, { matches: { 1: \"keyword\" }, pattern: /\\b(break|case|continue|do|done|elif|else|esac|eval|export|fi|for|function|if|in|local|return|set|then|unset|until|while)(?=\\(|\\b)/g }], !0);Rainbow.extend(\"javascript\", [{ name: \"selector\", pattern: /(\\s|^)\\$(?=\\.|\\()/g }, { name: \"support\", pattern: /\\b(window|document)\\b/g }, { matches: { 1: \"support.property\" }, pattern: /\\.(length|node(Name|Value))\\b/g }, { matches: { 1: \"support.function\" }, pattern: /(setTimeout|setInterval)(?=\\()/g }, { matches: { 1: \"support.method\" }, pattern: /\\.(getAttribute|push|getElementById|getElementsByClassName|log|setTimeout|setInterval)(?=\\()/g }, { name: \"string.regexp\", matches: { 1: \"string.regexp.open\", 2: { name: \"constant.regexp.escape\", pattern: /\\\\(.){1}/g },\n\t 3: \"string.regexp.close\", 4: \"string.regexp.modifier\" }, pattern: /(\\/)(?!\\*)(.+)(\\/)([igm]{0,3})/g }, { matches: { 1: \"storage\", 3: \"entity.function\" }, pattern: /(var)?(\\s|^)(\\S*)(?=\\s?=\\s?function\\()/g }, { matches: { 1: \"keyword\", 2: \"entity.function\" }, pattern: /(new)\\s+(.*)(?=\\()/g }, { name: \"entity.function\", pattern: /(\\w+)(?=:\\s{0,}function)/g }]);Rainbow.extend(\"html\", [{ name: \"source.php.embedded\", matches: { 2: { language: \"php\" } }, pattern: /<\\?=?(?!xml)(php)?([\\s\\S]*?)(\\?>)/gm }, { name: \"source.css.embedded\", matches: { 1: { matches: { 1: \"support.tag.style\", 2: [{ name: \"entity.tag.style\", pattern: /^style/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.style.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.style\" }, pattern: /(<\\/?)(style.*?)(>)/g }, 2: { language: \"css\" }, 3: \"support.tag.style\", 4: \"entity.tag.style\", 5: \"support.tag.style\" }, pattern: /(<style.*?>)([\\s\\S]*?)(<\\/)(style)(>)/gm }, { name: \"source.js.embedded\", matches: { 1: { matches: { 1: \"support.tag.script\", 2: [{ name: \"entity.tag.script\", pattern: /^script/g }, { name: \"string\", pattern: /('|\")(.*?)(\\1)/g }, { name: \"entity.tag.script.attribute\", pattern: /(\\w+)/g }], 3: \"support.tag.script\" }, pattern: /(<\\/?)(script.*?)(>)/g }, 2: { language: \"javascript\" }, 3: \"support.tag.script\", 4: \"entity.tag.script\", 5: \"support.tag.script\" }, pattern: /(<script(?! src).*?>)([\\s\\S]*?)(<\\/)(script)(>)/gm }, { name: \"comment.html\", pattern: /<\\!--[\\S\\s]*?-->/g }, { matches: { 1: \"support.tag.open\", 2: \"support.tag.close\" }, pattern: /(<)|(\\/?\\??>)/g }, { name: \"support.tag\", matches: { 1: \"support.tag\", 2: \"support.tag.special\", 3: \"support.tag-name\" }, pattern: /(<\\??)(\\/|\\!?)(\\w+)/g }, { matches: { 1: \"support.attribute\" }, pattern: /([a-z-]+)(?=\\=)/gi }, { matches: { 1: \"support.operator\", 2: \"string.quote\", 3: \"string.value\", 4: \"string.quote\" }, pattern: /(=)('|\")(.*?)(\\2)/g }, { matches: { 1: \"support.operator\", 2: \"support.value\" }, pattern: /(=)([a-zA-Z\\-0-9]*)\\b/g }, { matches: { 1: \"support.attribute\" },\n\t pattern: /\\s(\\w+)(?=\\s|>)(?![\\s\\S]*<)/g }], !0);\n\n/***/ },\n/* 3 */\n/*!****************************************!*\\\n !*** ./lib/react-ux-password-field.js ***!\n \\****************************************/\n/***/ function(module, exports, __webpack_require__) {\n\n\t/*!\n\t * React UX Password Field\n\t * version: 0.9.12\n\t * \n\t * MIT Licensed\n\t * github: https://github.com/seethroughtrees/react-ux-password-field/\n\t * demo: https://seethroughtrees.github.io/react-ux-password-field/\n\t * \n\t */\n\t'use strict';\n\t\n\t(function webpackUniversalModuleDefinition(root, factory) {\n\t\tif (true) module.exports = factory(__webpack_require__(/*! react */ 1));else if (typeof define === 'function' && define.amd) define([\"react\"], factory);else if (typeof exports === 'object') exports[\"react-ux-password-field\"] = factory(require(\"react\"));else root[\"react-ux-password-field\"] = factory(root[\"React\"]);\n\t})(undefined, function (__WEBPACK_EXTERNAL_MODULE_1__) {\n\t\treturn (/******/(function (modules) {\n\t\t\t\t// webpackBootstrap\n\t\t\t\t/******/ // The module cache\n\t\t\t\t/******/var installedModules = {};\n\t\n\t\t\t\t/******/ // The require function\n\t\t\t\t/******/function __webpack_require__(moduleId) {\n\t\n\t\t\t\t\t/******/ // Check if module is in cache\n\t\t\t\t\t/******/if (installedModules[moduleId])\n\t\t\t\t\t\t/******/return installedModules[moduleId].exports;\n\t\n\t\t\t\t\t/******/ // Create a new module (and put it into the cache)\n\t\t\t\t\t/******/var module = installedModules[moduleId] = {\n\t\t\t\t\t\t/******/exports: {},\n\t\t\t\t\t\t/******/id: moduleId,\n\t\t\t\t\t\t/******/loaded: false\n\t\t\t\t\t\t/******/ };\n\t\n\t\t\t\t\t/******/ // Execute the module function\n\t\t\t\t\t/******/modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\t\n\t\t\t\t\t/******/ // Flag the module as loaded\n\t\t\t\t\t/******/module.loaded = true;\n\t\n\t\t\t\t\t/******/ // Return the exports of the module\n\t\t\t\t\t/******/return module.exports;\n\t\t\t\t\t/******/\n\t\t\t\t}\n\t\n\t\t\t\t/******/ // expose the modules object (__webpack_modules__)\n\t\t\t\t/******/__webpack_require__.m = modules;\n\t\n\t\t\t\t/******/ // expose the module cache\n\t\t\t\t/******/__webpack_require__.c = installedModules;\n\t\n\t\t\t\t/******/ // __webpack_public_path__\n\t\t\t\t/******/__webpack_require__.p = \"\";\n\t\n\t\t\t\t/******/ // Load entry module and return exports\n\t\t\t\t/******/return __webpack_require__(0);\n\t\t\t\t/******/\n\t\t\t})(\n\t\t\t/************************************************************************/\n\t\t\t/******/[\n\t\t\t/* 0 */\n\t\t\tfunction (module, exports, __webpack_require__) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar _extends = Object.assign || function (target) {\n\t\t\t\t\tfor (var i = 1; i < arguments.length; i++) {\n\t\t\t\t\t\tvar source = arguments[i];for (var key in source) {\n\t\t\t\t\t\t\tif (Object.prototype.hasOwnProperty.call(source, key)) {\n\t\t\t\t\t\t\t\ttarget[key] = source[key];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}return target;\n\t\t\t\t};\n\t\n\t\t\t\tfunction _objectWithoutProperties(obj, keys) {\n\t\t\t\t\tvar target = {};for (var i in obj) {\n\t\t\t\t\t\tif (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t\t\t\t\t}return target;\n\t\t\t\t}\n\t\n\t\t\t\tvar React = __webpack_require__(1),\n\t\t\t\t RP = React.PropTypes,\n\t\t\t\t config = __webpack_require__(2),\n\t\t\t\t debounce = __webpack_require__(3);\n\t\n\t\t\t\tvar InputPassword = React.createClass({\n\t\t\t\t\tdisplayName: 'InputPassword',\n\t\n\t\t\t\t\t/*========== VALIDATE ==========*/\n\t\n\t\t\t\t\tpropTypes: {\n\t\t\t\t\t\tinfoBar: RP.bool,\n\t\t\t\t\t\tstatusColor: RP.string,\n\t\t\t\t\t\tstatusInactiveColor: RP.string,\n\t\t\t\t\t\tminScore: RP.number,\n\t\t\t\t\t\tchangeCb: RP.func,\n\t\t\t\t\t\ttoggleMask: RP.bool,\n\t\t\t\t\t\tunMaskTime: RP.number,\n\t\t\t\t\t\tminLength: RP.number,\n\t\t\t\t\t\tstrengthLang: RP.array,\n\t\t\t\t\t\tid: RP.string\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== DEFAULTS ==========*/\n\t\n\t\t\t\t\tgetDefaultProps: function getDefaultProps() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tinfoBar: true,\n\t\t\t\t\t\t\tstatusColor: config.statusColor,\n\t\t\t\t\t\t\tstatusInactiveColor: config.statusInactiveColor,\n\t\t\t\t\t\t\tzxcvbn: config.zxcvbnSrc,\n\t\t\t\t\t\t\tminScore: 0,\n\t\t\t\t\t\t\ttoggleMask: true,\n\t\t\t\t\t\t\tunMaskTime: config.unMaskTime,\n\t\t\t\t\t\t\tstrengthLang: config.strengthLang,\n\t\t\t\t\t\t\tid: 'input'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tgetInitialState: function getInitialState() {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: '',\n\t\t\t\t\t\t\tscore: 0,\n\t\t\t\t\t\t\tentropy: 0,\n\t\t\t\t\t\t\tisPassword: true,\n\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== STYLES ==========*/\n\t\n\t\t\t\t\tgetMeterStyle: function getMeterStyle(score) {\n\t\t\t\t\t\tvar width = this.state.value === '' ? 0 : 24 * score + 4;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\twidth: this.props.zxcvbn ? width + '%' : '100%',\n\t\t\t\t\t\t\tmaxWidth: '85%',\n\t\t\t\t\t\t\topacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t\t\t\t\t\t\tbackground: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t\t\t\t\t\t\theight: 5,\n\t\t\t\t\t\t\ttransition: 'all 400ms linear',\n\t\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\t\tmarginRight: '1%'\n\t\t\t\t\t\t};\n\t\t\t\t\t},\n\t\n\t\t\t\t\tunMaskStyle: {\n\t\t\t\t\t\tcolor: config.unMaskColor,\n\t\t\t\t\t\tfontWeight: 200\n\t\t\t\t\t},\n\t\n\t\t\t\t\tinfoStyle: {\n\t\t\t\t\t\tposition: 'absolute',\n\t\t\t\t\t\tbottom: -10,\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\toverflow: 'hidden',\n\t\t\t\t\t\theight: 24\n\t\t\t\t\t},\n\t\n\t\t\t\t\ticonStyle: {\n\t\t\t\t\t\tdisplay: 'inline-block',\n\t\t\t\t\t\topacity: .25,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2,\n\t\t\t\t\t\twidth: '3%'\n\t\t\t\t\t},\n\t\n\t\t\t\t\tstrengthLangStyle: {\n\t\t\t\t\t\tfontSize: 12,\n\t\t\t\t\t\tposition: 'relative',\n\t\t\t\t\t\ttop: 2\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== METHODS ==========*/\n\t\n\t\t\t\t\taddPasswordType: function addPasswordType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: true\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\t/*========== HANDLERS ==========*/\n\t\n\t\t\t\t\thandleInputType: function handleInputType() {\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: !this.state.isPassword\n\t\t\t\t\t\t});\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleChange: function handleChange(e) {\n\t\t\t\t\t\te.preventDefault();\n\t\n\t\t\t\t\t\tvar native_target = e.nativeEvent.target;\n\t\t\t\t\t\tvar val = e.target.value;\n\t\t\t\t\t\tvar score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\t\tisValid: e.target.validity.valid,\n\t\t\t\t\t\t\tselectionStart: native_target.selectionStart,\n\t\t\t\t\t\t\tselectionEnd: native_target.selectionEnd\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.handleToggleMask();\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn) {\n\t\t\t\t\t\t\tscore = this.handleZxcvbn(val);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tscore = this.state.score;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// call onChange prop passed from parent\n\t\t\t\t\t\tif (this.props.onChange) {\n\t\t\t\t\t\t\tthis.props.onChange(val, this.state.isValid, score);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.minLength) {\n\t\t\t\t\t\t\tthis.handleMinLength(e.target.value.length);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleToggleMask: function handleToggleMask() {\n\t\n\t\t\t\t\t\t// display password, then\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tisPassword: false\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\t// debounce remasking password\n\t\t\t\t\t\tthis.maskPassword();\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleZxcvbn: function handleZxcvbn(val) {\n\t\n\t\t\t\t\t\tif (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tvar stats = zxcvbn(val),\n\t\t\t\t\t\t currentScore = stats.score;\n\t\n\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\tscore: currentScore,\n\t\t\t\t\t\t\tentropy: stats.entropy\n\t\t\t\t\t\t});\n\t\n\t\t\t\t\t\tif (currentScore < this.props.minScore) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// if score changed and callback provided\n\t\t\t\t\t\tif (this.props.changeCb && this.state.score !== currentScore) {\n\t\t\t\t\t\t\tthis.props.changeCb(this.state.score, currentScore, val);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (this.props.zxcvbn === 'debug') {\n\t\t\t\t\t\t\tconsole.debug(stats);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn currentScore;\n\t\t\t\t\t},\n\t\n\t\t\t\t\thandleMinLength: function handleMinLength(len) {\n\t\t\t\t\t\tif (len <= this.props.minLength) {\n\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\tisValid: false\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillMount: function componentWillMount() {\n\t\t\t\t\t\tvar zxcvbnSrc;\n\t\n\t\t\t\t\t\t// Load zxcvbn async if its enabled and doesn't already exist\n\t\t\t\t\t\tif (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\t\n\t\t\t\t\t\t\tzxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\t\n\t\t\t\t\t\t\t// snippet to async load zxcvbn if enabled\n\t\t\t\t\t\t\t(function () {\n\t\t\t\t\t\t\t\tvar a;a = function () {\n\t\t\t\t\t\t\t\t\tvar a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t\t\t\t\t\t\t\t};null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t\t\t\t\t\t\t}).call(this);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// set debouncer for password\n\t\t\t\t\t\tif (this.props.toggleMask) {\n\t\t\t\t\t\t\tthis.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\tcomponentWillUnmount: function componentWillUnmount() {\n\t\t\t\t\t\t// cancel the debouncer when component is not used anymore. This to avoid\n\t\t\t\t\t\t// setting the state unnecessarily, see issue #24\n\t\t\t\t\t\tif (this.maskPassword) {\n\t\t\t\t\t\t\tthis.maskPassword.cancel();\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\n\t\t\t\t\trender: function render() {\n\t\t\t\t\t\tvar infoBar;\n\t\n\t\t\t\t\t\tif (this.props.infoBar) {\n\t\t\t\t\t\t\tinfoBar = React.createElement('div', { className: 'passwordField__info', style: this.infoStyle }, React.createElement('span', { style: this.iconStyle, className: 'passwordField__icon' }, React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement('span', { style: this.strengthLangStyle, className: 'passwordField__strength' }, this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null));\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\t// allow onChange to be passed from parent and not override default prop\n\t\t\t\t\t\tvar _props = this.props;\n\t\t\t\t\t\tvar onChange = _props.onChange;\n\t\n\t\t\t\t\t\tvar props = _objectWithoutProperties(_props, ['onChange']);\n\t\n\t\t\t\t\t\t// overcome problem with firefox resetting the input selection point\n\t\t\t\t\t\tvar that = this;\n\t\t\t\t\t\tif (typeof navigator !== 'undefined') {\n\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\tif (!/Firefox/.test(navigator.userAgent)) return;\n\t\t\t\t\t\t\t\tvar elem = that.refs[that.props.id].getDOMNode();\n\t\t\t\t\t\t\t\telem.selectionStart = that.state.selectionStart;\n\t\t\t\t\t\t\t\telem.selectionEnd = that.state.selectionEnd;\n\t\t\t\t\t\t\t}, 1);\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\treturn React.createElement('div', {\n\t\t\t\t\t\t\tstyle: { position: 'relative', display: 'inline-block' },\n\t\t\t\t\t\t\tclassName: 'passwordField',\n\t\t\t\t\t\t\t'data-valid': this.state.isValid,\n\t\t\t\t\t\t\t'data-score': this.state.score,\n\t\t\t\t\t\t\t'data-entropy': this.state.entropy\n\t\t\t\t\t\t}, React.createElement('input', _extends({\n\t\t\t\t\t\t\tref: this.props.id,\n\t\t\t\t\t\t\tclassName: 'passwordField__input',\n\t\t\t\t\t\t\ttype: this.state.isPassword ? 'password' : 'text',\n\t\t\t\t\t\t\tvalue: this.state.value,\n\t\t\t\t\t\t\tstyle: this.state.isPassword ? null : this.unMaskStyle,\n\t\t\t\t\t\t\tonChange: this.handleChange\n\t\t\t\t\t\t}, props)), infoBar);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\n\t\t\t\tmodule.exports = InputPassword;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 1 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 2 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t'use strict';\n\t\n\t\t\t\tmodule.exports = {\n\t\t\t\t\tstatusColor: '#5CE592',\n\t\t\t\t\tstatusInactiveColor: '#FC6F6F',\n\t\t\t\t\tunMaskColor: '#c7c7c7',\n\t\t\t\t\tunMaskTime: 1400,\n\t\t\t\t\tzxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t\t\t\t\tstrengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t\t\t\t};\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 3 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\t\n\t\t\t\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t\t\t\t'use strict';\n\t\n\t\t\t\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\t\n\t\t\t\t/** Used as references for various `Number` constants. */\n\t\t\t\tvar NAN = 0 / 0;\n\t\n\t\t\t\t/** `Object#toString` result references. */\n\t\t\t\tvar funcTag = '[object Function]',\n\t\t\t\t genTag = '[object GeneratorFunction]',\n\t\t\t\t symbolTag = '[object Symbol]';\n\t\n\t\t\t\t/** Used to match leading and trailing whitespace. */\n\t\t\t\tvar reTrim = /^\\s+|\\s+$/g;\n\t\n\t\t\t\t/** Used to detect bad signed hexadecimal string values. */\n\t\t\t\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\t\n\t\t\t\t/** Used to detect binary string values. */\n\t\t\t\tvar reIsBinary = /^0b[01]+$/i;\n\t\n\t\t\t\t/** Used to detect octal string values. */\n\t\t\t\tvar reIsOctal = /^0o[0-7]+$/i;\n\t\n\t\t\t\t/** Built-in method references without a dependency on `root`. */\n\t\t\t\tvar freeParseInt = parseInt;\n\t\n\t\t\t\t/** Used for built-in method references. */\n\t\t\t\tvar objectProto = Object.prototype;\n\t\n\t\t\t\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\t\t\t\tvar objectToString = objectProto.toString;\n\t\n\t\t\t\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\t\t\t\tvar nativeMax = Math.max,\n\t\t\t\t nativeMin = Math.min;\n\t\n\t\t\t\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\t\t\t\tvar now = Date.now;\n\t\n\t\t\t\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\t\t\t\tfunction debounce(func, wait, options) {\n\t\t\t\t\tvar lastArgs,\n\t\t\t\t\t lastThis,\n\t\t\t\t\t maxWait,\n\t\t\t\t\t result,\n\t\t\t\t\t timerId,\n\t\t\t\t\t lastCallTime = 0,\n\t\t\t\t\t lastInvokeTime = 0,\n\t\t\t\t\t leading = false,\n\t\t\t\t\t maxing = false,\n\t\t\t\t\t trailing = true;\n\t\n\t\t\t\t\tif (typeof func != 'function') {\n\t\t\t\t\t\tthrow new TypeError(FUNC_ERROR_TEXT);\n\t\t\t\t\t}\n\t\t\t\t\twait = toNumber(wait) || 0;\n\t\t\t\t\tif (isObject(options)) {\n\t\t\t\t\t\tleading = !!options.leading;\n\t\t\t\t\t\tmaxing = 'maxWait' in options;\n\t\t\t\t\t\tmaxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t\t\t\t\t\ttrailing = 'trailing' in options ? !!options.trailing : trailing;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction invokeFunc(time) {\n\t\t\t\t\t\tvar args = lastArgs,\n\t\t\t\t\t\t thisArg = lastThis;\n\t\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\tresult = func.apply(thisArg, args);\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction leadingEdge(time) {\n\t\t\t\t\t\t// Reset any `maxWait` timer.\n\t\t\t\t\t\tlastInvokeTime = time;\n\t\t\t\t\t\t// Start the timer for the trailing edge.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t// Invoke the leading edge.\n\t\t\t\t\t\treturn leading ? invokeFunc(time) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction remainingWait(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime,\n\t\t\t\t\t\t result = wait - timeSinceLastCall;\n\t\n\t\t\t\t\t\treturn maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction shouldInvoke(time) {\n\t\t\t\t\t\tvar timeSinceLastCall = time - lastCallTime,\n\t\t\t\t\t\t timeSinceLastInvoke = time - lastInvokeTime;\n\t\n\t\t\t\t\t\t// Either this is the first call, activity has stopped and we're at the\n\t\t\t\t\t\t// trailing edge, the system time has gone backwards and we're treating\n\t\t\t\t\t\t// it as the trailing edge, or we've hit the `maxWait` limit.\n\t\t\t\t\t\treturn !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction timerExpired() {\n\t\t\t\t\t\tvar time = now();\n\t\t\t\t\t\tif (shouldInvoke(time)) {\n\t\t\t\t\t\t\treturn trailingEdge(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\t// Restart the timer.\n\t\t\t\t\t\ttimerId = setTimeout(timerExpired, remainingWait(time));\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction trailingEdge(time) {\n\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\ttimerId = undefined;\n\t\n\t\t\t\t\t\t// Only invoke if we have `lastArgs` which means `func` has been\n\t\t\t\t\t\t// debounced at least once.\n\t\t\t\t\t\tif (trailing && lastArgs) {\n\t\t\t\t\t\t\treturn invokeFunc(time);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastArgs = lastThis = undefined;\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction cancel() {\n\t\t\t\t\t\tif (timerId !== undefined) {\n\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlastCallTime = lastInvokeTime = 0;\n\t\t\t\t\t\tlastArgs = lastThis = timerId = undefined;\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction flush() {\n\t\t\t\t\t\treturn timerId === undefined ? result : trailingEdge(now());\n\t\t\t\t\t}\n\t\n\t\t\t\t\tfunction debounced() {\n\t\t\t\t\t\tvar time = now(),\n\t\t\t\t\t\t isInvoking = shouldInvoke(time);\n\t\n\t\t\t\t\t\tlastArgs = arguments;\n\t\t\t\t\t\tlastThis = this;\n\t\t\t\t\t\tlastCallTime = time;\n\t\n\t\t\t\t\t\tif (isInvoking) {\n\t\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\t\treturn leadingEdge(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (maxing) {\n\t\t\t\t\t\t\t\t// Handle invocations in a tight loop.\n\t\t\t\t\t\t\t\tclearTimeout(timerId);\n\t\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t\t\treturn invokeFunc(lastCallTime);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (timerId === undefined) {\n\t\t\t\t\t\t\ttimerId = setTimeout(timerExpired, wait);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t\tdebounced.cancel = cancel;\n\t\t\t\t\tdebounced.flush = flush;\n\t\t\t\t\treturn debounced;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\t\t\t\tfunction isFunction(value) {\n\t\t\t\t\t// The use of `Object#toString` avoids issues with the `typeof` operator\n\t\t\t\t\t// in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t\t\t\t\t// and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t\t\t\t\tvar tag = isObject(value) ? objectToString.call(value) : '';\n\t\t\t\t\treturn tag == funcTag || tag == genTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObject(value) {\n\t\t\t\t\tvar type = typeof value;\n\t\t\t\t\treturn !!value && (type == 'object' || type == 'function');\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\t\t\t\tfunction isObjectLike(value) {\n\t\t\t\t\treturn !!value && typeof value == 'object';\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\t\t\t\tfunction isSymbol(value) {\n\t\t\t\t\treturn typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t\t\t\t}\n\t\n\t\t\t\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\t\t\t\tfunction toNumber(value) {\n\t\t\t\t\tif (typeof value == 'number') {\n\t\t\t\t\t\treturn value;\n\t\t\t\t\t}\n\t\t\t\t\tif (isSymbol(value)) {\n\t\t\t\t\t\treturn NAN;\n\t\t\t\t\t}\n\t\t\t\t\tif (isObject(value)) {\n\t\t\t\t\t\tvar other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t\t\t\t\t\tvalue = isObject(other) ? other + '' : other;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof value != 'string') {\n\t\t\t\t\t\treturn value === 0 ? value : +value;\n\t\t\t\t\t}\n\t\t\t\t\tvalue = value.replace(reTrim, '');\n\t\t\t\t\tvar isBinary = reIsBinary.test(value);\n\t\t\t\t\treturn isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t\t\t\t}\n\t\n\t\t\t\tmodule.exports = debounce;\n\t\n\t\t\t\t/***/\n\t\t\t},\n\t\t\t/* 4 */\n\t\t\tfunction (module, exports) {\n\t\n\t\t\t\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\";\n\t\n\t\t\t\t/***/\n\t\t\t}\n\t\t\t/******/])\n\t\t);\n\t});\n\t;\n\t/***/ /***/ /***/ /***/ /***/\n\n/***/ },\n/* 4 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/github.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 5 */\n/*!**************************************!*\\\n !*** ./demo/src/vendor/skeleton.css ***!\n \\**************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 6 */\n/*!************************************!*\\\n !*** ./demo/src/vendor/syntax.css ***!\n \\************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 7 */\n/*!***************************************!*\\\n !*** ./~/normalize.css/normalize.css ***!\n \\***************************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 8 */\n/*!********************************!*\\\n !*** ./demo/src/css/demo.scss ***!\n \\********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 9 */\n/*!*********************************!*\\\n !*** ./demo/src/css/style.scss ***!\n \\*********************************/\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ }\n/******/ ]);\n\n\n/** WEBPACK FOOTER **\n ** demo.bundle.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 99fc2cdeace5d68cc154\n **/","'use strict';\n\n// demo pages css\nrequire('normalize.css/normalize.css')\nrequire('./vendor/skeleton.css');\nrequire('./vendor/github.css');\nrequire('./vendor/syntax.css');\nrequire('./vendor/rainbow-custom.min.js');\nrequire('./css/style.scss');\n\n// css for form field\nrequire('./css/demo.scss');\n\n\n/*========== APP ==========*/\n\nconst React = require('react'),\n InputPassword = require('../../lib/react-ux-password-field.js');\n\nReact.render(\n
    \n
    \n \n \n
    \n
    \n, document.getElementById('content'));\n\n\n\n/** WEBPACK FOOTER **\n ** ./demo/src/index.js\n **/","module.exports = React;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"React\"\n ** module id = 1\n ** module chunks = 0\n **/","/* Rainbow v1.2 rainbowco.de | included languages: generic, shell, javascript, html */\nwindow.Rainbow=function(){function q(a){var b,c=a.getAttribute&&a.getAttribute(\"data-language\")||0;if(!c){a=a.attributes;for(b=0;b=f[d][c])delete f[d][c],delete j[d][c];if(a>=c&&ac&&b'+b+\"\"}function s(a,b,c,i){if(\"undefined\"===typeof a||null===a)i();else{var e=a.exec(c);if(e){++t;!b.name&&\"string\"==typeof b.matches[0]&&(b.name=b.matches[0],delete b.matches[0]);var k=e[0],g=e.index,u=e[0].length+g,h=function(){function e(){s(a,b,c,i)}t%100>0?e():setTimeout(e,0)};if(C(g,u))h();else{var m=v(b.matches),l=function(a,c,i){if(a>=c.length)i(k);else{var d=e[c[a]];if(d){var g=\nb.matches[c[a]],f=g.language,h=g.name&&g.matches?g.matches:g,j=function(b,d,g){var f;f=0;var h;for(h=1;h/g,\">\").replace(/&(?![\\w\\#]+;)/g,\"&\"),b,c)}function o(a,b,c){if(b= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n\tvar React = __webpack_require__(1),\n\t RP = React.PropTypes,\n\t config = __webpack_require__(2),\n\t debounce = __webpack_require__(3);\n\n\tvar InputPassword = React.createClass({\n\t displayName: 'InputPassword',\n\n\t /*========== VALIDATE ==========*/\n\n\t propTypes: {\n\t infoBar: RP.bool,\n\t statusColor: RP.string,\n\t statusInactiveColor: RP.string,\n\t minScore: RP.number,\n\t changeCb: RP.func,\n\t toggleMask: RP.bool,\n\t unMaskTime: RP.number,\n\t minLength: RP.number,\n\t strengthLang: RP.array,\n\t id: RP.string\n\t },\n\n\t /*========== DEFAULTS ==========*/\n\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t infoBar: true,\n\t statusColor: config.statusColor,\n\t statusInactiveColor: config.statusInactiveColor,\n\t zxcvbn: config.zxcvbnSrc,\n\t minScore: 0,\n\t toggleMask: true,\n\t unMaskTime: config.unMaskTime,\n\t strengthLang: config.strengthLang,\n\t id: 'input'\n\t };\n\t },\n\n\t getInitialState: function getInitialState() {\n\t return {\n\t value: '',\n\t score: 0,\n\t entropy: 0,\n\t isPassword: true,\n\t isValid: false\n\t };\n\t },\n\n\t /*========== STYLES ==========*/\n\n\t getMeterStyle: function getMeterStyle(score) {\n\t var width = this.state.value === '' ? 0 : 24 * score + 4;\n\t return {\n\t width: this.props.zxcvbn ? width + '%' : '100%',\n\t maxWidth: '85%',\n\t opacity: this.props.zxcvbn ? width * .01 + .5 : '1',\n\t background: this.state.isValid ? this.props.statusColor : this.props.statusInactiveColor,\n\t height: 5,\n\t transition: 'all 400ms linear',\n\t display: 'inline-block',\n\t marginRight: '1%'\n\t };\n\t },\n\n\t unMaskStyle: {\n\t color: config.unMaskColor,\n\t fontWeight: 200\n\t },\n\n\t infoStyle: {\n\t position: 'absolute',\n\t bottom: -10,\n\t width: '100%',\n\t overflow: 'hidden',\n\t height: 24\n\t },\n\n\t iconStyle: {\n\t display: 'inline-block',\n\t opacity: .25,\n\t position: 'relative',\n\t top: 2,\n\t width: '3%'\n\t },\n\n\t strengthLangStyle: {\n\t fontSize: 12,\n\t position: 'relative',\n\t top: 2\n\t },\n\n\t /*========== METHODS ==========*/\n\n\t addPasswordType: function addPasswordType() {\n\t this.setState({\n\t isPassword: true\n\t });\n\t },\n\n\t /*========== HANDLERS ==========*/\n\n\t handleInputType: function handleInputType() {\n\t this.setState({\n\t isPassword: !this.state.isPassword\n\t });\n\t },\n\n\t handleChange: function handleChange(e) {\n\t e.preventDefault();\n\n\t var native_target = e.nativeEvent.target;\n\t var val = e.target.value;\n\t var score;\n\n\t this.setState({\n\t value: val,\n\t isValid: e.target.validity.valid,\n\t selectionStart: native_target.selectionStart,\n\t selectionEnd: native_target.selectionEnd\n\t });\n\n\t if (this.props.toggleMask) {\n\t this.handleToggleMask();\n\t }\n\n\t if (this.props.zxcvbn) {\n\t score = this.handleZxcvbn(val);\n\t } else {\n\t score = this.state.score;\n\t }\n\n\t // call onChange prop passed from parent\n\t if (this.props.onChange) {\n\t this.props.onChange(val, this.state.isValid, score);\n\t }\n\n\t if (this.props.minLength) {\n\t this.handleMinLength(e.target.value.length);\n\t }\n\t },\n\n\t handleToggleMask: function handleToggleMask() {\n\n\t // display password, then\n\t this.setState({\n\t isPassword: false\n\t });\n\n\t // debounce remasking password\n\t this.maskPassword();\n\t },\n\n\t handleZxcvbn: function handleZxcvbn(val) {\n\n\t if (typeof zxcvbn === 'undefined' && typeof window.zxcvbn === 'undefined') {\n\t return;\n\t }\n\n\t var stats = zxcvbn(val),\n\t currentScore = stats.score;\n\n\t this.setState({\n\t score: currentScore,\n\t entropy: stats.entropy\n\t });\n\n\t if (currentScore < this.props.minScore) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\n\t // if score changed and callback provided\n\t if (this.props.changeCb && this.state.score !== currentScore) {\n\t this.props.changeCb(this.state.score, currentScore, val);\n\t }\n\n\t if (this.props.zxcvbn === 'debug') {\n\t console.debug(stats);\n\t }\n\n\t return currentScore;\n\t },\n\n\t handleMinLength: function handleMinLength(len) {\n\t if (len <= this.props.minLength) {\n\t this.setState({\n\t isValid: false\n\t });\n\t }\n\t },\n\n\t componentWillMount: function componentWillMount() {\n\t var zxcvbnSrc;\n\n\t // Load zxcvbn async if its enabled and doesn't already exist\n\t if (this.props.zxcvbn && typeof zxcvbn === 'undefined') {\n\n\t zxcvbnSrc = this.props.zxcvbn !== 'debug' ? this.props.zxcvbn : config.zxcvbnSrc;\n\n\t // snippet to async load zxcvbn if enabled\n\t (function () {\n\t var a;a = function () {\n\t var a, b;b = document.createElement(\"script\");b.src = zxcvbnSrc;b.type = \"text/javascript\";b.async = !0;a = document.getElementsByTagName(\"head\")[0];return a.parentNode.insertBefore(b, a);\n\t };null != window.attachEvent ? window.attachEvent(\"onload\", a) : window.addEventListener(\"load\", a, !1);\n\t }).call(this);\n\t }\n\n\t // set debouncer for password\n\t if (this.props.toggleMask) {\n\t this.maskPassword = debounce(this.addPasswordType, this.props.unMaskTime);\n\t }\n\t },\n\n\t componentWillUnmount: function componentWillUnmount() {\n\t // cancel the debouncer when component is not used anymore. This to avoid\n\t // setting the state unnecessarily, see issue #24\n\t if (this.maskPassword) {\n\t this.maskPassword.cancel();\n\t }\n\t },\n\n\t render: function render() {\n\t var infoBar;\n\n\t if (this.props.infoBar) {\n\t infoBar = React.createElement(\n\t 'div',\n\t { className: 'passwordField__info', style: this.infoStyle },\n\t React.createElement(\n\t 'span',\n\t { style: this.iconStyle, className: 'passwordField__icon' },\n\t React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' })\n\t ),\n\t React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }),\n\t React.createElement(\n\t 'span',\n\t { style: this.strengthLangStyle, className: 'passwordField__strength' },\n\t this.props.zxcvbn && this.state.value.length > 0 && this.props.strengthLang.length > 0 ? this.props.strengthLang[this.state.score] : null\n\t )\n\t );\n\t }\n\n\t // allow onChange to be passed from parent and not override default prop\n\t var _props = this.props;\n\t var onChange = _props.onChange;\n\n\t var props = _objectWithoutProperties(_props, ['onChange']);\n\n\t // overcome problem with firefox resetting the input selection point\n\t var that = this;\n\t if (typeof navigator !== 'undefined') {\n\t setTimeout(function () {\n\t if (!/Firefox/.test(navigator.userAgent)) return;\n\t var elem = that.refs[that.props.id].getDOMNode();\n\t elem.selectionStart = that.state.selectionStart;\n\t elem.selectionEnd = that.state.selectionEnd;\n\t }, 1);\n\t }\n\n\t return React.createElement(\n\t 'div',\n\t {\n\t style: { position: 'relative', display: 'inline-block' },\n\t className: 'passwordField',\n\t 'data-valid': this.state.isValid,\n\t 'data-score': this.state.score,\n\t 'data-entropy': this.state.entropy\n\t },\n\t React.createElement('input', _extends({\n\t ref: this.props.id,\n\t className: 'passwordField__input',\n\t type: this.state.isPassword ? 'password' : 'text',\n\t value: this.state.value,\n\t style: this.state.isPassword ? null : this.unMaskStyle,\n\t onChange: this.handleChange\n\t }, props)),\n\t infoBar\n\t );\n\t }\n\t});\n\n\tmodule.exports = InputPassword;\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = {\n\t statusColor: '#5CE592',\n\t statusInactiveColor: '#FC6F6F',\n\t unMaskColor: '#c7c7c7',\n\t unMaskTime: 1400,\n\t zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',\n\t strengthLang: ['Weak', 'Okay', 'Good', 'Strong', 'Great']\n\t};\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\t/**\n\t * lodash 4.0.6 (Custom Build) \n\t * Build: `lodash modularize exports=\"npm\" -o ./`\n\t * Copyright jQuery Foundation and other contributors \n\t * Released under MIT license \n\t * Based on Underscore.js 1.8.3 \n\t * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\t */\n\n\t/** Used as the `TypeError` message for \"Functions\" methods. */\n\t'use strict';\n\n\tvar FUNC_ERROR_TEXT = 'Expected a function';\n\n\t/** Used as references for various `Number` constants. */\n\tvar NAN = 0 / 0;\n\n\t/** `Object#toString` result references. */\n\tvar funcTag = '[object Function]',\n\t genTag = '[object GeneratorFunction]',\n\t symbolTag = '[object Symbol]';\n\n\t/** Used to match leading and trailing whitespace. */\n\tvar reTrim = /^\\s+|\\s+$/g;\n\n\t/** Used to detect bad signed hexadecimal string values. */\n\tvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n\t/** Used to detect binary string values. */\n\tvar reIsBinary = /^0b[01]+$/i;\n\n\t/** Used to detect octal string values. */\n\tvar reIsOctal = /^0o[0-7]+$/i;\n\n\t/** Built-in method references without a dependency on `root`. */\n\tvar freeParseInt = parseInt;\n\n\t/** Used for built-in method references. */\n\tvar objectProto = Object.prototype;\n\n\t/**\n\t * Used to resolve the\n\t * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n\t * of values.\n\t */\n\tvar objectToString = objectProto.toString;\n\n\t/* Built-in method references for those with the same name as other `lodash` methods. */\n\tvar nativeMax = Math.max,\n\t nativeMin = Math.min;\n\n\t/**\n\t * Gets the timestamp of the number of milliseconds that have elapsed since\n\t * the Unix epoch (1 January 1970 00:00:00 UTC).\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 2.4.0\n\t * @type {Function}\n\t * @category Date\n\t * @returns {number} Returns the timestamp.\n\t * @example\n\t *\n\t * _.defer(function(stamp) {\n\t * console.log(_.now() - stamp);\n\t * }, _.now());\n\t * // => Logs the number of milliseconds it took for the deferred function to be invoked.\n\t */\n\tvar now = Date.now;\n\n\t/**\n\t * Creates a debounced function that delays invoking `func` until after `wait`\n\t * milliseconds have elapsed since the last time the debounced function was\n\t * invoked. The debounced function comes with a `cancel` method to cancel\n\t * delayed `func` invocations and a `flush` method to immediately invoke them.\n\t * Provide an options object to indicate whether `func` should be invoked on\n\t * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n\t * with the last arguments provided to the debounced function. Subsequent calls\n\t * to the debounced function return the result of the last `func` invocation.\n\t *\n\t * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n\t * on the trailing edge of the timeout only if the debounced function is\n\t * invoked more than once during the `wait` timeout.\n\t *\n\t * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n\t * for details over the differences between `_.debounce` and `_.throttle`.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Function\n\t * @param {Function} func The function to debounce.\n\t * @param {number} [wait=0] The number of milliseconds to delay.\n\t * @param {Object} [options={}] The options object.\n\t * @param {boolean} [options.leading=false]\n\t * Specify invoking on the leading edge of the timeout.\n\t * @param {number} [options.maxWait]\n\t * The maximum time `func` is allowed to be delayed before it's invoked.\n\t * @param {boolean} [options.trailing=true]\n\t * Specify invoking on the trailing edge of the timeout.\n\t * @returns {Function} Returns the new debounced function.\n\t * @example\n\t *\n\t * // Avoid costly calculations while the window size is in flux.\n\t * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n\t *\n\t * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n\t * jQuery(element).on('click', _.debounce(sendMail, 300, {\n\t * 'leading': true,\n\t * 'trailing': false\n\t * }));\n\t *\n\t * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n\t * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n\t * var source = new EventSource('/stream');\n\t * jQuery(source).on('message', debounced);\n\t *\n\t * // Cancel the trailing debounced invocation.\n\t * jQuery(window).on('popstate', debounced.cancel);\n\t */\n\tfunction debounce(func, wait, options) {\n\t var lastArgs,\n\t lastThis,\n\t maxWait,\n\t result,\n\t timerId,\n\t lastCallTime = 0,\n\t lastInvokeTime = 0,\n\t leading = false,\n\t maxing = false,\n\t trailing = true;\n\n\t if (typeof func != 'function') {\n\t throw new TypeError(FUNC_ERROR_TEXT);\n\t }\n\t wait = toNumber(wait) || 0;\n\t if (isObject(options)) {\n\t leading = !!options.leading;\n\t maxing = 'maxWait' in options;\n\t maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n\t trailing = 'trailing' in options ? !!options.trailing : trailing;\n\t }\n\n\t function invokeFunc(time) {\n\t var args = lastArgs,\n\t thisArg = lastThis;\n\n\t lastArgs = lastThis = undefined;\n\t lastInvokeTime = time;\n\t result = func.apply(thisArg, args);\n\t return result;\n\t }\n\n\t function leadingEdge(time) {\n\t // Reset any `maxWait` timer.\n\t lastInvokeTime = time;\n\t // Start the timer for the trailing edge.\n\t timerId = setTimeout(timerExpired, wait);\n\t // Invoke the leading edge.\n\t return leading ? invokeFunc(time) : result;\n\t }\n\n\t function remainingWait(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime,\n\t result = wait - timeSinceLastCall;\n\n\t return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n\t }\n\n\t function shouldInvoke(time) {\n\t var timeSinceLastCall = time - lastCallTime,\n\t timeSinceLastInvoke = time - lastInvokeTime;\n\n\t // Either this is the first call, activity has stopped and we're at the\n\t // trailing edge, the system time has gone backwards and we're treating\n\t // it as the trailing edge, or we've hit the `maxWait` limit.\n\t return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n\t }\n\n\t function timerExpired() {\n\t var time = now();\n\t if (shouldInvoke(time)) {\n\t return trailingEdge(time);\n\t }\n\t // Restart the timer.\n\t timerId = setTimeout(timerExpired, remainingWait(time));\n\t }\n\n\t function trailingEdge(time) {\n\t clearTimeout(timerId);\n\t timerId = undefined;\n\n\t // Only invoke if we have `lastArgs` which means `func` has been\n\t // debounced at least once.\n\t if (trailing && lastArgs) {\n\t return invokeFunc(time);\n\t }\n\t lastArgs = lastThis = undefined;\n\t return result;\n\t }\n\n\t function cancel() {\n\t if (timerId !== undefined) {\n\t clearTimeout(timerId);\n\t }\n\t lastCallTime = lastInvokeTime = 0;\n\t lastArgs = lastThis = timerId = undefined;\n\t }\n\n\t function flush() {\n\t return timerId === undefined ? result : trailingEdge(now());\n\t }\n\n\t function debounced() {\n\t var time = now(),\n\t isInvoking = shouldInvoke(time);\n\n\t lastArgs = arguments;\n\t lastThis = this;\n\t lastCallTime = time;\n\n\t if (isInvoking) {\n\t if (timerId === undefined) {\n\t return leadingEdge(lastCallTime);\n\t }\n\t if (maxing) {\n\t // Handle invocations in a tight loop.\n\t clearTimeout(timerId);\n\t timerId = setTimeout(timerExpired, wait);\n\t return invokeFunc(lastCallTime);\n\t }\n\t }\n\t if (timerId === undefined) {\n\t timerId = setTimeout(timerExpired, wait);\n\t }\n\t return result;\n\t }\n\t debounced.cancel = cancel;\n\t debounced.flush = flush;\n\t return debounced;\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Function` object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isFunction(_);\n\t * // => true\n\t *\n\t * _.isFunction(/abc/);\n\t * // => false\n\t */\n\tfunction isFunction(value) {\n\t // The use of `Object#toString` avoids issues with the `typeof` operator\n\t // in Safari 8 which returns 'object' for typed array and weak map constructors,\n\t // and PhantomJS 1.9 which returns 'function' for `NodeList` instances.\n\t var tag = isObject(value) ? objectToString.call(value) : '';\n\t return tag == funcTag || tag == genTag;\n\t}\n\n\t/**\n\t * Checks if `value` is the\n\t * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types)\n\t * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 0.1.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n\t * @example\n\t *\n\t * _.isObject({});\n\t * // => true\n\t *\n\t * _.isObject([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObject(_.noop);\n\t * // => true\n\t *\n\t * _.isObject(null);\n\t * // => false\n\t */\n\tfunction isObject(value) {\n\t var type = typeof value;\n\t return !!value && (type == 'object' || type == 'function');\n\t}\n\n\t/**\n\t * Checks if `value` is object-like. A value is object-like if it's not `null`\n\t * and has a `typeof` result of \"object\".\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n\t * @example\n\t *\n\t * _.isObjectLike({});\n\t * // => true\n\t *\n\t * _.isObjectLike([1, 2, 3]);\n\t * // => true\n\t *\n\t * _.isObjectLike(_.noop);\n\t * // => false\n\t *\n\t * _.isObjectLike(null);\n\t * // => false\n\t */\n\tfunction isObjectLike(value) {\n\t return !!value && typeof value == 'object';\n\t}\n\n\t/**\n\t * Checks if `value` is classified as a `Symbol` primitive or object.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to check.\n\t * @returns {boolean} Returns `true` if `value` is correctly classified,\n\t * else `false`.\n\t * @example\n\t *\n\t * _.isSymbol(Symbol.iterator);\n\t * // => true\n\t *\n\t * _.isSymbol('abc');\n\t * // => false\n\t */\n\tfunction isSymbol(value) {\n\t return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag;\n\t}\n\n\t/**\n\t * Converts `value` to a number.\n\t *\n\t * @static\n\t * @memberOf _\n\t * @since 4.0.0\n\t * @category Lang\n\t * @param {*} value The value to process.\n\t * @returns {number} Returns the number.\n\t * @example\n\t *\n\t * _.toNumber(3);\n\t * // => 3\n\t *\n\t * _.toNumber(Number.MIN_VALUE);\n\t * // => 5e-324\n\t *\n\t * _.toNumber(Infinity);\n\t * // => Infinity\n\t *\n\t * _.toNumber('3');\n\t * // => 3\n\t */\n\tfunction toNumber(value) {\n\t if (typeof value == 'number') {\n\t return value;\n\t }\n\t if (isSymbol(value)) {\n\t return NAN;\n\t }\n\t if (isObject(value)) {\n\t var other = isFunction(value.valueOf) ? value.valueOf() : value;\n\t value = isObject(other) ? other + '' : other;\n\t }\n\t if (typeof value != 'string') {\n\t return value === 0 ? value : +value;\n\t }\n\t value = value.replace(reTrim, '');\n\t var isBinary = reIsBinary.test(value);\n\t return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n\t}\n\n\tmodule.exports = debounce;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=\"\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** ./lib/react-ux-password-field.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index c48ddc5..797ba53 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.11 + * version: 0.9.12 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/lib/react-ux-password-field.min.js b/lib/react-ux-password-field.min.js index 117ea8c..d8e8982 100644 --- a/lib/react-ux-password-field.min.js +++ b/lib/react-ux-password-field.min.js @@ -1,6 +1,6 @@ /*! * React UX Password Field - * version: 0.9.11 + * version: 0.9.12 * * MIT Licensed * github: https://github.com/seethroughtrees/react-ux-password-field/ diff --git a/package.json b/package.json index 4e713b8..ca53757 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "react-ux-password-field", - "version": "0.9.11", + "version": "0.9.12", "license": "MIT", "main": "src/index.js", "browser": "./lib/react-ux-password-field.js", From 572bfcdf0baf57e80928fee44a714581145c4bd8 Mon Sep 17 00:00:00 2001 From: Adam L Date: Mon, 2 May 2016 23:29:35 -0700 Subject: [PATCH 31/34] Updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8eac55c..df22b99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ **Merged pull requests:** +- fixes additional prerendering bug from getDOMNode\(\) [\#39](https://github.com/seethroughtrees/react-ux-password-field/pull/39) ([AppSorcery](https://github.com/AppSorcery)) - Feature/update [\#38](https://github.com/seethroughtrees/react-ux-password-field/pull/38) ([seethroughtrees](https://github.com/seethroughtrees)) - adds check for existence of global navigator variable [\#37](https://github.com/seethroughtrees/react-ux-password-field/pull/37) ([AppSorcery](https://github.com/AppSorcery)) - Move build-time npm packages to devDependencies [\#34](https://github.com/seethroughtrees/react-ux-password-field/pull/34) ([ahoym](https://github.com/ahoym)) From 625d7b1f0707214c098f747f34ef7af93ff1e0d0 Mon Sep 17 00:00:00 2001 From: "Pedro J. Parra" Date: Wed, 11 May 2016 17:53:38 +0200 Subject: [PATCH 32/34] New props for change the default lock icon color --- demo/index.html | 6 + demo/src/index.js | 1 + dev_server/index.html | 6 + lib/react-ux-password-field.js | 492 ++++++++++++++++----------------- src/img/lock2_light.png | Bin 0 -> 3192 bytes src/img/lock_light.png | Bin 0 -> 787 bytes src/index.js | 4 +- src/js/config.js | 1 + 8 files changed, 259 insertions(+), 251 deletions(-) create mode 100644 src/img/lock2_light.png create mode 100644 src/img/lock_light.png diff --git a/demo/index.html b/demo/index.html index a03fa42..86ef58f 100644 --- a/demo/index.html +++ b/demo/index.html @@ -118,6 +118,12 @@
    statusInactiveColor (string)#FC6F6FstatusInactiveColor="#FC6F6F" will change the default invalid color in the bar.

    +
    +
    lockIconLight (boolean)default: false
    +

    +

    lockIconLight={true}
    will change the default color gray dark to gray light for the lock icon. +

    +
    strengthLang (array)['Weak', 'Okay', 'Good', 'Strong', 'Great']

    diff --git a/demo/src/index.js b/demo/src/index.js index 001b6b5..2731a34 100644 --- a/demo/src/index.js +++ b/demo/src/index.js @@ -24,6 +24,7 @@ React.render( statusInactiveColor (string)#FC6F6FstatusInactiveColor="#FC6F6F" will change the default invalid color in the bar.

    +
    +
    lockIconLight (boolean)default: false
    +

    +

    lockIconLight={true}
    will change the default color gray dark to gray light for the lock icon. +

    +
    changeCb (function(oldValue, newValue))

    diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index 797ba53..29ba6e8 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -83,6 +83,7 @@ return /******/ (function(modules) { // webpackBootstrap infoBar: RP.bool, statusColor: RP.string, statusInactiveColor: RP.string, + lockIconLight: RP.bool, minScore: RP.number, changeCb: RP.func, toggleMask: RP.bool, @@ -99,6 +100,7 @@ return /******/ (function(modules) { // webpackBootstrap infoBar: true, statusColor: config.statusColor, statusInactiveColor: config.statusInactiveColor, + lockIconLight: config.lockIconLight, zxcvbn: config.zxcvbnSrc, minScore: 0, toggleMask: true, @@ -302,7 +304,7 @@ return /******/ (function(modules) { // webpackBootstrap React.createElement( 'span', { style: this.iconStyle, className: 'passwordField__icon' }, - React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' }) + React.createElement('img', { src: this.props.lockIconLight ? __webpack_require__(6) : __webpack_require__(5), height: '10', width: '10' }) ), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement( @@ -369,6 +371,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = { statusColor: '#5CE592', statusInactiveColor: '#FC6F6F', + lockIconLight: false, unMaskColor: '#c7c7c7', unMaskTime: 1400, zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js', @@ -377,285 +380,220 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 3 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { /** - * lodash 4.0.6 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license + * lodash 3.1.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license */ - - /** Used as the `TypeError` message for "Functions" methods. */ 'use strict'; - var FUNC_ERROR_TEXT = 'Expected a function'; - - /** Used as references for various `Number` constants. */ - var NAN = 0 / 0; - - /** `Object#toString` result references. */ - var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - symbolTag = '[object Symbol]'; - - /** Used to match leading and trailing whitespace. */ - var reTrim = /^\s+|\s+$/g; + var getNative = __webpack_require__(4); - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Built-in method references without a dependency on `root`. */ - var freeParseInt = parseInt; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString = objectProto.toString; + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; - /* Built-in method references for those with the same name as other `lodash` methods. */ + /* Native method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, - nativeMin = Math.min; + nativeNow = getNative(Date, 'now'); /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). + * Gets the number of milliseconds that have elapsed since the Unix epoch + * (1 January 1970 00:00:00 UTC). * * @static * @memberOf _ - * @since 2.4.0 - * @type {Function} * @category Date - * @returns {number} Returns the timestamp. * @example * * _.defer(function(stamp) { * console.log(_.now() - stamp); * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred function to be invoked. + * // => logs the number of milliseconds it took for the deferred function to be invoked */ - var now = Date.now; + var now = nativeNow || function () { + return new Date().getTime(); + }; /** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide an options object to indicate whether `func` should be invoked on - * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent calls - * to the debounced function return the result of the last `func` invocation. + * delayed invocations. Provide an options object to indicate that `func` + * should be invoked on the leading and/or trailing edge of the `wait` timeout. + * Subsequent calls to the debounced function return the result of the last + * `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked - * on the trailing edge of the timeout only if the debounced function is + * on the trailing edge of the timeout only if the the debounced function is * invoked more than once during the `wait` timeout. * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ - * @since 0.1.0 * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param {Object} [options] The options object. + * @param {boolean} [options.leading=false] Specify invoking on the leading + * edge of the timeout. + * @param {number} [options.maxWait] The maximum time `func` is allowed to be + * delayed before it is invoked. + * @param {boolean} [options.trailing=true] Specify invoking on the trailing + * edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * - * // Avoid costly calculations while the window size is in flux. + * // avoid costly calculations while the window size is in flux * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { + * // invoke `sendMail` when the click event is fired, debouncing subsequent calls + * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * // ensure `batchLog` is invoked once after 1 second of debounced calls * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); + * jQuery(source).on('message', _.debounce(batchLog, 250, { + * 'maxWait': 1000 + * })); + * + * // cancel a debounced call + * var todoChanges = _.debounce(batchLog, 1000); + * Object.observe(models.todo, todoChanges); * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); + * Object.observe(models, function(changes) { + * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { + * todoChanges.cancel(); + * } + * }, ['delete']); + * + * // ...at some point `models.todo` is changed + * models.todo.completed = true; + * + * // ...before 1 second has passed `models.todo` is deleted + * // which cancels the debounced `todoChanges` call + * delete models.todo; */ function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, + var args, + maxTimeoutId, result, - timerId, - lastCallTime = 0, - lastInvokeTime = 0, - leading = false, - maxing = false, + stamp, + thisArg, + timeoutId, + trailingCall, + lastCalled = 0, + maxWait = false, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } - wait = toNumber(wait) || 0; - if (isObject(options)) { + wait = wait < 0 ? 0 : +wait || 0; + if (options === true) { + var leading = true; + trailing = false; + } else if (isObject(options)) { leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); trailing = 'trailing' in options ? !!options.trailing : trailing; } - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - result = wait - timeSinceLastCall; - - return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); + function cancel() { + if (timeoutId) { + clearTimeout(timeoutId); + } + if (maxTimeoutId) { + clearTimeout(maxTimeoutId); } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); + lastCalled = 0; + maxTimeoutId = timeoutId = trailingCall = undefined; } - function trailingEdge(time) { - clearTimeout(timerId); - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); + function complete(isCalled, id) { + if (id) { + clearTimeout(id); + } + maxTimeoutId = timeoutId = trailingCall = undefined; + if (isCalled) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = undefined; + } } - lastArgs = lastThis = undefined; - return result; } - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); + function delayed() { + var remaining = wait - (now() - stamp); + if (remaining <= 0 || remaining > wait) { + complete(trailingCall, maxTimeoutId); + } else { + timeoutId = setTimeout(delayed, remaining); } - lastCallTime = lastInvokeTime = 0; - lastArgs = lastThis = timerId = undefined; } - function flush() { - return timerId === undefined ? result : trailingEdge(now()); + function maxDelayed() { + complete(trailing, timeoutId); } function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); + args = arguments; + stamp = now(); + thisArg = this; + trailingCall = trailing && (timeoutId || !leading); - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); + if (maxWait === false) { + var leadingCall = leading && !timeoutId; + } else { + if (!maxTimeoutId && !leading) { + lastCalled = stamp; } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); + var remaining = maxWait - (stamp - lastCalled), + isCalled = remaining <= 0 || remaining > maxWait; + + if (isCalled) { + if (maxTimeoutId) { + maxTimeoutId = clearTimeout(maxTimeoutId); + } + lastCalled = stamp; + result = func.apply(thisArg, args); + } else if (!maxTimeoutId) { + maxTimeoutId = setTimeout(maxDelayed, remaining); } } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); + if (isCalled && timeoutId) { + timeoutId = clearTimeout(timeoutId); + } else if (!timeoutId && wait !== maxWait) { + timeoutId = setTimeout(delayed, wait); + } + if (leadingCall) { + isCalled = true; + result = func.apply(thisArg, args); + } + if (isCalled && !timeoutId && !maxTimeoutId) { + args = thisArg = undefined; } return result; } debounced.cancel = cancel; - debounced.flush = flush; return debounced; } /** - * Checks if `value` is classified as a `Function` object. + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. @@ -667,117 +605,171 @@ return /******/ (function(modules) { // webpackBootstrap * _.isObject([1, 2, 3]); * // => true * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); + * _.isObject(1); * // => false */ function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type = typeof value; return !!value && (type == 'object' || type == 'function'); } + module.exports = debounce; + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + /** + * lodash 3.9.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** `Object#toString` result references. */ + 'use strict'; + + var funcTag = '[object Function]'; + + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". + * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ - * @since 4.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); + * _.isFunction(_); * // => true * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); + * _.isFunction(/abc/); * // => false */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; } /** - * Checks if `value` is classified as a `Symbol` primitive or object. + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ - * @since 4.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * - * _.isSymbol(Symbol.iterator); + * _.isObject({}); * // => true * - * _.isSymbol('abc'); + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); * // => false */ - function isSymbol(value) { - return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag; + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); } /** - * Converts `value` to a number. + * Checks if `value` is a native function. * * @static * @memberOf _ - * @since 4.0.0 * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. * @example * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity + * _.isNative(Array.prototype.push); + * // => true * - * _.toNumber('3'); - * // => 3 + * _.isNative(_); + * // => false */ - function toNumber(value) { - if (typeof value == 'number') { - return value; + function isNative(value) { + if (value == null) { + return false; } - if (isSymbol(value)) { - return NAN; + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); } - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? other + '' : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + return isObjectLike(value) && reIsHostCtor.test(value); } - module.exports = debounce; + module.exports = getNative; /***/ }, -/* 4 */ +/* 5 */ /***/ function(module, exports) { module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=" +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAspJREFUSA29lkuIklEUx/VTrDCmFgOZQS+iFLUhiAgj2rRqFUwUtC+oVQRtw9m0CIqIFsFEtIoaEGrTpsKohha5kDCViAqGFpFIQTKTz35H/OJkfq/UDlzuuff+z/nfc++5D7/vHyWXy62ORCKnMD9G2UGZotQpS36//2GtVruSTqeXaQ8V/9Beh85KpRLtdruLEGy1gVZbrdaRZDL5ehjGM3GpVNpiGMYbnEmEjtJutw8nEomng0CvxH6ifYuTuHL0sdPp5JjMCqsQZBX2M7ZbjS83m81dqVRqSfX5grrhpEM6B+Y3KUTz8Xj89KAduAv0Xe73rwkGg9fQZzXOU8Q4/IDxtr6Dl7FY7KB2pnWwz2mb4x2ijhL1FxNjmIpTXSwWZ8CYpD6iXXCwuaPG2QnjkGr7XBMHAoE92pC9LOr2oE6Ej3Uf+L267ZoYo43akISSZbeUbDb7mcGvJgDiDaYutWtiDNdrQ47Jim4P6plMpkOfxqzVGNdZzWVwl+ysEukPHDSr1ep37WiYTh6co2xmLET9SmNcZTWXxlGMpimfiDwAucGe76ReRbutHYpOnwFRl/odGLk2u5TeVtF9nwul4UQsF8YLjA5QxiWy9/ssifP5/HQ4HL7ErOUhGKsQ9RPL5IJ0FtLjY2XsO8PvjCUxmChl3SSIiThsR/xX0oxzEnbEXngWAZ+hPHBr5Poc2zhc4LE40R+/WS6X59jDizb43tDIEXOxXNckjUZjXret9JGJeXW2a+fcbpKUjjIO4huFQmGTycSN9n8ihnAqFArJlepjf+XN1d8e6R4qI0csXkmmhtScz59Su5GxEEPU+3FC/MfTaTcBu+PkZVLneUxqEJ+1I9NjlsQ4abOEGmupg5NMvu0WL44so8LJe8blCZuEfLMk5r98j6hvTYIVn88c15IjchWgfNoFK/8o+U14FbE1g3xUr9dP/gLooeVeOrZxBQAAAABJRU5ErkJggg==" + /***/ } /******/ ]) }); diff --git a/src/img/lock2_light.png b/src/img/lock2_light.png new file mode 100644 index 0000000000000000000000000000000000000000..decd9d3d5238212331e76737d9ef718632a76b13 GIT binary patch literal 3192 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 - + diff --git a/src/js/config.js b/src/js/config.js index 336bb61..c132bbd 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -3,6 +3,7 @@ module.exports = { statusColor: '#5CE592', statusInactiveColor: '#FC6F6F', + lockIconLight: false, unMaskColor: '#c7c7c7', unMaskTime: 1400, zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js', From 4193e6b34a09f11907f31340e4deb86f1f62f42f Mon Sep 17 00:00:00 2001 From: Adam L Date: Sun, 26 Jun 2016 14:19:54 -0700 Subject: [PATCH 33/34] Updated README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index d389071..f87c204 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +**Please note:** - I'm happy to hear people are getting use out of this component, however, I'm no longer using it or able to maintain it. Please check out the [issue here](https://github.com/seethroughtrees/react-ux-password-field/issues/44) for updates. + React UX Password Field ============= From dbf112ad9f4000cd6c90cff0f976a5e9fc6396ff Mon Sep 17 00:00:00 2001 From: "Pedro J. Parra" Date: Wed, 11 May 2016 17:53:38 +0200 Subject: [PATCH 34/34] New props for change the default lock icon color --- demo/index.html | 6 + demo/src/index.js | 1 + dev_server/index.html | 6 + lib/react-ux-password-field.js | 492 ++++++++++++++++----------------- src/img/lock2_light.png | Bin 0 -> 3192 bytes src/img/lock_light.png | Bin 0 -> 787 bytes src/index.js | 4 +- src/js/config.js | 1 + 8 files changed, 259 insertions(+), 251 deletions(-) create mode 100644 src/img/lock2_light.png create mode 100644 src/img/lock_light.png diff --git a/demo/index.html b/demo/index.html index a03fa42..86ef58f 100644 --- a/demo/index.html +++ b/demo/index.html @@ -118,6 +118,12 @@

    statusInactiveColor (string)#FC6F6FstatusInactiveColor="#FC6F6F" will change the default invalid color in the bar.

    +
    +
    lockIconLight (boolean)default: false
    +

    +

    lockIconLight={true}
    will change the default color gray dark to gray light for the lock icon. +

    +
    strengthLang (array)['Weak', 'Okay', 'Good', 'Strong', 'Great']

    diff --git a/demo/src/index.js b/demo/src/index.js index 001b6b5..2731a34 100644 --- a/demo/src/index.js +++ b/demo/src/index.js @@ -24,6 +24,7 @@ React.render( statusInactiveColor (string)#FC6F6FstatusInactiveColor="#FC6F6F" will change the default invalid color in the bar.

    +
    +
    lockIconLight (boolean)default: false
    +

    +

    lockIconLight={true}
    will change the default color gray dark to gray light for the lock icon. +

    +
    changeCb (function(oldValue, newValue))

    diff --git a/lib/react-ux-password-field.js b/lib/react-ux-password-field.js index 797ba53..29ba6e8 100644 --- a/lib/react-ux-password-field.js +++ b/lib/react-ux-password-field.js @@ -83,6 +83,7 @@ return /******/ (function(modules) { // webpackBootstrap infoBar: RP.bool, statusColor: RP.string, statusInactiveColor: RP.string, + lockIconLight: RP.bool, minScore: RP.number, changeCb: RP.func, toggleMask: RP.bool, @@ -99,6 +100,7 @@ return /******/ (function(modules) { // webpackBootstrap infoBar: true, statusColor: config.statusColor, statusInactiveColor: config.statusInactiveColor, + lockIconLight: config.lockIconLight, zxcvbn: config.zxcvbnSrc, minScore: 0, toggleMask: true, @@ -302,7 +304,7 @@ return /******/ (function(modules) { // webpackBootstrap React.createElement( 'span', { style: this.iconStyle, className: 'passwordField__icon' }, - React.createElement('img', { src: __webpack_require__(4), height: '10', width: '10' }) + React.createElement('img', { src: this.props.lockIconLight ? __webpack_require__(6) : __webpack_require__(5), height: '10', width: '10' }) ), React.createElement('span', { style: this.getMeterStyle(this.state.score), className: 'passwordField__meter' }), React.createElement( @@ -369,6 +371,7 @@ return /******/ (function(modules) { // webpackBootstrap module.exports = { statusColor: '#5CE592', statusInactiveColor: '#FC6F6F', + lockIconLight: false, unMaskColor: '#c7c7c7', unMaskTime: 1400, zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js', @@ -377,285 +380,220 @@ return /******/ (function(modules) { // webpackBootstrap /***/ }, /* 3 */ -/***/ function(module, exports) { +/***/ function(module, exports, __webpack_require__) { /** - * lodash 4.0.6 (Custom Build) - * Build: `lodash modularize exports="npm" -o ./` - * Copyright jQuery Foundation and other contributors - * Released under MIT license + * lodash 3.1.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation * Based on Underscore.js 1.8.3 - * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license */ - - /** Used as the `TypeError` message for "Functions" methods. */ 'use strict'; - var FUNC_ERROR_TEXT = 'Expected a function'; - - /** Used as references for various `Number` constants. */ - var NAN = 0 / 0; - - /** `Object#toString` result references. */ - var funcTag = '[object Function]', - genTag = '[object GeneratorFunction]', - symbolTag = '[object Symbol]'; - - /** Used to match leading and trailing whitespace. */ - var reTrim = /^\s+|\s+$/g; + var getNative = __webpack_require__(4); - /** Used to detect bad signed hexadecimal string values. */ - var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; - - /** Used to detect binary string values. */ - var reIsBinary = /^0b[01]+$/i; - - /** Used to detect octal string values. */ - var reIsOctal = /^0o[0-7]+$/i; - - /** Built-in method references without a dependency on `root`. */ - var freeParseInt = parseInt; - - /** Used for built-in method references. */ - var objectProto = Object.prototype; - - /** - * Used to resolve the - * [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) - * of values. - */ - var objectToString = objectProto.toString; + /** Used as the `TypeError` message for "Functions" methods. */ + var FUNC_ERROR_TEXT = 'Expected a function'; - /* Built-in method references for those with the same name as other `lodash` methods. */ + /* Native method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, - nativeMin = Math.min; + nativeNow = getNative(Date, 'now'); /** - * Gets the timestamp of the number of milliseconds that have elapsed since - * the Unix epoch (1 January 1970 00:00:00 UTC). + * Gets the number of milliseconds that have elapsed since the Unix epoch + * (1 January 1970 00:00:00 UTC). * * @static * @memberOf _ - * @since 2.4.0 - * @type {Function} * @category Date - * @returns {number} Returns the timestamp. * @example * * _.defer(function(stamp) { * console.log(_.now() - stamp); * }, _.now()); - * // => Logs the number of milliseconds it took for the deferred function to be invoked. + * // => logs the number of milliseconds it took for the deferred function to be invoked */ - var now = Date.now; + var now = nativeNow || function () { + return new Date().getTime(); + }; /** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel - * delayed `func` invocations and a `flush` method to immediately invoke them. - * Provide an options object to indicate whether `func` should be invoked on - * the leading and/or trailing edge of the `wait` timeout. The `func` is invoked - * with the last arguments provided to the debounced function. Subsequent calls - * to the debounced function return the result of the last `func` invocation. + * delayed invocations. Provide an options object to indicate that `func` + * should be invoked on the leading and/or trailing edge of the `wait` timeout. + * Subsequent calls to the debounced function return the result of the last + * `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked - * on the trailing edge of the timeout only if the debounced function is + * on the trailing edge of the timeout only if the the debounced function is * invoked more than once during the `wait` timeout. * - * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) + * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ - * @since 0.1.0 * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. - * @param {Object} [options={}] The options object. - * @param {boolean} [options.leading=false] - * Specify invoking on the leading edge of the timeout. - * @param {number} [options.maxWait] - * The maximum time `func` is allowed to be delayed before it's invoked. - * @param {boolean} [options.trailing=true] - * Specify invoking on the trailing edge of the timeout. + * @param {Object} [options] The options object. + * @param {boolean} [options.leading=false] Specify invoking on the leading + * edge of the timeout. + * @param {number} [options.maxWait] The maximum time `func` is allowed to be + * delayed before it is invoked. + * @param {boolean} [options.trailing=true] Specify invoking on the trailing + * edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * - * // Avoid costly calculations while the window size is in flux. + * // avoid costly calculations while the window size is in flux * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * - * // Invoke `sendMail` when clicked, debouncing subsequent calls. - * jQuery(element).on('click', _.debounce(sendMail, 300, { + * // invoke `sendMail` when the click event is fired, debouncing subsequent calls + * jQuery('#postbox').on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * - * // Ensure `batchLog` is invoked once after 1 second of debounced calls. - * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); + * // ensure `batchLog` is invoked once after 1 second of debounced calls * var source = new EventSource('/stream'); - * jQuery(source).on('message', debounced); + * jQuery(source).on('message', _.debounce(batchLog, 250, { + * 'maxWait': 1000 + * })); + * + * // cancel a debounced call + * var todoChanges = _.debounce(batchLog, 1000); + * Object.observe(models.todo, todoChanges); * - * // Cancel the trailing debounced invocation. - * jQuery(window).on('popstate', debounced.cancel); + * Object.observe(models, function(changes) { + * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) { + * todoChanges.cancel(); + * } + * }, ['delete']); + * + * // ...at some point `models.todo` is changed + * models.todo.completed = true; + * + * // ...before 1 second has passed `models.todo` is deleted + * // which cancels the debounced `todoChanges` call + * delete models.todo; */ function debounce(func, wait, options) { - var lastArgs, - lastThis, - maxWait, + var args, + maxTimeoutId, result, - timerId, - lastCallTime = 0, - lastInvokeTime = 0, - leading = false, - maxing = false, + stamp, + thisArg, + timeoutId, + trailingCall, + lastCalled = 0, + maxWait = false, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } - wait = toNumber(wait) || 0; - if (isObject(options)) { + wait = wait < 0 ? 0 : +wait || 0; + if (options === true) { + var leading = true; + trailing = false; + } else if (isObject(options)) { leading = !!options.leading; - maxing = 'maxWait' in options; - maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; + maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait); trailing = 'trailing' in options ? !!options.trailing : trailing; } - function invokeFunc(time) { - var args = lastArgs, - thisArg = lastThis; - - lastArgs = lastThis = undefined; - lastInvokeTime = time; - result = func.apply(thisArg, args); - return result; - } - - function leadingEdge(time) { - // Reset any `maxWait` timer. - lastInvokeTime = time; - // Start the timer for the trailing edge. - timerId = setTimeout(timerExpired, wait); - // Invoke the leading edge. - return leading ? invokeFunc(time) : result; - } - - function remainingWait(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime, - result = wait - timeSinceLastCall; - - return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result; - } - - function shouldInvoke(time) { - var timeSinceLastCall = time - lastCallTime, - timeSinceLastInvoke = time - lastInvokeTime; - - // Either this is the first call, activity has stopped and we're at the - // trailing edge, the system time has gone backwards and we're treating - // it as the trailing edge, or we've hit the `maxWait` limit. - return !lastCallTime || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait; - } - - function timerExpired() { - var time = now(); - if (shouldInvoke(time)) { - return trailingEdge(time); + function cancel() { + if (timeoutId) { + clearTimeout(timeoutId); + } + if (maxTimeoutId) { + clearTimeout(maxTimeoutId); } - // Restart the timer. - timerId = setTimeout(timerExpired, remainingWait(time)); + lastCalled = 0; + maxTimeoutId = timeoutId = trailingCall = undefined; } - function trailingEdge(time) { - clearTimeout(timerId); - timerId = undefined; - - // Only invoke if we have `lastArgs` which means `func` has been - // debounced at least once. - if (trailing && lastArgs) { - return invokeFunc(time); + function complete(isCalled, id) { + if (id) { + clearTimeout(id); + } + maxTimeoutId = timeoutId = trailingCall = undefined; + if (isCalled) { + lastCalled = now(); + result = func.apply(thisArg, args); + if (!timeoutId && !maxTimeoutId) { + args = thisArg = undefined; + } } - lastArgs = lastThis = undefined; - return result; } - function cancel() { - if (timerId !== undefined) { - clearTimeout(timerId); + function delayed() { + var remaining = wait - (now() - stamp); + if (remaining <= 0 || remaining > wait) { + complete(trailingCall, maxTimeoutId); + } else { + timeoutId = setTimeout(delayed, remaining); } - lastCallTime = lastInvokeTime = 0; - lastArgs = lastThis = timerId = undefined; } - function flush() { - return timerId === undefined ? result : trailingEdge(now()); + function maxDelayed() { + complete(trailing, timeoutId); } function debounced() { - var time = now(), - isInvoking = shouldInvoke(time); + args = arguments; + stamp = now(); + thisArg = this; + trailingCall = trailing && (timeoutId || !leading); - lastArgs = arguments; - lastThis = this; - lastCallTime = time; - - if (isInvoking) { - if (timerId === undefined) { - return leadingEdge(lastCallTime); + if (maxWait === false) { + var leadingCall = leading && !timeoutId; + } else { + if (!maxTimeoutId && !leading) { + lastCalled = stamp; } - if (maxing) { - // Handle invocations in a tight loop. - clearTimeout(timerId); - timerId = setTimeout(timerExpired, wait); - return invokeFunc(lastCallTime); + var remaining = maxWait - (stamp - lastCalled), + isCalled = remaining <= 0 || remaining > maxWait; + + if (isCalled) { + if (maxTimeoutId) { + maxTimeoutId = clearTimeout(maxTimeoutId); + } + lastCalled = stamp; + result = func.apply(thisArg, args); + } else if (!maxTimeoutId) { + maxTimeoutId = setTimeout(maxDelayed, remaining); } } - if (timerId === undefined) { - timerId = setTimeout(timerExpired, wait); + if (isCalled && timeoutId) { + timeoutId = clearTimeout(timeoutId); + } else if (!timeoutId && wait !== maxWait) { + timeoutId = setTimeout(delayed, wait); + } + if (leadingCall) { + isCalled = true; + result = func.apply(thisArg, args); + } + if (isCalled && !timeoutId && !maxTimeoutId) { + args = thisArg = undefined; } return result; } debounced.cancel = cancel; - debounced.flush = flush; return debounced; } /** - * Checks if `value` is classified as a `Function` object. + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ - * @since 0.1.0 - * @category Lang - * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. - * @example - * - * _.isFunction(_); - * // => true - * - * _.isFunction(/abc/); - * // => false - */ - function isFunction(value) { - // The use of `Object#toString` avoids issues with the `typeof` operator - // in Safari 8 which returns 'object' for typed array and weak map constructors, - // and PhantomJS 1.9 which returns 'function' for `NodeList` instances. - var tag = isObject(value) ? objectToString.call(value) : ''; - return tag == funcTag || tag == genTag; - } - - /** - * Checks if `value` is the - * [language type](http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types) - * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) - * - * @static - * @memberOf _ - * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. @@ -667,117 +605,171 @@ return /******/ (function(modules) { // webpackBootstrap * _.isObject([1, 2, 3]); * // => true * - * _.isObject(_.noop); - * // => true - * - * _.isObject(null); + * _.isObject(1); * // => false */ function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. var type = typeof value; return !!value && (type == 'object' || type == 'function'); } + module.exports = debounce; + +/***/ }, +/* 4 */ +/***/ function(module, exports) { + + /** + * lodash 3.9.1 (Custom Build) + * Build: `lodash modern modularize exports="npm" -o ./` + * Copyright 2012-2015 The Dojo Foundation + * Based on Underscore.js 1.8.3 + * Copyright 2009-2015 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + * Available under MIT license + */ + + /** `Object#toString` result references. */ + 'use strict'; + + var funcTag = '[object Function]'; + + /** Used to detect host constructors (Safari > 5). */ + var reIsHostCtor = /^\[object .+?Constructor\]$/; + + /** + * Checks if `value` is object-like. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + */ + function isObjectLike(value) { + return !!value && typeof value == 'object'; + } + + /** Used for native method references. */ + var objectProto = Object.prototype; + + /** Used to resolve the decompiled source of functions. */ + var fnToString = Function.prototype.toString; + + /** Used to check objects for own properties. */ + var hasOwnProperty = objectProto.hasOwnProperty; + + /** + * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring) + * of values. + */ + var objToString = objectProto.toString; + + /** Used to detect if a method is native. */ + var reIsNative = RegExp('^' + fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&').replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'); + + /** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ + function getNative(object, key) { + var value = object == null ? undefined : object[key]; + return isNative(value) ? value : undefined; + } + /** - * Checks if `value` is object-like. A value is object-like if it's not `null` - * and has a `typeof` result of "object". + * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ - * @since 4.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`. * @example * - * _.isObjectLike({}); - * // => true - * - * _.isObjectLike([1, 2, 3]); + * _.isFunction(_); * // => true * - * _.isObjectLike(_.noop); - * // => false - * - * _.isObjectLike(null); + * _.isFunction(/abc/); * // => false */ - function isObjectLike(value) { - return !!value && typeof value == 'object'; + function isFunction(value) { + // The use of `Object#toString` avoids issues with the `typeof` operator + // in older versions of Chrome and Safari which return 'function' for regexes + // and Safari 8 equivalents which return 'object' for typed array constructors. + return isObject(value) && objToString.call(value) == funcTag; } /** - * Checks if `value` is classified as a `Symbol` primitive or object. + * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`. + * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ - * @since 4.0.0 * @category Lang * @param {*} value The value to check. - * @returns {boolean} Returns `true` if `value` is correctly classified, - * else `false`. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * - * _.isSymbol(Symbol.iterator); + * _.isObject({}); * // => true * - * _.isSymbol('abc'); + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(1); * // => false */ - function isSymbol(value) { - return typeof value == 'symbol' || isObjectLike(value) && objectToString.call(value) == symbolTag; + function isObject(value) { + // Avoid a V8 JIT bug in Chrome 19-20. + // See https://code.google.com/p/v8/issues/detail?id=2291 for more details. + var type = typeof value; + return !!value && (type == 'object' || type == 'function'); } /** - * Converts `value` to a number. + * Checks if `value` is a native function. * * @static * @memberOf _ - * @since 4.0.0 * @category Lang - * @param {*} value The value to process. - * @returns {number} Returns the number. + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, else `false`. * @example * - * _.toNumber(3); - * // => 3 - * - * _.toNumber(Number.MIN_VALUE); - * // => 5e-324 - * - * _.toNumber(Infinity); - * // => Infinity + * _.isNative(Array.prototype.push); + * // => true * - * _.toNumber('3'); - * // => 3 + * _.isNative(_); + * // => false */ - function toNumber(value) { - if (typeof value == 'number') { - return value; + function isNative(value) { + if (value == null) { + return false; } - if (isSymbol(value)) { - return NAN; + if (isFunction(value)) { + return reIsNative.test(fnToString.call(value)); } - if (isObject(value)) { - var other = isFunction(value.valueOf) ? value.valueOf() : value; - value = isObject(other) ? other + '' : other; - } - if (typeof value != 'string') { - return value === 0 ? value : +value; - } - value = value.replace(reTrim, ''); - var isBinary = reIsBinary.test(value); - return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value; + return isObjectLike(value) && reIsHostCtor.test(value); } - module.exports = debounce; + module.exports = getNative; /***/ }, -/* 4 */ +/* 5 */ /***/ function(module, exports) { module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCRkNDMzg4M0FFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCRkNDMzg4NEFFN0IxMUU0OTE2RkY5MzYyMkI3QTVDMiI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkJGQ0MzODgxQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGQ0MzODgyQUU3QjExRTQ5MTZGRjkzNjIyQjdBNUMyIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+NkztvAAAAc9JREFUeNq8lk8oBFEcx2fG5k+0HJRQ/iVy2U1tUsjBzYnI2cUWJyl3XJRSkgOtxEU4keLgQP6kuColoeQgEkXWand8X/3UNM28Z56Z961PO2/fb9535r3f/N7TTdPUnBSLxTSBcsEA6AW1IAw+wD3YAtPg0+1mXdK4DJyAKk7MM+gE506dhuZdleBSYMpUDM5Ah1NnyKOpDnZpWn91C/ZBksZrBhFL/zaopyWQNh4HDZZ2AsQd4kbBFF3ngRnQ8581vgHVdH0M2jgPeWjpz1BePMqscdRiyrQhiF+25VK7bHI12toXgvg9+yTKGpc6TDtPD+DJ0i6RNS6ytZOC+IwtpkA2q1epKLyDb/D2h3uGQQXIBqcyWd1FBeEOZNFM1YEckHYpTGzgKyqbpmWp1kEq9IeCcQRaNP80CZoMQclb8NmUqRys8IxZpenTglHUEOxAhQEZ5/OM01qAMnwah+3Ng2BTpTGr2a1gHnSDCVXGs7Z2QpVxjUNSKjGeo29T+RuHqaRqtOdGVGZ1in6/VH9OYZet01Uhnx5qBLyAIT+MvVQulslLflWuazq+BKFXnvEaWAzI+IA31ezUMEaJE6dDQYb+9yrdMrs7oP9HgAEAXmVa5ulD/g0AAAAASUVORK5CYII=" +/***/ }, +/* 6 */ +/***/ function(module, exports) { + + module.exports = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAAspJREFUSA29lkuIklEUx/VTrDCmFgOZQS+iFLUhiAgj2rRqFUwUtC+oVQRtw9m0CIqIFsFEtIoaEGrTpsKohha5kDCViAqGFpFIQTKTz35H/OJkfq/UDlzuuff+z/nfc++5D7/vHyWXy62ORCKnMD9G2UGZotQpS36//2GtVruSTqeXaQ8V/9Beh85KpRLtdruLEGy1gVZbrdaRZDL5ehjGM3GpVNpiGMYbnEmEjtJutw8nEomng0CvxH6ifYuTuHL0sdPp5JjMCqsQZBX2M7ZbjS83m81dqVRqSfX5grrhpEM6B+Y3KUTz8Xj89KAduAv0Xe73rwkGg9fQZzXOU8Q4/IDxtr6Dl7FY7KB2pnWwz2mb4x2ijhL1FxNjmIpTXSwWZ8CYpD6iXXCwuaPG2QnjkGr7XBMHAoE92pC9LOr2oE6Ej3Uf+L267ZoYo43akISSZbeUbDb7mcGvJgDiDaYutWtiDNdrQ47Jim4P6plMpkOfxqzVGNdZzWVwl+ysEukPHDSr1ep37WiYTh6co2xmLET9SmNcZTWXxlGMpimfiDwAucGe76ReRbutHYpOnwFRl/odGLk2u5TeVtF9nwul4UQsF8YLjA5QxiWy9/ssifP5/HQ4HL7ErOUhGKsQ9RPL5IJ0FtLjY2XsO8PvjCUxmChl3SSIiThsR/xX0oxzEnbEXngWAZ+hPHBr5Poc2zhc4LE40R+/WS6X59jDizb43tDIEXOxXNckjUZjXret9JGJeXW2a+fcbpKUjjIO4huFQmGTycSN9n8ihnAqFArJlepjf+XN1d8e6R4qI0csXkmmhtScz59Su5GxEEPU+3FC/MfTaTcBu+PkZVLneUxqEJ+1I9NjlsQ4abOEGmupg5NMvu0WL44so8LJe8blCZuEfLMk5r98j6hvTYIVn88c15IjchWgfNoFK/8o+U14FbE1g3xUr9dP/gLooeVeOrZxBQAAAABJRU5ErkJggg==" + /***/ } /******/ ]) }); diff --git a/src/img/lock2_light.png b/src/img/lock2_light.png new file mode 100644 index 0000000000000000000000000000000000000000..decd9d3d5238212331e76737d9ef718632a76b13 GIT binary patch literal 3192 zcmV-;42ScHP)(1+2F!qAs3SO? z)&Uh?Xc49Z%J_#f4Woi~>~xTEzzWLCsckJwn4r*7lF){v z@pC%&hMSwcd-tB*yXWk^znwX=yXTzWIluG$ea~aho;_PIMGi*zJF*`84i7$`S9}IdpG=rAUdjfQKch>>xr!bH*{L-KSPDt-GdHjz1 z-MD?rmoI-kAzM?7ZXoNRYDx zpuc}FV7B5SWBfP~(D{9kpfU^+H&bXYOohKa0cfm7{7dO?b@}Y8OUT5 zHRlMRYCZ@Y#Q16oHy4g47#QA^t%6L=R>CII-MMq8>e9C7knt6aH$v*qW(&`pB0x<| z%|?v>foy?gFx@R39UbcBQ{YF=5P({;7J{}}U7RY7mVg^@3&$e_bb&tC@Dk}a0VQ`XnVcX1&-?2DetS^B0QBE+o2hxf)_iMMfKHbq zeoPT$8baZoaE!Rz( znaFA;qwYsOkZEX$xdl>wU00uExyTcMzF)o7`(bjyH11!ZiCWJUcj?xjAko#USFb*m0d87RA;HshFP}u%FA2V+rGSG_qzORZ z>I(>JWIqO3!%W*-4%lSHi?PLio)*65CvgZ{uf`UB(um7OmH@GpJ?r8H(K*Lf0z05PRu!SwcB7 zy?l!I2LH-bDCqcfK|dx3DX6=gb}sJ0$`Az z1YiKPO4kMe{>rXhyMC)Hp9ML!SXJwQ0IC)AHJKO57Qhelk$tSWx%sRX;#m;t>+5?G zQtCd2&SfTasUNi>NdP~6AF|K-0W4_QhK2_9{-IqrT|Zc;JR?T{CO}H5#oCh~^#9sm z>l!JY9Od~-x;UxAk=5=FRhp3_06Ht<>+1b71Fz60eiYDd2etSGx9~J!E7F9!2I~Up znrM~-FYuARb+uoWg;vQ=3*ZM2?V9An2L41@_;J2&3IN@qE1OL@TBTQM1$0{`Z9G(& zBG&={ly-sXFJH^1A$_L(UmbZrc&Pj$M*u%90AQWe0XZa@6FT`o>QdGu7U{?;naB~q z590yLS_1gdjY=^$ZwNp^wYvb`{cF`SU2rpz^V2%9WLz7Q$h81~dR`{LCdQ?vSla^l zAppeI$0QM;C|uK2YJbtpE8wgz`_jb_a%$^_tTrZ5YyosJo*U4Y_C*~z zkr4z00YN|z5CjB){6)amiqbG(;}fttrb!!dix?!SJ^$w6*J#K}yiU2J5EN0FBT_~)KKgUgR z3G;>kL{N{Gce1NUo0Eh!1W?0i9|1@(g4@U!RX<8j#R>u(J9g|6 zcHjCvef;8N1?4_C1R%lvv;?;&rf7UHrM6gOJNJEJ{6w>4=NgP}<4dAD6H_-$fC2`4 zzd)g7iAu?J_7H#s-)FRL7)&4JP=<ABarSOgzFu;5s7F0^~UrgaAT-JVzkUi!UvJ5FpPH z$n)Y$3m^o@a|H6d_|gLC6F_Y_cSc{_4oM+^M>{ZW`cI;M8}|uZ1%Lc_5C89*&D#49 z5_Svj=lEN*3pu)YI*hCbU@gEmnTEXAlZNIasjXWc~VT`{&b+Bv582=&uJS1@KGF(##DNqRD4D`SGm+&3VLEd~< zu3Xsz0n~SnRv$tD2lLSM?+)T$!b3wtkCObTLl)L}2?3l<(c$c!nXeiT&ACKYaM zA%Fwk811hP-nw2^{-q>d7$HC$iP#zAzr*ueINvIHt8w`f**Dc^6txka>8yL-X+6}DFjG?HGTKv zytUN+DI>dZ+)7JwZHnZr@fHH4Fa^e2jN8FZ8X14Ysv z0wg2id|&MBJ;~Q=yh(zlJcIzIkhdgXA%G=@Fr|hNz!dV9k*sA9V#4E1S%`T`Ru&;31hB{$ zCR7mum_Xg4JdF^5K2-hhUJmmJoHjxL%H3z@#qb-0^0w#8`CHp!Q z8;&a_=j;=~scQ#VckrA%yB?vJ8iU!rny9UKCx=41SZ`uh3_)9}W-fW#sm zK76=h#*7*2XA4b<{&MXLfj5!f#7{5ob4tZ30>l+$TyQ1h0`*IoRdGK#XNCYZeh`Um zYP268@HwSmB?01!9yxNPlGV7^QJAZEgSZI)3fw%L)q2PE5Al4Oywv-ZUa;!K?NyUJ e>N!814*v&=iH$Ro<@s;`0000btT3h)1DQcDq7=0uhzKLvv}zSh6tpj>RRnFr z*|Z3Xh!(*_w2B%KYSX5|sD>7~kT8{q3WgSuNI^1_&wfYz;$(iW)DB$kx%d9h`QLNz zxeveZA0?N|t&T(@r!YT8*+H42)G14TzyD#aR=bi;rv7ZYQcic?)I7H7biq&}iuaIm?f#@Pwu zkZSu}69)o;J=&1HEb8{4PK1wjANakx?V1>)joOfel4ZA)Y&QFu!LKF&;ti%QwQFJw z*K0$L$%<|d>X}TYL!ZX1)fm@V&1GoX?+9 zyOFUFL)80mLj1?mX*U78*ODW06`*|D1uOq3`Av8gu{DEyRIk@h{sQQs - + diff --git a/src/js/config.js b/src/js/config.js index 336bb61..c132bbd 100644 --- a/src/js/config.js +++ b/src/js/config.js @@ -3,6 +3,7 @@ module.exports = { statusColor: '#5CE592', statusInactiveColor: '#FC6F6F', + lockIconLight: false, unMaskColor: '#c7c7c7', unMaskTime: 1400, zxcvbnSrc: 'https://cdnjs.cloudflare.com/ajax/libs/zxcvbn/1.0/zxcvbn.min.js',