{ "version": 3, "sources": [ "webpack:///webpack/bootstrap", "webpack:///./TypeScripts/api/CallTrackingApi.ts", "webpack:///./TypeScripts/api/OnlineBookingApi.ts", "webpack:///./TypeScripts/api/SearchApi.ts", "webpack:///./TypeScripts/api/api.ts", "webpack:///./TypeScripts/oce/BookingConfirm.ts", "webpack:///./node_modules/underscore/underscore.js", "webpack:///./node_modules/webpack/buildin/global.js", "webpack:///./node_modules/webpack/buildin/module.js" ], "names": [], "mappings": "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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,gBAAgB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA,KAAK;AACL;AACA,uCAAuC,YAAY;AACnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,WAAW;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,kDAAkD;AAClD,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,wCAAwC;AACxC,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,8CAA8C,YAAY;AAC1D;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6CAA6C,YAAY;AACzD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8BAA8B;AAC1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,0BAA0B;AACpE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,cAAc;AACnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,eAAe;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,qBAAqB,eAAe;AACpC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gBAAgB;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gBAAgB;AACzC;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,yCAAyC,YAAY;AACrD;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,cAAc;AACd,cAAc;AACd,gBAAgB;AAChB,gBAAgB;AAChB,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,YAAY;AAC/B;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP,qBAAqB;AACrB;;AAEA;AACA;AACA,KAAK;AACL,iBAAiB;;AAEjB;AACA,kDAAkD,EAAE,iBAAiB;;AAErE;AACA,wBAAwB,8BAA8B;AACtD,2BAA2B;;AAE3B;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,iBAAiB;;AAEnE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAyC;AAC/C,IAAI,iCAAqB,EAAE,mCAAE;AAC7B;AACA,KAAK;AAAA,oGAAC;AACN;AACA,CAAC;;;;;;;;;;;;;AC3pDD;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA", "file": "oce/BookingConfirm.js", "sourcesContent": [ " \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 = \"./TypeScripts/oce/BookingConfirm.ts\");\n", "/**\n * qrz\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport * as models from '../model/models';\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nexport class CallTrackingApi {\n protected basePath = 'https://localhost:44364';\n public defaultHeaders : any = {};\n\n static $inject: string[] = ['$http', '$httpParamSerializer', 'basePath'];\n\n constructor(protected $http: ng.IHttpService, protected $httpParamSerializer?: (d: any) => any, basePath?: string) {\n if (basePath !== undefined) {\n this.basePath = basePath;\n }\n }\n\n /**\n * \n */\n public callTrackingGet (extraHttpRequestParams?: any ) : ng.IHttpPromise<string> {\n const localVarPath = this.basePath + '/api/CallTracking';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n}\n", "/**\n * qrz\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport * as models from '../model/models';\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nexport class OnlineBookingApi {\n protected basePath = 'https://localhost:44364';\n public defaultHeaders : any = {};\n\n static $inject: string[] = ['$http', '$httpParamSerializer', 'basePath'];\n\n constructor(protected $http: ng.IHttpService, protected $httpParamSerializer?: (d: any) => any, basePath?: string) {\n if (basePath !== undefined) {\n this.basePath = basePath;\n }\n }\n\n /**\n * \n * @param shopId \n */\n public onlineBookingEnumUnitTypeGroupByShopId (shopId: number, extraHttpRequestParams?: any ) : ng.IHttpPromise<Array<models.UnitTypeGroup>> {\n const localVarPath = this.basePath + '/api/OnlineBooking/EnumUnitTypeGroupByShopId';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'shopId' is not null or undefined\n if (shopId === null || shopId === undefined) {\n throw new Error('Required parameter shopId was null or undefined when calling onlineBookingEnumUnitTypeGroupByShopId.');\n }\n\n if (shopId !== undefined) {\n queryParameters['shopId'] = shopId;\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n * @param shopId \n * @param iid \n */\n public onlineBookingFindByItemId (shopId: number, iid: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<models.UnitInfo> {\n const localVarPath = this.basePath + '/api/OnlineBooking/FindByItemId';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'shopId' is not null or undefined\n if (shopId === null || shopId === undefined) {\n throw new Error('Required parameter shopId was null or undefined when calling onlineBookingFindByItemId.');\n }\n\n // verify required parameter 'iid' is not null or undefined\n if (iid === null || iid === undefined) {\n throw new Error('Required parameter iid was null or undefined when calling onlineBookingFindByItemId.');\n }\n\n if (shopId !== undefined) {\n queryParameters['shopId'] = shopId;\n }\n\n if (iid !== undefined) {\n queryParameters['iid'] = iid;\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n * @param shopId \n * @param searchText \n */\n public onlineBookingFindByRoomNumber (shopId: number, searchText: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<models.UnitInfo> {\n const localVarPath = this.basePath + '/api/OnlineBooking/FindByRoomNumber';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'shopId' is not null or undefined\n if (shopId === null || shopId === undefined) {\n throw new Error('Required parameter shopId was null or undefined when calling onlineBookingFindByRoomNumber.');\n }\n\n // verify required parameter 'searchText' is not null or undefined\n if (searchText === null || searchText === undefined) {\n throw new Error('Required parameter searchText was null or undefined when calling onlineBookingFindByRoomNumber.');\n }\n\n if (shopId !== undefined) {\n queryParameters['shopId'] = shopId;\n }\n\n if (searchText !== undefined) {\n queryParameters['searchText'] = searchText;\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n * @param fileName \n */\n public onlineBookingGetBlobInfo (fileName: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<models.BlobInfo> {\n const localVarPath = this.basePath + '/api/OnlineBooking/GetBlobInfo';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'fileName' is not null or undefined\n if (fileName === null || fileName === undefined) {\n throw new Error('Required parameter fileName was null or undefined when calling onlineBookingGetBlobInfo.');\n }\n\n if (fileName !== undefined) {\n queryParameters['fileName'] = fileName;\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n * @param cmsShopId \n * @param currentActivityKey \n */\n public onlineBookingGetBookingTimeStatus (cmsShopId: number, currentActivityKey?: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<models.BookedTimeStatus> {\n const localVarPath = this.basePath + '/api/OnlineBooking/GetBookingTimeStatus';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'cmsShopId' is not null or undefined\n if (cmsShopId === null || cmsShopId === undefined) {\n throw new Error('Required parameter cmsShopId was null or undefined when calling onlineBookingGetBookingTimeStatus.');\n }\n\n if (cmsShopId !== undefined) {\n queryParameters['cmsShopId'] = cmsShopId;\n }\n\n if (currentActivityKey !== undefined) {\n queryParameters['currentActivityKey'] = currentActivityKey;\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n */\n public onlineBookingGetMaster (extraHttpRequestParams?: any ) : ng.IHttpPromise<models.OnlineBookingMaster> {\n const localVarPath = this.basePath + '/api/OnlineBooking/GetMaster';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n * @param arg \n */\n public onlineBookingPayment (arg: models.PaymentRequest, extraHttpRequestParams?: any ) : ng.IHttpPromise<models.PaymentResponce> {\n const localVarPath = this.basePath + '/api/OnlineSignUp/Payment';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'arg' is not null or undefined\n if (arg === null || arg === undefined) {\n throw new Error('Required parameter arg was null or undefined when calling onlineBookingPayment.');\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'POST',\n url: localVarPath,\n data: arg,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n * @param zip \n */\n public onlineBookingZipToAddress (zip: string, extraHttpRequestParams?: any ) : ng.IHttpPromise<models.ZipToAddressResponce> {\n const localVarPath = this.basePath + '/api/OnlineSignUp/ZipToAddress';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'zip' is not null or undefined\n if (zip === null || zip === undefined) {\n throw new Error('Required parameter zip was null or undefined when calling onlineBookingZipToAddress.');\n }\n\n if (zip !== undefined) {\n queryParameters['zip'] = zip;\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n}\n", "/**\n * qrz\n * No description provided (generated by Swagger Codegen https://github.com/swagger-api/swagger-codegen)\n *\n * OpenAPI spec version: v1\n * \n *\n * NOTE: This class is auto generated by the swagger code generator program.\n * https://github.com/swagger-api/swagger-codegen.git\n * Do not edit the class manually.\n */\n\nimport * as models from '../model/models';\n\n/* tslint:disable:no-unused-variable member-ordering */\n\nexport class SearchApi {\n protected basePath = 'https://localhost:44364';\n public defaultHeaders : any = {};\n\n static $inject: string[] = ['$http', '$httpParamSerializer', 'basePath'];\n\n constructor(protected $http: ng.IHttpService, protected $httpParamSerializer?: (d: any) => any, basePath?: string) {\n if (basePath !== undefined) {\n this.basePath = basePath;\n }\n }\n\n /**\n * \n */\n public searchSearchShopAll (extraHttpRequestParams?: any ) : ng.IHttpPromise<Array<models.ShopCsvRow>> {\n const localVarPath = this.basePath + '/api/Search/SearchShopAll';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n let httpRequestParams: ng.IRequestConfig = {\n method: 'POST',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n * @param latE \n * @param lngN \n * @param latW \n * @param lngS \n */\n public searchSearchShopByNSEW (latE: number, lngN: number, latW: number, lngS: number, extraHttpRequestParams?: any ) : ng.IHttpPromise<Array<models.ShopCsvRow>> {\n const localVarPath = this.basePath + '/api/Search/SearchShopByNSEW';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n // verify required parameter 'latE' is not null or undefined\n if (latE === null || latE === undefined) {\n throw new Error('Required parameter latE was null or undefined when calling searchSearchShopByNSEW.');\n }\n\n // verify required parameter 'lngN' is not null or undefined\n if (lngN === null || lngN === undefined) {\n throw new Error('Required parameter lngN was null or undefined when calling searchSearchShopByNSEW.');\n }\n\n // verify required parameter 'latW' is not null or undefined\n if (latW === null || latW === undefined) {\n throw new Error('Required parameter latW was null or undefined when calling searchSearchShopByNSEW.');\n }\n\n // verify required parameter 'lngS' is not null or undefined\n if (lngS === null || lngS === undefined) {\n throw new Error('Required parameter lngS was null or undefined when calling searchSearchShopByNSEW.');\n }\n\n if (latE !== undefined) {\n queryParameters['lat_e'] = latE;\n }\n\n if (lngN !== undefined) {\n queryParameters['lng_n'] = lngN;\n }\n\n if (latW !== undefined) {\n queryParameters['lat_w'] = latW;\n }\n\n if (lngS !== undefined) {\n queryParameters['lng_s'] = lngS;\n }\n\n let httpRequestParams: ng.IRequestConfig = {\n method: 'POST',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n */\n public searchShops (extraHttpRequestParams?: any ) : ng.IHttpPromise<Array<models.ShopCsvRow>> {\n const localVarPath = this.basePath + '/api/Search/Shops';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n /**\n * \n */\n public searchUnits (extraHttpRequestParams?: any ) : ng.IHttpPromise<Array<models.UnitCsvRow>> {\n const localVarPath = this.basePath + '/api/Search/Units';\n\n let queryParameters: any = {};\n let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);\n let httpRequestParams: ng.IRequestConfig = {\n method: 'GET',\n url: localVarPath,\n params: queryParameters,\n headers: headerParams\n };\n\n if (extraHttpRequestParams) {\n httpRequestParams = (<any>Object).assign(httpRequestParams, extraHttpRequestParams);\n }\n\n return this.$http(httpRequestParams);\n }\n}\n", "export * from './CallTrackingApi';\nimport { CallTrackingApi } from './CallTrackingApi';\nexport * from './OnlineBookingApi';\nimport { OnlineBookingApi } from './OnlineBookingApi';\nexport * from './SearchApi';\nimport { SearchApi } from './SearchApi';\nexport const APIS = [CallTrackingApi, OnlineBookingApi, SearchApi];\n", "import * as Api from '../api/api';\r\nimport * as Models from '../model/models';\r\nimport * as _ from 'underscore';\r\n\r\ndeclare var angular: any;\r\n\r\nmodule OceBookingConfirmApp {\r\n \"use strict\";\r\n //declare var hoge: any;\r\n declare var apiBaseUrl: string;\r\n declare var defaultCrmShopId: string;\r\n declare var defaultCmsShopId: number;\r\n declare var defaultUnitId: number;\r\n declare var defaultDate: string;\r\n declare var defaultTime: string;\r\n declare var activitykey: string;\r\n declare var _gaq: any;\r\n declare var isInitialOpenCalender: boolean;\r\n declare var isEditmode: boolean;\r\n declare var isDeviceSp: boolean;\r\n\r\n class MainCtrl {\r\n apiClient: Api.OnlineBookingApi;\r\n master: Models.OnlineBookingMaster;\r\n\r\n bookingStatus: Models.BookedTimeStatus;\r\n dateIdxList: Array<number>;\r\n nextDateIdxList: Array<number>;\r\n timeIdxList: Array<number>;\r\n\r\n selectedRegion: Models.OnlineBookingRegion;\r\n selectedShop: Models.OnlineBookingShop;\r\n selectedDate: Date;\r\n selectedUnit: Models.OnlineBookingUnit;\r\n selectedTime: string;\r\n\r\n isShowError: boolean;\r\n\r\n LastName: string;\r\n FirstName: string;\r\n LastNameKana: string;\r\n FirstNameKana: string;\r\n Tel: string;\r\n Mail: string;\r\n\r\n\r\n skipIdx = 0;\r\n\r\n isNextWeek: boolean;\r\n isSubmited: boolean = false;\r\n\r\n constructor(private $scope: ng.IScope, private $http: ng.IHttpService) {\r\n //$http.defaults.cache = false;\r\n this.apiClient = new Api.OnlineBookingApi($http, null, apiBaseUrl);\r\n this.apiClient\r\n .onlineBookingGetMaster()\r\n .then(c => {\r\n this.master = c.data;\r\n\r\n if (isEditmode) {\r\n\r\n if (defaultCmsShopId != null) {\r\n\r\n this.selectedRegion = _(this.master.regions).find(c => _(c.shops).any((d: Models.OnlineBookingShop) => d.cmsShopId == defaultCmsShopId));\r\n var defaultValue = _(this.master.regions).chain().map(c => c.shops).flatten().find((c: Models.OnlineBookingShop) => c.cmsShopId == defaultCmsShopId).value();\r\n this.selectedShop = defaultValue;\r\n }\r\n\r\n if (defaultUnitId != null) {\r\n this.selectedUnit = _(this.master.units).find(c => c.id == defaultUnitId)\r\n }\r\n\r\n if (defaultDate != null && defaultDate != \"\") {\r\n this.selectedDate = <any>(defaultDate);\r\n this.selectedTime = defaultTime;\r\n }\r\n }\r\n else {\r\n if (defaultCrmShopId != \"\") {\r\n var defaultValue = _(this.master.regions).chain().map(c => c.shops).flatten().find((c: Models.OnlineBookingShop) => c.crmShopId == defaultCrmShopId).value();\r\n this.selectedShop = defaultValue;\r\n\r\n if (isInitialOpenCalender) {\r\n setTimeout(() => {\r\n if (this.selectedShop != null) {\r\n this.showSchedule();\r\n }\r\n }, 300);\r\n }\r\n }\r\n }\r\n\r\n });\r\n\r\n this.dateIdxList = [0, 1, 2, 3, 4, 5, 6];\r\n this.nextDateIdxList = [7, 8, 9, 10, 11, 12, 13];\r\n this.timeIdxList = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];\r\n }\r\n\r\n\r\n shopChange() {\r\n this.selectedDate = null;\r\n this.selectedTime = null;\r\n this.bookingStatus = null;\r\n this.selectedUnit = null;\r\n }\r\n\r\n regionChange() {\r\n this.selectedShop = null;\r\n this.shopChange();\r\n }\r\n\r\n unselectDate() {\r\n this.selectedDate = null;\r\n this.selectedTime = null;\r\n this.closeDialog();\r\n }\r\n\r\n showSchedule() {\r\n this.openDialog();\r\n this.isNextWeek = false;\r\n this.skipIdx = 0;\r\n this.apiClient\r\n .onlineBookingGetBookingTimeStatus(this.selectedShop.cmsShopId, activitykey, {\r\n params: {\r\n _tick: new Date().getTime(),\r\n cmsShopId: this.selectedShop.cmsShopId,\r\n currentActivityKey: activitykey\r\n }\r\n })\r\n .then(c => this.bookingStatus = c.data);\r\n }\r\n\r\n getDateIndexList(): number[] {\r\n var skipNum = 7;\r\n if (isDeviceSp) {\r\n skipNum = 3;\r\n }\r\n\r\n\r\n var dateItem = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];\r\n var start = this.skipIdx * skipNum;\r\n var end = start + skipNum;\r\n return dateItem.slice(start, end);\r\n }\r\n\r\n prevDays() {\r\n this.skipIdx--;\r\n }\r\n nextDays() {\r\n this.skipIdx++;\r\n }\r\n\r\n hasPrevDays(): boolean {\r\n return this.skipIdx != 0;\r\n }\r\n\r\n hasNextDays(): boolean {\r\n if (isDeviceSp) {\r\n return this.skipIdx < 4;\r\n }\r\n else {\r\n return this.skipIdx < 1;\r\n }\r\n }\r\n\r\n getUnitList() {\r\n if (this.selectedShop == null)\r\n return null;\r\n\r\n return _(this.master.units).chain().filter(c => c.shopId == this.selectedShop.cmsShopId).sortBy(c => c.sorting).value();\r\n }\r\n\r\n closeDialog() {\r\n var modal = '#con1';\r\n $(modal).fadeOut('fast');\r\n $('.modal-overlay').fadeOut('fast', function () {\r\n // オーãƒãƒ¼ãƒ¬ã‚¤ã‚’削除\r\n $('.modal-overlay').remove();\r\n });\r\n }\r\n\r\n setReservationDateTime(dateIdx: number, timeIdx: number) {\r\n // console.log(dateIdx, timeIdx);\r\n\r\n this.selectedDate = this.bookingStatus.dateList[dateIdx];\r\n this.selectedTime = this.bookingStatus.timeList[timeIdx];\r\n this.closeDialog();\r\n }\r\n\r\n submit() {\r\n this.isShowError = true;\r\n //TODO:Validate\r\n\r\n if (!isEditmode) {\r\n var validateResult = this.validate();\r\n\r\n if (!this.isNullOrEmpty(validateResult)) {\r\n\r\n alert(validateResult);\r\n return;\r\n }\r\n }\r\n\r\n if (this.isSubmited)\r\n return;\r\n this.isSubmited = true;\r\n if (!isEditmode) {\r\n _gaq.push(['_trackEvent', 'Booking', 'Reservation', 'PCBE']);\r\n }\r\n\r\n\r\n //TODO:FormSubmit(100ms é…延ã•ã›ã¦ã¿ã‚‹)\r\n setTimeout(() => {\r\n var target = <any>document.getElementById(\"form1\");\r\n target.method = \"POST\";\r\n target.submit();\r\n }, 100);\r\n\r\n \r\n }\r\n\r\n openDialog() {\r\n $('body').append('<div class=\"modal-overlay\"></div>');\r\n // オーãƒãƒ¼ãƒ¬ã‚¤ã‚’フェードイン\r\n $('.modal-overlay').fadeIn('fast');\r\n\r\n // モーダルコンテンツã®IDã‚’å–å¾—\r\n var modal = '#con1';\r\n // モーダルコンテンツã®è¡¨ç¤ºä½ç½®ã‚’è¨å®š\r\n modalResize();\r\n // モーダルコンテンツフェードイン\r\n $(modal).fadeIn('fast');\r\n\r\n // 「.modal-overlayã€ã‚ã‚‹ã„ã¯ã€Œ.modal-closeã€ã‚’クリック\r\n $('.modal-overlay').off().click(() => this.closeDialog());\r\n\r\n // リサイズã—ãŸã‚‰è¡¨ç¤ºä½ç½®ã‚’å†å–å¾—\r\n $(window).on('resize', function () {\r\n modalResize();\r\n });\r\n\r\n\r\n // モーダルコンテンツã®è¡¨ç¤ºä½ç½®ã‚’è¨å®šã™ã‚‹é–¢æ•°\r\n function modalResize() {\r\n // ウィンドウã®æ¨ªå¹…ã€é«˜ã•ã‚’å–å¾—\r\n var w = $(window).width();\r\n var h = $(window).height();\r\n\r\n // モーダルコンテンツã®è¡¨ç¤ºä½ç½®ã‚’å–å¾—\r\n var x = (w - $(modal).outerWidth(true)) / 2;\r\n var y = (h - $(modal).outerHeight(true)) / 2;\r\n\r\n // モーダルコンテンツã®è¡¨ç¤ºä½ç½®ã‚’è¨å®š\r\n $(modal).css({ 'left': x + 'px', 'top': y + 'px' });\r\n }\r\n }\r\n\r\n validate(): string {\r\n var str = \"\";\r\n\r\n var v1 = this.validateNames();\r\n var v2 = this.validateTelNumber();\r\n var v3 = this.validateMail();\r\n var v4 = this.validateSelectedDateTime();\r\n if (v1 != null) {\r\n str += v1 + \"\\r\\n\";\r\n }\r\n if (v2 != null) {\r\n str += v2 + \"\\r\\n\";\r\n }\r\n if (v3 != null) {\r\n str += v3 + \"\\r\\n\";\r\n }\r\n if (v4 != null) {\r\n str += v4;\r\n }\r\n return str;\r\n }\r\n\r\n isNullOrEmpty(str: string): boolean {\r\n if (str == null)\r\n return true;\r\n if (str == \"\")\r\n return true;\r\n return false;\r\n }\r\n\r\n validateNames(): string {\r\n\r\n if (this.isNullOrEmpty(this.FirstName) || this.isNullOrEmpty(this.LastName) || this.isNullOrEmpty(this.FirstNameKana) || this.isNullOrEmpty(this.LastNameKana)) {\r\n return \"åå‰ã¯å¿…ãšå…¥åŠ›ã—ã¦ãã ã•ã„\";\r\n }\r\n\r\n if (!/^[ã-ã‚“]+$/.test(this.LastNameKana))\r\n return \"姓(ã‹ãª)ã¯å…¨è§’ã²ã‚‰ãŒãªã§å…¥åŠ›ã—ã¦ãã ã•ã„\";\r\n\r\n if (!/^[ã-ã‚“]+$/.test(this.FirstNameKana))\r\n return \"å(ã‹ãª)ã¯å…¨è§’ã²ã‚‰ãŒãªã§å…¥åŠ›ã—ã¦ãã ã•ã„\";\r\n\r\n return null;\r\n }\r\n\r\n\r\n\r\n validateMail(): string {\r\n\r\n if (this.isNullOrEmpty(this.Mail))\r\n return \"メールアドレスã¯å¿…ãšå…¥åŠ›ã—ã¦ãã ã•ã„\";\r\n if (!/^[\\w.\\-\\+]+@[\\w\\-]+\\.[\\w.\\-]+$/.test(this.Mail))\r\n return \"メールアドレスã®æ›¸å¼ãŒä¸æ£ã§ã™\";\r\n return null;\r\n }\r\n\r\n validateTelNumber(): string {\r\n if (this.isNullOrEmpty(this.Tel))\r\n return \"電話番å·ã¯å¿…ãšå…¥åŠ›ã—ã¦ãã ã•ã„\";\r\n if (!/^[0-9]+$/.test(this.Tel))\r\n return \"電話番å·ã¯åŠè§’æ•°å—ã®ã¿ã§å…¥åŠ›ã—ã¦ãã ã•ã„\";\r\n return null;\r\n }\r\n\r\n\r\n validateSelectedDateTime(): string {\r\n\r\n if (this.selectedDate == null || this.selectedTime == null)\r\n return null;\r\n\r\n var dateTimeStr = this.selectedDate.toString().replace(\"00:00:00\", this.selectedTime + \":00\");\r\n\r\n var selectedDate = new Date(dateTimeStr);\r\n var now = new Date();\r\n\r\n if (selectedDate < now) {\r\n return \"éŽåŽ»ã®æ™‚é–“ã¯äºˆç´„ã§ãã¾ã›ã‚“\";\r\n }\r\n\r\n return null;\r\n }\r\n\r\n }\r\n angular.module(\"OceBookingConfirmApp\", [])\r\n .controller(\"MainCtrl\", <any>MainCtrl);\r\n\r\n}", "// Underscore.js 1.9.1\n// http://underscorejs.org\n// (c) 2009-2018 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// Underscore may be freely distributed under the MIT license.\n\n(function() {\n\n // Baseline setup\n // --------------\n\n // Establish the root object, `window` (`self`) in the browser, `global`\n // on the server, or `this` in some virtual machines. We use `self`\n // instead of `window` for `WebWorker` support.\n var root = typeof self == 'object' && self.self === self && self ||\n typeof global == 'object' && global.global === global && global ||\n this ||\n {};\n\n // Save the previous value of the `_` variable.\n var previousUnderscore = root._;\n\n // Save bytes in the minified (but not gzipped) version:\n var ArrayProto = Array.prototype, ObjProto = Object.prototype;\n var SymbolProto = typeof Symbol !== 'undefined' ? Symbol.prototype : null;\n\n // Create quick reference variables for speed access to core prototypes.\n var push = ArrayProto.push,\n slice = ArrayProto.slice,\n toString = ObjProto.toString,\n hasOwnProperty = ObjProto.hasOwnProperty;\n\n // All **ECMAScript 5** native function implementations that we hope to use\n // are declared here.\n var nativeIsArray = Array.isArray,\n nativeKeys = Object.keys,\n nativeCreate = Object.create;\n\n // Naked function reference for surrogate-prototype-swapping.\n var Ctor = function(){};\n\n // Create a safe reference to the Underscore object for use below.\n var _ = function(obj) {\n if (obj instanceof _) return obj;\n if (!(this instanceof _)) return new _(obj);\n this._wrapped = obj;\n };\n\n // Export the Underscore object for **Node.js**, with\n // backwards-compatibility for their old module API. If we're in\n // the browser, add `_` as a global object.\n // (`nodeType` is checked to ensure that `module`\n // and `exports` are not HTML elements.)\n if (typeof exports != 'undefined' && !exports.nodeType) {\n if (typeof module != 'undefined' && !module.nodeType && module.exports) {\n exports = module.exports = _;\n }\n exports._ = _;\n } else {\n root._ = _;\n }\n\n // Current version.\n _.VERSION = '1.9.1';\n\n // Internal function that returns an efficient (for current engines) version\n // of the passed-in callback, to be repeatedly applied in other Underscore\n // functions.\n var optimizeCb = function(func, context, argCount) {\n if (context === void 0) return func;\n switch (argCount == null ? 3 : argCount) {\n case 1: return function(value) {\n return func.call(context, value);\n };\n // The 2-argument case is omitted because we’re not using it.\n case 3: return function(value, index, collection) {\n return func.call(context, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(context, accumulator, value, index, collection);\n };\n }\n return function() {\n return func.apply(context, arguments);\n };\n };\n\n var builtinIteratee;\n\n // An internal function to generate callbacks that can be applied to each\n // element in a collection, returning the desired result — either `identity`,\n // an arbitrary callback, a property matcher, or a property accessor.\n var cb = function(value, context, argCount) {\n if (_.iteratee !== builtinIteratee) return _.iteratee(value, context);\n if (value == null) return _.identity;\n if (_.isFunction(value)) return optimizeCb(value, context, argCount);\n if (_.isObject(value) && !_.isArray(value)) return _.matcher(value);\n return _.property(value);\n };\n\n // External wrapper for our callback generator. Users may customize\n // `_.iteratee` if they want additional predicate/iteratee shorthand styles.\n // This abstraction hides the internal-only argCount argument.\n _.iteratee = builtinIteratee = function(value, context) {\n return cb(value, context, Infinity);\n };\n\n // Some functions take a variable number of arguments, or a few expected\n // arguments at the beginning and then a variable number of values to operate\n // on. This helper accumulates all remaining arguments past the function’s\n // argument length (or an explicit `startIndex`), into an array that becomes\n // the last argument. Similar to ES6’s \"rest parameter\".\n var restArguments = function(func, startIndex) {\n startIndex = startIndex == null ? func.length - 1 : +startIndex;\n return function() {\n var length = Math.max(arguments.length - startIndex, 0),\n rest = Array(length),\n index = 0;\n for (; index < length; index++) {\n rest[index] = arguments[index + startIndex];\n }\n switch (startIndex) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, arguments[0], rest);\n case 2: return func.call(this, arguments[0], arguments[1], rest);\n }\n var args = Array(startIndex + 1);\n for (index = 0; index < startIndex; index++) {\n args[index] = arguments[index];\n }\n args[startIndex] = rest;\n return func.apply(this, args);\n };\n };\n\n // An internal function for creating a new object that inherits from another.\n var baseCreate = function(prototype) {\n if (!_.isObject(prototype)) return {};\n if (nativeCreate) return nativeCreate(prototype);\n Ctor.prototype = prototype;\n var result = new Ctor;\n Ctor.prototype = null;\n return result;\n };\n\n var shallowProperty = function(key) {\n return function(obj) {\n return obj == null ? void 0 : obj[key];\n };\n };\n\n var has = function(obj, path) {\n return obj != null && hasOwnProperty.call(obj, path);\n }\n\n var deepGet = function(obj, path) {\n var length = path.length;\n for (var i = 0; i < length; i++) {\n if (obj == null) return void 0;\n obj = obj[path[i]];\n }\n return length ? obj : void 0;\n };\n\n // Helper for collection methods to determine whether a collection\n // should be iterated as an array or as an object.\n // Related: http://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength\n // Avoids a very nasty iOS 8 JIT bug on ARM-64. #2094\n var MAX_ARRAY_INDEX = Math.pow(2, 53) - 1;\n var getLength = shallowProperty('length');\n var isArrayLike = function(collection) {\n var length = getLength(collection);\n return typeof length == 'number' && length >= 0 && length <= MAX_ARRAY_INDEX;\n };\n\n // Collection Functions\n // --------------------\n\n // The cornerstone, an `each` implementation, aka `forEach`.\n // Handles raw objects in addition to array-likes. Treats all\n // sparse array-likes as if they were dense.\n _.each = _.forEach = function(obj, iteratee, context) {\n iteratee = optimizeCb(iteratee, context);\n var i, length;\n if (isArrayLike(obj)) {\n for (i = 0, length = obj.length; i < length; i++) {\n iteratee(obj[i], i, obj);\n }\n } else {\n var keys = _.keys(obj);\n for (i = 0, length = keys.length; i < length; i++) {\n iteratee(obj[keys[i]], keys[i], obj);\n }\n }\n return obj;\n };\n\n // Return the results of applying the iteratee to each element.\n _.map = _.collect = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n results = Array(length);\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n results[index] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Create a reducing function iterating left or right.\n var createReduce = function(dir) {\n // Wrap code that reassigns argument variables in a separate function than\n // the one that accesses `arguments.length` to avoid a perf hit. (#1991)\n var reducer = function(obj, iteratee, memo, initial) {\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length,\n index = dir > 0 ? 0 : length - 1;\n if (!initial) {\n memo = obj[keys ? keys[index] : index];\n index += dir;\n }\n for (; index >= 0 && index < length; index += dir) {\n var currentKey = keys ? keys[index] : index;\n memo = iteratee(memo, obj[currentKey], currentKey, obj);\n }\n return memo;\n };\n\n return function(obj, iteratee, memo, context) {\n var initial = arguments.length >= 3;\n return reducer(obj, optimizeCb(iteratee, context, 4), memo, initial);\n };\n };\n\n // **Reduce** builds up a single result from a list of values, aka `inject`,\n // or `foldl`.\n _.reduce = _.foldl = _.inject = createReduce(1);\n\n // The right-associative version of reduce, also known as `foldr`.\n _.reduceRight = _.foldr = createReduce(-1);\n\n // Return the first value which passes a truth test. Aliased as `detect`.\n _.find = _.detect = function(obj, predicate, context) {\n var keyFinder = isArrayLike(obj) ? _.findIndex : _.findKey;\n var key = keyFinder(obj, predicate, context);\n if (key !== void 0 && key !== -1) return obj[key];\n };\n\n // Return all the elements that pass a truth test.\n // Aliased as `select`.\n _.filter = _.select = function(obj, predicate, context) {\n var results = [];\n predicate = cb(predicate, context);\n _.each(obj, function(value, index, list) {\n if (predicate(value, index, list)) results.push(value);\n });\n return results;\n };\n\n // Return all the elements for which a truth test fails.\n _.reject = function(obj, predicate, context) {\n return _.filter(obj, _.negate(cb(predicate)), context);\n };\n\n // Determine whether all of the elements match a truth test.\n // Aliased as `all`.\n _.every = _.all = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (!predicate(obj[currentKey], currentKey, obj)) return false;\n }\n return true;\n };\n\n // Determine if at least one element in the object matches a truth test.\n // Aliased as `any`.\n _.some = _.any = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = !isArrayLike(obj) && _.keys(obj),\n length = (keys || obj).length;\n for (var index = 0; index < length; index++) {\n var currentKey = keys ? keys[index] : index;\n if (predicate(obj[currentKey], currentKey, obj)) return true;\n }\n return false;\n };\n\n // Determine if the array or object contains a given item (using `===`).\n // Aliased as `includes` and `include`.\n _.contains = _.includes = _.include = function(obj, item, fromIndex, guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n if (typeof fromIndex != 'number' || guard) fromIndex = 0;\n return _.indexOf(obj, item, fromIndex) >= 0;\n };\n\n // Invoke a method (with arguments) on every item in a collection.\n _.invoke = restArguments(function(obj, path, args) {\n var contextPath, func;\n if (_.isFunction(path)) {\n func = path;\n } else if (_.isArray(path)) {\n contextPath = path.slice(0, -1);\n path = path[path.length - 1];\n }\n return _.map(obj, function(context) {\n var method = func;\n if (!method) {\n if (contextPath && contextPath.length) {\n context = deepGet(context, contextPath);\n }\n if (context == null) return void 0;\n method = context[path];\n }\n return method == null ? method : method.apply(context, args);\n });\n });\n\n // Convenience version of a common use case of `map`: fetching a property.\n _.pluck = function(obj, key) {\n return _.map(obj, _.property(key));\n };\n\n // Convenience version of a common use case of `filter`: selecting only objects\n // containing specific `key:value` pairs.\n _.where = function(obj, attrs) {\n return _.filter(obj, _.matcher(attrs));\n };\n\n // Convenience version of a common use case of `find`: getting the first object\n // containing specific `key:value` pairs.\n _.findWhere = function(obj, attrs) {\n return _.find(obj, _.matcher(attrs));\n };\n\n // Return the maximum element (or element-based computation).\n _.max = function(obj, iteratee, context) {\n var result = -Infinity, lastComputed = -Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value > result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed > lastComputed || computed === -Infinity && result === -Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Return the minimum element (or element-based computation).\n _.min = function(obj, iteratee, context) {\n var result = Infinity, lastComputed = Infinity,\n value, computed;\n if (iteratee == null || typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null) {\n obj = isArrayLike(obj) ? obj : _.values(obj);\n for (var i = 0, length = obj.length; i < length; i++) {\n value = obj[i];\n if (value != null && value < result) {\n result = value;\n }\n }\n } else {\n iteratee = cb(iteratee, context);\n _.each(obj, function(v, index, list) {\n computed = iteratee(v, index, list);\n if (computed < lastComputed || computed === Infinity && result === Infinity) {\n result = v;\n lastComputed = computed;\n }\n });\n }\n return result;\n };\n\n // Shuffle a collection.\n _.shuffle = function(obj) {\n return _.sample(obj, Infinity);\n };\n\n // Sample **n** random values from a collection using the modern version of the\n // [Fisher-Yates shuffle](http://en.wikipedia.org/wiki/Fisher–Yates_shuffle).\n // If **n** is not specified, returns a single random element.\n // The internal `guard` argument allows it to work with `map`.\n _.sample = function(obj, n, guard) {\n if (n == null || guard) {\n if (!isArrayLike(obj)) obj = _.values(obj);\n return obj[_.random(obj.length - 1)];\n }\n var sample = isArrayLike(obj) ? _.clone(obj) : _.values(obj);\n var length = getLength(sample);\n n = Math.max(Math.min(n, length), 0);\n var last = length - 1;\n for (var index = 0; index < n; index++) {\n var rand = _.random(index, last);\n var temp = sample[index];\n sample[index] = sample[rand];\n sample[rand] = temp;\n }\n return sample.slice(0, n);\n };\n\n // Sort the object's values by a criterion produced by an iteratee.\n _.sortBy = function(obj, iteratee, context) {\n var index = 0;\n iteratee = cb(iteratee, context);\n return _.pluck(_.map(obj, function(value, key, list) {\n return {\n value: value,\n index: index++,\n criteria: iteratee(value, key, list)\n };\n }).sort(function(left, right) {\n var a = left.criteria;\n var b = right.criteria;\n if (a !== b) {\n if (a > b || a === void 0) return 1;\n if (a < b || b === void 0) return -1;\n }\n return left.index - right.index;\n }), 'value');\n };\n\n // An internal function used for aggregate \"group by\" operations.\n var group = function(behavior, partition) {\n return function(obj, iteratee, context) {\n var result = partition ? [[], []] : {};\n iteratee = cb(iteratee, context);\n _.each(obj, function(value, index) {\n var key = iteratee(value, index, obj);\n behavior(result, value, key);\n });\n return result;\n };\n };\n\n // Groups the object's values by a criterion. Pass either a string attribute\n // to group by, or a function that returns the criterion.\n _.groupBy = group(function(result, value, key) {\n if (has(result, key)) result[key].push(value); else result[key] = [value];\n });\n\n // Indexes the object's values by a criterion, similar to `groupBy`, but for\n // when you know that your index values will be unique.\n _.indexBy = group(function(result, value, key) {\n result[key] = value;\n });\n\n // Counts instances of an object that group by a certain criterion. Pass\n // either a string attribute to count by, or a function that returns the\n // criterion.\n _.countBy = group(function(result, value, key) {\n if (has(result, key)) result[key]++; else result[key] = 1;\n });\n\n var reStrSymbol = /[^\\ud800-\\udfff]|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff]/g;\n // Safely create a real, live array from anything iterable.\n _.toArray = function(obj) {\n if (!obj) return [];\n if (_.isArray(obj)) return slice.call(obj);\n if (_.isString(obj)) {\n // Keep surrogate pair characters together\n return obj.match(reStrSymbol);\n }\n if (isArrayLike(obj)) return _.map(obj, _.identity);\n return _.values(obj);\n };\n\n // Return the number of elements in an object.\n _.size = function(obj) {\n if (obj == null) return 0;\n return isArrayLike(obj) ? obj.length : _.keys(obj).length;\n };\n\n // Split a collection into two arrays: one whose elements all satisfy the given\n // predicate, and one whose elements all do not satisfy the predicate.\n _.partition = group(function(result, value, pass) {\n result[pass ? 0 : 1].push(value);\n }, true);\n\n // Array Functions\n // ---------------\n\n // Get the first element of an array. Passing **n** will return the first N\n // values in the array. Aliased as `head` and `take`. The **guard** check\n // allows it to work with `_.map`.\n _.first = _.head = _.take = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[0];\n return _.initial(array, array.length - n);\n };\n\n // Returns everything but the last entry of the array. Especially useful on\n // the arguments object. Passing **n** will return all the values in\n // the array, excluding the last N.\n _.initial = function(array, n, guard) {\n return slice.call(array, 0, Math.max(0, array.length - (n == null || guard ? 1 : n)));\n };\n\n // Get the last element of an array. Passing **n** will return the last N\n // values in the array.\n _.last = function(array, n, guard) {\n if (array == null || array.length < 1) return n == null ? void 0 : [];\n if (n == null || guard) return array[array.length - 1];\n return _.rest(array, Math.max(0, array.length - n));\n };\n\n // Returns everything but the first entry of the array. Aliased as `tail` and `drop`.\n // Especially useful on the arguments object. Passing an **n** will return\n // the rest N values in the array.\n _.rest = _.tail = _.drop = function(array, n, guard) {\n return slice.call(array, n == null || guard ? 1 : n);\n };\n\n // Trim out all falsy values from an array.\n _.compact = function(array) {\n return _.filter(array, Boolean);\n };\n\n // Internal implementation of a recursive `flatten` function.\n var flatten = function(input, shallow, strict, output) {\n output = output || [];\n var idx = output.length;\n for (var i = 0, length = getLength(input); i < length; i++) {\n var value = input[i];\n if (isArrayLike(value) && (_.isArray(value) || _.isArguments(value))) {\n // Flatten current level of array or arguments object.\n if (shallow) {\n var j = 0, len = value.length;\n while (j < len) output[idx++] = value[j++];\n } else {\n flatten(value, shallow, strict, output);\n idx = output.length;\n }\n } else if (!strict) {\n output[idx++] = value;\n }\n }\n return output;\n };\n\n // Flatten out an array, either recursively (by default), or just one level.\n _.flatten = function(array, shallow) {\n return flatten(array, shallow, false);\n };\n\n // Return a version of the array that does not contain the specified value(s).\n _.without = restArguments(function(array, otherArrays) {\n return _.difference(array, otherArrays);\n });\n\n // Produce a duplicate-free version of the array. If the array has already\n // been sorted, you have the option of using a faster algorithm.\n // The faster algorithm will not work with an iteratee if the iteratee\n // is not a one-to-one function, so providing an iteratee will disable\n // the faster algorithm.\n // Aliased as `unique`.\n _.uniq = _.unique = function(array, isSorted, iteratee, context) {\n if (!_.isBoolean(isSorted)) {\n context = iteratee;\n iteratee = isSorted;\n isSorted = false;\n }\n if (iteratee != null) iteratee = cb(iteratee, context);\n var result = [];\n var seen = [];\n for (var i = 0, length = getLength(array); i < length; i++) {\n var value = array[i],\n computed = iteratee ? iteratee(value, i, array) : value;\n if (isSorted && !iteratee) {\n if (!i || seen !== computed) result.push(value);\n seen = computed;\n } else if (iteratee) {\n if (!_.contains(seen, computed)) {\n seen.push(computed);\n result.push(value);\n }\n } else if (!_.contains(result, value)) {\n result.push(value);\n }\n }\n return result;\n };\n\n // Produce an array that contains the union: each distinct element from all of\n // the passed-in arrays.\n _.union = restArguments(function(arrays) {\n return _.uniq(flatten(arrays, true, true));\n });\n\n // Produce an array that contains every item shared between all the\n // passed-in arrays.\n _.intersection = function(array) {\n var result = [];\n var argsLength = arguments.length;\n for (var i = 0, length = getLength(array); i < length; i++) {\n var item = array[i];\n if (_.contains(result, item)) continue;\n var j;\n for (j = 1; j < argsLength; j++) {\n if (!_.contains(arguments[j], item)) break;\n }\n if (j === argsLength) result.push(item);\n }\n return result;\n };\n\n // Take the difference between one array and a number of other arrays.\n // Only the elements present in just the first array will remain.\n _.difference = restArguments(function(array, rest) {\n rest = flatten(rest, true, true);\n return _.filter(array, function(value){\n return !_.contains(rest, value);\n });\n });\n\n // Complement of _.zip. Unzip accepts an array of arrays and groups\n // each array's elements on shared indices.\n _.unzip = function(array) {\n var length = array && _.max(array, getLength).length || 0;\n var result = Array(length);\n\n for (var index = 0; index < length; index++) {\n result[index] = _.pluck(array, index);\n }\n return result;\n };\n\n // Zip together multiple lists into a single array -- elements that share\n // an index go together.\n _.zip = restArguments(_.unzip);\n\n // Converts lists into objects. Pass either a single array of `[key, value]`\n // pairs, or two parallel arrays of the same length -- one of keys, and one of\n // the corresponding values. Passing by pairs is the reverse of _.pairs.\n _.object = function(list, values) {\n var result = {};\n for (var i = 0, length = getLength(list); i < length; i++) {\n if (values) {\n result[list[i]] = values[i];\n } else {\n result[list[i][0]] = list[i][1];\n }\n }\n return result;\n };\n\n // Generator function to create the findIndex and findLastIndex functions.\n var createPredicateIndexFinder = function(dir) {\n return function(array, predicate, context) {\n predicate = cb(predicate, context);\n var length = getLength(array);\n var index = dir > 0 ? 0 : length - 1;\n for (; index >= 0 && index < length; index += dir) {\n if (predicate(array[index], index, array)) return index;\n }\n return -1;\n };\n };\n\n // Returns the first index on an array-like that passes a predicate test.\n _.findIndex = createPredicateIndexFinder(1);\n _.findLastIndex = createPredicateIndexFinder(-1);\n\n // Use a comparator function to figure out the smallest index at which\n // an object should be inserted so as to maintain order. Uses binary search.\n _.sortedIndex = function(array, obj, iteratee, context) {\n iteratee = cb(iteratee, context, 1);\n var value = iteratee(obj);\n var low = 0, high = getLength(array);\n while (low < high) {\n var mid = Math.floor((low + high) / 2);\n if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;\n }\n return low;\n };\n\n // Generator function to create the indexOf and lastIndexOf functions.\n var createIndexFinder = function(dir, predicateFind, sortedIndex) {\n return function(array, item, idx) {\n var i = 0, length = getLength(array);\n if (typeof idx == 'number') {\n if (dir > 0) {\n i = idx >= 0 ? idx : Math.max(idx + length, i);\n } else {\n length = idx >= 0 ? Math.min(idx + 1, length) : idx + length + 1;\n }\n } else if (sortedIndex && idx && length) {\n idx = sortedIndex(array, item);\n return array[idx] === item ? idx : -1;\n }\n if (item !== item) {\n idx = predicateFind(slice.call(array, i, length), _.isNaN);\n return idx >= 0 ? idx + i : -1;\n }\n for (idx = dir > 0 ? i : length - 1; idx >= 0 && idx < length; idx += dir) {\n if (array[idx] === item) return idx;\n }\n return -1;\n };\n };\n\n // Return the position of the first occurrence of an item in an array,\n // or -1 if the item is not included in the array.\n // If the array is large and already in sort order, pass `true`\n // for **isSorted** to use binary search.\n _.indexOf = createIndexFinder(1, _.findIndex, _.sortedIndex);\n _.lastIndexOf = createIndexFinder(-1, _.findLastIndex);\n\n // Generate an integer Array containing an arithmetic progression. A port of\n // the native Python `range()` function. See\n // [the Python documentation](http://docs.python.org/library/functions.html#range).\n _.range = function(start, stop, step) {\n if (stop == null) {\n stop = start || 0;\n start = 0;\n }\n if (!step) {\n step = stop < start ? -1 : 1;\n }\n\n var length = Math.max(Math.ceil((stop - start) / step), 0);\n var range = Array(length);\n\n for (var idx = 0; idx < length; idx++, start += step) {\n range[idx] = start;\n }\n\n return range;\n };\n\n // Chunk a single array into multiple arrays, each containing `count` or fewer\n // items.\n _.chunk = function(array, count) {\n if (count == null || count < 1) return [];\n var result = [];\n var i = 0, length = array.length;\n while (i < length) {\n result.push(slice.call(array, i, i += count));\n }\n return result;\n };\n\n // Function (ahem) Functions\n // ------------------\n\n // Determines whether to execute a function as a constructor\n // or a normal function with the provided arguments.\n var executeBound = function(sourceFunc, boundFunc, context, callingContext, args) {\n if (!(callingContext instanceof boundFunc)) return sourceFunc.apply(context, args);\n var self = baseCreate(sourceFunc.prototype);\n var result = sourceFunc.apply(self, args);\n if (_.isObject(result)) return result;\n return self;\n };\n\n // Create a function bound to a given object (assigning `this`, and arguments,\n // optionally). Delegates to **ECMAScript 5**'s native `Function.bind` if\n // available.\n _.bind = restArguments(function(func, context, args) {\n if (!_.isFunction(func)) throw new TypeError('Bind must be called on a function');\n var bound = restArguments(function(callArgs) {\n return executeBound(func, bound, context, this, args.concat(callArgs));\n });\n return bound;\n });\n\n // Partially apply a function by creating a version that has had some of its\n // arguments pre-filled, without changing its dynamic `this` context. _ acts\n // as a placeholder by default, allowing any combination of arguments to be\n // pre-filled. Set `_.partial.placeholder` for a custom placeholder argument.\n _.partial = restArguments(function(func, boundArgs) {\n var placeholder = _.partial.placeholder;\n var bound = function() {\n var position = 0, length = boundArgs.length;\n var args = Array(length);\n for (var i = 0; i < length; i++) {\n args[i] = boundArgs[i] === placeholder ? arguments[position++] : boundArgs[i];\n }\n while (position < arguments.length) args.push(arguments[position++]);\n return executeBound(func, bound, this, this, args);\n };\n return bound;\n });\n\n _.partial.placeholder = _;\n\n // Bind a number of an object's methods to that object. Remaining arguments\n // are the method names to be bound. Useful for ensuring that all callbacks\n // defined on an object belong to it.\n _.bindAll = restArguments(function(obj, keys) {\n keys = flatten(keys, false, false);\n var index = keys.length;\n if (index < 1) throw new Error('bindAll must be passed function names');\n while (index--) {\n var key = keys[index];\n obj[key] = _.bind(obj[key], obj);\n }\n });\n\n // Memoize an expensive function by storing its results.\n _.memoize = function(func, hasher) {\n var memoize = function(key) {\n var cache = memoize.cache;\n var address = '' + (hasher ? hasher.apply(this, arguments) : key);\n if (!has(cache, address)) cache[address] = func.apply(this, arguments);\n return cache[address];\n };\n memoize.cache = {};\n return memoize;\n };\n\n // Delays a function for the given number of milliseconds, and then calls\n // it with the arguments supplied.\n _.delay = restArguments(function(func, wait, args) {\n return setTimeout(function() {\n return func.apply(null, args);\n }, wait);\n });\n\n // Defers a function, scheduling it to run after the current call stack has\n // cleared.\n _.defer = _.partial(_.delay, _, 1);\n\n // Returns a function, that, when invoked, will only be triggered at most once\n // during a given window of time. Normally, the throttled function will run\n // as much as it can, without ever going more than once per `wait` duration;\n // but if you'd like to disable the execution on the leading edge, pass\n // `{leading: false}`. To disable execution on the trailing edge, ditto.\n _.throttle = function(func, wait, options) {\n var timeout, context, args, result;\n var previous = 0;\n if (!options) options = {};\n\n var later = function() {\n previous = options.leading === false ? 0 : _.now();\n timeout = null;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n };\n\n var throttled = function() {\n var now = _.now();\n if (!previous && options.leading === false) previous = now;\n var remaining = wait - (now - previous);\n context = this;\n args = arguments;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = func.apply(context, args);\n if (!timeout) context = args = null;\n } else if (!timeout && options.trailing !== false) {\n timeout = setTimeout(later, remaining);\n }\n return result;\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n previous = 0;\n timeout = context = args = null;\n };\n\n return throttled;\n };\n\n // Returns a function, that, as long as it continues to be invoked, will not\n // be triggered. The function will be called after it stops being called for\n // N milliseconds. If `immediate` is passed, trigger the function on the\n // leading edge, instead of the trailing.\n _.debounce = function(func, wait, immediate) {\n var timeout, result;\n\n var later = function(context, args) {\n timeout = null;\n if (args) result = func.apply(context, args);\n };\n\n var debounced = restArguments(function(args) {\n if (timeout) clearTimeout(timeout);\n if (immediate) {\n var callNow = !timeout;\n timeout = setTimeout(later, wait);\n if (callNow) result = func.apply(this, args);\n } else {\n timeout = _.delay(later, wait, this, args);\n }\n\n return result;\n });\n\n debounced.cancel = function() {\n clearTimeout(timeout);\n timeout = null;\n };\n\n return debounced;\n };\n\n // Returns the first function passed as an argument to the second,\n // allowing you to adjust arguments, run code before and after, and\n // conditionally execute the original function.\n _.wrap = function(func, wrapper) {\n return _.partial(wrapper, func);\n };\n\n // Returns a negated version of the passed-in predicate.\n _.negate = function(predicate) {\n return function() {\n return !predicate.apply(this, arguments);\n };\n };\n\n // Returns a function that is the composition of a list of functions, each\n // consuming the return value of the function that follows.\n _.compose = function() {\n var args = arguments;\n var start = args.length - 1;\n return function() {\n var i = start;\n var result = args[start].apply(this, arguments);\n while (i--) result = args[i].call(this, result);\n return result;\n };\n };\n\n // Returns a function that will only be executed on and after the Nth call.\n _.after = function(times, func) {\n return function() {\n if (--times < 1) {\n return func.apply(this, arguments);\n }\n };\n };\n\n // Returns a function that will only be executed up to (but not including) the Nth call.\n _.before = function(times, func) {\n var memo;\n return function() {\n if (--times > 0) {\n memo = func.apply(this, arguments);\n }\n if (times <= 1) func = null;\n return memo;\n };\n };\n\n // Returns a function that will be executed at most one time, no matter how\n // often you call it. Useful for lazy initialization.\n _.once = _.partial(_.before, 2);\n\n _.restArguments = restArguments;\n\n // Object Functions\n // ----------------\n\n // Keys in IE < 9 that won't be iterated by `for key in ...` and thus missed.\n var hasEnumBug = !{toString: null}.propertyIsEnumerable('toString');\n var nonEnumerableProps = ['valueOf', 'isPrototypeOf', 'toString',\n 'propertyIsEnumerable', 'hasOwnProperty', 'toLocaleString'];\n\n var collectNonEnumProps = function(obj, keys) {\n var nonEnumIdx = nonEnumerableProps.length;\n var constructor = obj.constructor;\n var proto = _.isFunction(constructor) && constructor.prototype || ObjProto;\n\n // Constructor is a special case.\n var prop = 'constructor';\n if (has(obj, prop) && !_.contains(keys, prop)) keys.push(prop);\n\n while (nonEnumIdx--) {\n prop = nonEnumerableProps[nonEnumIdx];\n if (prop in obj && obj[prop] !== proto[prop] && !_.contains(keys, prop)) {\n keys.push(prop);\n }\n }\n };\n\n // Retrieve the names of an object's own properties.\n // Delegates to **ECMAScript 5**'s native `Object.keys`.\n _.keys = function(obj) {\n if (!_.isObject(obj)) return [];\n if (nativeKeys) return nativeKeys(obj);\n var keys = [];\n for (var key in obj) if (has(obj, key)) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve all the property names of an object.\n _.allKeys = function(obj) {\n if (!_.isObject(obj)) return [];\n var keys = [];\n for (var key in obj) keys.push(key);\n // Ahem, IE < 9.\n if (hasEnumBug) collectNonEnumProps(obj, keys);\n return keys;\n };\n\n // Retrieve the values of an object's properties.\n _.values = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var values = Array(length);\n for (var i = 0; i < length; i++) {\n values[i] = obj[keys[i]];\n }\n return values;\n };\n\n // Returns the results of applying the iteratee to each element of the object.\n // In contrast to _.map it returns an object.\n _.mapObject = function(obj, iteratee, context) {\n iteratee = cb(iteratee, context);\n var keys = _.keys(obj),\n length = keys.length,\n results = {};\n for (var index = 0; index < length; index++) {\n var currentKey = keys[index];\n results[currentKey] = iteratee(obj[currentKey], currentKey, obj);\n }\n return results;\n };\n\n // Convert an object into a list of `[key, value]` pairs.\n // The opposite of _.object.\n _.pairs = function(obj) {\n var keys = _.keys(obj);\n var length = keys.length;\n var pairs = Array(length);\n for (var i = 0; i < length; i++) {\n pairs[i] = [keys[i], obj[keys[i]]];\n }\n return pairs;\n };\n\n // Invert the keys and values of an object. The values must be serializable.\n _.invert = function(obj) {\n var result = {};\n var keys = _.keys(obj);\n for (var i = 0, length = keys.length; i < length; i++) {\n result[obj[keys[i]]] = keys[i];\n }\n return result;\n };\n\n // Return a sorted list of the function names available on the object.\n // Aliased as `methods`.\n _.functions = _.methods = function(obj) {\n var names = [];\n for (var key in obj) {\n if (_.isFunction(obj[key])) names.push(key);\n }\n return names.sort();\n };\n\n // An internal function for creating assigner functions.\n var createAssigner = function(keysFunc, defaults) {\n return function(obj) {\n var length = arguments.length;\n if (defaults) obj = Object(obj);\n if (length < 2 || obj == null) return obj;\n for (var index = 1; index < length; index++) {\n var source = arguments[index],\n keys = keysFunc(source),\n l = keys.length;\n for (var i = 0; i < l; i++) {\n var key = keys[i];\n if (!defaults || obj[key] === void 0) obj[key] = source[key];\n }\n }\n return obj;\n };\n };\n\n // Extend a given object with all the properties in passed-in object(s).\n _.extend = createAssigner(_.allKeys);\n\n // Assigns a given object with all the own properties in the passed-in object(s).\n // (https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object/assign)\n _.extendOwn = _.assign = createAssigner(_.keys);\n\n // Returns the first key on an object that passes a predicate test.\n _.findKey = function(obj, predicate, context) {\n predicate = cb(predicate, context);\n var keys = _.keys(obj), key;\n for (var i = 0, length = keys.length; i < length; i++) {\n key = keys[i];\n if (predicate(obj[key], key, obj)) return key;\n }\n };\n\n // Internal pick helper function to determine if `obj` has key `key`.\n var keyInObj = function(value, key, obj) {\n return key in obj;\n };\n\n // Return a copy of the object only containing the whitelisted properties.\n _.pick = restArguments(function(obj, keys) {\n var result = {}, iteratee = keys[0];\n if (obj == null) return result;\n if (_.isFunction(iteratee)) {\n if (keys.length > 1) iteratee = optimizeCb(iteratee, keys[1]);\n keys = _.allKeys(obj);\n } else {\n iteratee = keyInObj;\n keys = flatten(keys, false, false);\n obj = Object(obj);\n }\n for (var i = 0, length = keys.length; i < length; i++) {\n var key = keys[i];\n var value = obj[key];\n if (iteratee(value, key, obj)) result[key] = value;\n }\n return result;\n });\n\n // Return a copy of the object without the blacklisted properties.\n _.omit = restArguments(function(obj, keys) {\n var iteratee = keys[0], context;\n if (_.isFunction(iteratee)) {\n iteratee = _.negate(iteratee);\n if (keys.length > 1) context = keys[1];\n } else {\n keys = _.map(flatten(keys, false, false), String);\n iteratee = function(value, key) {\n return !_.contains(keys, key);\n };\n }\n return _.pick(obj, iteratee, context);\n });\n\n // Fill in a given object with default properties.\n _.defaults = createAssigner(_.allKeys, true);\n\n // Creates an object that inherits from the given prototype object.\n // If additional properties are provided then they will be added to the\n // created object.\n _.create = function(prototype, props) {\n var result = baseCreate(prototype);\n if (props) _.extendOwn(result, props);\n return result;\n };\n\n // Create a (shallow-cloned) duplicate of an object.\n _.clone = function(obj) {\n if (!_.isObject(obj)) return obj;\n return _.isArray(obj) ? obj.slice() : _.extend({}, obj);\n };\n\n // Invokes interceptor with the obj, and then returns obj.\n // The primary purpose of this method is to \"tap into\" a method chain, in\n // order to perform operations on intermediate results within the chain.\n _.tap = function(obj, interceptor) {\n interceptor(obj);\n return obj;\n };\n\n // Returns whether an object has a given set of `key:value` pairs.\n _.isMatch = function(object, attrs) {\n var keys = _.keys(attrs), length = keys.length;\n if (object == null) return !length;\n var obj = Object(object);\n for (var i = 0; i < length; i++) {\n var key = keys[i];\n if (attrs[key] !== obj[key] || !(key in obj)) return false;\n }\n return true;\n };\n\n\n // Internal recursive comparison function for `isEqual`.\n var eq, deepEq;\n eq = function(a, b, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) return a !== 0 || 1 / a === 1 / b;\n // `null` or `undefined` only equal to itself (strict comparison).\n if (a == null || b == null) return false;\n // `NaN`s are equivalent, but non-reflexive.\n if (a !== a) return b !== b;\n // Exhaust primitive checks\n var type = typeof a;\n if (type !== 'function' && type !== 'object' && typeof b != 'object') return false;\n return deepEq(a, b, aStack, bStack);\n };\n\n // Internal recursive comparison function for `isEqual`.\n deepEq = function(a, b, aStack, bStack) {\n // Unwrap any wrapped objects.\n if (a instanceof _) a = a._wrapped;\n if (b instanceof _) b = b._wrapped;\n // Compare `[[Class]]` names.\n var className = toString.call(a);\n if (className !== toString.call(b)) return false;\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case '[object RegExp]':\n // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n case '[object String]':\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return '' + a === '' + b;\n case '[object Number]':\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) return +b !== +b;\n // An `egal` comparison is performed for other numeric values.\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n case '[object Date]':\n case '[object Boolean]':\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n case '[object Symbol]':\n return SymbolProto.valueOf.call(a) === SymbolProto.valueOf.call(b);\n }\n\n var areArrays = className === '[object Array]';\n if (!areArrays) {\n if (typeof a != 'object' || typeof b != 'object') return false;\n\n // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n var aCtor = a.constructor, bCtor = b.constructor;\n if (aCtor !== bCtor && !(_.isFunction(aCtor) && aCtor instanceof aCtor &&\n _.isFunction(bCtor) && bCtor instanceof bCtor)\n && ('constructor' in a && 'constructor' in b)) {\n return false;\n }\n }\n // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) return bStack[length] === b;\n }\n\n // Add the first object to the stack of traversed objects.\n aStack.push(a);\n bStack.push(b);\n\n // Recursively compare objects and arrays.\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n if (length !== b.length) return false;\n // Deep compare the contents, ignoring non-numeric properties.\n while (length--) {\n if (!eq(a[length], b[length], aStack, bStack)) return false;\n }\n } else {\n // Deep compare objects.\n var keys = _.keys(a), key;\n length = keys.length;\n // Ensure that both objects contain the same number of properties before comparing deep equality.\n if (_.keys(b).length !== length) return false;\n while (length--) {\n // Deep compare each member\n key = keys[length];\n if (!(has(b, key) && eq(a[key], b[key], aStack, bStack))) return false;\n }\n }\n // Remove the first object from the stack of traversed objects.\n aStack.pop();\n bStack.pop();\n return true;\n };\n\n // Perform a deep comparison to check if two objects are equal.\n _.isEqual = function(a, b) {\n return eq(a, b);\n };\n\n // Is a given array, string, or object empty?\n // An \"empty\" object has no enumerable own-properties.\n _.isEmpty = function(obj) {\n if (obj == null) return true;\n if (isArrayLike(obj) && (_.isArray(obj) || _.isString(obj) || _.isArguments(obj))) return obj.length === 0;\n return _.keys(obj).length === 0;\n };\n\n // Is a given value a DOM element?\n _.isElement = function(obj) {\n return !!(obj && obj.nodeType === 1);\n };\n\n // Is a given value an array?\n // Delegates to ECMA5's native Array.isArray\n _.isArray = nativeIsArray || function(obj) {\n return toString.call(obj) === '[object Array]';\n };\n\n // Is a given variable an object?\n _.isObject = function(obj) {\n var type = typeof obj;\n return type === 'function' || type === 'object' && !!obj;\n };\n\n // Add some isType methods: isArguments, isFunction, isString, isNumber, isDate, isRegExp, isError, isMap, isWeakMap, isSet, isWeakSet.\n _.each(['Arguments', 'Function', 'String', 'Number', 'Date', 'RegExp', 'Error', 'Symbol', 'Map', 'WeakMap', 'Set', 'WeakSet'], function(name) {\n _['is' + name] = function(obj) {\n return toString.call(obj) === '[object ' + name + ']';\n };\n });\n\n // Define a fallback version of the method in browsers (ahem, IE < 9), where\n // there isn't any inspectable \"Arguments\" type.\n if (!_.isArguments(arguments)) {\n _.isArguments = function(obj) {\n return has(obj, 'callee');\n };\n }\n\n // Optimize `isFunction` if appropriate. Work around some typeof bugs in old v8,\n // IE 11 (#1621), Safari 8 (#1929), and PhantomJS (#2236).\n var nodelist = root.document && root.document.childNodes;\n if (typeof /./ != 'function' && typeof Int8Array != 'object' && typeof nodelist != 'function') {\n _.isFunction = function(obj) {\n return typeof obj == 'function' || false;\n };\n }\n\n // Is a given object a finite number?\n _.isFinite = function(obj) {\n return !_.isSymbol(obj) && isFinite(obj) && !isNaN(parseFloat(obj));\n };\n\n // Is the given value `NaN`?\n _.isNaN = function(obj) {\n return _.isNumber(obj) && isNaN(obj);\n };\n\n // Is a given value a boolean?\n _.isBoolean = function(obj) {\n return obj === true || obj === false || toString.call(obj) === '[object Boolean]';\n };\n\n // Is a given value equal to null?\n _.isNull = function(obj) {\n return obj === null;\n };\n\n // Is a given variable undefined?\n _.isUndefined = function(obj) {\n return obj === void 0;\n };\n\n // Shortcut function for checking if an object has a given property directly\n // on itself (in other words, not on a prototype).\n _.has = function(obj, path) {\n if (!_.isArray(path)) {\n return has(obj, path);\n }\n var length = path.length;\n for (var i = 0; i < length; i++) {\n var key = path[i];\n if (obj == null || !hasOwnProperty.call(obj, key)) {\n return false;\n }\n obj = obj[key];\n }\n return !!length;\n };\n\n // Utility Functions\n // -----------------\n\n // Run Underscore.js in *noConflict* mode, returning the `_` variable to its\n // previous owner. Returns a reference to the Underscore object.\n _.noConflict = function() {\n root._ = previousUnderscore;\n return this;\n };\n\n // Keep the identity function around for default iteratees.\n _.identity = function(value) {\n return value;\n };\n\n // Predicate-generating functions. Often useful outside of Underscore.\n _.constant = function(value) {\n return function() {\n return value;\n };\n };\n\n _.noop = function(){};\n\n // Creates a function that, when passed an object, will traverse that object’s\n // properties down the given `path`, specified as an array of keys or indexes.\n _.property = function(path) {\n if (!_.isArray(path)) {\n return shallowProperty(path);\n }\n return function(obj) {\n return deepGet(obj, path);\n };\n };\n\n // Generates a function for a given object that returns a given property.\n _.propertyOf = function(obj) {\n if (obj == null) {\n return function(){};\n }\n return function(path) {\n return !_.isArray(path) ? obj[path] : deepGet(obj, path);\n };\n };\n\n // Returns a predicate for checking whether an object has a given set of\n // `key:value` pairs.\n _.matcher = _.matches = function(attrs) {\n attrs = _.extendOwn({}, attrs);\n return function(obj) {\n return _.isMatch(obj, attrs);\n };\n };\n\n // Run a function **n** times.\n _.times = function(n, iteratee, context) {\n var accum = Array(Math.max(0, n));\n iteratee = optimizeCb(iteratee, context, 1);\n for (var i = 0; i < n; i++) accum[i] = iteratee(i);\n return accum;\n };\n\n // Return a random integer between min and max (inclusive).\n _.random = function(min, max) {\n if (max == null) {\n max = min;\n min = 0;\n }\n return min + Math.floor(Math.random() * (max - min + 1));\n };\n\n // A (possibly faster) way to get the current timestamp as an integer.\n _.now = Date.now || function() {\n return new Date().getTime();\n };\n\n // List of HTML entities for escaping.\n var escapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n '`': '`'\n };\n var unescapeMap = _.invert(escapeMap);\n\n // Functions for escaping and unescaping strings to/from HTML interpolation.\n var createEscaper = function(map) {\n var escaper = function(match) {\n return map[match];\n };\n // Regexes for identifying a key that needs to be escaped.\n var source = '(?:' + _.keys(map).join('|') + ')';\n var testRegexp = RegExp(source);\n var replaceRegexp = RegExp(source, 'g');\n return function(string) {\n string = string == null ? '' : '' + string;\n return testRegexp.test(string) ? string.replace(replaceRegexp, escaper) : string;\n };\n };\n _.escape = createEscaper(escapeMap);\n _.unescape = createEscaper(unescapeMap);\n\n // Traverses the children of `obj` along `path`. If a child is a function, it\n // is invoked with its parent as context. Returns the value of the final\n // child, or `fallback` if any child is undefined.\n _.result = function(obj, path, fallback) {\n if (!_.isArray(path)) path = [path];\n var length = path.length;\n if (!length) {\n return _.isFunction(fallback) ? fallback.call(obj) : fallback;\n }\n for (var i = 0; i < length; i++) {\n var prop = obj == null ? void 0 : obj[path[i]];\n if (prop === void 0) {\n prop = fallback;\n i = length; // Ensure we don't continue iterating.\n }\n obj = _.isFunction(prop) ? prop.call(obj) : prop;\n }\n return obj;\n };\n\n // Generate a unique integer id (unique within the entire client session).\n // Useful for temporary DOM ids.\n var idCounter = 0;\n _.uniqueId = function(prefix) {\n var id = ++idCounter + '';\n return prefix ? prefix + id : id;\n };\n\n // By default, Underscore uses ERB-style template delimiters, change the\n // following template settings to use alternative delimiters.\n _.templateSettings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n };\n\n // When customizing `templateSettings`, if you don't want to define an\n // interpolation, evaluation or escaping regex, we need one that is\n // guaranteed not to match.\n var noMatch = /(.)^/;\n\n // Certain characters need to be escaped so that they can be put into a\n // string literal.\n var escapes = {\n \"'\": \"'\",\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n var escapeRegExp = /\\\\|'|\\r|\\n|\\u2028|\\u2029/g;\n\n var escapeChar = function(match) {\n return '\\\\' + escapes[match];\n };\n\n // JavaScript micro-templating, similar to John Resig's implementation.\n // Underscore templating handles arbitrary delimiters, preserves whitespace,\n // and correctly escapes quotes within interpolated code.\n // NB: `oldSettings` only exists for backwards compatibility.\n _.template = function(text, settings, oldSettings) {\n if (!settings && oldSettings) settings = oldSettings;\n settings = _.defaults({}, settings, _.templateSettings);\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g');\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0;\n var source = \"__p+='\";\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escapeRegExp, escapeChar);\n index = offset + match.length;\n\n if (escape) {\n source += \"'+\\n((__t=(\" + escape + \"))==null?'':_.escape(__t))+\\n'\";\n } else if (interpolate) {\n source += \"'+\\n((__t=(\" + interpolate + \"))==null?'':__t)+\\n'\";\n } else if (evaluate) {\n source += \"';\\n\" + evaluate + \"\\n__p+='\";\n }\n\n // Adobe VMs need the match returned to produce the correct offset.\n return match;\n });\n source += \"';\\n\";\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n\n source = \"var __t,__p='',__j=Array.prototype.join,\" +\n \"print=function(){__p+=__j.call(arguments,'');};\\n\" +\n source + 'return __p;\\n';\n\n var render;\n try {\n render = new Function(settings.variable || 'obj', '_', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n var template = function(data) {\n return render.call(this, data, _);\n };\n\n // Provide the compiled source as a convenience for precompilation.\n var argument = settings.variable || 'obj';\n template.source = 'function(' + argument + '){\\n' + source + '}';\n\n return template;\n };\n\n // Add a \"chain\" function. Start chaining a wrapped Underscore object.\n _.chain = function(obj) {\n var instance = _(obj);\n instance._chain = true;\n return instance;\n };\n\n // OOP\n // ---------------\n // If Underscore is called as a function, it returns a wrapped object that\n // can be used OO-style. This wrapper holds altered versions of all the\n // underscore functions. Wrapped objects may be chained.\n\n // Helper function to continue chaining intermediate results.\n var chainResult = function(instance, obj) {\n return instance._chain ? _(obj).chain() : obj;\n };\n\n // Add your own custom functions to the Underscore object.\n _.mixin = function(obj) {\n _.each(_.functions(obj), function(name) {\n var func = _[name] = obj[name];\n _.prototype[name] = function() {\n var args = [this._wrapped];\n push.apply(args, arguments);\n return chainResult(this, func.apply(_, args));\n };\n });\n return _;\n };\n\n // Add all of the Underscore functions to the wrapper object.\n _.mixin(_);\n\n // Add all mutator Array functions to the wrapper.\n _.each(['pop', 'push', 'reverse', 'shift', 'sort', 'splice', 'unshift'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n var obj = this._wrapped;\n method.apply(obj, arguments);\n if ((name === 'shift' || name === 'splice') && obj.length === 0) delete obj[0];\n return chainResult(this, obj);\n };\n });\n\n // Add all accessor Array functions to the wrapper.\n _.each(['concat', 'join', 'slice'], function(name) {\n var method = ArrayProto[name];\n _.prototype[name] = function() {\n return chainResult(this, method.apply(this._wrapped, arguments));\n };\n });\n\n // Extracts the result from a wrapped and chained object.\n _.prototype.value = function() {\n return this._wrapped;\n };\n\n // Provide unwrapping proxy for some methods used in engine operations\n // such as arithmetic and JSON stringification.\n _.prototype.valueOf = _.prototype.toJSON = _.prototype.value;\n\n _.prototype.toString = function() {\n return String(this._wrapped);\n };\n\n // AMD registration happens at the end for compatibility with AMD loaders\n // that may not enforce next-turn semantics on modules. Even though general\n // practice for AMD registration is to be anonymous, underscore registers\n // as a named module because, like jQuery, it is a base library that is\n // popular enough to be bundled in a third party lib, but not be part of\n // an AMD load request. Those cases could generate an error when an\n // anonymous define() is called outside of a loader request.\n if (typeof define == 'function' && define.amd) {\n define('underscore', [], function() {\n return _;\n });\n }\n}());\n", "var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n", "module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n" ], "sourceRoot": "" }