{"version":3,"file":"static/js/application.initial~689e554f.50e7f0a4.js","mappings":"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,SACA,WACA,SACA,OACA,KACA,YACA,UACA,SACA,YACA,WACA,OACA,SACA,SACA,KACA,SACA,kBACA,iBACA,OACA,QACA,QACA,YACA,YACA,UACA,SACA,MACA,KACA,MACA,aACA,MACA,QACA,KACA,YACA,KACA,OACA,SACA,QACA,OACA,OACA,MACA,OACA,KACA,OACA,OACA,aACA,KACA,UACA,WACA,KACA,UACA,OACA,UACA,QACA,UACA,SACA,OACA,QACA,UACA,KACA,MACA,KACA,MACA,KACA,QACA,KACA,OACA,QACA,UACA,iBACA,OACA,OACA,MACA,YACA,cACA,WACA,WACA,WACA,WACA,aACA,UACA,SACA,KACA,MACA,MACA,OACA,MACA,MACA,KACA,KACA,QACA,SACA,OACA,UACA,SACA,OACA,UACA,MACA,KACA,KACA,KACA,SACA,KACA,QACA,MACA,OACA,OACA,QACA,MACA,MACA,KACA,QACA,cACA,cACA,OACA,YACA,OACA,KACA,MACA,MACA,KACA,aACA,KACA,QACA,aACA,OACA,MACA,OACA,MACA,OACA,UACA,QACA,SACA,SACA,MACA,WACA,MACA,KACA,WACA,cACA,WACA,SACA,UACA,WACA,KACA,KACA,QACA,WACA,WACA,MACA,OACA,KACA,KACA,KACA,KACA,MACA,KACA,MACA,OACA,MACA,OACA,cACA,MACA,SACA,OACA,QACA,WACA,UACA,aACA,MACA,UACA,QACA,OACA,SACA,UACA,OACA,OACA,OACA,OACA,SACA,MACA,WACA,WACA,MACA,MACA,OACA,MACA,KACA,KACA,SACA,MACA,OACA,KACA,MACA,MACA,KACA,KACA,SACA,UACA,UACA,QACA,OACA,QACA,UACA,YACA,SACA,SACA,KACA,WACA,SACA,QACA,UACA,OACA,QACA,OACA,WACA,KACA,KACA,SACA,WACA,QACA,SACA,WACA,WACA,QACA,OACA,UACA,KACA,KACA,KACA,QACA,QACA,SACA,UACA,UACA,MACA,UACA,WACA,YACA,UACA,UACA,WACA,SACA,SACA,eACA,aACA,UACA,cACA,UACA,iBACA,OACA,OACA,UACA,UACA,SACA,UACA,UACA,MACA,KACA,SACA,aACA,cACA,UACA,QACA,MACA,SACA,UACA,KACA,aACA,KACA,KACA,KACA,KACA,QACA,OACA,KACA,QACA,MACA,QACA,OACA,OACA,SACA,SACA,MACA,OACA,MACA,KACA,OACA,SACA,QACA,SACA,WACA,OACA,WACA,QACA,WACA,SACA,UACA,OACA,SACA,MACA,MACA,WACA,OACA,UACA,SACA,YACA,WACA,WACA,OACA,MACA,KACA,KACA,KACA,MACA,KACA,OACA,SACA,MACA,UACA,MACA,WACA,QACA,MACA,QACA,SACA,SACA,SACA,OACA,MACA,KACA,QACA,MACA,KACA,MACA,QACA,MACA,YACA,KACA,KACA,QACA,SACA,SACA,WACA,cACA,cACA,QACA,YACA,KACA,WACA,OACA,KACA,MACA,SACA,KACA,WACA,KACA,aACA,MACA,SACA,WACA,SACA,UACA,UACA,aACA,OACA,OACA,YACA,QACA,SACA,MACA,OACA,OACA,UACA,UACA,OACA,QACA,WACA,UACA,UACA,KACA,OACA,WACA,OACA,OACA,QACA,UACA,YACA,OACA,YACA,WACA,OACA,UACA,MACA,UACA,KACA,KACA,SACA,UACA,OACA,UACA,UACA,MACA,KACA,KACA,MACA,OACA,cACA,WACA,OACA,QACA,UACA,QACA,aACA,MACA,KACA,OACA,YACA,MACA,UACA,YACA,WACA,MACA,UACA,MACA,OACA,YACA,SACA,MACA,KACA,MACA,UACA,QACA,SACA,OACA,QACA,MACA,SACA,MACA,KACA,OACA,KACA,MACA,KACA,MACA,OACA,UACA,SACA,KACA,KACA,OACA,KACA,KACA,OACA,QACA,QACA,SACA,KACA,QACA,MACA,SACA,QACA,KACA,QACA,OACA,MACA,MACA,KACA,UACA,OACA,YACA,OACA,MACA,WACA,OACA,SACA,MACA,MACA,MACA,KACA,KACA,KACA,WACA,WACA,SACA,QACA,QACA,UACA,QACA,KACA,KACA,KACA,WACA,QACA,OACA,QACA,UACA,OACA,KACA,KACA,OACA,UACA,UACA,OACA,MACA,OACA,WACA,SACA,aACA,OACA,WACA,OACA,SACA,OACA,SACA,YACA,UACA,MACA,KACA,MACA,KACA,KACA,SACA,WACA,UACA,YACA,YACA,QACA,YACA,QACA,QACA,WACA,OACA,UACA,MACA,UACA,SACA,UACA,QACA,MACA,KACA,OACA,KACA,KACA,SACA,QACA,UACA,MACA,OACA,MACA,MACA,KACA,KACA,OACA,MACA,QACA,KACA,KACA,SACA,OACA,OACA,aACA,KACA,MACA,aACA,WACA,OACA,MACA,MACA,YACA,YACA,SACA,MACA,gBACA,SACA,cACA,KACA,WACA,KACA,KACA,QACA,KACA,UACA,MACA,WACA,KACA,OACA,MACA,SACA,OACA,MACA,KACA,OACA,QACA,UACA,MACA,MACA,KACA,MACA,MACA,KACA,OACA,SACA,MACA,MACA,KACA,WACA,OACA,SACA,UACA,SACA,OACA,KACA,cACA,iBACA,kBACA,MACA,KACA,KACA,KACA,MACA,OACA,MACA,SACA,SACA,UACA,OACA,KACA,KACA,QACA,UACA,SACA,KACA,OACA,MACA,KACA,MACA,OACA,YACA,KACA,KACA,QACA,KACA,KACA,UACA,cACA,QACA,YACA,SACA,OACA,YACA,UACA,UACA,MACA,SACA,UACA,MACA,SACA,KACA,KACA,MACA,QACA,UACA,SACA,QACA,OACA,QACA,OACA,KACA,OACA,OACA,gBACA,YACA,WACA,OACA,QACA,UACA,OACA,UACA,QACA,OACA,QACA,OACA,SACA,KACA,MACA,MACA,OACA,QACA,SACA,QACA,OACA,MACA,SACA,QACA,QACA,OACA,MACA,eACA,KACA,KACA,KACA,MACA,OACA,KACA,WACA,OACA,SACA,KACA,KACA,KACA,QACA,SACA,OACA,SACA,SACA,MACA,aACA,QACA,MACA,SACA,YACA,UACA,WACA,YACA,WACA,SACA,MACA,KACA,WACA,KACA,KACA,MACA,QACA,OACA,YACA,OACA,WACA,MACA,OACA,WACA,KACA,KACA,QACA,YACA,MACA,OACA,OACA,MACA,aACA,KACA,KACA,MACA,MACA,KACA,MACA,KACA,KACA,OACA,SACA,OACA,MACA,MACA,MACA,SACA,QACA,UACA,SACA,WACA,SACA,OACA,cACA,MACA,QACA,KACA,KACA,KACA,KACA,MACA,KACA,MACA,MACA,KACA,SACA,QACA,SACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,SACA,OACA,SACA,OACA,MACA,KACA,KACA,MACA,MACA,UACA,UACA,UACA,UACA,MACA,OACA,OACA,aACA,QACA,KACA,MACA,KACA,MACA,MACA,KACA,OACA,OACA,QACA,QACA,SACA,SACA,KACA,KACA,QACA,qBACA,SACA,MACA,SACA,QACA,KACA,KACA,MACA,MACA,MACA,KACA,MACA,KACA,MACA,WACA,SACA,UACA,SACA,cACA,UACA,OACA,KACA,QACA,MACA,MACA,MACA,SACA,MACA,OACA,SACA,SACA,MACA,UACA,UACA,QACA,SACA,MACA,MACA,KACA,OACA,YACA,QACA,OACA,WACA,QACA,QACA,YACA,MACA,OACA,KACA,MACA,KACA,SACA,KACA,KACA,WACA,MACA,UACA,QACA,QACA,cACA,SACA,SACA,OACA,SACA,WACA,MACA,MACA,OACA,OACA,UACA,QACA,KACA,KACA,QACA,OACA,cACA,WACA,OACA,KACA,KACA,MACA,OACA,QACA,UACA,OACA,OACA,KACA,YACA,QACA,QACA,QACA,MACA,OACA,cACA,OACA,cACA,QACA,aACA,WACA,aACA,MACA,aACA,KACA,KACA,MACA,KACA,MACA,KACA,KACA,OACA,SACA,QACA,SACA,QACA,KACA,OACA,aACA,UACA,SACA,UACA,MACA,WACA,cACA,QACA,QACA,SACA,OACA,WACA,MACA,OACA,UACA,SACA,SACA,aACA,OACA,aACA,SACA,UACA,UACA,OACA,YACA,QACA,MACA,MACA,MACA,KACA,SACA,QACA,QACA,SACA,OACA,KACA,OACA,KACA,QACA,OACA,MACA,KACA,MACA,SACA,KACA,WACA,OACA,SACA,SACA,OACA,QACA,WACA,UACA,UACA,kBACA,SACA,MACA,OACA,MACA,OACA,OACA,KACA,MACA,MACA,KACA,MACA,MACA,aACA,UACA,eACA,SACA,SACA,UACA,UACA,OACA,KACA,KACA,SACA,OACA,SACA,WACA,OACA,SACA,QACA,WACA,MACA,QACA,MACA,MACA,OACA,MACA,KACA,KACA,YACA,QACA,OACA,QACA,OACA,UACA,QACA,OACA,WACA,SACA,OACA,WACA,KACA,OACA,OACA,UACA,OACA,KACA,KACA,MACA,OACA,MACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,OACA,KACA,SACA,SACA,WACA,WACA,OACA,QACA,YACA,OACA,OACA,MACA,MACA,QACA,QACA,OACA,KACA,MACA,KACA,KACA,QACA,UACA,OACA,YACA,YACA,MACA,WACA,YACA,UACA,QACA,SACA,SACA,QACA,QACA,KACA,QACA,WACA,SACA,UACA,OACA,UACA,SACA,KACA,SACA,QACA,KACA,KACA,SACA,UACA,KACA,MACA,SACA,OACA,SACA,SACA,aACA,QACA,SACA,MACA,OACA,KACA,MACA,KACA,MACA,OACA,OACA,aACA,MACA,UACA,SACA,OACA,KACA,KACA,KACA,MACA,UACA,UACA,OACA,UACA,SACA,UACA,OACA,QACA,QACA,KACA,SACA,MACA,KACA,SACA,KACA,KACA,QACA,KACA,KACA,QACA,QACA,QACA,MACA,QACA,UACA,QACA,QACA,OACA,SACA,OACA,KACA,QACA,UACA,WACA,SACA,gBACA,YACA,qBACA,QACA,MACA,KACA,OACA,MACA,QACA,QACA,KACA,MACA,KACA,KACA,KACA,QACA,MACA,KACA,KACA,SACA,aACA,MACA,MACA,MACA,KACA,KACA,KACA,KACA,YACA,OACA,WACA,KACA,KACA,QACA,WACA,WACA,eACA,MACA,KACA,KACA,SACA,QACA,MACA,SACA,SACA,MACA,MACA,SACA,OACA,SACA,OACA,OACA,aACA,KACA,QACA,aACA,QACA,OACA,SACA,OACA,SACA,KACA,SACA,QACA,UACA,SACA,OACA,UACA,QACA,UACA,UACA,iBACA,SACA,QACA,UACA,MACA,UACA,QACA,OACA,KACA,UACA,OACA,OACA,cACA,MACA,UACA,OACA,UACA,MACA,gBACA,WACA,OACA,QACA,QACA,MACA,KACA,MACA,MACA,OACA,QACA,UACA,SACA,MACA,cACA,cACA,cACA,cACA,aACA,cACA,cACA,eACA,cACA,aACA,cACA,eACA,cACA,aACA,eACA,aACA,iBACA,cACA,aACA,oBACA,aACA,cACA,iBACA,eACA,cACA,iBACA,eACA,aACA,eACA,aACA,WACA,YACA,aACA,aACA,cACA,iBACA,oBACA,YACA,aACA,cACA,gBACA,aACA,yBACA,cACA,aACA,aACA,cACA,YACA,YACA,gBACA,cACA,cACA,YACA,iBACA,aACA,aACA,aACA,cACA,cACA,gBACA,gBACA,mBACA,cACA,eACA,cACA,cACA,iBACA,cACA,gBACA,cACA,kBACA,cACA,aACA,YACA,YACA,cACA,iBACA,iBACA,cACA,kBACA,cACA,cACA,aACA,YACA,kBACA,eACA,iBACA,kBACA,mBACA,kBACA,iBACA,eACA,oBACA,oBACA,iBACA,cACA,iBACA,kBACA,iBACA,mBACA,oBACA,eACA,iBACA,eACA,eACA,cACA,iBACA,cACA,eACA,aACA,eACA,eACA,YACA,WACA,YACA,kBACA,cACA,aACA,eACA,cACA,YACA,WACA,cACA,aACA,aACA,cACA,eACA,YACA,WACA,cACA,cACA,iBACA,cACA,cACA,cACA,YACA,gBACA,aACA,0BACA,2BACA,YACA,cACA,uBACA,cACA,aACA,aACA,cACA,mBACA,oBACA,aACA,gBACA,gBACA,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","sources":["../webpack/universalModuleDefinition","../webpack/bootstrap","../../../../../../../../external/urijs","../../../../../../../../external/jquery","../webpack-src:/url-util/index.ts","../webpack-src:/url-util/src/index.ts","../webpack-src:/url-util/src/top-domain.ts","../../../../../../../../external/underscore","../webpack-src:/validation-string-map/index.js","../webpack-src:/validation/index.js","../webpack-src:/validation/src/index.es","../webpack-src:/validation/src/validators/required.es","../webpack-src:/validation/src/validators/base.es","../../../../../../../../external/@bingads-webui-universal/primitive-utilities","../webpack-src:/validation/src/validators/string.es","../webpack-src:/validation/src/validators/string-number.es","../webpack-src:/validation/src/validators/number.es","../webpack-src:/validation/src/validators/enum.es","../webpack-src:/validation/src/validators/array.es","../webpack-src:/validation/src/validators/passive.es","../webpack-src:/validation/src/validators/custom.es","../webpack-src:/viewmodel-schema/index.js","../webpack-src:/viewmodel-schema/src/index.es","../webpack-src:/viewmodel-schema/src/field.es","../webpack-src:/viewmodel-schema/src/default-value.es","../webpack-src:/viewmodel-schema/src/validation/index.es","../../../../../../../../external/@bingads-webui/validation","../webpack-src:/viewmodel-schema/src/validation/rules-factory/base-factory.es","../webpack-src:/viewmodel-schema/src/validation/rules-factory/enum-factory.es","../webpack-src:/viewmodel-schema/src/validation/rules-factory/number-factory.es","../webpack-src:/viewmodel-schema/src/validation/rules-factory/string-factory.es","../webpack-src:/viewmodel-schema/src/validation/rules-factory/array-factory.es","../webpack-src:/viewmodel-schema/src/conversion/index.es","../webpack-src:/viewmodel-schema/src/conversion/convertor-factory/base-factory.es","../webpack-src:/viewmodel-schema/src/conversion/convertor-factory/number-factory.es","../webpack-src:/window-name-store/index.js","../webpack-src:/window-name-store/src/storage.js","../webpack-src:/with-state-store/index.tsx","../webpack-src:/with-state-store/src/with-state-store.tsx","../../../../../../../../external/@bingads-webui/state-store","../../../../../../../../external/react"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"underscore\"), require(\"urijs\"), require(\"jquery\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"underscore\", \"urijs\", \"jquery\"], factory);\n\telse {\n\t\tvar a = typeof exports === 'object' ? factory(require(\"underscore\"), require(\"urijs\"), require(\"jquery\")) : factory(root[\"underscore\"], root[\"urijs\"], root[\"jquery\"]);\n\t\tfor(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];\n\t}\n})((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__10__, __WEBPACK_EXTERNAL_MODULE__100__) {\nreturn "," \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 \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\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.l = 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// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 184);\n","module.exports = __WEBPACK_EXTERNAL_MODULE__10__;","module.exports = __WEBPACK_EXTERNAL_MODULE__100__;","export * from './src/index';\r\n","import _ from 'underscore';\r\nimport $ from 'jquery';\r\nimport URI from 'urijs';\r\nimport topDomainList from './top-domain';\r\n\r\nexport function join(first: string, ...frags: string[]) {\r\n return frags.reduce((memo, frag) => {\r\n if (_.isEmpty(frag)) {\r\n return memo;\r\n }\r\n const eSlash = /\\/$/.test(memo);\r\n const sSlash = /^\\//.test(frag);\r\n\r\n if (!eSlash && !sSlash) {\r\n return `${memo}/${frag}`;\r\n } if (eSlash && sSlash) {\r\n return memo + frag.substring(1);\r\n }\r\n return memo + frag;\r\n }, first);\r\n}\r\n\r\ntype QueryObject = any[] | JQuery.PlainObject | JQuery;\r\n\r\nexport function queryify(url: string, data: QueryObject, serializeParam = (originalData: QueryObject) => $.param(originalData)) {\r\n const startOfRoute = url.indexOf('#');\r\n let route = '';\r\n let pathAndQuery = url;\r\n\r\n if (startOfRoute !== -1) {\r\n route = url.substring(startOfRoute);\r\n pathAndQuery = url.substring(0, startOfRoute);\r\n }\r\n\r\n // $.param is not supported by node, so use custom param serialization function\r\n return pathAndQuery + (pathAndQuery.indexOf('?') === -1 ? '?' : '&') + serializeParam(data) + route;\r\n}\r\n\r\nexport function mailto(recipient: string, subject: string, body: string) {\r\n return `mailto:${recipient}?subject=${subject}&body=${body}`;\r\n}\r\n\r\nexport function setUrlParameter(name: string, value: string, url = window.location.href, options = { keepSqBrackets: false }) {\r\n const keepSqBrackets = !!options.keepSqBrackets;\r\n\r\n const setQueryStringParam = function (innerUrl: string, originalN: string, v: string, replaceOnly: boolean) {\r\n let n = originalN;\r\n if (!keepSqBrackets) {\r\n n = n.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n }\r\n const regex = new RegExp(`([\\\\?&])${n}=.*?(&|$|#)`);\r\n if (innerUrl.match(regex)) {\r\n return innerUrl.replace(regex, `$1${n}=${v}$2`);\r\n }\r\n if (!replaceOnly) {\r\n let qs = '';\r\n const position = innerUrl.indexOf('?');\r\n if (position > -1) {\r\n if (position + 1 < innerUrl.length) {\r\n qs = '&';\r\n }\r\n } else {\r\n qs = '?';\r\n }\r\n return `${innerUrl + qs + n}=${v}`;\r\n }\r\n return innerUrl;\r\n };\r\n\r\n const pound = url.lastIndexOf('#');\r\n if (pound > -1) {\r\n return setQueryStringParam(url.slice(0, pound), name, value, false)\r\n + setQueryStringParam(url.slice(pound), name, value, true);\r\n }\r\n\r\n return setQueryStringParam(url, name, value, false);\r\n}\r\n\r\n// Gets the url parameter value by parameter name.\r\nexport function getParameter(originalName: string, url = window.location.href) {\r\n const name = originalName.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\r\n const value = (RegExp(`[\\\\?&]${name}=([^&#]*)`).exec(url) || [null, null])[1];\r\n if (value) return decodeURIComponent(value);\r\n return value;\r\n}\r\n\r\n// Update the url parameter by parameter name and value.\r\nexport function updateParameter(key: string, value: string, originalUrl: string) {\r\n const re = new RegExp(`([?|&])${key}=.*?(&|#|$)`, 'i');\r\n let url = originalUrl;\r\n if (url.match(re)) {\r\n return url.replace(re, `$1${key}=${value}$2`);\r\n }\r\n\r\n let hash = '';\r\n if (url.indexOf('#') !== -1) {\r\n hash = url.replace(/.*#/, '#');\r\n url = url.replace(/#.*/, '');\r\n }\r\n const separator = url.indexOf('?') !== -1 ? '&' : '?';\r\n return `${url + separator + key}=${value}${hash}`;\r\n}\r\n\r\nexport function hasScheme(url: string) {\r\n // eslint-disable-next-line prefer-regex-literals\r\n const urlRegex = new RegExp('^(http|https|ftp)(://)(.+)', 'i');\r\n return urlRegex.test(url);\r\n}\r\n\r\nexport function hasProtocol(url: string) {\r\n // eslint-disable-next-line prefer-regex-literals\r\n const urlRegex = new RegExp('^(http|https|ftp)(://)', 'i');\r\n return urlRegex.test(url);\r\n}\r\n\r\nexport function extendPath(url: string, path: string) {\r\n const queryIndex = url.indexOf('?');\r\n if (queryIndex === -1) {\r\n return join(url, path);\r\n }\r\n\r\n return join(url.slice(0, queryIndex), path) + url.slice(queryIndex);\r\n}\r\n\r\nexport function getDomain(originalUrl: string) {\r\n let url = originalUrl;\r\n if (!_.isString(url) || _.isEmpty(url.trim())) {\r\n return '';\r\n }\r\n\r\n url = url.trim();\r\n const a = document.createElement('a');\r\n let domain = '';\r\n a.href = hasProtocol(url) ? url : (`http://${url}`);\r\n\r\n try {\r\n const { hostname } = a;\r\n const startIndex = url.toLowerCase().indexOf(hostname);\r\n\r\n domain = (startIndex === -1 ? '' : url.substring(startIndex, hostname.length + startIndex));\r\n } catch (err) {\r\n domain = '';\r\n }\r\n\r\n return domain;\r\n}\r\n\r\nexport function isRelativeUrl(url: string) {\r\n return _.isString(url) && (url.indexOf('/') === 0);\r\n}\r\n\r\nexport function isInternalUrl(url: string, domainsToCheck = ['ads.microsoft.com', 'ads-int.microsoft.com', 'corp.microsoft.com']) {\r\n if (isRelativeUrl(url)) {\r\n return true;\r\n }\r\n\r\n const domain = getDomain(url).toLowerCase();\r\n\r\n return (domain === 'localhost')\r\n || _.any(domainsToCheck, (toCheck) => domain.indexOf(toCheck.toLowerCase()) > -1);\r\n}\r\n\r\nexport function getUrlWithProtocol(website: string) {\r\n const site = website.trim();\r\n const uri = new URI(site);\r\n\r\n if (uri.protocol()) {\r\n return uri.toString();\r\n }\r\n\r\n // input path without protocal, add '//' manually to force abs path;\r\n const urlWithProtocal = URI(`${'//'}${site}`).protocol('https').toString();\r\n return urlWithProtocal;\r\n}\r\n\r\nexport function isValidUrlWithValidTopDomain(url: string) {\r\n const regex = /^https?:\\/\\/([a-z0-9-_]+\\.)*[a-z0-9-_]+\\.([a-z]{2,63})(?=$|\\/|\\?)/i;\r\n const matchs = url.match(regex);\r\n const topLevelDomain = _.result(matchs, '2');\r\n return _.isString(url) && regex.test(url)\r\n && topLevelDomain && _.contains(topDomainList, topLevelDomain.toUpperCase());\r\n}\r\n\r\n// Regular expressions used to determine if a URL starts with a valid domain name.\r\n// Similar regex to Microsoft.Ads.Mca.Implementation.Ads.EO.ValidationHelper.ValidateWebsite\r\nexport const UrlRegex = /^https?:\\/\\/([a-z0-9-_]+\\.)*[a-z0-9-_]+\\.[a-z]{2,63}(?=$|\\/|\\?)/i;\r\nexport const UrlRegexWithOptionalProtocol = /^(?:http(s)?:\\/\\/)?([a-z0-9-_]+\\.)*[a-z0-9-_]+\\.[a-z]{2,63}(?=$|\\/|\\?)/i;\r\n\r\n/**\r\n * Validate a HTTP or HTTPS URL.\r\n * @param {String} url - Fully qualified URL, including the prefix. E.g. http://www.example.com/foo\r\n * @returns {Boolean} - True if the URL is valid.\r\n */\r\nexport function isValidUrl(url: string) {\r\n return _.isString(url) && UrlRegex.test(url);\r\n}\r\n\r\n/**\r\n * Extracts the protocol and domain from a URL, with no trailing slash.\r\n * @param {String} url - URL to extract from, e.g. 'https://abc-123.com/foo.html'\r\n * @returns {String} - Protocol and domain name, or null if url could not be parsed.\r\n */\r\nexport function getUrlProtocolAndDomain(url: string) {\r\n const matches = url.match(UrlRegex);\r\n if (matches) {\r\n const result = _.first(matches);\r\n return result || '';\r\n }\r\n return '';\r\n}\r\n","// https://data.iana.org/TLD/tlds-alpha-by-domain.txt\r\n// # Version 2022101900, Last Updated Wed Oct 19 07:07:01 2022 UTC\r\n\r\nexport default [\r\n 'AAA',\r\n 'AARP',\r\n 'ABARTH',\r\n 'ABB',\r\n 'ABBOTT',\r\n 'ABBVIE',\r\n 'ABC',\r\n 'ABLE',\r\n 'ABOGADO',\r\n 'ABUDHABI',\r\n 'AC',\r\n 'ACADEMY',\r\n 'ACCENTURE',\r\n 'ACCOUNTANT',\r\n 'ACCOUNTANTS',\r\n 'ACO',\r\n 'ACTOR',\r\n 'AD',\r\n 'ADAC',\r\n 'ADS',\r\n 'ADULT',\r\n 'AE',\r\n 'AEG',\r\n 'AERO',\r\n 'AETNA',\r\n 'AF',\r\n 'AFL',\r\n 'AFRICA',\r\n 'AG',\r\n 'AGAKHAN',\r\n 'AGENCY',\r\n 'AI',\r\n 'AIG',\r\n 'AIRBUS',\r\n 'AIRFORCE',\r\n 'AIRTEL',\r\n 'AKDN',\r\n 'AL',\r\n 'ALFAROMEO',\r\n 'ALIBABA',\r\n 'ALIPAY',\r\n 'ALLFINANZ',\r\n 'ALLSTATE',\r\n 'ALLY',\r\n 'ALSACE',\r\n 'ALSTOM',\r\n 'AM',\r\n 'AMAZON',\r\n 'AMERICANEXPRESS',\r\n 'AMERICANFAMILY',\r\n 'AMEX',\r\n 'AMFAM',\r\n 'AMICA',\r\n 'AMSTERDAM',\r\n 'ANALYTICS',\r\n 'ANDROID',\r\n 'ANQUAN',\r\n 'ANZ',\r\n 'AO',\r\n 'AOL',\r\n 'APARTMENTS',\r\n 'APP',\r\n 'APPLE',\r\n 'AQ',\r\n 'AQUARELLE',\r\n 'AR',\r\n 'ARAB',\r\n 'ARAMCO',\r\n 'ARCHI',\r\n 'ARMY',\r\n 'ARPA',\r\n 'ART',\r\n 'ARTE',\r\n 'AS',\r\n 'ASDA',\r\n 'ASIA',\r\n 'ASSOCIATES',\r\n 'AT',\r\n 'ATHLETA',\r\n 'ATTORNEY',\r\n 'AU',\r\n 'AUCTION',\r\n 'AUDI',\r\n 'AUDIBLE',\r\n 'AUDIO',\r\n 'AUSPOST',\r\n 'AUTHOR',\r\n 'AUTO',\r\n 'AUTOS',\r\n 'AVIANCA',\r\n 'AW',\r\n 'AWS',\r\n 'AX',\r\n 'AXA',\r\n 'AZ',\r\n 'AZURE',\r\n 'BA',\r\n 'BABY',\r\n 'BAIDU',\r\n 'BANAMEX',\r\n 'BANANAREPUBLIC',\r\n 'BAND',\r\n 'BANK',\r\n 'BAR',\r\n 'BARCELONA',\r\n 'BARCLAYCARD',\r\n 'BARCLAYS',\r\n 'BAREFOOT',\r\n 'BARGAINS',\r\n 'BASEBALL',\r\n 'BASKETBALL',\r\n 'BAUHAUS',\r\n 'BAYERN',\r\n 'BB',\r\n 'BBC',\r\n 'BBT',\r\n 'BBVA',\r\n 'BCG',\r\n 'BCN',\r\n 'BD',\r\n 'BE',\r\n 'BEATS',\r\n 'BEAUTY',\r\n 'BEER',\r\n 'BENTLEY',\r\n 'BERLIN',\r\n 'BEST',\r\n 'BESTBUY',\r\n 'BET',\r\n 'BF',\r\n 'BG',\r\n 'BH',\r\n 'BHARTI',\r\n 'BI',\r\n 'BIBLE',\r\n 'BID',\r\n 'BIKE',\r\n 'BING',\r\n 'BINGO',\r\n 'BIO',\r\n 'BIZ',\r\n 'BJ',\r\n 'BLACK',\r\n 'BLACKFRIDAY',\r\n 'BLOCKBUSTER',\r\n 'BLOG',\r\n 'BLOOMBERG',\r\n 'BLUE',\r\n 'BM',\r\n 'BMS',\r\n 'BMW',\r\n 'BN',\r\n 'BNPPARIBAS',\r\n 'BO',\r\n 'BOATS',\r\n 'BOEHRINGER',\r\n 'BOFA',\r\n 'BOM',\r\n 'BOND',\r\n 'BOO',\r\n 'BOOK',\r\n 'BOOKING',\r\n 'BOSCH',\r\n 'BOSTIK',\r\n 'BOSTON',\r\n 'BOT',\r\n 'BOUTIQUE',\r\n 'BOX',\r\n 'BR',\r\n 'BRADESCO',\r\n 'BRIDGESTONE',\r\n 'BROADWAY',\r\n 'BROKER',\r\n 'BROTHER',\r\n 'BRUSSELS',\r\n 'BS',\r\n 'BT',\r\n 'BUILD',\r\n 'BUILDERS',\r\n 'BUSINESS',\r\n 'BUY',\r\n 'BUZZ',\r\n 'BV',\r\n 'BW',\r\n 'BY',\r\n 'BZ',\r\n 'BZH',\r\n 'CA',\r\n 'CAB',\r\n 'CAFE',\r\n 'CAL',\r\n 'CALL',\r\n 'CALVINKLEIN',\r\n 'CAM',\r\n 'CAMERA',\r\n 'CAMP',\r\n 'CANON',\r\n 'CAPETOWN',\r\n 'CAPITAL',\r\n 'CAPITALONE',\r\n 'CAR',\r\n 'CARAVAN',\r\n 'CARDS',\r\n 'CARE',\r\n 'CAREER',\r\n 'CAREERS',\r\n 'CARS',\r\n 'CASA',\r\n 'CASE',\r\n 'CASH',\r\n 'CASINO',\r\n 'CAT',\r\n 'CATERING',\r\n 'CATHOLIC',\r\n 'CBA',\r\n 'CBN',\r\n 'CBRE',\r\n 'CBS',\r\n 'CC',\r\n 'CD',\r\n 'CENTER',\r\n 'CEO',\r\n 'CERN',\r\n 'CF',\r\n 'CFA',\r\n 'CFD',\r\n 'CG',\r\n 'CH',\r\n 'CHANEL',\r\n 'CHANNEL',\r\n 'CHARITY',\r\n 'CHASE',\r\n 'CHAT',\r\n 'CHEAP',\r\n 'CHINTAI',\r\n 'CHRISTMAS',\r\n 'CHROME',\r\n 'CHURCH',\r\n 'CI',\r\n 'CIPRIANI',\r\n 'CIRCLE',\r\n 'CISCO',\r\n 'CITADEL',\r\n 'CITI',\r\n 'CITIC',\r\n 'CITY',\r\n 'CITYEATS',\r\n 'CK',\r\n 'CL',\r\n 'CLAIMS',\r\n 'CLEANING',\r\n 'CLICK',\r\n 'CLINIC',\r\n 'CLINIQUE',\r\n 'CLOTHING',\r\n 'CLOUD',\r\n 'CLUB',\r\n 'CLUBMED',\r\n 'CM',\r\n 'CN',\r\n 'CO',\r\n 'COACH',\r\n 'CODES',\r\n 'COFFEE',\r\n 'COLLEGE',\r\n 'COLOGNE',\r\n 'COM',\r\n 'COMCAST',\r\n 'COMMBANK',\r\n 'COMMUNITY',\r\n 'COMPANY',\r\n 'COMPARE',\r\n 'COMPUTER',\r\n 'COMSEC',\r\n 'CONDOS',\r\n 'CONSTRUCTION',\r\n 'CONSULTING',\r\n 'CONTACT',\r\n 'CONTRACTORS',\r\n 'COOKING',\r\n 'COOKINGCHANNEL',\r\n 'COOL',\r\n 'COOP',\r\n 'CORSICA',\r\n 'COUNTRY',\r\n 'COUPON',\r\n 'COUPONS',\r\n 'COURSES',\r\n 'CPA',\r\n 'CR',\r\n 'CREDIT',\r\n 'CREDITCARD',\r\n 'CREDITUNION',\r\n 'CRICKET',\r\n 'CROWN',\r\n 'CRS',\r\n 'CRUISE',\r\n 'CRUISES',\r\n 'CU',\r\n 'CUISINELLA',\r\n 'CV',\r\n 'CW',\r\n 'CX',\r\n 'CY',\r\n 'CYMRU',\r\n 'CYOU',\r\n 'CZ',\r\n 'DABUR',\r\n 'DAD',\r\n 'DANCE',\r\n 'DATA',\r\n 'DATE',\r\n 'DATING',\r\n 'DATSUN',\r\n 'DAY',\r\n 'DCLK',\r\n 'DDS',\r\n 'DE',\r\n 'DEAL',\r\n 'DEALER',\r\n 'DEALS',\r\n 'DEGREE',\r\n 'DELIVERY',\r\n 'DELL',\r\n 'DELOITTE',\r\n 'DELTA',\r\n 'DEMOCRAT',\r\n 'DENTAL',\r\n 'DENTIST',\r\n 'DESI',\r\n 'DESIGN',\r\n 'DEV',\r\n 'DHL',\r\n 'DIAMONDS',\r\n 'DIET',\r\n 'DIGITAL',\r\n 'DIRECT',\r\n 'DIRECTORY',\r\n 'DISCOUNT',\r\n 'DISCOVER',\r\n 'DISH',\r\n 'DIY',\r\n 'DJ',\r\n 'DK',\r\n 'DM',\r\n 'DNP',\r\n 'DO',\r\n 'DOCS',\r\n 'DOCTOR',\r\n 'DOG',\r\n 'DOMAINS',\r\n 'DOT',\r\n 'DOWNLOAD',\r\n 'DRIVE',\r\n 'DTV',\r\n 'DUBAI',\r\n 'DUNLOP',\r\n 'DUPONT',\r\n 'DURBAN',\r\n 'DVAG',\r\n 'DVR',\r\n 'DZ',\r\n 'EARTH',\r\n 'EAT',\r\n 'EC',\r\n 'ECO',\r\n 'EDEKA',\r\n 'EDU',\r\n 'EDUCATION',\r\n 'EE',\r\n 'EG',\r\n 'EMAIL',\r\n 'EMERCK',\r\n 'ENERGY',\r\n 'ENGINEER',\r\n 'ENGINEERING',\r\n 'ENTERPRISES',\r\n 'EPSON',\r\n 'EQUIPMENT',\r\n 'ER',\r\n 'ERICSSON',\r\n 'ERNI',\r\n 'ES',\r\n 'ESQ',\r\n 'ESTATE',\r\n 'ET',\r\n 'ETISALAT',\r\n 'EU',\r\n 'EUROVISION',\r\n 'EUS',\r\n 'EVENTS',\r\n 'EXCHANGE',\r\n 'EXPERT',\r\n 'EXPOSED',\r\n 'EXPRESS',\r\n 'EXTRASPACE',\r\n 'FAGE',\r\n 'FAIL',\r\n 'FAIRWINDS',\r\n 'FAITH',\r\n 'FAMILY',\r\n 'FAN',\r\n 'FANS',\r\n 'FARM',\r\n 'FARMERS',\r\n 'FASHION',\r\n 'FAST',\r\n 'FEDEX',\r\n 'FEEDBACK',\r\n 'FERRARI',\r\n 'FERRERO',\r\n 'FI',\r\n 'FIAT',\r\n 'FIDELITY',\r\n 'FIDO',\r\n 'FILM',\r\n 'FINAL',\r\n 'FINANCE',\r\n 'FINANCIAL',\r\n 'FIRE',\r\n 'FIRESTONE',\r\n 'FIRMDALE',\r\n 'FISH',\r\n 'FISHING',\r\n 'FIT',\r\n 'FITNESS',\r\n 'FJ',\r\n 'FK',\r\n 'FLICKR',\r\n 'FLIGHTS',\r\n 'FLIR',\r\n 'FLORIST',\r\n 'FLOWERS',\r\n 'FLY',\r\n 'FM',\r\n 'FO',\r\n 'FOO',\r\n 'FOOD',\r\n 'FOODNETWORK',\r\n 'FOOTBALL',\r\n 'FORD',\r\n 'FOREX',\r\n 'FORSALE',\r\n 'FORUM',\r\n 'FOUNDATION',\r\n 'FOX',\r\n 'FR',\r\n 'FREE',\r\n 'FRESENIUS',\r\n 'FRL',\r\n 'FROGANS',\r\n 'FRONTDOOR',\r\n 'FRONTIER',\r\n 'FTR',\r\n 'FUJITSU',\r\n 'FUN',\r\n 'FUND',\r\n 'FURNITURE',\r\n 'FUTBOL',\r\n 'FYI',\r\n 'GA',\r\n 'GAL',\r\n 'GALLERY',\r\n 'GALLO',\r\n 'GALLUP',\r\n 'GAME',\r\n 'GAMES',\r\n 'GAP',\r\n 'GARDEN',\r\n 'GAY',\r\n 'GB',\r\n 'GBIZ',\r\n 'GD',\r\n 'GDN',\r\n 'GE',\r\n 'GEA',\r\n 'GENT',\r\n 'GENTING',\r\n 'GEORGE',\r\n 'GF',\r\n 'GG',\r\n 'GGEE',\r\n 'GH',\r\n 'GI',\r\n 'GIFT',\r\n 'GIFTS',\r\n 'GIVES',\r\n 'GIVING',\r\n 'GL',\r\n 'GLASS',\r\n 'GLE',\r\n 'GLOBAL',\r\n 'GLOBO',\r\n 'GM',\r\n 'GMAIL',\r\n 'GMBH',\r\n 'GMO',\r\n 'GMX',\r\n 'GN',\r\n 'GODADDY',\r\n 'GOLD',\r\n 'GOLDPOINT',\r\n 'GOLF',\r\n 'GOO',\r\n 'GOODYEAR',\r\n 'GOOG',\r\n 'GOOGLE',\r\n 'GOP',\r\n 'GOT',\r\n 'GOV',\r\n 'GP',\r\n 'GQ',\r\n 'GR',\r\n 'GRAINGER',\r\n 'GRAPHICS',\r\n 'GRATIS',\r\n 'GREEN',\r\n 'GRIPE',\r\n 'GROCERY',\r\n 'GROUP',\r\n 'GS',\r\n 'GT',\r\n 'GU',\r\n 'GUARDIAN',\r\n 'GUCCI',\r\n 'GUGE',\r\n 'GUIDE',\r\n 'GUITARS',\r\n 'GURU',\r\n 'GW',\r\n 'GY',\r\n 'HAIR',\r\n 'HAMBURG',\r\n 'HANGOUT',\r\n 'HAUS',\r\n 'HBO',\r\n 'HDFC',\r\n 'HDFCBANK',\r\n 'HEALTH',\r\n 'HEALTHCARE',\r\n 'HELP',\r\n 'HELSINKI',\r\n 'HERE',\r\n 'HERMES',\r\n 'HGTV',\r\n 'HIPHOP',\r\n 'HISAMITSU',\r\n 'HITACHI',\r\n 'HIV',\r\n 'HK',\r\n 'HKT',\r\n 'HM',\r\n 'HN',\r\n 'HOCKEY',\r\n 'HOLDINGS',\r\n 'HOLIDAY',\r\n 'HOMEDEPOT',\r\n 'HOMEGOODS',\r\n 'HOMES',\r\n 'HOMESENSE',\r\n 'HONDA',\r\n 'HORSE',\r\n 'HOSPITAL',\r\n 'HOST',\r\n 'HOSTING',\r\n 'HOT',\r\n 'HOTELES',\r\n 'HOTELS',\r\n 'HOTMAIL',\r\n 'HOUSE',\r\n 'HOW',\r\n 'HR',\r\n 'HSBC',\r\n 'HT',\r\n 'HU',\r\n 'HUGHES',\r\n 'HYATT',\r\n 'HYUNDAI',\r\n 'IBM',\r\n 'ICBC',\r\n 'ICE',\r\n 'ICU',\r\n 'ID',\r\n 'IE',\r\n 'IEEE',\r\n 'IFM',\r\n 'IKANO',\r\n 'IL',\r\n 'IM',\r\n 'IMAMAT',\r\n 'IMDB',\r\n 'IMMO',\r\n 'IMMOBILIEN',\r\n 'IN',\r\n 'INC',\r\n 'INDUSTRIES',\r\n 'INFINITI',\r\n 'INFO',\r\n 'ING',\r\n 'INK',\r\n 'INSTITUTE',\r\n 'INSURANCE',\r\n 'INSURE',\r\n 'INT',\r\n 'INTERNATIONAL',\r\n 'INTUIT',\r\n 'INVESTMENTS',\r\n 'IO',\r\n 'IPIRANGA',\r\n 'IQ',\r\n 'IR',\r\n 'IRISH',\r\n 'IS',\r\n 'ISMAILI',\r\n 'IST',\r\n 'ISTANBUL',\r\n 'IT',\r\n 'ITAU',\r\n 'ITV',\r\n 'JAGUAR',\r\n 'JAVA',\r\n 'JCB',\r\n 'JE',\r\n 'JEEP',\r\n 'JETZT',\r\n 'JEWELRY',\r\n 'JIO',\r\n 'JLL',\r\n 'JM',\r\n 'JMP',\r\n 'JNJ',\r\n 'JO',\r\n 'JOBS',\r\n 'JOBURG',\r\n 'JOT',\r\n 'JOY',\r\n 'JP',\r\n 'JPMORGAN',\r\n 'JPRS',\r\n 'JUEGOS',\r\n 'JUNIPER',\r\n 'KAUFEN',\r\n 'KDDI',\r\n 'KE',\r\n 'KERRYHOTELS',\r\n 'KERRYLOGISTICS',\r\n 'KERRYPROPERTIES',\r\n 'KFH',\r\n 'KG',\r\n 'KH',\r\n 'KI',\r\n 'KIA',\r\n 'KIDS',\r\n 'KIM',\r\n 'KINDER',\r\n 'KINDLE',\r\n 'KITCHEN',\r\n 'KIWI',\r\n 'KM',\r\n 'KN',\r\n 'KOELN',\r\n 'KOMATSU',\r\n 'KOSHER',\r\n 'KP',\r\n 'KPMG',\r\n 'KPN',\r\n 'KR',\r\n 'KRD',\r\n 'KRED',\r\n 'KUOKGROUP',\r\n 'KW',\r\n 'KY',\r\n 'KYOTO',\r\n 'KZ',\r\n 'LA',\r\n 'LACAIXA',\r\n 'LAMBORGHINI',\r\n 'LAMER',\r\n 'LANCASTER',\r\n 'LANCIA',\r\n 'LAND',\r\n 'LANDROVER',\r\n 'LANXESS',\r\n 'LASALLE',\r\n 'LAT',\r\n 'LATINO',\r\n 'LATROBE',\r\n 'LAW',\r\n 'LAWYER',\r\n 'LB',\r\n 'LC',\r\n 'LDS',\r\n 'LEASE',\r\n 'LECLERC',\r\n 'LEFRAK',\r\n 'LEGAL',\r\n 'LEGO',\r\n 'LEXUS',\r\n 'LGBT',\r\n 'LI',\r\n 'LIDL',\r\n 'LIFE',\r\n 'LIFEINSURANCE',\r\n 'LIFESTYLE',\r\n 'LIGHTING',\r\n 'LIKE',\r\n 'LILLY',\r\n 'LIMITED',\r\n 'LIMO',\r\n 'LINCOLN',\r\n 'LINDE',\r\n 'LINK',\r\n 'LIPSY',\r\n 'LIVE',\r\n 'LIVING',\r\n 'LK',\r\n 'LLC',\r\n 'LLP',\r\n 'LOAN',\r\n 'LOANS',\r\n 'LOCKER',\r\n 'LOCUS',\r\n 'LOFT',\r\n 'LOL',\r\n 'LONDON',\r\n 'LOTTE',\r\n 'LOTTO',\r\n 'LOVE',\r\n 'LPL',\r\n 'LPLFINANCIAL',\r\n 'LR',\r\n 'LS',\r\n 'LT',\r\n 'LTD',\r\n 'LTDA',\r\n 'LU',\r\n 'LUNDBECK',\r\n 'LUXE',\r\n 'LUXURY',\r\n 'LV',\r\n 'LY',\r\n 'MA',\r\n 'MACYS',\r\n 'MADRID',\r\n 'MAIF',\r\n 'MAISON',\r\n 'MAKEUP',\r\n 'MAN',\r\n 'MANAGEMENT',\r\n 'MANGO',\r\n 'MAP',\r\n 'MARKET',\r\n 'MARKETING',\r\n 'MARKETS',\r\n 'MARRIOTT',\r\n 'MARSHALLS',\r\n 'MASERATI',\r\n 'MATTEL',\r\n 'MBA',\r\n 'MC',\r\n 'MCKINSEY',\r\n 'MD',\r\n 'ME',\r\n 'MED',\r\n 'MEDIA',\r\n 'MEET',\r\n 'MELBOURNE',\r\n 'MEME',\r\n 'MEMORIAL',\r\n 'MEN',\r\n 'MENU',\r\n 'MERCKMSD',\r\n 'MG',\r\n 'MH',\r\n 'MIAMI',\r\n 'MICROSOFT',\r\n 'MIL',\r\n 'MINI',\r\n 'MINT',\r\n 'MIT',\r\n 'MITSUBISHI',\r\n 'MK',\r\n 'ML',\r\n 'MLB',\r\n 'MLS',\r\n 'MM',\r\n 'MMA',\r\n 'MN',\r\n 'MO',\r\n 'MOBI',\r\n 'MOBILE',\r\n 'MODA',\r\n 'MOE',\r\n 'MOI',\r\n 'MOM',\r\n 'MONASH',\r\n 'MONEY',\r\n 'MONSTER',\r\n 'MORMON',\r\n 'MORTGAGE',\r\n 'MOSCOW',\r\n 'MOTO',\r\n 'MOTORCYCLES',\r\n 'MOV',\r\n 'MOVIE',\r\n 'MP',\r\n 'MQ',\r\n 'MR',\r\n 'MS',\r\n 'MSD',\r\n 'MT',\r\n 'MTN',\r\n 'MTR',\r\n 'MU',\r\n 'MUSEUM',\r\n 'MUSIC',\r\n 'MUTUAL',\r\n 'MV',\r\n 'MW',\r\n 'MX',\r\n 'MY',\r\n 'MZ',\r\n 'NA',\r\n 'NAB',\r\n 'NAGOYA',\r\n 'NAME',\r\n 'NATURA',\r\n 'NAVY',\r\n 'NBA',\r\n 'NC',\r\n 'NE',\r\n 'NEC',\r\n 'NET',\r\n 'NETBANK',\r\n 'NETFLIX',\r\n 'NETWORK',\r\n 'NEUSTAR',\r\n 'NEW',\r\n 'NEWS',\r\n 'NEXT',\r\n 'NEXTDIRECT',\r\n 'NEXUS',\r\n 'NF',\r\n 'NFL',\r\n 'NG',\r\n 'NGO',\r\n 'NHK',\r\n 'NI',\r\n 'NICO',\r\n 'NIKE',\r\n 'NIKON',\r\n 'NINJA',\r\n 'NISSAN',\r\n 'NISSAY',\r\n 'NL',\r\n 'NO',\r\n 'NOKIA',\r\n 'NORTHWESTERNMUTUAL',\r\n 'NORTON',\r\n 'NOW',\r\n 'NOWRUZ',\r\n 'NOWTV',\r\n 'NP',\r\n 'NR',\r\n 'NRA',\r\n 'NRW',\r\n 'NTT',\r\n 'NU',\r\n 'NYC',\r\n 'NZ',\r\n 'OBI',\r\n 'OBSERVER',\r\n 'OFFICE',\r\n 'OKINAWA',\r\n 'OLAYAN',\r\n 'OLAYANGROUP',\r\n 'OLDNAVY',\r\n 'OLLO',\r\n 'OM',\r\n 'OMEGA',\r\n 'ONE',\r\n 'ONG',\r\n 'ONL',\r\n 'ONLINE',\r\n 'OOO',\r\n 'OPEN',\r\n 'ORACLE',\r\n 'ORANGE',\r\n 'ORG',\r\n 'ORGANIC',\r\n 'ORIGINS',\r\n 'OSAKA',\r\n 'OTSUKA',\r\n 'OTT',\r\n 'OVH',\r\n 'PA',\r\n 'PAGE',\r\n 'PANASONIC',\r\n 'PARIS',\r\n 'PARS',\r\n 'PARTNERS',\r\n 'PARTS',\r\n 'PARTY',\r\n 'PASSAGENS',\r\n 'PAY',\r\n 'PCCW',\r\n 'PE',\r\n 'PET',\r\n 'PF',\r\n 'PFIZER',\r\n 'PG',\r\n 'PH',\r\n 'PHARMACY',\r\n 'PHD',\r\n 'PHILIPS',\r\n 'PHONE',\r\n 'PHOTO',\r\n 'PHOTOGRAPHY',\r\n 'PHOTOS',\r\n 'PHYSIO',\r\n 'PICS',\r\n 'PICTET',\r\n 'PICTURES',\r\n 'PID',\r\n 'PIN',\r\n 'PING',\r\n 'PINK',\r\n 'PIONEER',\r\n 'PIZZA',\r\n 'PK',\r\n 'PL',\r\n 'PLACE',\r\n 'PLAY',\r\n 'PLAYSTATION',\r\n 'PLUMBING',\r\n 'PLUS',\r\n 'PM',\r\n 'PN',\r\n 'PNC',\r\n 'POHL',\r\n 'POKER',\r\n 'POLITIE',\r\n 'PORN',\r\n 'POST',\r\n 'PR',\r\n 'PRAMERICA',\r\n 'PRAXI',\r\n 'PRESS',\r\n 'PRIME',\r\n 'PRO',\r\n 'PROD',\r\n 'PRODUCTIONS',\r\n 'PROF',\r\n 'PROGRESSIVE',\r\n 'PROMO',\r\n 'PROPERTIES',\r\n 'PROPERTY',\r\n 'PROTECTION',\r\n 'PRU',\r\n 'PRUDENTIAL',\r\n 'PS',\r\n 'PT',\r\n 'PUB',\r\n 'PW',\r\n 'PWC',\r\n 'PY',\r\n 'QA',\r\n 'QPON',\r\n 'QUEBEC',\r\n 'QUEST',\r\n 'RACING',\r\n 'RADIO',\r\n 'RE',\r\n 'READ',\r\n 'REALESTATE',\r\n 'REALTOR',\r\n 'REALTY',\r\n 'RECIPES',\r\n 'RED',\r\n 'REDSTONE',\r\n 'REDUMBRELLA',\r\n 'REHAB',\r\n 'REISE',\r\n 'REISEN',\r\n 'REIT',\r\n 'RELIANCE',\r\n 'REN',\r\n 'RENT',\r\n 'RENTALS',\r\n 'REPAIR',\r\n 'REPORT',\r\n 'REPUBLICAN',\r\n 'REST',\r\n 'RESTAURANT',\r\n 'REVIEW',\r\n 'REVIEWS',\r\n 'REXROTH',\r\n 'RICH',\r\n 'RICHARDLI',\r\n 'RICOH',\r\n 'RIL',\r\n 'RIO',\r\n 'RIP',\r\n 'RO',\r\n 'ROCHER',\r\n 'ROCKS',\r\n 'RODEO',\r\n 'ROGERS',\r\n 'ROOM',\r\n 'RS',\r\n 'RSVP',\r\n 'RU',\r\n 'RUGBY',\r\n 'RUHR',\r\n 'RUN',\r\n 'RW',\r\n 'RWE',\r\n 'RYUKYU',\r\n 'SA',\r\n 'SAARLAND',\r\n 'SAFE',\r\n 'SAFETY',\r\n 'SAKURA',\r\n 'SALE',\r\n 'SALON',\r\n 'SAMSCLUB',\r\n 'SAMSUNG',\r\n 'SANDVIK',\r\n 'SANDVIKCOROMANT',\r\n 'SANOFI',\r\n 'SAP',\r\n 'SARL',\r\n 'SAS',\r\n 'SAVE',\r\n 'SAXO',\r\n 'SB',\r\n 'SBI',\r\n 'SBS',\r\n 'SC',\r\n 'SCA',\r\n 'SCB',\r\n 'SCHAEFFLER',\r\n 'SCHMIDT',\r\n 'SCHOLARSHIPS',\r\n 'SCHOOL',\r\n 'SCHULE',\r\n 'SCHWARZ',\r\n 'SCIENCE',\r\n 'SCOT',\r\n 'SD',\r\n 'SE',\r\n 'SEARCH',\r\n 'SEAT',\r\n 'SECURE',\r\n 'SECURITY',\r\n 'SEEK',\r\n 'SELECT',\r\n 'SENER',\r\n 'SERVICES',\r\n 'SES',\r\n 'SEVEN',\r\n 'SEW',\r\n 'SEX',\r\n 'SEXY',\r\n 'SFR',\r\n 'SG',\r\n 'SH',\r\n 'SHANGRILA',\r\n 'SHARP',\r\n 'SHAW',\r\n 'SHELL',\r\n 'SHIA',\r\n 'SHIKSHA',\r\n 'SHOES',\r\n 'SHOP',\r\n 'SHOPPING',\r\n 'SHOUJI',\r\n 'SHOW',\r\n 'SHOWTIME',\r\n 'SI',\r\n 'SILK',\r\n 'SINA',\r\n 'SINGLES',\r\n 'SITE',\r\n 'SJ',\r\n 'SK',\r\n 'SKI',\r\n 'SKIN',\r\n 'SKY',\r\n 'SKYPE',\r\n 'SL',\r\n 'SLING',\r\n 'SM',\r\n 'SMART',\r\n 'SMILE',\r\n 'SN',\r\n 'SNCF',\r\n 'SO',\r\n 'SOCCER',\r\n 'SOCIAL',\r\n 'SOFTBANK',\r\n 'SOFTWARE',\r\n 'SOHU',\r\n 'SOLAR',\r\n 'SOLUTIONS',\r\n 'SONG',\r\n 'SONY',\r\n 'SOY',\r\n 'SPA',\r\n 'SPACE',\r\n 'SPORT',\r\n 'SPOT',\r\n 'SR',\r\n 'SRL',\r\n 'SS',\r\n 'ST',\r\n 'STADA',\r\n 'STAPLES',\r\n 'STAR',\r\n 'STATEBANK',\r\n 'STATEFARM',\r\n 'STC',\r\n 'STCGROUP',\r\n 'STOCKHOLM',\r\n 'STORAGE',\r\n 'STORE',\r\n 'STREAM',\r\n 'STUDIO',\r\n 'STUDY',\r\n 'STYLE',\r\n 'SU',\r\n 'SUCKS',\r\n 'SUPPLIES',\r\n 'SUPPLY',\r\n 'SUPPORT',\r\n 'SURF',\r\n 'SURGERY',\r\n 'SUZUKI',\r\n 'SV',\r\n 'SWATCH',\r\n 'SWISS',\r\n 'SX',\r\n 'SY',\r\n 'SYDNEY',\r\n 'SYSTEMS',\r\n 'SZ',\r\n 'TAB',\r\n 'TAIPEI',\r\n 'TALK',\r\n 'TAOBAO',\r\n 'TARGET',\r\n 'TATAMOTORS',\r\n 'TATAR',\r\n 'TATTOO',\r\n 'TAX',\r\n 'TAXI',\r\n 'TC',\r\n 'TCI',\r\n 'TD',\r\n 'TDK',\r\n 'TEAM',\r\n 'TECH',\r\n 'TECHNOLOGY',\r\n 'TEL',\r\n 'TEMASEK',\r\n 'TENNIS',\r\n 'TEVA',\r\n 'TF',\r\n 'TG',\r\n 'TH',\r\n 'THD',\r\n 'THEATER',\r\n 'THEATRE',\r\n 'TIAA',\r\n 'TICKETS',\r\n 'TIENDA',\r\n 'TIFFANY',\r\n 'TIPS',\r\n 'TIRES',\r\n 'TIROL',\r\n 'TJ',\r\n 'TJMAXX',\r\n 'TJX',\r\n 'TK',\r\n 'TKMAXX',\r\n 'TL',\r\n 'TM',\r\n 'TMALL',\r\n 'TN',\r\n 'TO',\r\n 'TODAY',\r\n 'TOKYO',\r\n 'TOOLS',\r\n 'TOP',\r\n 'TORAY',\r\n 'TOSHIBA',\r\n 'TOTAL',\r\n 'TOURS',\r\n 'TOWN',\r\n 'TOYOTA',\r\n 'TOYS',\r\n 'TR',\r\n 'TRADE',\r\n 'TRADING',\r\n 'TRAINING',\r\n 'TRAVEL',\r\n 'TRAVELCHANNEL',\r\n 'TRAVELERS',\r\n 'TRAVELERSINSURANCE',\r\n 'TRUST',\r\n 'TRV',\r\n 'TT',\r\n 'TUBE',\r\n 'TUI',\r\n 'TUNES',\r\n 'TUSHU',\r\n 'TV',\r\n 'TVS',\r\n 'TW',\r\n 'TZ',\r\n 'UA',\r\n 'UBANK',\r\n 'UBS',\r\n 'UG',\r\n 'UK',\r\n 'UNICOM',\r\n 'UNIVERSITY',\r\n 'UNO',\r\n 'UOL',\r\n 'UPS',\r\n 'US',\r\n 'UY',\r\n 'UZ',\r\n 'VA',\r\n 'VACATIONS',\r\n 'VANA',\r\n 'VANGUARD',\r\n 'VC',\r\n 'VE',\r\n 'VEGAS',\r\n 'VENTURES',\r\n 'VERISIGN',\r\n 'VERSICHERUNG',\r\n 'VET',\r\n 'VG',\r\n 'VI',\r\n 'VIAJES',\r\n 'VIDEO',\r\n 'VIG',\r\n 'VIKING',\r\n 'VILLAS',\r\n 'VIN',\r\n 'VIP',\r\n 'VIRGIN',\r\n 'VISA',\r\n 'VISION',\r\n 'VIVA',\r\n 'VIVO',\r\n 'VLAANDEREN',\r\n 'VN',\r\n 'VODKA',\r\n 'VOLKSWAGEN',\r\n 'VOLVO',\r\n 'VOTE',\r\n 'VOTING',\r\n 'VOTO',\r\n 'VOYAGE',\r\n 'VU',\r\n 'VUELOS',\r\n 'WALES',\r\n 'WALMART',\r\n 'WALTER',\r\n 'WANG',\r\n 'WANGGOU',\r\n 'WATCH',\r\n 'WATCHES',\r\n 'WEATHER',\r\n 'WEATHERCHANNEL',\r\n 'WEBCAM',\r\n 'WEBER',\r\n 'WEBSITE',\r\n 'WED',\r\n 'WEDDING',\r\n 'WEIBO',\r\n 'WEIR',\r\n 'WF',\r\n 'WHOSWHO',\r\n 'WIEN',\r\n 'WIKI',\r\n 'WILLIAMHILL',\r\n 'WIN',\r\n 'WINDOWS',\r\n 'WINE',\r\n 'WINNERS',\r\n 'WME',\r\n 'WOLTERSKLUWER',\r\n 'WOODSIDE',\r\n 'WORK',\r\n 'WORKS',\r\n 'WORLD',\r\n 'WOW',\r\n 'WS',\r\n 'WTC',\r\n 'WTF',\r\n 'XBOX',\r\n 'XEROX',\r\n 'XFINITY',\r\n 'XIHUAN',\r\n 'XIN',\r\n 'XN--11B4C3D',\r\n 'XN--1CK2E1B',\r\n 'XN--1QQW23A',\r\n 'XN--2SCRJ9C',\r\n 'XN--30RR7Y',\r\n 'XN--3BST00M',\r\n 'XN--3DS443G',\r\n 'XN--3E0B707E',\r\n 'XN--3HCRJ9C',\r\n 'XN--3PXU8K',\r\n 'XN--42C2D9A',\r\n 'XN--45BR5CYL',\r\n 'XN--45BRJ9C',\r\n 'XN--45Q11C',\r\n 'XN--4DBRK0CE',\r\n 'XN--4GBRIM',\r\n 'XN--54B7FTA0CC',\r\n 'XN--55QW42G',\r\n 'XN--55QX5D',\r\n 'XN--5SU34J936BGSG',\r\n 'XN--5TZM5G',\r\n 'XN--6FRZ82G',\r\n 'XN--6QQ986B3XL',\r\n 'XN--80ADXHKS',\r\n 'XN--80AO21A',\r\n 'XN--80AQECDR1A',\r\n 'XN--80ASEHDB',\r\n 'XN--80ASWG',\r\n 'XN--8Y0A063A',\r\n 'XN--90A3AC',\r\n 'XN--90AE',\r\n 'XN--90AIS',\r\n 'XN--9DBQ2A',\r\n 'XN--9ET52U',\r\n 'XN--9KRT00A',\r\n 'XN--B4W605FERD',\r\n 'XN--BCK1B9A5DRE4C',\r\n 'XN--C1AVG',\r\n 'XN--C2BR7G',\r\n 'XN--CCK2B3B',\r\n 'XN--CCKWCXETD',\r\n 'XN--CG4BKI',\r\n 'XN--CLCHC0EA0B2G2A9GCD',\r\n 'XN--CZR694B',\r\n 'XN--CZRS0T',\r\n 'XN--CZRU2D',\r\n 'XN--D1ACJ3B',\r\n 'XN--D1ALF',\r\n 'XN--E1A4C',\r\n 'XN--ECKVDTC9D',\r\n 'XN--EFVY88H',\r\n 'XN--FCT429K',\r\n 'XN--FHBEI',\r\n 'XN--FIQ228C5HS',\r\n 'XN--FIQ64B',\r\n 'XN--FIQS8S',\r\n 'XN--FIQZ9S',\r\n 'XN--FJQ720A',\r\n 'XN--FLW351E',\r\n 'XN--FPCRJ9C3D',\r\n 'XN--FZC2C9E2C',\r\n 'XN--FZYS8D69UVGM',\r\n 'XN--G2XX48C',\r\n 'XN--GCKR3F0F',\r\n 'XN--GECRJ9C',\r\n 'XN--GK3AT1E',\r\n 'XN--H2BREG3EVE',\r\n 'XN--H2BRJ9C',\r\n 'XN--H2BRJ9C8C',\r\n 'XN--HXT814E',\r\n 'XN--I1B6B1A6A2E',\r\n 'XN--IMR513N',\r\n 'XN--IO0A7I',\r\n 'XN--J1AEF',\r\n 'XN--J1AMH',\r\n 'XN--J6W193G',\r\n 'XN--JLQ480N2RG',\r\n 'XN--JLQ61U9W7B',\r\n 'XN--JVR189M',\r\n 'XN--KCRX77D1X4A',\r\n 'XN--KPRW13D',\r\n 'XN--KPRY57D',\r\n 'XN--KPUT3I',\r\n 'XN--L1ACC',\r\n 'XN--LGBBAT1AD8J',\r\n 'XN--MGB9AWBF',\r\n 'XN--MGBA3A3EJT',\r\n 'XN--MGBA3A4F16A',\r\n 'XN--MGBA7C0BBN0A',\r\n 'XN--MGBAAKC7DVF',\r\n 'XN--MGBAAM7A8H',\r\n 'XN--MGBAB2BD',\r\n 'XN--MGBAH1A3HJKRD',\r\n 'XN--MGBAI9AZGQP6J',\r\n 'XN--MGBAYH7GPA',\r\n 'XN--MGBBH1A',\r\n 'XN--MGBBH1A71E',\r\n 'XN--MGBC0A9AZCG',\r\n 'XN--MGBCA7DZDO',\r\n 'XN--MGBCPQ6GPA1A',\r\n 'XN--MGBERP4A5D4AR',\r\n 'XN--MGBGU82A',\r\n 'XN--MGBI4ECEXP',\r\n 'XN--MGBPL2FH',\r\n 'XN--MGBT3DHD',\r\n 'XN--MGBTX2B',\r\n 'XN--MGBX4CD0AB',\r\n 'XN--MIX891F',\r\n 'XN--MK1BU44C',\r\n 'XN--MXTQ1M',\r\n 'XN--NGBC5AZD',\r\n 'XN--NGBE9E0A',\r\n 'XN--NGBRX',\r\n 'XN--NODE',\r\n 'XN--NQV7F',\r\n 'XN--NQV7FS00EMA',\r\n 'XN--NYQY26A',\r\n 'XN--O3CW4H',\r\n 'XN--OGBPF8FL',\r\n 'XN--OTU796D',\r\n 'XN--P1ACF',\r\n 'XN--P1AI',\r\n 'XN--PGBS0DH',\r\n 'XN--PSSY2U',\r\n 'XN--Q7CE6A',\r\n 'XN--Q9JYB4C',\r\n 'XN--QCKA1PMC',\r\n 'XN--QXA6A',\r\n 'XN--QXAM',\r\n 'XN--RHQV96G',\r\n 'XN--ROVU88B',\r\n 'XN--RVC1E0AM3E',\r\n 'XN--S9BRJ9C',\r\n 'XN--SES554G',\r\n 'XN--T60B56A',\r\n 'XN--TCKWE',\r\n 'XN--TIQ49XQYJ',\r\n 'XN--UNUP4Y',\r\n 'XN--VERMGENSBERATER-CTB',\r\n 'XN--VERMGENSBERATUNG-PWB',\r\n 'XN--VHQUV',\r\n 'XN--VUQ861B',\r\n 'XN--W4R85EL8FHU5DNRA',\r\n 'XN--W4RS40L',\r\n 'XN--WGBH1C',\r\n 'XN--WGBL6A',\r\n 'XN--XHQ521B',\r\n 'XN--XKC2AL3HYE2A',\r\n 'XN--XKC2DL3A5EE0H',\r\n 'XN--Y9A3AQ',\r\n 'XN--YFRO4I67O',\r\n 'XN--YGBI2AMMX',\r\n 'XN--ZFR164B',\r\n 'XXX',\r\n 'XYZ',\r\n 'YACHTS',\r\n 'YAHOO',\r\n 'YAMAXUN',\r\n 'YANDEX',\r\n 'YE',\r\n 'YODOBASHI',\r\n 'YOGA',\r\n 'YOKOHAMA',\r\n 'YOU',\r\n 'YOUTUBE',\r\n 'YT',\r\n 'YUN',\r\n 'ZA',\r\n 'ZAPPOS',\r\n 'ZARA',\r\n 'ZERO',\r\n 'ZIP',\r\n 'ZM',\r\n 'ZONE',\r\n 'ZUERICH',\r\n 'ZW',\r\n];\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__7__;","export const ValidationStringMap = {\r\n Validation_Base_Field_Not_Valid: _TL_('Field is not valid'),\r\n Validation_NotEmpty_Required_Field: _TL_('Required field'),\r\n Validation_String_Max_Length: _TL_('Field should not exceed {{maxlength}} characters'),\r\n Validation_String_Min_Length: _TL_('Field should exceed {{minlength}} characters'),\r\n Validation_String_Invalid_Characters: _TL_('Field contains invalid characters'),\r\n Validation_Number_Require_Numeric: _TL_('Field requires numeric value'),\r\n Validation_Number_Max_Length: _TL_('Number should not exceed max length'),\r\n Validation_Number_Range_Min: _TL_('Number should be larger than {{min}}'),\r\n Validation_Number_Range_Max: _TL_('Number should be smaller than {{max}}'),\r\n Validation_Number_Range_Between: _TL_('Number should be between {{min}} and {{max}}'),\r\n Validation_Array_Size_Max: _TL_('List should have at most {{max}} items'),\r\n Validation_Array_Size_Between: _TL_('List should have at least {{min}} and at most {{max}} items'),\r\n Validation_Array_Items_Invalid: _TL_('Some of items in list are invalid'),\r\n Validation_Array_Items_Duplicate: _TL_('List has duplicate items'),\r\n Validation_NegativeKeywords_ListName_Required: _TL_('The list name is required.'),\r\n Validation_NegativeKeywords_Max_Count: _TL_('Maximum of 5,000 negative keywords'),\r\n Validation_NegativeKeywords_Invalid_Keywords: _TL_('Some of the keyword(s) are invalid: {{invalidKeywords}}'),\r\n Validation_NegativeKeywords_Required: _TL_('At least 1 negative keyword is required.'),\r\n};\r\n","\r\n\r\nexport { Validation } from './src/index';\r\n","import _ from 'underscore';\r\nimport { required } from './validators/required';\r\nimport * as string from './validators/string';\r\nimport * as number from './validators/number';\r\nimport { enumeration } from './validators/enum';\r\nimport * as array from './validators/array';\r\nimport { passive } from './validators/passive';\r\nimport { custom } from './validators/custom';\r\n\r\nfunction run(value, validators) {\r\n const failed = _.find(validators, v => !v.isValid(value));\r\n return failed ? failed.message : undefined;\r\n}\r\n\r\nexport const Validation = {\r\n // validators\r\n required,\r\n string,\r\n number,\r\n enum: enumeration,\r\n array,\r\n passive,\r\n custom,\r\n // end of validators\r\n run, // run validation manually, for using without knockout\r\n};\r\n","import _ from 'underscore';\r\nimport { Base } from './base';\r\n\r\n/**\r\n * Define validator which check whether is empty when field is Required\r\n * @param {boolean} allowSpace - whether allow space in value endpoint\r\n * @param {I18n} i18n - provide getString callback, will be called\r\n * with args 'Validation_NotEmpty_Required_Field\r\n */\r\nclass Required extends Base {\r\n constructor(allowSpace, i18n) {\r\n super(i18n);\r\n\r\n this.allowSpace = !!allowSpace;\r\n this.message = i18n.getString('Validation_NotEmpty_Required_Field');\r\n }\r\n\r\n isValidValue(value) {\r\n return _.isFinite(value) ||\r\n !_.isEmpty(!this.allowSpace && _.isString(value) ? value.trim() : value);\r\n }\r\n}\r\n\r\n/**\r\n * Create a required validator instance\r\n * @param {boolean} allowSpace - whether allow space in value endpoint\r\n * @param {I18n} i18n - provide getString callback\r\n * @returns {Validator} - required validator instance\r\n */\r\nexport function required(allowSpace, i18n) {\r\n return new Required(allowSpace, i18n);\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\n/**\r\n * Base validator class, provide public interface\r\n * @param {I18n} i18n - provide callback getString to get error message, will be called\r\n * with args 'Validation_Base_Field_Not_Valid'\r\n */\r\nexport class Base {\r\n constructor(i18n) {\r\n this.blockInput = false;\r\n this.nullable = false;\r\n this.i18n = i18n;\r\n this.message = i18n.getString('Validation_Base_Field_Not_Valid');\r\n }\r\n\r\n set(options = {}) {\r\n if (!_.isUndefined(options.blockInput)) {\r\n this.blockInput = options.blockInput;\r\n }\r\n\r\n if (!_.isUndefined(options.message)) {\r\n this.message = options.message;\r\n }\r\n\r\n if (!_.isUndefined(options.nullable)) {\r\n this.nullable = options.nullable;\r\n }\r\n\r\n return this;\r\n }\r\n\r\n /**\r\n * Base method to validate value\r\n * @param {any} value - value to check\r\n * @returns {boolean} - whether value is valid\r\n */\r\n isValid(value) {\r\n return (this.nullable && putil.isNil(value)) || this.isValidValue(value);\r\n }\r\n\r\n /**\r\n * Base method to validate value, if valid, return undefined, otherwise, return error message\r\n * @param {any} value - value to validate\r\n * @returns {undefined|string} - return undefined if valid, otherwise return error message\r\n */\r\n validate(value) {\r\n return this.isValid(value) ? undefined : this.message;\r\n }\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__16__;","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { Base } from './base';\r\nimport * as number from './string-number';\r\n\r\nexport { number };\r\n/**\r\n * Get length of a string, if disgintuish CJK in string, each CJK character counts as 2 charts\r\n * otherwise, count as 1 charts\r\n * @param {string} str - string to compute length\r\n * @param {boolean} distinguishCJK - whether disgintuish CJK in string,\r\n * if not, the function equal to _.size, default value is false\r\n * @returns {int} - the length of string\r\n */\r\nexport function getLength(str, distinguishCJK = false) {\r\n if (!distinguishCJK) {\r\n return _.size(str);\r\n }\r\n\r\n let counts = _.countBy(str, c => (putil.hasCJK(c) ? 'cjk' : 'ascii'));\r\n\r\n counts = _.defaults(counts, {\r\n cjk: 0,\r\n ascii: 0,\r\n });\r\n\r\n return (counts.cjk * 2) + counts.ascii;\r\n}\r\n\r\n/**\r\n * Define a validator check type of value is string\r\n * @param {I18n} i18n - will be called in Base class\r\n */\r\nclass Type extends Base {\r\n isValidValue(value) {\r\n return _.isString(value);\r\n }\r\n}\r\n\r\n/**\r\n * Define a validator check size of string\r\n * @param {int} length - the max length of string\r\n * @param {I18n} i18n - will be called with args 'Validation_String_Max_Length'\r\n * @param {boolean} distinguishCJK - whether distinguish CJK in size check,\r\n * if true, one CJK character count 2\r\n */\r\nclass Size extends Base {\r\n constructor(length, i18n, distinguishCJK = true) {\r\n super(i18n);\r\n\r\n this.blockInput = false;\r\n this.length = length || 0;\r\n this.distinguishCJK = distinguishCJK;\r\n this.message = i18n.getString('Validation_String_Max_Length', { maxlength: this.length });\r\n }\r\n\r\n isValidValue(value) {\r\n return _.isString(value) && putil.getLength(value, this.distinguishCJK) <= this.length;\r\n }\r\n}\r\n\r\n/**\r\n * Define a validator check size of string\r\n * @param {int} length - the min length of string\r\n * @param {I18n} i18n - will be called with args 'Validation_String_Min_Length'\r\n * @param {boolean} distinguishCJK - whether distinguish CJK in size check,\r\n * if true, one CJK character count 2\r\n */\r\nclass MinSize extends Base {\r\n constructor(length, i18n, distinguishCJK = true) {\r\n super(i18n);\r\n\r\n this.blockInput = false;\r\n this.length = length || 0;\r\n this.distinguishCJK = distinguishCJK;\r\n this.message = i18n.getString('Validation_String_Min_Length', { minlength: this.length });\r\n }\r\n\r\n isValidValue(value) {\r\n return _.isString(value) && putil.getLength(value, this.distinguishCJK) >= this.length;\r\n }\r\n}\r\n\r\n/**\r\n * Define a validator check whether value is XSS code\r\n * @param {I18n} i18n - will be called with args 'Validation_String_Invalid_Characters'\r\n */\r\nclass XSS extends Base {\r\n constructor(i18n) {\r\n super(i18n);\r\n\r\n this.message = i18n.getString('Validation_String_Invalid_Characters');\r\n }\r\n\r\n isValidValue(value) {\r\n return _.isString(value) && !(/<[^>]*>/).exec(value);\r\n }\r\n}\r\n\r\n/**\r\n * Define a validator check whether value match pattern\r\n * @param {string|RegExp} pattern - a pattern to test value\r\n * @param {I18n} i18n - will be called with args 'Validation_String_Invalid_Characters'\r\n */\r\nclass Pattern extends Base {\r\n constructor(patt, i18n) {\r\n super(i18n);\r\n\r\n this.pattern = _.isString(patt) ? new RegExp(patt) : patt;\r\n this.message = i18n.getString('Validation_String_Invalid_Characters');\r\n }\r\n\r\n isValidValue(value) {\r\n return this.pattern.test(value);\r\n }\r\n}\r\n\r\n/**\r\n * Create string type validate instance\r\n * @param {I18n} i18n - provide callback getString to get error message\r\n * @return {Validator} - string type validator\r\n */\r\nexport function type(i18n) {\r\n return new Type(i18n);\r\n}\r\n\r\n/**\r\n * Create string size validate instance\r\n * @param {int} length - the max length of string\r\n * @param {boolean} distinguishCJK - whether distinguish CJK in size check\r\n * @param {I18n} i18n - provide getString to get error message\r\n * @returns {Validator} - string size validator\r\n */\r\nexport function size(length, distinguishCJK, i18n) {\r\n return new Size(length, i18n, distinguishCJK);\r\n}\r\n\r\n/**\r\n * Create string size validate instance\r\n * @param {int} length - the min length of string\r\n * @param {boolean} distinguishCJK - whether distinguish CJK in size check\r\n * @param {I18n} i18n - provide getString to get error message\r\n * @returns {Validator} - string size validator\r\n */\r\nexport function minSize(length, distinguishCJK, i18n) {\r\n return new MinSize(length, i18n, distinguishCJK);\r\n}\r\n\r\n/**\r\n * Create a validator check whether value is XSS code\r\n * @param {I18n} i18n - will be called with args 'Validation_String_Invalid_Characters'\r\n * @returns {Validator} - string xss validator\r\n */\r\nexport function xss(i18n) {\r\n return new XSS(i18n);\r\n}\r\n\r\n/**\r\n * Create a validator check whether value match pattern\r\n * @param {string|RegExp} patt - a pattern to test value\r\n * @param {I18n} i18n - will be called with args 'Validation_String_Invalid_Characters'\r\n * @returns {Validator} - string pattern validator\r\n */\r\nexport function pattern(patt, i18n) {\r\n return new Pattern(patt, i18n);\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { Base } from './base';\r\nimport { Size as NumberSize, Range as NumberRange } from './number';\r\n\r\n/**\r\n * Define a validator check type of input, whether the string can convert to a validate number\r\n * @param {I18n} i18n - provide a callback getString, will be called\r\n * with args 'Validation_Number_Require_Numeric'\r\n */\r\nclass Type extends Base {\r\n constructor(i18n) {\r\n super(i18n);\r\n\r\n this.message = i18n.getString('Validation_Number_Require_Numeric');\r\n }\r\n\r\n isValidValue(value) {\r\n return (_.isString(value) && _.isEmpty(value)) || this.i18n.isValidDecimal(value, true);\r\n }\r\n}\r\n\r\n/**\r\n * Define a validator check size of string for string number\r\n * @param {int} integerLength - the length of int\r\n * @param {int} decimalLength - the length of decimal\r\n * @param {I18n} i18n - i18n will be called in class number/Size\r\n */\r\nclass Size extends NumberSize {\r\n isValidValue(value) {\r\n if (_.isString(value) && _.isEmpty(value)) {\r\n return true;\r\n }\r\n\r\n if (!this.i18n.isValidDecimal(value, true)) {\r\n return false;\r\n }\r\n\r\n const number = this.i18n.parseDecimal(value);\r\n\r\n if (putil.isNil(number)) {\r\n return false;\r\n }\r\n\r\n return super.isValidValue(number);\r\n }\r\n}\r\n\r\n/**\r\n * Define a validator check string number Range\r\n * @param {int|float} min - min value of input\r\n * @param {int|float} max - max value of input\r\n * @param {I18n} i18n - will be called in class number/Range\r\n */\r\nclass Range extends NumberRange {\r\n isValidValue(value) {\r\n if (_.isString(value) && _.isEmpty(value)) {\r\n return true;\r\n }\r\n\r\n if (!this.i18n.isValidDecimal(value, true)) {\r\n return false;\r\n }\r\n\r\n return super.isValidValue(this.i18n.parseDecimal(value));\r\n }\r\n}\r\n\r\n/**\r\n * Create string number type validate instance\r\n * @param {I18n} i18n - provide callback getString to get error message\r\n * @returns {Validator} - string number type validator\r\n */\r\nexport function type(i18n) {\r\n return new Type(i18n);\r\n}\r\n\r\n/**\r\n * Create a string number size validator instance\r\n * @param {int} integerLength - the length of int\r\n * @param {int} decimalLength - the length of decimal\r\n * @param {I18n} i18n - will be called in class number/Range\r\n * @returns {Validator} - string number size validator\r\n */\r\nexport function size(integerLength, decimalLength, i18n) {\r\n return new Size(integerLength, decimalLength, i18n);\r\n}\r\n\r\n/**\r\n * Create string number range validator instance\r\n * @param {int|float} min - min value of input\r\n * @param {int|float} max - max value of input\r\n * @param {I18n} i18n - will be called in class number/Range\r\n * @returns {Validator} - string number range validator\r\n */\r\nexport function range(min, max, i18n) {\r\n return new Range(min, max, i18n);\r\n}\r\n","import _ from 'underscore';\r\nimport * as putil from '@bingads-webui-universal/primitive-utilities';\r\nimport { Base } from './base';\r\n\r\n/**\r\n * Define a number validator which check whether input is a number\r\n * @param {I18n} i18n - provide callback getString to get message,\r\n * will be called with args 'Validation_Number_Require_Numeric'\r\n */\r\nclass Type extends Base {\r\n constructor(i18n) {\r\n super(i18n);\r\n\r\n this.blockInput = false;\r\n this.message = i18n.getString('Validation_Number_Require_Numeric');\r\n }\r\n\r\n isValidValue(value) {\r\n return putil.isNil(value) || _.isNumber(value);\r\n }\r\n}\r\n\r\n/**\r\n * Define a number validator which check whether input is in a valid size\r\n * @param {int} integerLength - the length of int\r\n * @param {int} decimalLength - the length of decimal\r\n * @param {I18n} i18n - provide callback getString to get message,\r\n * will be called with args 'Validation_Number_Max_Length'\r\n */\r\nexport class Size extends Base {\r\n constructor(integerLength, decimalLength, i18n) {\r\n super(i18n);\r\n\r\n this.blockInput = false;\r\n this.message = i18n.getString('Validation_Number_Max_Length');\r\n this.integerLength = integerLength;\r\n this.decimalLength = decimalLength;\r\n }\r\n\r\n isValidValue(value) {\r\n // leave for required validator\r\n if (putil.isNil(value)) {\r\n return true;\r\n }\r\n\r\n // leave for number validator\r\n if (!_.isNumber(value)) {\r\n return true;\r\n }\r\n\r\n let text = value.toString();\r\n\r\n if (value < 0) {\r\n text = text.substr(1);\r\n }\r\n\r\n const segments = text.split('.');\r\n\r\n if (this.integerLength && _.size(segments[0]) > this.integerLength) {\r\n return false;\r\n }\r\n\r\n if (this.decimalLength === 0 && _.size(segments) > 1) {\r\n return false;\r\n }\r\n\r\n if (this.decimalLength && _.size(segments[1]) > this.decimalLength) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n\r\n/**\r\n * Define a nunmber validate which check whether input value in a valid range\r\n * @param {int|float} min - min value of input\r\n * @param {int|float} max - max value of input\r\n * @param {I18n} i18n - provide callback getString to get error message, will be called with args\r\n * 'Validation_Number_Range_Between', 'Validation_Number_Range_Min' or 'Validation_Number_Range_Max'\r\n */\r\nexport class Range extends Base {\r\n constructor(min, max, i18n) {\r\n super(i18n);\r\n\r\n this.min = min;\r\n this.max = max;\r\n\r\n if (_.isFinite(min) && _.isFinite(max)) {\r\n this.message = i18n.getString('Validation_Number_Range_Between', {\r\n min: i18n.formatDecimal(min, { minimumFractionDigits: 0, maximumFractionDigits: 2 }),\r\n max: i18n.formatDecimal(max, { minimumFractionDigits: 0, maximumFractionDigits: 2 }),\r\n });\r\n } else if (_.isFinite(min)) {\r\n this.message = i18n.getString('Validation_Number_Range_Min', {\r\n min: i18n.formatDecimal(min, { minimumFractionDigits: 0, maximumFractionDigits: 2 }),\r\n });\r\n } else {\r\n this.message = i18n.getString('Validation_Number_Range_Max', {\r\n max: i18n.formatDecimal(max, { minimumFractionDigits: 0, maximumFractionDigits: 2 }),\r\n });\r\n }\r\n }\r\n\r\n isValidValue(value) {\r\n // leave for required validator\r\n if (putil.isNil(value)) {\r\n return true;\r\n }\r\n\r\n // leave for number validator\r\n if (!_.isNumber(value)) {\r\n return true;\r\n }\r\n\r\n let result = true;\r\n\r\n if (_.isFinite(this.min)) {\r\n result = result && value >= this.min;\r\n }\r\n\r\n if (_.isFinite(this.max)) {\r\n result = result && value <= this.max;\r\n }\r\n\r\n return result;\r\n }\r\n}\r\n\r\n/**\r\n * Create a number type validator\r\n * @param {I18n} i18n - provide callback getString to get message\r\n * @returns {Validator} - number type validator instance\r\n */\r\nexport function type(i18n) {\r\n return new Type(i18n);\r\n}\r\n\r\n/**\r\n * Create a size validator\r\n * @param {int} integerLength - the length of int\r\n * @param {int} decimalLength - the length of decimal\r\n * @param {I18n} i18n - provide callback getString to get message\r\n * @returns {Validator} - number size validator instance\r\n */\r\nexport function size(integerLength, decimalLength, i18n) {\r\n return new Size(integerLength, decimalLength, i18n);\r\n}\r\n\r\n/**\r\n * Create a range validator\r\n * @param {int|float} min - min value of input\r\n * @param {int|float} max - max value of input\r\n * @param {I18n} i18n - provide callback getString to get message\r\n * @returns {Validator} - number range validator instance\r\n */\r\nexport function range(min, max, i18n) {\r\n return new Range(min, max, i18n);\r\n}\r\n","import _ from 'underscore';\r\nimport { Base } from './base';\r\n\r\n/**\r\n * Enum validator, which check whether value is in enumators\r\n * @param {array} enumerators - possible values\r\n * @param {I18n} i18n - provide getString callback, will be called in Base class\r\n */\r\nclass Enum extends Base {\r\n constructor(enumerators, i18n) {\r\n super(i18n);\r\n\r\n this.enumerators = enumerators.slice();\r\n }\r\n\r\n isValidValue(value) {\r\n return _.contains(this.enumerators, value);\r\n }\r\n}\r\n\r\n/**\r\n * Create a enum validator instance\r\n * @param {array} enumerators - possible values\r\n * @param {I18n} i18n - provide getString callback, will be called in Base class\r\n * @returns {Validator} - return a enum validator\r\n */\r\nexport function enumeration(enumerators, i18n) {\r\n return new Enum(enumerators, i18n);\r\n}\r\n","import _ from 'underscore';\r\nimport { Base } from './base';\r\n\r\n/**\r\n * Define a type validator which check the value type is an array\r\n * @param {I18n} i18n - provide callback getString to get error message for Base\r\n */\r\nclass Type extends Base {\r\n isValidValue(value) {\r\n return _.isArray(value);\r\n }\r\n}\r\n\r\n/**\r\n * Define a size validator which check the size of array between min and max\r\n * @param {int} min - the min size of array, default be 0\r\n * @param {int} max - the max size of array\r\n * @param {I18n} i18n - provide callback getString to get error message when validate failed, will\r\n * be callled with args 'Validation_Array_Size_Between' or 'Validation_Array_Size_Max'\r\n */\r\nclass Size extends Base {\r\n constructor(min, max, i18n) {\r\n super(i18n);\r\n\r\n this.min = min || 0;\r\n this.max = max;\r\n if (this.min) {\r\n this.message = i18n.getString('Validation_Array_Size_Between', { min: this.min, max });\r\n } else {\r\n this.message = i18n.getString('Validation_Array_Size_Max', { max });\r\n }\r\n }\r\n\r\n isValidValue(value) {\r\n const valueSize = _.size(value);\r\n\r\n return _.isArray(value) && valueSize >= this.min && valueSize <= this.max;\r\n }\r\n}\r\n\r\nfunction passAll(validators, value) {\r\n return _.every(validators, validator => validator.isValid(value));\r\n}\r\n\r\nfunction sizeNotFits(value, validators, additionalValidators) {\r\n return !additionalValidators && _.size(value) > _.size(validators);\r\n}\r\n\r\n/**\r\n * Create an array validator which inspects each item of an array by validators passed in.\r\n * @param {Validator[]} validators - validators for all items, each item should pass all validators.\r\n * @param {I18n} i18n - provide callback getString to get error message, will be called with args\r\n * 'Validation_Base_Field_Not_Valid' or 'Validation_Array_Items_Invalid'\r\n */\r\nclass Item extends Base {\r\n constructor(validators, i18n) {\r\n super(i18n);\r\n\r\n this.validators = validators;\r\n this.message = (value) => {\r\n if (!_.isArray(value)) {\r\n return i18n.getString('Validation_Base_Field_Not_Valid');\r\n }\r\n\r\n return i18n.getString('Validation_Array_Items_Invalid');\r\n };\r\n }\r\n\r\n /**\r\n * override function, check whether value is valid\r\n * @param {array} value - value to validate\r\n * @return {boolean} - whether value is valid\r\n */\r\n isValidValue(value) {\r\n return _.isArray(value) && _.isEmpty(this.invalidItems(value));\r\n }\r\n\r\n /**\r\n * Filter out invalid items.\r\n * @param {array} value - value to verify\r\n * @return {array} - return invalidate items\r\n * @see http://json-schema.org/latest/json-schema-validation.html#anchor37 for understanding conditions of successful validation.\r\n */\r\n invalidItems(value) {\r\n return _.omit(value, _.partial(passAll, this.validators));\r\n }\r\n}\r\n\r\n/**\r\n * Create an array validator which inspects items of an array.\r\n * @param {Validator[]} validators - validators for first _.size(validator) items.\r\n * @param {(Validator[]|boolean)} additionalValidators - boolean as allowing or\r\n * not additional items, Validator[] as validators for additional items.\r\n * @param {I18n} i18n - provide callback getString to get error message\r\n */\r\nclass Items extends Base {\r\n constructor(validators, additionalValidators, i18n) {\r\n super(i18n);\r\n\r\n this.validators = validators;\r\n this.message = (value) => {\r\n if (!_.isArray(value)) {\r\n return i18n.getString('Validation_Base_Field_Not_Valid');\r\n }\r\n\r\n if (sizeNotFits(value, validators, additionalValidators)) {\r\n return i18n.getString('Validation_Array_Size_Max', { max: _.size(validators) });\r\n }\r\n\r\n return i18n.getString('Validation_Array_Items_Invalid');\r\n };\r\n }\r\n\r\n isValidValue(value) {\r\n return _.isArray(value) && _.isEmpty(this.invalidItems(value));\r\n }\r\n\r\n /**\r\n * Filter out invalid items.\r\n *\r\n * when additionalValidators is false, means max length of array is _.size(validators);\r\n * when additionalValidators is true, no validation for additional items;\r\n * when additionalValidators is Validator[], it will be applied to additional\r\n * items not covered by validators.\r\n * @param {array} value - value to verify\r\n * @return {array} - return invalid items\r\n * @see http://json-schema.org/latest/json-schema-validation.html#anchor37 for understanding conditions of successful validation.\r\n */\r\n invalidItems(value) {\r\n const { validators } = this;\r\n let { additionalValidators } = this;\r\n\r\n if (sizeNotFits(value, validators, additionalValidators)) {\r\n return value;\r\n }\r\n\r\n // additionalValidator could be validators or boolean\r\n if (additionalValidators === true) {\r\n additionalValidators = [];\r\n }\r\n\r\n return _.omit(value, (val, index) => {\r\n const vs = validators[index] || additionalValidators;\r\n return passAll(vs, val);\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * Create an array validator unique, check whether element unique in array\r\n * @param {I18n} i18n - provide callback getString, will be called\r\n * with args 'Validation_Array_Items_Duplicate'\r\n */\r\nclass Unique extends Base {\r\n constructor(i18n) {\r\n super(i18n);\r\n\r\n this.message = i18n.getString('Validation_Array_Items_Duplicate');\r\n }\r\n\r\n isValidValue(value) {\r\n return _.isArray(value) && _.size(_.uniq(value)) === _.size(value);\r\n }\r\n}\r\n\r\n/**\r\n * Create array type validate instance\r\n * @param {I18n} i18n - provide callback getString to get error message\r\n * @return {Validator} - array type validator\r\n */\r\nexport function type(i18n) {\r\n return new Type(i18n);\r\n}\r\n\r\n/**\r\n * Create size validate instance\r\n * @param {int} min - the min size of array\r\n * @param {int} max - the max size of array\r\n * @param {I18n} i18n - provide callback getString to get error message\r\n * @returns {Validator} - array size validator\r\n */\r\nexport function size(min, max, i18n) {\r\n return new Size(min, max, i18n);\r\n}\r\n\r\n/**\r\n * Create item validate instance\r\n * @param {Validator[]} validators - validators for all items, each item should pass all validators.\r\n * @param {I18n} i18n - provide callback getString to get error message, will be called with args\r\n * 'Validation_Base_Field_Not_Valid' or 'Validation_Array_Items_Invalid'\r\n * @returns {Validator} - array item validator\r\n */\r\nexport function item(validators, i18n) {\r\n return new Item(validators, i18n);\r\n}\r\n\r\n/**\r\n * Create an array items validator instance\r\n * @param {Validator[]} validators - validators for first _.size(validator) items.\r\n * @param {(Validator[]|boolean)} additionalValidators - boolean as allowing or\r\n * not additional items, Validator[] as validators for additional items.\r\n * @param {I18n} i18n - provide callback getString to get error message\r\n * @returns {Validator} - array items validator\r\n */\r\nexport function items(validators, additionalValidators, i18n) {\r\n return new Items(validators, additionalValidators, i18n);\r\n}\r\n\r\n/**\r\n * Create an array unique validate instance\r\n * @param {I18n} i18n - provide callback getString, will be called\r\n * with args 'Validation_Array_Items_Duplicate'\r\n * @returns {Validator} - array unique validator\r\n */\r\nexport function unique(i18n) {\r\n return new Unique(i18n);\r\n}\r\n","import { Base } from './base';\r\n\r\n/**\r\n * Define passive validator\r\n * @param {I18n} i18n - provide callback getString to get message\r\n */\r\nclass Passive extends Base {\r\n constructor(i18n) {\r\n super(i18n);\r\n\r\n this.error = null;\r\n }\r\n\r\n /**\r\n * Check whether value is valid\r\n * @param {any} value - value to be checked\r\n * @returns {boolean} - if value is valid return true, otherwise, return false\r\n */\r\n isValid(value) {\r\n if (this.error && this.error.value === value) {\r\n return false;\r\n }\r\n this.error = null;\r\n return true;\r\n }\r\n\r\n /**\r\n * Set error value and correspond message\r\n * @param {function|string} message - message of error\r\n * @param {any} value - error value\r\n * @returns {undefined} - no returns\r\n */\r\n setError(message, value) {\r\n this.error = {\r\n message,\r\n value,\r\n };\r\n this.message = message;\r\n }\r\n}\r\n\r\n/**\r\n * Create passive validator instance\r\n * @param {I18n} i18n - provide callback getString to get message\r\n * @returns {Validator} - return passive validator instance\r\n */\r\nexport function passive(i18n) {\r\n return new Passive(i18n);\r\n}\r\n","import { Base } from './base';\r\n\r\n/**\r\n * Use to create a Customized validator\r\n * @param {function} method - validate function will be called to validate value\r\n * @param {function|string} message - a function or string, message of this validator\r\n * @param {boolean} blockInput - whether block input when validate failed\r\n * @param {I18n} i18n - i18n to get message, only used for Base class\r\n */\r\nclass Custom extends Base {\r\n constructor(method, message, blockInput, i18n) {\r\n super(i18n);\r\n\r\n if (blockInput) {\r\n this.blockInput = blockInput;\r\n }\r\n\r\n if (message) {\r\n this.message = message;\r\n }\r\n\r\n this.isValid = method;\r\n }\r\n}\r\n\r\n/**\r\n * Create cusotmize validator instance\r\n * @param {function} method - validate function will be called to validate value\r\n * @param {function|string} message - a function or string, message of this validator\r\n * @param {boolean} blockInput - whether block input when validate failed\r\n * @param {I18n} i18n - i18n to get message, only used for Base class\r\n * @returns {Validator} - customized validator instance\r\n */\r\nexport function custom(method, message, blockInput, i18n) {\r\n return new Custom(method, message, blockInput, i18n);\r\n}\r\n","\r\n\r\nexport { ViewmodelSchema } from './src/index';\r\n","import _ from 'underscore';\r\nimport { Field } from './field';\r\n\r\nfunction getNestedList(fields, key) {\r\n return _.chain(fields)\r\n .filter(field => field.indexOf(`${key}/`) === 0)\r\n .map(field => field.slice(key.length + 1))\r\n .value();\r\n}\r\n\r\nfunction createField(schema, i18n, fields, override) {\r\n return _.chain(schema.properties)\r\n .pick((value, key) => _.find(fields, field => field === key || field.indexOf(`${key}/`) === 0))\r\n .mapObject((value, key) => {\r\n const prop = _.defaults(value, { required: _.contains(schema.required, key) });\r\n\r\n return value.type === 'object' ?\r\n _.extend({ prop }, createField(value.schema, i18n, getNestedList(fields, key), override)) :\r\n new Field(prop, i18n, _.result(override, key));\r\n })\r\n .value();\r\n}\r\n\r\n/**\r\n * Viewmodel schema, generated from schema file. It provides auto generated\r\n * default value, validation rules and conversions\r\n * @param {JsonSchema} schema - an object which contains property 'properties',\r\n * @param {I18n} i18n - provide callback getString to get localized string\r\n * @param {Array} fields - list of fields to read from schema\r\n * @param {Object} override - Optional override object that changes auto-generated fields\r\n *\r\n * Please notice that in schema, required can be defined on either field or schema entity level:\r\n * @example\r\n * const schema = {\r\n * properties: {\r\n * field1: {\r\n * type: 'string',\r\n * required: true, // required flag on field level\r\n * },\r\n * },\r\n * required: ['fleid2', 'field3'], // required flag on entity level\r\n * }\r\n */\r\nexport class ViewmodelSchema {\r\n constructor(schema, i18n, fields, override) {\r\n const schemaProps = createField(schema, i18n, fields, override);\r\n\r\n _.extend(this, schemaProps);\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { getDefaultValue } from './default-value';\r\nimport { createValidation } from './validation/index';\r\nimport { createConversion } from './conversion/index';\r\n\r\n/**\r\n * Viewmodel schema field\r\n * @param {Object} prop - schema property bag\r\n * @param {I18n} i18n - provide callback getString to get localized string\r\n * @param {Object} override - Optional override object that changes auto-generated fields\r\n */\r\nexport class Field {\r\n constructor(prop, i18n, override) {\r\n this.prop = prop;\r\n this.i18n = i18n;\r\n this.override = override;\r\n }\r\n\r\n /**\r\n * Get default value generated from schema\r\n * @returns {Object} - default value\r\n */\r\n get default() {\r\n let defaultValue = getDefaultValue(this.prop);\r\n\r\n if (this.override && _.isFunction(this.override.default)) {\r\n defaultValue = this.override.default(defaultValue);\r\n }\r\n\r\n return defaultValue;\r\n }\r\n\r\n /**\r\n * Get validation rules generated from schema\r\n * @returns {Object} - validation rules\r\n */\r\n get validation() {\r\n let validation = createValidation(this.prop, this.i18n);\r\n\r\n if (this.override && _.isFunction(this.override.validation)) {\r\n validation = this.override.validation(validation);\r\n }\r\n\r\n return validation;\r\n }\r\n\r\n /**\r\n * Get conversions generated from schema\r\n * @returns {Object} - object that handles fromModel and toModel conversion\r\n */\r\n get conversion() {\r\n let conversion = createConversion(this.prop, this.i18n);\r\n\r\n if (this.override && _.isFunction(this.override.conversion)) {\r\n conversion = this.override.conversion(conversion);\r\n }\r\n\r\n return conversion;\r\n }\r\n}\r\n","import _ from 'underscore';\r\n\r\nconst defaultValues = {\r\n integer: 0,\r\n number: undefined,\r\n string: '',\r\n boolean: false,\r\n object: {},\r\n array: [],\r\n datetime: {},\r\n};\r\n\r\n/**\r\n * get default value for property\r\n * @param {Object} prop - property define, it's from schema\r\n * @returns {any} - return default value for different type\r\n */\r\nexport function getDefaultValue(prop) {\r\n if (_.has(prop, 'default')) {\r\n return prop.default;\r\n }\r\n\r\n if (!_.isEmpty(prop.enum)) {\r\n return prop.nullable ? null : _.first(prop.enum);\r\n }\r\n\r\n return _.clone(defaultValues[prop.type]);\r\n}\r\n","import { Validation } from '@bingads-webui/validation';\r\nimport _ from 'underscore';\r\nimport { BaseFactory } from './rules-factory/base-factory';\r\nimport { EnumFactory } from './rules-factory/enum-factory';\r\nimport { NumberFactory } from './rules-factory/number-factory';\r\nimport { StringFactory } from './rules-factory/string-factory';\r\nimport { ArrayFactory } from './rules-factory/array-factory';\r\n\r\n/**\r\n * Find validation rules factory by field type\r\n * @param {Object} prop - Schema field properties\r\n * @param {I18n} i18n - i18n for localization\r\n * @returns {Object} - returns factory for validation rules\r\n */\r\nfunction getRuleFactoryByType(prop, i18n) {\r\n switch (prop.type) {\r\n case 'integer':\r\n return new NumberFactory({ prop: _.defaults({ decimalLength: 0 }, prop), i18n });\r\n case 'number':\r\n return new NumberFactory({ prop: _.defaults({ decimalLength: 2 }, prop), i18n });\r\n case 'boolean':\r\n return new EnumFactory({ prop: { enum: [true, false] }, i18n });\r\n case 'string':\r\n return prop.enum ? new EnumFactory({ prop, i18n }) : new StringFactory({ prop, i18n });\r\n case 'array':\r\n return new ArrayFactory({ prop, i18n });\r\n default:\r\n return new BaseFactory({ prop, i18n });\r\n }\r\n}\r\n\r\n/**\r\n * Create validation rules by field type\r\n * @param {Object} prop - Schema field properties\r\n * @param {I18n} i18n - i18n for localization\r\n * @returns {Object} - returns validation rules\r\n */\r\nexport function createValidation(prop, i18n) {\r\n const factory = getRuleFactoryByType(prop, i18n);\r\n\r\n const rules = factory.create();\r\n\r\n if (prop.required) {\r\n // allowspace means whether value with pure spaces is treated as valid\r\n const allowSpace = _.result(prop, 'allowSpace', false);\r\n\r\n rules.required = Validation.required(allowSpace, i18n);\r\n }\r\n\r\n return rules;\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__32__;","/**\r\n * Base factory for validation rules\r\n * @param {Object} options - input for schema property bag and i18n\r\n */\r\nexport class BaseFactory {\r\n constructor(options) {\r\n this.prop = options.prop;\r\n this.i18n = options.i18n;\r\n }\r\n\r\n /**\r\n * Base method to create rules set\r\n * @returns {Object} - empty rules set\r\n */\r\n create() {\r\n return {};\r\n }\r\n}\r\n","import { Validation } from '@bingads-webui/validation';\r\nimport { BaseFactory } from './base-factory';\r\n\r\n/**\r\n * Factory for enum validation rules\r\n * @param {Object} options - input for schema property bag and i18n\r\n */\r\nexport class EnumFactory extends BaseFactory {\r\n /**\r\n * Create enum rules set from schema property\r\n * @returns {Object} - enum validation rules set\r\n */\r\n create() {\r\n return {\r\n enum: Validation.enum(this.prop.enum, this.i18n),\r\n };\r\n }\r\n}\r\n","import { Validation } from '@bingads-webui/validation';\r\nimport _ from 'underscore';\r\nimport { BaseFactory } from './base-factory';\r\n\r\n/**\r\n * Factory for number validation rules\r\n * @param {Object} options - input for schema property bag and i18n\r\n */\r\nexport class NumberFactory extends BaseFactory {\r\n /**\r\n * Create number rules set from schema property\r\n * @returns {Object} - number validation rules set\r\n */\r\n create() {\r\n const rules = {\r\n type: Validation.number.type(this.i18n).set({ nullable: this.prop.nullable }),\r\n decimalLength: Validation.number.size(undefined, this.prop.decimalLength, this.i18n)\r\n .set({ nullable: this.prop.nullable }),\r\n };\r\n\r\n if (_.isFinite(this.prop.maximum) || _.isFinite(this.prop.minimum)\r\n || this.prop.isPercentValue) {\r\n const minimum = _.isFinite(this.prop.minimum) ?\r\n this.prop.minimum : (this.prop.isPercentValue && 0);\r\n const maximum = _.isFinite(this.prop.maximum) ?\r\n this.prop.maximum : (this.prop.isPercentValue && 100);\r\n\r\n rules.range = Validation.number.range(minimum, maximum, this.i18n)\r\n .set({ nullable: this.prop.nullable });\r\n }\r\n\r\n return rules;\r\n }\r\n}\r\n","import { Validation } from '@bingads-webui/validation';\r\nimport _ from 'underscore';\r\nimport { BaseFactory } from './base-factory';\r\n\r\n/**\r\n * Factory for string validation rules\r\n * @param {Object} options - input for schema property bag and i18n\r\n */\r\nexport class StringFactory extends BaseFactory {\r\n /**\r\n * Create string rules set from schema property\r\n * @returns {Object} - string validation rules set\r\n */\r\n create() {\r\n const rules = {};\r\n\r\n if (_.isFinite(this.prop.maxLength)) {\r\n rules.maxLength = Validation.string.size(\r\n this.prop.maxLength,\r\n this.prop.distinguishCJK,\r\n this.i18n\r\n );\r\n }\r\n\r\n if (_.isFinite(this.prop.minLength)) {\r\n rules.minLength = Validation.string.minSize(\r\n this.prop.minLength,\r\n this.prop.distinguishCJK,\r\n this.i18n\r\n );\r\n }\r\n\r\n if (this.prop.pattern) {\r\n rules.pattern = Validation.string.pattern(this.prop.pattern, this.i18n);\r\n }\r\n\r\n if (this.prop.checkXss) {\r\n rules.checkXss = Validation.string.xss(this.i18n);\r\n }\r\n\r\n // apply nullable prop\r\n _.each(rules, (rule) => {\r\n rule.set({ nullable: this.prop.nullable !== false });\r\n });\r\n\r\n return rules;\r\n }\r\n}\r\n","import { Validation } from '@bingads-webui/validation';\r\nimport { BaseFactory } from './base-factory';\r\n\r\n/**\r\n * Factory for array validation rules\r\n * @param {Object} options - input for schema property bag and i18n\r\n */\r\nexport class ArrayFactory extends BaseFactory {\r\n /**\r\n * Create array rules set from schema property\r\n * @returns {Object} - array validation rules set\r\n */\r\n create() {\r\n const rules = {};\r\n\r\n if (this.prop.minItems || this.prop.maxItems) {\r\n rules.size = Validation.array.size(this.prop.minItems, this.prop.maxItems, this.i18n);\r\n }\r\n\r\n if (this.prop.uniqueItems) {\r\n rules.unique = Validation.array.unique(this.i18n);\r\n }\r\n\r\n return rules;\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { BaseFactory } from './convertor-factory/base-factory';\r\nimport { NumberFactory } from './convertor-factory/number-factory';\r\n\r\n/**\r\n * Find conversion factory by field type\r\n * @param {Object} prop - Schema field properties\r\n * @param {I18n} i18n - i18n for localization\r\n * @returns {Object} - returns factory for conversion object\r\n */\r\nfunction getConvertorFactoryByType(prop, i18n) {\r\n switch (prop.type) {\r\n case 'integer':\r\n return new NumberFactory({ prop: _.defaults({ decimalLength: 0 }, prop), i18n });\r\n case 'number':\r\n return new NumberFactory({ prop: _.defaults({ decimalLength: 2 }, prop), i18n });\r\n default:\r\n return new BaseFactory({ prop, i18n });\r\n }\r\n}\r\n\r\n/**\r\n * Create conversion object by field type\r\n * @param {Object} prop - Schema field properties\r\n * @param {I18n} i18n - i18n for localization\r\n * @returns {Object} - returns conversion object\r\n */\r\nexport function createConversion(prop, i18n) {\r\n const factory = getConvertorFactoryByType(prop, i18n);\r\n\r\n return factory.create();\r\n}\r\n","/**\r\n * Base factory for conversion object\r\n * @param {Object} options - input for schema property bag and i18n\r\n */\r\nexport class BaseFactory {\r\n constructor(options) {\r\n this.prop = options.prop;\r\n this.i18n = options.i18n;\r\n }\r\n\r\n /**\r\n * Base method to create conversion object\r\n * @returns {Object} - pass-through conversion object\r\n */\r\n create() {\r\n const passThrough = value => value;\r\n\r\n return {\r\n fromModel: passThrough,\r\n toModel: passThrough,\r\n };\r\n }\r\n}\r\n","import _ from 'underscore';\r\nimport { BaseFactory } from './base-factory';\r\n\r\n/**\r\n * Factory for number conversion object\r\n * @param {Object} options - input for schema property bag and i18n\r\n */\r\nexport class NumberFactory extends BaseFactory {\r\n numberToString(num, numberOfDigits, i18n) {\r\n if (!_.isNumber(num)) {\r\n return num;\r\n }\r\n\r\n return i18n.formatDecimal(num, {\r\n minimumFractionDigits: numberOfDigits,\r\n maximumFractionDigits: numberOfDigits,\r\n });\r\n }\r\n\r\n stringToNumber(localizedString, i18n) {\r\n if (_.isEmpty(localizedString)) {\r\n // Convert to null if string is null or empty. Leave it to required validator to raise error.\r\n return null;\r\n }\r\n if (!i18n.isValidDecimal(localizedString)) {\r\n // Do not convert if it is not decimal. Leave it to validator raise type error.\r\n return localizedString;\r\n }\r\n return i18n.parseDecimal(localizedString);\r\n }\r\n\r\n /**\r\n * Create number conversion object\r\n * @returns {Object} - conversion object that convers number to and from string\r\n */\r\n create() {\r\n return {\r\n fromModel: value => this.numberToString(value, this.prop.decimalLength, this.i18n),\r\n toModel: value => this.stringToNumber(value, this.i18n),\r\n };\r\n }\r\n}\r\n","import Storage from './src/storage';\r\n\r\nexport {\r\n Storage\r\n};\r\n","export default function (instrumentation) {\r\n const logError = function (msg, error) {\r\n const message = `${msg} : ${error.message}`;\r\n if (instrumentation && instrumentation.logError) {\r\n instrumentation.logError(message);\r\n } else {\r\n console.error(message); // eslint-disable-line no-console\r\n }\r\n };\r\n\r\n const Storage = {\r\n isSupported() {\r\n return window && 'name' in window && window.name != null;\r\n },\r\n set(key, data) {\r\n let nameObj = {};\r\n if (window.name) {\r\n try {\r\n nameObj = JSON.parse(window.name);\r\n } catch (err) {\r\n logError(`Set: Unable to parse window name [${window.name}]`, err);\r\n nameObj = {};\r\n }\r\n }\r\n\r\n nameObj[key] = data;\r\n const str = JSON.stringify(nameObj);\r\n\r\n window.name = str;\r\n },\r\n get(key) {\r\n let result = null;\r\n try {\r\n if (window.name) {\r\n const obj = JSON.parse(window.name);\r\n result = obj[key];\r\n }\r\n } catch (err) {\r\n logError(`Get: unable to parse window name [${window.name}]`, err);\r\n }\r\n return result;\r\n },\r\n clear() {\r\n window.name = '';\r\n },\r\n };\r\n return Storage;\r\n}\r\n","export { withStateStore } from './src/with-state-store';\r\n","import { StateStore } from '@bingads-webui/state-store';\r\nimport React, { ComponentClass } from 'react';\r\n// eslint-disable-next-line import/no-extraneous-dependencies\r\nimport { Subscription } from '@bingads-webui-universal/observable';\r\nimport _ from 'underscore';\r\n\r\nexport function withStateStore(\r\n ComponentToWrap: ComponentClass | React.FC,\r\n storeFactory: S | (() => S),\r\n selector: string | ((store: S) => Object) = 'store',\r\n) {\r\n if (typeof storeFactory !== 'function') {\r\n const store = storeFactory;\r\n // eslint-disable-next-line no-param-reassign\r\n storeFactory = () => store;\r\n }\r\n\r\n let select: any = selector;\r\n if (typeof selector === 'string') {\r\n const storeName: string = selector;\r\n select = (store: StateStore) => {\r\n const res: any = {};\r\n res[storeName] = store;\r\n return res;\r\n };\r\n }\r\n\r\n interface RefProps {\r\n forwardedRef: {\r\n current: any;\r\n };\r\n }\r\n\r\n class WrappedComponent extends React.PureComponent & RefProps> {\r\n private subscription: Subscription | undefined;\r\n\r\n private store: StateStore;\r\n\r\n constructor(props: Partial & RefProps) {\r\n super(props);\r\n this.state = {};\r\n this.store = this.createStore();\r\n }\r\n\r\n componentDidMount() {\r\n this.subscribe();\r\n }\r\n\r\n componentWillUnmount() {\r\n this.unsubscribe();\r\n }\r\n\r\n createStore() {\r\n if (storeFactory instanceof StateStore) {\r\n return storeFactory;\r\n }\r\n // @ts-ignore\r\n return storeFactory();\r\n }\r\n\r\n subscribe() {\r\n this.subscription = this.store.subscribe((state: any) => {\r\n if (!this.subscription?.closed) {\r\n this.setState(state);\r\n }\r\n });\r\n }\r\n\r\n unsubscribe() {\r\n (this.subscription as Subscription).unsubscribe();\r\n }\r\n\r\n render() {\r\n const props = _.extend({}, this.props, select(this.store));\r\n // @ts-ignore\r\n return ;\r\n }\r\n }\r\n\r\n // @ts-ignore\r\n return React.forwardRef((props: any, ref) => );\r\n}\r\n","module.exports = __WEBPACK_EXTERNAL_MODULE__194__;","module.exports = __WEBPACK_EXTERNAL_MODULE__31__;"],"names":["factory","self","__WEBPACK_EXTERNAL_MODULE__7__","__WEBPACK_EXTERNAL_MODULE__10__","__WEBPACK_EXTERNAL_MODULE__100__","installedModules","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","url","data","serializeParam","originalData","param","startOfRoute","indexOf","route","pathAndQuery","substring","recipient","subject","body","window","location","href","options","keepSqBrackets","setQueryStringParam","innerUrl","originalN","v","replaceOnly","replace","regex","RegExp","match","qs","position","length","pound","lastIndexOf","slice","originalName","exec","decodeURIComponent","originalUrl","re","hash","separator","test","path","queryIndex","join","domainsToCheck","isRelativeUrl","domain","getDomain","toLowerCase","any","toCheck","website","site","trim","uri","protocol","toString","matchs","topLevelDomain","result","isString","contains","toUpperCase","UrlRegex","matches","first","frags","reduce","memo","frag","isEmpty","eSlash","sSlash","hasProtocol","a","document","createElement","hostname","startIndex","err","Validation_Base_Field_Not_Valid","_TL_","Validation_NotEmpty_Required_Field","Validation_String_Max_Length","Validation_String_Min_Length","Validation_String_Invalid_Characters","Validation_Number_Require_Numeric","Validation_Number_Max_Length","Validation_Number_Range_Min","Validation_Number_Range_Max","Validation_Number_Range_Between","Validation_Array_Size_Max","Validation_Array_Size_Between","Validation_Array_Items_Invalid","Validation_Array_Items_Duplicate","Validation_NegativeKeywords_ListName_Required","Validation_NegativeKeywords_Max_Count","Validation_NegativeKeywords_Invalid_Keywords","Validation_NegativeKeywords_Required","Validation","required","string","number","enum","enumeration","array","passive","custom","run","validators","failed","_","find","isValid","message","undefined","allowSpace","i18n","Required","Base","constructor","super","this","getString","isValidValue","isFinite","blockInput","nullable","set","isUndefined","putil","isNil","validate","__WEBPACK_EXTERNAL_MODULE__16__","str","distinguishCJK","size","counts","countBy","hasCJK","defaults","cjk","ascii","Type","Size","MinSize","XSS","patt","Pattern","maxlength","getLength","minlength","pattern","integerLength","decimalLength","min","max","Range","isValidDecimal","NumberSize","parseDecimal","NumberRange","isNumber","text","substr","segments","split","formatDecimal","minimumFractionDigits","maximumFractionDigits","enumerators","Enum","Item","additionalValidators","Items","Unique","isArray","valueSize","passAll","every","validator","sizeNotFits","invalidItems","omit","partial","val","index","uniq","Passive","error","setError","method","Custom","createField","schema","fields","override","chain","properties","pick","field","mapObject","prop","type","extend","filter","map","getNestedList","Field","schemaProps","default","defaultValue","getDefaultValue","isFunction","validation","createValidation","conversion","createConversion","has","clone","defaultValues","integer","boolean","datetime","rules","NumberFactory","EnumFactory","StringFactory","ArrayFactory","BaseFactory","getRuleFactoryByType","__WEBPACK_EXTERNAL_MODULE__32__","maximum","minimum","isPercentValue","range","maxLength","minLength","minSize","checkXss","xss","each","rule","minItems","maxItems","uniqueItems","unique","getConvertorFactoryByType","passThrough","fromModel","toModel","numberToString","num","numberOfDigits","stringToNumber","localizedString","instrumentation","logError","msg","console","isSupported","nameObj","JSON","parse","stringify","clear","ComponentToWrap","storeFactory","selector","store","select","storeName","res","WrappedComponent","PureComponent","props","state","createStore","componentDidMount","subscribe","componentWillUnmount","unsubscribe","StateStore","subscription","closed","setState","render","ref","forwardedRef","forwardRef","__WEBPACK_EXTERNAL_MODULE__194__","__WEBPACK_EXTERNAL_MODULE__31__"],"sourceRoot":""}