diff --git a/demo/.angular-cli.json b/.angular-cli.json similarity index 60% rename from demo/.angular-cli.json rename to .angular-cli.json index b9027f0e6..f77e27e43 100644 --- a/demo/.angular-cli.json +++ b/.angular-cli.json @@ -1,7 +1,7 @@ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "project": { - "name": "test-slickgrid" + "name": "angular-slickgrid" }, "apps": [ { @@ -21,6 +21,7 @@ "styles": [ "../node_modules/bootstrap/dist/css/bootstrap.css", "../node_modules/font-awesome/css/font-awesome.css", + "app/styles/slickgrid-custom-variables.scss", "styles.scss" ], "scripts": [ @@ -32,9 +33,19 @@ "../node_modules/slickgrid/slick.dataview.js", "../node_modules/slickgrid/slick.grid.js", "../node_modules/slickgrid/slick.dataview.js", + "../node_modules/slickgrid/plugins/slick.autotooltips.js", + "../node_modules/slickgrid/plugins/slick.cellcopymanager.js", + "../node_modules/slickgrid/plugins/slick.cellexternalcopymanager.js", + "../node_modules/slickgrid/plugins/slick.cellrangedecorator.js", + "../node_modules/slickgrid/plugins/slick.cellrangeselector.js", + "../node_modules/slickgrid/plugins/slick.cellselectionmodel.js", + "../node_modules/slickgrid/plugins/slick.checkboxselectcolumn.js", + "../node_modules/slickgrid/plugins/slick.headerbuttons.js", + "../node_modules/slickgrid/plugins/slick.headermenu.js", + "../node_modules/slickgrid/plugins/slick.rowmovemanager.js", "../node_modules/slickgrid/plugins/slick.rowselectionmodel.js", - "../node_modules/slickgrid/controls/slick.pager.js", - "../node_modules/slickgrid/controls/slick.columnpicker.js" + "../node_modules/slickgrid/controls/slick.columnpicker.js", + "../node_modules/slickgrid/controls/slick.pager.js" ], "environmentSource": "environments/environment.ts", "environments": { @@ -50,13 +61,16 @@ }, "lint": [ { - "project": "src/tsconfig.app.json" + "project": "src/tsconfig.app.json", + "exclude": "**/node_modules/**" }, { - "project": "src/tsconfig.spec.json" + "project": "src/tsconfig.spec.json", + "exclude": "**/node_modules/**" }, { - "project": "e2e/tsconfig.e2e.json" + "project": "e2e/tsconfig.e2e.json", + "exclude": "**/node_modules/**" } ], "test": { diff --git a/.angulardoc.json b/.angulardoc.json index c00245461..bcefc7830 100644 --- a/.angulardoc.json +++ b/.angulardoc.json @@ -1,4 +1,4 @@ { - "repoId": "a1ac7920-7226-4ade-aa99-77a15852a4bb", + "repoId": "09416e29-039d-4fa6-965e-9d6d756bbaf7", "lastSync": 0 } \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index 194fab698..6e87a003d 100644 --- a/.editorconfig +++ b/.editorconfig @@ -1,18 +1,13 @@ -# http://editorconfig.org +# Editor configuration, see http://editorconfig.org root = true [*] charset = utf-8 -end_of_line = lf indent_style = space -indent_size = 4 +indent_size = 2 insert_final_newline = true trim_trailing_whitespace = true -[*.{js,json,ts}] -indent_style = space -indent_size = 2 - [*.md] -max_line_length = 0 +max_line_length = off trim_trailing_whitespace = false diff --git a/.gitignore b/.gitignore index d567e3450..fafb26540 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,45 @@ -$ cat .gitignore -node_modules -bower_components +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/tmp +/out-tsc +/.ng_build +.ng_build + +# dependencies +/node_modules + +# IDEs and editors +/.idea +.project +.classpath +.c9/ +*.launch +.settings/ +*.sublime-workspace + +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.chrome + +# misc +/.sass-cache +/connect.lock +/coverage +/libpeerconnection.log npm-debug.log +testem.log +/typings yarn-error.log -yarn.lock -.chrome -.idea -.DS_STORE +# e2e +/e2e/*.js +/e2e/*.map -*.log -*.tgz +# System Files +.DS_Store +Thumbs.db diff --git a/.npmignore b/.npmignore index 711572b05..32627c8bf 100644 --- a/.npmignore +++ b/.npmignore @@ -1,12 +1,18 @@ -node_modules -bower_components -npm-debug.log -yarn-error.log -yarn.lock +# See http://help.github.com/ignore-files/ for more about ignoring files. -.chrome -.idea -.DS_STORE +# compiled output +/tmp +/out-tsc +/.ng_build +.ng_build + +# dependencies +/node_modules -*.log -*.tgz +# IDE - VSCode +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +.chrome diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 8576a0ba2..000000000 --- a/.travis.yml +++ /dev/null @@ -1,24 +0,0 @@ -sudo: required -dist: trusty -addons: - apt: - sources: - - google-chrome - packages: - - google-chrome-stable -language: node_js -node_js: - - stable -before_install: - - npm i npm@^4 -g -install: - - npm install -script: - - npm test - - npm run build -before_script: - - export DISPLAY=:99.0 - - sh -e /etc/init.d/xvfb start - - sleep 3 -notifications: - email: false diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..6e38ed80d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,19 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "type": "chrome", + "request": "launch", + "name": "Launch Chrome against localhost", + "url": "http://localhost:4200", + "webRoot": "${workspaceRoot}" + }, + { + "type": "chrome", + "request": "attach", + "name": "Attach to Chrome", + "port": 9222, + "webRoot": "${workspaceRoot}" + } + ] +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 138d76ebb..000000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,5 +0,0 @@ -## Angular-Slickgrid Changelog - - -### 2017-10-04 -* Create and release library diff --git a/LICENSE b/LICENSE deleted file mode 100644 index b2d8ac029..000000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Ghislain B. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/README.md b/README.md index e7554c579..eb2a9a349 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ # Angular-Slickgrid One of the best javascript datagrid [SlickGrid](https://github.com/mleibman/SlickGrid) which was originally developed by @mleibman is now available to Angular. I have used a few datagrids and slickgrid beats most of them in terms of functionalities and performance (it can easily deal with even a million row). +### Demo page +[https://ghiscoding.github.io/Angular-Slickgrid](https://ghiscoding.github.io/Angular-Slickgrid) + ### SlickGrid Source We will be using [6pac SlickGrid fork](https://github.com/6pac/SlickGrid/) (the most active fork since the original @mleibman fork was closed some time ago by his author personal reasons). @@ -66,4 +69,4 @@ Screenshots from the demo app with the `Bootstrap` theme (that is the only avail ### Slickgrid Example with Server Side (Filter/Sort/Pagination) -![Slickgrid Server Side](/screenshots/pagination.png) +![Slickgrid Server Side](/screenshots/pagination.png) \ No newline at end of file diff --git a/angular-slickgrid.ts b/angular-slickgrid.ts deleted file mode 100644 index 4aaf8f92e..000000000 --- a/angular-slickgrid.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './public_api'; diff --git a/build.js b/build.js deleted file mode 100644 index 883c58e58..000000000 --- a/build.js +++ /dev/null @@ -1,67 +0,0 @@ -"use strict"; - -const shell = require('shelljs'); -const chalk = require('chalk'); - -const PACKAGE = `angular-slickgrid`; -const NPM_DIR = `dist`; -const MODULES_DIR = `${NPM_DIR}/modules`; -const BUNDLES_DIR = `${NPM_DIR}/bundles`; - -shell.echo(`Start building...`); - -shell.rm(`-Rf`, `${NPM_DIR}/*`); -shell.mkdir(`-p`, `./${MODULES_DIR}`); -shell.mkdir(`-p`, `./${BUNDLES_DIR}`); - -/* TSLint with Codelyzer */ -// https://github.com/palantir/tslint/blob/master/src/configs/recommended.ts -// https://github.com/mgechev/codelyzer -shell.echo(`Start TSLint`); -shell.exec(`tslint -c tslint.json -t stylish src/**/*.ts`); -shell.echo(chalk.green(`TSLint completed`)); - -/* AoT compilation: ES2015 sources */ -shell.echo(`Start AoT compilation`); -if (shell.exec(`ngc -p tsconfig-build.json`).code !== 0) { - shell.echo(chalk.red(`Error: AoT compilation failed`)); - shell.exit(1); -} -shell.echo(chalk.green(`AoT compilation completed`)); - -/* Creates bundles: ESM/ES5 and UMD bundles */ -shell.echo(`Start bundling`); -shell.echo(`Rollup package`); -shell.exec(`rollup -i ${NPM_DIR}/${PACKAGE}.js -o ${MODULES_DIR}/${PACKAGE}.js --sourcemap`, { silent: true }); -shell.exec(`node scripts/map-sources -f ${MODULES_DIR}/${PACKAGE}.js`); - -shell.echo(`Downleveling ES2015 to ESM/ES5`); -shell.cp(`${MODULES_DIR}/${PACKAGE}.js`, `${MODULES_DIR}/${PACKAGE}.es5.ts`); -shell.exec(`tsc ${MODULES_DIR}/${PACKAGE}.es5.ts --target es5 --module es2015 --noLib --sourceMap`, { silent: true }); -shell.exec(`node scripts/map-sources -f ${MODULES_DIR}/${PACKAGE}.es5.js`); -shell.rm(`-f`, `${MODULES_DIR}/${PACKAGE}.es5.ts`); - -shell.echo(`Run Rollup conversion on package`); -if (shell.exec(`rollup -c rollup.config.js --sourcemap`).code !== 0) { - shell.echo(chalk.red(`Error: Rollup conversion failed`)); - shell.exit(1); -} -shell.exec(`node scripts/map-sources -f ${BUNDLES_DIR}/${PACKAGE}.umd.js`); - -shell.echo(`Minifying`); -shell.cd(`${BUNDLES_DIR}`); -shell.exec(`uglifyjs -c warnings=false --screw-ie8 --comments -o ${PACKAGE}.umd.min.js --source-map ${PACKAGE}.umd.min.js.map --source-map-include-sources ${PACKAGE}.umd.js`); -shell.exec(`node ../../scripts/map-sources -f ${PACKAGE}.umd.min.js`); -shell.cd(`..`); -shell.cd(`..`); - -shell.echo(chalk.green(`Bundling completed`)); - -shell.rm(`-Rf`, `${NPM_DIR}/*.js`); -shell.rm(`-Rf`, `${NPM_DIR}/*.js.map`); -shell.rm(`-Rf`, `${NPM_DIR}/src/**/*.js`); -shell.rm(`-Rf`, `${NPM_DIR}/src/**/*.js.map`); - -shell.cp(`-Rf`, [`package.json`, `LICENSE`, `README.md`], `${NPM_DIR}`); - -shell.echo(chalk.green(`End building`)); diff --git a/demo/.angulardoc.json b/demo/.angulardoc.json deleted file mode 100644 index 0a4fadbb7..000000000 --- a/demo/.angulardoc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "repoId": "cec216b9-9d4f-4964-bc5e-80aebc422b86", - "lastSync": 0 -} \ No newline at end of file diff --git a/demo/.editorconfig b/demo/.editorconfig deleted file mode 100644 index 6e87a003d..000000000 --- a/demo/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -# Editor configuration, see http://editorconfig.org -root = true - -[*] -charset = utf-8 -indent_style = space -indent_size = 2 -insert_final_newline = true -trim_trailing_whitespace = true - -[*.md] -max_line_length = off -trim_trailing_whitespace = false diff --git a/demo/.gitignore b/demo/.gitignore deleted file mode 100644 index 54bfd2001..000000000 --- a/demo/.gitignore +++ /dev/null @@ -1,42 +0,0 @@ -# See http://help.github.com/ignore-files/ for more about ignoring files. - -# compiled output -/dist -/tmp -/out-tsc - -# dependencies -/node_modules - -# IDEs and editors -/.idea -.project -.classpath -.c9/ -*.launch -.settings/ -*.sublime-workspace - -# IDE - VSCode -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json - -# misc -/.sass-cache -/connect.lock -/coverage -/libpeerconnection.log -npm-debug.log -testem.log -/typings - -# e2e -/e2e/*.js -/e2e/*.map - -# System Files -.DS_Store -Thumbs.db diff --git a/demo/README.md b/demo/README.md deleted file mode 100644 index abf70b87c..000000000 --- a/demo/README.md +++ /dev/null @@ -1,28 +0,0 @@ -# TestSlickgrid - -This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.4.0. - -## Development server - -Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files. - -## Code scaffolding - -Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`. - -## Build - -Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build. - -## Running unit tests - -Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io). - -## Running end-to-end tests - -Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/). -Before running the tests make sure you are serving the app via `ng serve`. - -## Further help - -To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md). diff --git a/demo/karma.conf.js b/demo/karma.conf.js deleted file mode 100644 index af139fada..000000000 --- a/demo/karma.conf.js +++ /dev/null @@ -1,33 +0,0 @@ -// Karma configuration file, see link for more information -// https://karma-runner.github.io/1.0/config/configuration-file.html - -module.exports = function (config) { - config.set({ - basePath: '', - frameworks: ['jasmine', '@angular/cli'], - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-jasmine-html-reporter'), - require('karma-coverage-istanbul-reporter'), - require('@angular/cli/plugins/karma') - ], - client:{ - clearContext: false // leave Jasmine Spec Runner output visible in browser - }, - coverageIstanbulReporter: { - reports: [ 'html', 'lcovonly' ], - fixWebpackSourcePaths: true - }, - angularCli: { - environment: 'dev' - }, - reporters: ['progress', 'kjhtml'], - port: 9876, - colors: true, - logLevel: config.LOG_INFO, - autoWatch: true, - browsers: ['Chrome'], - singleRun: false - }); -}; diff --git a/demo/package.json b/demo/package.json deleted file mode 100644 index c36aae55c..000000000 --- a/demo/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "test-slickgrid", - "version": "0.0.0", - "license": "MIT", - "scripts": { - "ng": "ng", - "start": "ng serve", - "build": "ng build", - "test": "ng test", - "lint": "ng lint", - "e2e": "ng e2e" - }, - "private": true, - "dependencies": { - "@angular/animations": "^4.4.4", - "@angular/common": "^4.4.4", - "@angular/compiler": "^4.4.4", - "@angular/core": "^4.4.4", - "@angular/forms": "^4.4.4", - "@angular/http": "^4.4.4", - "@angular/platform-browser": "^4.4.4", - "@angular/platform-browser-dynamic": "^4.4.4", - "@angular/router": "^4.4.4", - "angular-slickgrid": "../angular-slickgrid-0.2.6.tgz", - "bootstrap": "^3.3.7", - "core-js": "^2.4.1", - "font-awesome": "^4.7.0", - "jquery": "^3.2.1", - "moment": "^2.18.1", - "rxjs": "^5.4.2", - "slickgrid": "^2.3.3", - "zone.js": "^0.8.14" - }, - "devDependencies": { - "@angular/cli": "1.4.0", - "@angular/compiler-cli": "^4.4.4", - "@angular/language-service": "^4.4.4", - "@types/jasmine": "~2.5.53", - "@types/jasminewd2": "~2.0.2", - "@types/node": "~6.0.60", - "codelyzer": "~3.1.1", - "jasmine-core": "~2.6.2", - "jasmine-spec-reporter": "~4.1.0", - "karma": "~1.7.0", - "karma-chrome-launcher": "~2.1.1", - "karma-cli": "~1.0.1", - "karma-coverage-istanbul-reporter": "^1.2.1", - "karma-jasmine": "~1.1.0", - "karma-jasmine-html-reporter": "^0.2.2", - "node-sass": "^4.5.3", - "protractor": "~5.1.2", - "ts-node": "~3.2.0", - "tslint": "~5.3.2", - "typescript": "~2.3.3" - } -} diff --git a/demo/src/styles.scss b/demo/src/styles.scss deleted file mode 100644 index 3cca5c54a..000000000 --- a/demo/src/styles.scss +++ /dev/null @@ -1,23 +0,0 @@ -/* You can add global styles to this file, and also import other style files */ -.italic { - font-style: italic; -} -.subtitle { - font-size: 20px; - font-style: italic; - color: grey; - margin-bottom: 10px; -} - -/* Angular-Slickgrid styling */ -/* Customize the SlickGrid Bootstrap theme to your taste - * Copy any of the variables '../node_modules/angular-slickgrid/styles/sass/_variables.scss' - * and make sure to add the @import at the end of this file - */ - -/* for example, let's change the mouse hover color */ -$cell-odd-background-color: lightyellow; - -/* make sure to add the @import the SlickGrid Bootstrap Theme AFTER the variables changes */ -@import '../node_modules/angular-slickgrid/styles/sass/slickgrid-theme-bootstrap.scss'; - diff --git a/demo/tsconfig.json b/demo/tsconfig.json deleted file mode 100644 index dc91c5194..000000000 --- a/demo/tsconfig.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "compileOnSave": false, - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "moduleResolution": "node", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "target": "es5", - "typeRoots": [ - "node_modules/@types" - ], - "lib": [ - "es2017", - "dom" - ] - } -} diff --git a/demo/tslint.json b/demo/tslint.json deleted file mode 100644 index 72b16bd1c..000000000 --- a/demo/tslint.json +++ /dev/null @@ -1,142 +0,0 @@ -{ - "rulesDirectory": [ - "node_modules/codelyzer" - ], - "rules": { - "arrow-return-shorthand": true, - "callable-types": true, - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "curly": true, - "eofline": true, - "forin": true, - "import-blacklist": [ - true, - "rxjs" - ], - "import-spacing": true, - "indent": [ - true, - "spaces" - ], - "interface-over-type-literal": true, - "label-position": true, - "max-line-length": [ - false, - 140 - ], - "member-access": false, - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "static-method", - "instance-method" - ] - } - ], - "no-arg": true, - "no-bitwise": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-super": true, - "no-empty": false, - "no-empty-interface": true, - "no-eval": true, - "no-inferrable-types": [ - true, - "ignore-params" - ], - "no-misused-new": true, - "no-non-null-assertion": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": true, - "no-unnecessary-initializer": true, - "no-unused-expression": true, - "no-use-before-declare": true, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "one-line": [ - true, - "check-open-brace", - "check-catch", - "check-else", - "check-whitespace" - ], - "prefer-const": true, - "quotemark": [ - true, - "single" - ], - "radix": true, - "semicolon": [ - true, - "always" - ], - "triple-equals": [ - true, - "allow-null-check" - ], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - } - ], - "typeof-compare": true, - "unified-signatures": true, - "variable-name": false, - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ], - "directive-selector": [ - true, - "attribute", - "app", - "camelCase" - ], - "component-selector": [ - true, - "element", - "app", - "kebab-case" - ], - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-input-rename": true, - "no-output-rename": true, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "component-class-suffix": true, - "directive-class-suffix": true, - "no-access-missing-member": true, - "templates-use-public": true, - "invoke-injectable": true - } -} diff --git a/dist/LICENSE b/dist/LICENSE deleted file mode 100644 index b2d8ac029..000000000 --- a/dist/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Ghislain B. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/dist/README.md b/dist/README.md index f234384b9..0dd23315c 100644 --- a/dist/README.md +++ b/dist/README.md @@ -2,58 +2,131 @@ One of the best javascript datagrid [SlickGrid](https://github.com/mleibman/SlickGrid) which was originally developed by @mleibman is now available to Angular. I have used a few datagrids and slickgrid beats most of them in terms of functionalities and performance (it can easily deal with even a million row). ### SlickGrid Source -We will be using [6pac SlickGrid fork](https://github.com/6pac/SlickGrid/) (the most active fork since the original @mleibman fork closed it for personal reasons). +This is a clone of the [6pac SlickGrid fork](https://github.com/6pac/SlickGrid/) (the most active fork since @mleibman closed his fork for personal reasons). ### Goal -The goal is of course to be able to run SlickGrid within Angular 4+ but also to incorporate as much as possible the entire list of functionalities that SlickGrid offers (you can see a vast list of samples on the [6pac SlickGrid examples](https://github.com/6pac/SlickGrid/wiki/Examples) website). +The goal is of course be able to run SlickGrid within Angular 4+ but also to incorporate as much as possible the entire list of functionalities that SlickGrid offers (you can see the entire list of examples from [6pac SlickGrid examples](https://github.com/6pac/SlickGrid/wiki/Examples) website). -### NPM Package -[Angular-Slickgrid on NPM](https://www.npmjs.com/package/angular-slickgrid) +## Screenshots - +Screenshots from the demo app with the `Bootstrap` theme. -## Wiki / Documentation -The Wiki is where all the documentation and instructions will go, so please consult the [Angular-Validation - Wiki](https://github.com/ghiscoding/angular-slickgrid/wiki) before opening any issues. The [Wiki - HOWTO](https://github.com/ghiscoding/angular-slickgrid/wiki/HOWTO---Step-by-Step) is a great place to start with. +**Default Slickgrid example** +![Default Slickgrid Example](/screenshots/example1.png) +**Slickgrid Example with Server Side (sorting/pagination)** +![Slickgrid Server Side](/screenshots/exampleServerSide.png) - -## Main features -You can see some screenshots below and the instructions down below. - -This is a work in progress, but so far here are some of the features that `angular-slickgrid` brings (on top of Slickgrid itself): -- Easier use of SlickGrid within `Angular` as it is just a component (simply pass a column definitions and a dataset and you're good to go) -- Bootstrap Theme with SASS variables for extra customization (if you create a theme, then please make a PR) -- Auto-resize, a boolean flag, will resize the datagrid viewport with available space even on browser resize (basically takes available space by the given div container) -- Server side filtering/sorting -- Server side pagination (which is another Angular component used internally) -- Server side functionalities are expandables and ships with a simple OData service - - customizable with your own services by using `onFilterChanged()` `onPaginationChanged()` and `onSortChanged()`. - - extra services might come in the future -- Some Features of SlickGrid itself which are working out of the gate - - Sort/Multi-Sort (client/server side) - - Header Row with Filters (currently support Input and Select dropdown, multi-select is planned) - - Formatters (a few default ones were added, and you can easily create custom ones too) - - Optimized DataView (even server side data is saved into the SlickGrid DataView) +## `Aurelia-Slickgrid` - Main features +This is a work in progress, but so far here is some of the features that `aurelia-slickgrid` brings (on top of Slickgrid itself): +- Easier use of `plugin()` within `Aurelia` +- Auto-resize datagrid viewport with available space (basically take space available by the given div container) +- Server side sorting +- Server side pagination (pager is an Aurelia custom element) - ... more to come - - -## Missing features (planned items) -The following are SlickGrid features which are not yet included in this library -- Inline Editors -- Filters to support multi-select dropdown and eventually custom filters -- Plugins (Header Menu, Grid Menu, Column Header Buttons) - -## Screenshots - -Screenshots from the demo app with the `Bootstrap` theme (that is the only available theme, but there is a lot of SASS variables to make it look like Material, or others, if you wish to). - -**Slickgrid example with Formatters (last column is a custom Formatter)** -![Default Slickgrid Example](/screenshots/formatters.png) - -**Filter and Sort** -![Slickgrid Server Side](/screenshots/filter_and_sort.png) - -**Slickgrid Example with Server Side (sorting/pagination)** -![Slickgrid Server Side](/screenshots/pagination.png) +## How to use Aurelia-Slickgrid? +`Aurelia-Slickgrid` is a wrapper of `Slickgrid-ES6` with extra features (like grid autoResize, backend sorting/pagination). These extra features (specifically coded for Aurelia) are under `SlickgridService`, however all the classes of `Slickgrid-ES6` are also available. The full list of classes that are available from `aurelia-slickgrid` are: + +```javascript +import {Slick, SlickService, Editors, Formatters, Data, Grid, FrozenGrid, Plugins} from 'aurelia-slickgrid'; +``` + +## Installation +You can run the examples or build your own by doing the following. + +### Aurelia-CLI / Webpack +```bash +npm install --save aurelia-slickgrid +``` +#### Aurelia-CLI +For `CLI` you will need to add both plugins (`aurelia-slickgrid` and `slickgrid-es6`) to your `aurelia.json` file +```javascript +{ + "name": "aurelia-slickgrid", + "path": "../node_modules/aurelia-slickgrid/dist/amd", + "main": "index", + "resources": ["**/*.{css,html}"] +}, +{ + "name": "slickgrid-es6", + "path": "../node_modules/angular-slickgrid-es6/dist", + "main": "slick.es6.min", + "resources": ["**/*.{css,html}"] +} +``` + +#### Aurelia (main) +Make the plugin available globally in your `main.js` file. +```javascript +export function configure(aurelia) { + aurelia.use + .standardConfiguration() + .developmentLogging() + .plugin('aurelia-slickgrid') + .feature('resources'); + + aurelia.start().then(() => aurelia.setRoot()); +} +``` +And finally use it your code +```javascript +import {inject} from 'aurelia-framework'; +import {SlickService} from 'aurelia-slickgrid'; + +@inject(SlickService) +export class List { + gridOptions = {}; // define your grid Options + gridColumns = {}; // define your grid columns + + constructor(slickService) { + this.slickgrid = slickService; + } + + attached() { + this.slickgrid.createGrid('myGrid', this.gridColumns, this.gridOptions, data); + } +} +``` + +## Examples +I now have a working set of 10 Examples (however 4 & 6 are broken because of Plugins that is not bundled correctly in `Slickgrid-ES6`). + +### Aurelia-CLI +```bash +git clone https://github.com/ghiscoding/aurelia-slickgrid +cd aurelia-slickgrid/client-cli +npm install +au run --watch +``` + +### Aurelia-Webpack +```bash +git clone https://github.com/ghiscoding/aurelia-slickgrid +cd aurelia-slickgrid/client-wp +npm install +npm start +``` + +## Styling +Load the default Bootstrap theme style +### css +Default compiled `css` +```html + + + + + +``` +### scss (SASS) +You could also compile the SASS file with your customization, for that simply load the `_slick-grid-variables.scss` variable file then the main `slickgrid.scss` which should call the variables. + +## Notes +If you are not intending to use any features (described in [Main Features](#main-features)), then you could simply your code by calling `Slickgrid-ES6` functionalities directly. For example +```javascript +import {Grid} from 'slickgrid-es6'; +... +this.grid = new Grid(`#myGrid`, this.data, this.columnDefinition, this.gridOptions); +``` \ No newline at end of file diff --git a/dist/angular-slickgrid.d.ts b/dist/angular-slickgrid.d.ts index c5b7427cd..ad605d72a 100644 --- a/dist/angular-slickgrid.d.ts +++ b/dist/angular-slickgrid.d.ts @@ -2,4 +2,5 @@ * Generated bundle index. Do not edit. */ export * from './public_api'; -export { OdataService as ɵa } from './src/services/odata.service'; +export { FilterService as ɵd, MouseService as ɵc, ResizerService as ɵb, SortService as ɵe } from './src/app/modules/angular-slickgrid/services'; +export { OdataService as ɵa } from './src/app/modules/angular-slickgrid/services/odata.service'; diff --git a/dist/angular-slickgrid.metadata.json b/dist/angular-slickgrid.metadata.json index aca109448..d25ee584f 100644 --- a/dist/angular-slickgrid.metadata.json +++ b/dist/angular-slickgrid.metadata.json @@ -1 +1 @@ -{"__symbolic":"module","version":3,"exports":[{"export":[{"name":"FilterConditions","as":"FilterConditions"}],"from":"./src/filter-conditions"},{"export":[{"name":"FilterTemplates","as":"FilterTemplates"}],"from":"./src/filter-templates"},{"export":[{"name":"Formatters","as":"Formatters"}],"from":"./src/formatters"},{"export":[{"name":"Sorters","as":"Sorters"}],"from":"./src/sorters"}],"metadata":{"CaseType":{"camelCase":0,"pascalCase":1,"snakeCase":2},"Column":{"__symbolic":"interface"},"Formatter":{"__symbolic":"interface"},"GridOption":{"__symbolic":"interface"},"FormElementType":{"input":0,"multiSelect":1,"select":2,"textarea":3},"FieldType":{"unknown":0,"string":1,"boolean":2,"number":3,"date":4,"dateIso":5,"dateUtc":6,"dateTime":7,"dateTimeIso":8,"dateUs":9,"dateUsShort":10,"dateTimeUs":11,"dateTimeUsShort":12},"FilterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"init":[{"__symbolic":"method"}],"attachBackendOnFilter":[{"__symbolic":"method"}],"testFilterCondition":[{"__symbolic":"method"}],"attachLocalOnFilter":[{"__symbolic":"method"}],"customFilter":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"callbackSearchEvent":[{"__symbolic":"method"}],"addFilterTemplateToHeaderRow":[{"__symbolic":"method"}],"keepColumnFilters":[{"__symbolic":"method"}],"triggerEvent":[{"__symbolic":"method"}]}},"MouseService":{"__symbolic":"class","members":{"attachOnMouseHover":[{"__symbolic":"method"}]}},"ResizerService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router"}]}],"attachAutoResizeDataGrid":[{"__symbolic":"method"}],"calculateGridNewDimensions":[{"__symbolic":"method"}],"resizeGrid":[{"__symbolic":"method"}]}},"SortService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"attachBackendOnSort":[{"__symbolic":"method"}],"attachLocalOnSort":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"GridOdataService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"buildQuery":[{"__symbolic":"method"}],"initOptions":[{"__symbolic":"method"}],"removeColumnFilter":[{"__symbolic":"method"}],"resetPaginationOptions":[{"__symbolic":"method"}],"saveColumnFilter":[{"__symbolic":"method"}],"onFilterChanged":[{"__symbolic":"method"}],"onPaginationChanged":[{"__symbolic":"method"}],"onSortChanged":[{"__symbolic":"method"}],"mapOperator":[{"__symbolic":"method"}],"parseUtcDate":[{"__symbolic":"method"}]}},"SlickPaginationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"slick-pagination","template":"\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n ","styles":["\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n "]}]}],"members":{"gridPaginationOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"grid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ceil":[{"__symbolic":"method"}],"onChangeItemPerPage":[{"__symbolic":"method"}],"changeToFirstPage":[{"__symbolic":"method"}],"changeToLastPage":[{"__symbolic":"method"}],"changeToNextPage":[{"__symbolic":"method"}],"changeToPreviousPage":[{"__symbolic":"method"}],"gotoFirstPage":[{"__symbolic":"method"}],"refreshPagination":[{"__symbolic":"method"}],"onPageChanged":[{"__symbolic":"method"}],"recalculateFromToIndexes":[{"__symbolic":"method"}]}},"AngularSlickgridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"angular-slickgrid","template":"\n
\n
\n
\n\n \n
\n "}]}],"members":{"gridId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columnDefinitions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"gridOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"gridHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"gridWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"dataset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ResizerService"},{"__symbolic":"reference","name":"MouseService"},{"__symbolic":"reference","name":"FilterService"},{"__symbolic":"reference","name":"SortService"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"attachDifferentHooks":[{"__symbolic":"method"}],"attachResizeHook":[{"__symbolic":"method"}],"mergeGridOptions":[{"__symbolic":"method"}],"showHeaderRow":[{"__symbolic":"method"}],"toggleHeaderRow":[{"__symbolic":"method"}],"refreshGridData":[{"__symbolic":"method"}]}},"AngularSlickgridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"declarations":[{"__symbolic":"reference","name":"AngularSlickgridComponent"},{"__symbolic":"reference","name":"SlickPaginationComponent"}],"exports":[{"__symbolic":"reference","name":"AngularSlickgridComponent"},{"__symbolic":"reference","name":"SlickPaginationComponent"}],"providers":[{"__symbolic":"reference","name":"MouseService"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"FilterService"},{"__symbolic":"reference","name":"SortService"},{"__symbolic":"reference","name":"ResizerService"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"buildQuery":[{"__symbolic":"method"}],"getFilterByColumn":[{"__symbolic":"method"}],"getFilterCount":[{"__symbolic":"method"}],"removeColumnFilter":[{"__symbolic":"method"}],"saveColumnFilter":[{"__symbolic":"method"}],"updateFilterFromListTerms":[{"__symbolic":"method"}],"updateFilterFromTerm":[{"__symbolic":"method"}],"updateOptions":[{"__symbolic":"method"}]}}},"origins":{"CaseType":"./src/models/caseType","Column":"./src/models/column.interface","Formatter":"./src/models/formatter.interface","GridOption":"./src/models/gridOption.interface","FormElementType":"./src/models/formElementType","FieldType":"./src/models/fieldType","FilterService":"./src/services/filter.service","MouseService":"./src/services/mouse.service","ResizerService":"./src/services/resizer.service","SortService":"./src/services/sort.service","GridOdataService":"./src/services/grid-odata.service","SlickPaginationComponent":"./src/components/slick-pagination.component","AngularSlickgridComponent":"./src/components/angular-slickgrid.component","AngularSlickgridModule":"./src/modules/angular-slickgrid.module","ɵa":"./src/services/odata.service"},"importAs":"angular-slickgrid"} \ No newline at end of file +{"__symbolic":"module","version":3,"exports":[{"export":[{"name":"Formatter","as":"Formatter"}],"from":"./src/app/modules/angular-slickgrid/models/formatter.interface"},{"export":[{"name":"FilterConditions","as":"FilterConditions"}],"from":"./src/app/modules/angular-slickgrid/filter-conditions"},{"export":[{"name":"FilterTemplates","as":"FilterTemplates"}],"from":"./src/app/modules/angular-slickgrid/filter-templates"},{"export":[{"name":"Formatters","as":"Formatters"}],"from":"./src/app/modules/angular-slickgrid/formatters"},{"export":[{"name":"Sorters","as":"Sorters"}],"from":"./src/app/modules/angular-slickgrid/sorters"}],"metadata":{"CaseType":{"camelCase":0,"pascalCase":1,"snakeCase":2},"Column":{"__symbolic":"interface"},"GridOption":{"__symbolic":"interface"},"FormElementType":{"input":0,"multiSelect":1,"select":2,"textarea":3},"FieldType":{"unknown":0,"string":1,"boolean":2,"number":3,"date":4,"dateIso":5,"dateUtc":6,"dateTime":7,"dateTimeIso":8,"dateUs":9,"dateUsShort":10,"dateTimeUs":11,"dateTimeUsShort":12},"FilterService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"init":[{"__symbolic":"method"}],"attachBackendOnFilter":[{"__symbolic":"method"}],"testFilterCondition":[{"__symbolic":"method"}],"attachLocalOnFilter":[{"__symbolic":"method"}],"customFilter":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"callbackSearchEvent":[{"__symbolic":"method"}],"addFilterTemplateToHeaderRow":[{"__symbolic":"method"}],"keepColumnFilters":[{"__symbolic":"method"}],"triggerEvent":[{"__symbolic":"method"}]}},"MouseService":{"__symbolic":"class","members":{"attachOnMouseHover":[{"__symbolic":"method"}]}},"ResizerService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/router","name":"Router"}]}],"attachAutoResizeDataGrid":[{"__symbolic":"method"}],"calculateGridNewDimensions":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"resizeGrid":[{"__symbolic":"method"}]}},"SortService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"attachBackendOnSort":[{"__symbolic":"method"}],"attachLocalOnSort":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}]}},"GraphqlService":{"__symbolic":"class","members":{"buildQuery":[{"__symbolic":"method"}],"initOptions":[{"__symbolic":"method"}],"removeColumnFilter":[{"__symbolic":"method"}],"resetPaginationOptions":[{"__symbolic":"method"}],"updateOptions":[{"__symbolic":"method"}],"saveColumnFilter":[{"__symbolic":"method"}],"onFilterChanged":[{"__symbolic":"method"}],"onPaginationChanged":[{"__symbolic":"method"}],"onSortChanged":[{"__symbolic":"method"}]}},"GridOdataService":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵa"}]}],"buildQuery":[{"__symbolic":"method"}],"initOptions":[{"__symbolic":"method"}],"removeColumnFilter":[{"__symbolic":"method"}],"resetPaginationOptions":[{"__symbolic":"method"}],"saveColumnFilter":[{"__symbolic":"method"}],"onFilterChanged":[{"__symbolic":"method"}],"onPaginationChanged":[{"__symbolic":"method"}],"onSortChanged":[{"__symbolic":"method"}],"mapOperator":[{"__symbolic":"method"}],"parseUtcDate":[{"__symbolic":"method"}]}},"SlickPaginationComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"slick-pagination","template":"\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n ","styles":["\n @charset \"UTF-8\";\n /* pagination/pagination variables */\n /*!\n * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid)\n * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE)\n * @author: Ghislain B. (ghiscoding)\n */\n /*!\n\n /* SlickGrid Bootstrap variables */\n /* Used by slick-bootstrap.scss */\n /* Slickgrid container, including headers but excluding pagination */\n /* grid */\n /* cell */\n /* cell default slickgrid values */\n /* header */\n /* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */\n /* Column picker */\n /* pagination variables */\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080; }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px; }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd; }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px; }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block; }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px; }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0; }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n border: 1px solid #ccc; }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer; }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-family: \"FontAwesome\";\n font-size: 14px;\n /*color: inherit;*/\n border-color: #c4c4c4; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-first:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-prev:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-next:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-end:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n color: #b8b8b8;\n background-color: #f9f9f9;\n border-color: #dedede; }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle; }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px; }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px; }\n "]}]}],"members":{"gridPaginationOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"grid":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor"}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"ceil":[{"__symbolic":"method"}],"onChangeItemPerPage":[{"__symbolic":"method"}],"changeToFirstPage":[{"__symbolic":"method"}],"changeToLastPage":[{"__symbolic":"method"}],"changeToNextPage":[{"__symbolic":"method"}],"changeToPreviousPage":[{"__symbolic":"method"}],"gotoFirstPage":[{"__symbolic":"method"}],"refreshPagination":[{"__symbolic":"method"}],"onPageChanged":[{"__symbolic":"method"}],"recalculateFromToIndexes":[{"__symbolic":"method"}]}},"AngularSlickgridComponent":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Component"},"arguments":[{"selector":"angular-slickgrid","template":"\n
\n
\n
\n\n \n
\n "}]}],"members":{"gridId":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"columnDefinitions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"gridOptions":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"gridHeight":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"gridWidth":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"dataset":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Input"}}]}],"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"ɵb"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵd"},{"__symbolic":"reference","name":"ɵe"}]}],"ngOnInit":[{"__symbolic":"method"}],"ngAfterViewInit":[{"__symbolic":"method"}],"attachDifferentHooks":[{"__symbolic":"method"}],"attachResizeHook":[{"__symbolic":"method"}],"mergeGridOptions":[{"__symbolic":"method"}],"showHeaderRow":[{"__symbolic":"method"}],"toggleHeaderRow":[{"__symbolic":"method"}],"refreshGridData":[{"__symbolic":"method"}]}},"AngularSlickgridModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule"},"arguments":[{"imports":[{"__symbolic":"reference","module":"@angular/common","name":"CommonModule"}],"declarations":[{"__symbolic":"reference","name":"AngularSlickgridComponent"},{"__symbolic":"reference","name":"SlickPaginationComponent"}],"exports":[{"__symbolic":"reference","name":"AngularSlickgridComponent"},{"__symbolic":"reference","name":"SlickPaginationComponent"}],"providers":[{"__symbolic":"reference","name":"GraphqlService"},{"__symbolic":"reference","name":"MouseService"},{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"FilterService"},{"__symbolic":"reference","name":"SortService"},{"__symbolic":"reference","name":"ResizerService"}]}]}],"members":{}},"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable"}}],"members":{"__ctor__":[{"__symbolic":"constructor"}],"buildQuery":[{"__symbolic":"method"}],"getFilterByColumn":[{"__symbolic":"method"}],"getFilterCount":[{"__symbolic":"method"}],"removeColumnFilter":[{"__symbolic":"method"}],"saveColumnFilter":[{"__symbolic":"method"}],"updateFilterFromListTerms":[{"__symbolic":"method"}],"updateFilterFromTerm":[{"__symbolic":"method"}],"updateOptions":[{"__symbolic":"method"}]}}},"origins":{"CaseType":"./src/app/modules/angular-slickgrid/models/caseType","Column":"./src/app/modules/angular-slickgrid/models/column.interface","GridOption":"./src/app/modules/angular-slickgrid/models/gridOption.interface","FormElementType":"./src/app/modules/angular-slickgrid/models/formElementType","FieldType":"./src/app/modules/angular-slickgrid/models/fieldType","FilterService":"./src/app/modules/angular-slickgrid/services/filter.service","MouseService":"./src/app/modules/angular-slickgrid/services/mouse.service","ResizerService":"./src/app/modules/angular-slickgrid/services/resizer.service","SortService":"./src/app/modules/angular-slickgrid/services/sort.service","GraphqlService":"./src/app/modules/angular-slickgrid/services/graphql.service","GridOdataService":"./src/app/modules/angular-slickgrid/services/grid-odata.service","SlickPaginationComponent":"./src/app/modules/angular-slickgrid/components/slick-pagination.component","AngularSlickgridComponent":"./src/app/modules/angular-slickgrid/components/angular-slickgrid.component","AngularSlickgridModule":"./src/app/modules/angular-slickgrid/modules/angular-slickgrid.module","ɵa":"./src/app/modules/angular-slickgrid/services/odata.service","ɵb":"./src/app/modules/angular-slickgrid/services","ɵc":"./src/app/modules/angular-slickgrid/services","ɵd":"./src/app/modules/angular-slickgrid/services","ɵe":"./src/app/modules/angular-slickgrid/services"},"importAs":"angular-slickgrid"} \ No newline at end of file diff --git a/dist/angular-slickgrid/angular-slickgrid.es5.js b/dist/angular-slickgrid/angular-slickgrid.es5.js new file mode 100644 index 000000000..8ae607830 --- /dev/null +++ b/dist/angular-slickgrid/angular-slickgrid.es5.js @@ -0,0 +1,2527 @@ +import { Component, Injectable, Input, NgModule } from '@angular/core'; +import { Router } from '@angular/router'; +import { CommonModule } from '@angular/common'; +var CaseType = {}; +CaseType.camelCase = 0; +CaseType.pascalCase = 1; +CaseType.snakeCase = 2; +CaseType[CaseType.camelCase] = "camelCase"; +CaseType[CaseType.pascalCase] = "pascalCase"; +CaseType[CaseType.snakeCase] = "snakeCase"; +var FormElementType = {}; +FormElementType.input = 0; +FormElementType.multiSelect = 1; +FormElementType.select = 2; +FormElementType.textarea = 3; +FormElementType[FormElementType.input] = "input"; +FormElementType[FormElementType.multiSelect] = "multiSelect"; +FormElementType[FormElementType.select] = "select"; +FormElementType[FormElementType.textarea] = "textarea"; +var FieldType = {}; +FieldType.unknown = 0; +FieldType.string = 1; +FieldType.boolean = 2; +FieldType.number = 3; +FieldType.date = 4; +FieldType.dateIso = 5; +FieldType.dateUtc = 6; +FieldType.dateTime = 7; +FieldType.dateTimeIso = 8; +FieldType.dateUs = 9; +FieldType.dateUsShort = 10; +FieldType.dateTimeUs = 11; +FieldType.dateTimeUsShort = 12; +FieldType[FieldType.unknown] = "unknown"; +FieldType[FieldType.string] = "string"; +FieldType[FieldType.boolean] = "boolean"; +FieldType[FieldType.number] = "number"; +FieldType[FieldType.date] = "date"; +FieldType[FieldType.dateIso] = "dateIso"; +FieldType[FieldType.dateUtc] = "dateUtc"; +FieldType[FieldType.dateTime] = "dateTime"; +FieldType[FieldType.dateTimeIso] = "dateTimeIso"; +FieldType[FieldType.dateUs] = "dateUs"; +FieldType[FieldType.dateUsShort] = "dateUsShort"; +FieldType[FieldType.dateTimeUs] = "dateTimeUs"; +FieldType[FieldType.dateTimeUsShort] = "dateTimeUsShort"; +/** + * @param {?} str + * @return {?} + */ +function parseBoolean(str) { + return /(true|1)/i.test(str); +} +var booleanFilterCondition = function (options) { + return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm); +}; +var mapDateFormatByFieldType = function (fieldType) { + switch (fieldType) { + case FieldType.dateUs: + return 'M/D/YYYY'; + case FieldType.dateTimeUs: + return 'M/D/YYYY h:m:s'; + case FieldType.dateUsShort: + return 'M/D/YY'; + case FieldType.dateTimeUsShort: + return 'M/D/YY h:m:s'; + case FieldType.dateTimeIso: + return 'YYYY-MM-DD h:m:s'; + case FieldType.dateIso: + default: + return 'YYYY-MM-DD'; + } +}; +var testFilterCondition = function (operator, value1, value2) { + switch (operator) { + case '<': return (value1 < value2); + case '<=': return (value1 <= value2); + case '>': return (value1 > value2); + case '>=': return (value1 >= value2); + case '!=': + case '<>': return (value1 !== value2); + case '=': + case '==': return (value1 === value2); + } + return true; +}; +var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; +function commonjsRequire() { + throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs'); +} +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} +var moment_min = createCommonjsModule(function (module, exports) { + //! moment.js + //! version : 2.18.1 + //! authors : Tim Wood, Iskren Chernev, Moment.js contributors + //! license : MIT + //! momentjs.com + !function (a, b) { module.exports = b(); }(commonjsGlobal, function () { + "use strict"; + function a() { return sd.apply(null, arguments); } + function b(a) { sd = a; } + function c(a) { return a instanceof Array || "[object Array]" === Object.prototype.toString.call(a); } + function d(a) { return null != a && "[object Object]" === Object.prototype.toString.call(a); } + function e(a) { var b; for (b in a) + return !1; return !0; } + function f(a) { return void 0 === a; } + function g(a) { return "number" == typeof a || "[object Number]" === Object.prototype.toString.call(a); } + function h(a) { return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a); } + function i(a, b) { var c, d = []; for (c = 0; c < a.length; ++c) + d.push(b(a[c], c)); return d; } + function j(a, b) { return Object.prototype.hasOwnProperty.call(a, b); } + function k(a, b) { for (var c in b) + j(b, c) && (a[c] = b[c]); return j(b, "toString") && (a.toString = b.toString), j(b, "valueOf") && (a.valueOf = b.valueOf), a; } + function l(a, b, c, d) { return sb(a, b, c, d, !0).utc(); } + function m() { return { empty: !1, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: !1, invalidMonth: null, invalidFormat: !1, userInvalidated: !1, iso: !1, parsedDateParts: [], meridiem: null, rfc2822: !1, weekdayMismatch: !1 }; } + function n(a) { return null == a._pf && (a._pf = m()), a._pf; } + function o(a) { if (null == a._isValid) { + var b = n(a), c = ud.call(b.parsedDateParts, function (a) { return null != a; }), d = !isNaN(a._d.getTime()) && b.overflow < 0 && !b.empty && !b.invalidMonth && !b.invalidWeekday && !b.nullInput && !b.invalidFormat && !b.userInvalidated && (!b.meridiem || b.meridiem && c); + if (a._strict && (d = d && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour), null != Object.isFrozen && Object.isFrozen(a)) + return d; + a._isValid = d; + } return a._isValid; } + function p(a) { var b = l(NaN); return null != a ? k(n(b), a) : n(b).userInvalidated = !0, b; } + function q(a, b) { var c, d, e; if (f(b._isAMomentObject) || (a._isAMomentObject = b._isAMomentObject), f(b._i) || (a._i = b._i), f(b._f) || (a._f = b._f), f(b._l) || (a._l = b._l), f(b._strict) || (a._strict = b._strict), f(b._tzm) || (a._tzm = b._tzm), f(b._isUTC) || (a._isUTC = b._isUTC), f(b._offset) || (a._offset = b._offset), f(b._pf) || (a._pf = n(b)), f(b._locale) || (a._locale = b._locale), vd.length > 0) + for (c = 0; c < vd.length; c++) + d = vd[c], e = b[d], f(e) || (a[d] = e); return a; } + function r(b) { q(this, b), this._d = new Date(null != b._d ? b._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), wd === !1 && (wd = !0, a.updateOffset(this), wd = !1); } + function s(a) { return a instanceof r || null != a && null != a._isAMomentObject; } + function t(a) { return a < 0 ? Math.ceil(a) || 0 : Math.floor(a); } + function u(a) { var b = +a, c = 0; return 0 !== b && isFinite(b) && (c = t(b)), c; } + function v(a, b, c) { var d, e = Math.min(a.length, b.length), f = Math.abs(a.length - b.length), g = 0; for (d = 0; d < e; d++) + (c && a[d] !== b[d] || !c && u(a[d]) !== u(b[d])) && g++; return g + f; } + function w(b) { a.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + b); } + function x(b, c) { var d = !0; return k(function () { if (null != a.deprecationHandler && a.deprecationHandler(null, b), d) { + for (var e, f = [], g = 0; g < arguments.length; g++) { + if (e = "", "object" == typeof arguments[g]) { + e += "\n[" + g + "] "; + for (var h in arguments[0]) + e += h + ": " + arguments[0][h] + ", "; + e = e.slice(0, -2); + } + else + e = arguments[g]; + f.push(e); + } + w(b + "\nArguments: " + Array.prototype.slice.call(f).join("") + "\n" + (new Error).stack), d = !1; + } return c.apply(this, arguments); }, c); } + function y(b, c) { null != a.deprecationHandler && a.deprecationHandler(b, c), xd[b] || (w(c), xd[b] = !0); } + function z(a) { return a instanceof Function || "[object Function]" === Object.prototype.toString.call(a); } + function A(a) { var b, c; for (c in a) + b = a[c], z(b) ? this[c] = b : this["_" + c] = b; this._config = a, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source); } + function B(a, b) { var c, e = k({}, a); for (c in b) + j(b, c) && (d(a[c]) && d(b[c]) ? (e[c] = {}, k(e[c], a[c]), k(e[c], b[c])) : null != b[c] ? e[c] = b[c] : delete e[c]); for (c in a) + j(a, c) && !j(b, c) && d(a[c]) && (e[c] = k({}, e[c])); return e; } + function C(a) { null != a && this.set(a); } + function D(a, b, c) { var d = this._calendar[a] || this._calendar.sameElse; return z(d) ? d.call(b, c) : d; } + function E(a) { var b = this._longDateFormat[a], c = this._longDateFormat[a.toUpperCase()]; return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function (a) { return a.slice(1); }), this._longDateFormat[a]); } + function F() { return this._invalidDate; } + function G(a) { return this._ordinal.replace("%d", a); } + function H(a, b, c, d) { var e = this._relativeTime[c]; return z(e) ? e(a, b, c, d) : e.replace(/%d/i, a); } + function I(a, b) { var c = this._relativeTime[a > 0 ? "future" : "past"]; return z(c) ? c(b) : c.replace(/%s/i, b); } + function J(a, b) { var c = a.toLowerCase(); Hd[c] = Hd[c + "s"] = Hd[b] = a; } + function K(a) { return "string" == typeof a ? Hd[a] || Hd[a.toLowerCase()] : void 0; } + function L(a) { var b, c, d = {}; for (c in a) + j(a, c) && (b = K(c), b && (d[b] = a[c])); return d; } + function M(a, b) { Id[a] = b; } + function N(a) { var b = []; for (var c in a) + b.push({ unit: c, priority: Id[c] }); return b.sort(function (a, b) { return a.priority - b.priority; }), b; } + function O(b, c) { return function (d) { return null != d ? (Q(this, b, d), a.updateOffset(this, c), this) : P(this, b); }; } + function P(a, b) { return a.isValid() ? a._d["get" + (a._isUTC ? "UTC" : "") + b]() : NaN; } + function Q(a, b, c) { a.isValid() && a._d["set" + (a._isUTC ? "UTC" : "") + b](c); } + function R(a) { return a = K(a), z(this[a]) ? this[a]() : this; } + function S(a, b) { if ("object" == typeof a) { + a = L(a); + for (var c = N(a), d = 0; d < c.length; d++) + this[c[d].unit](a[c[d].unit]); + } + else if (a = K(a), z(this[a])) + return this[a](b); return this; } + function T(a, b, c) { var d = "" + Math.abs(a), e = b - d.length, f = a >= 0; return (f ? c ? "+" : "" : "-") + Math.pow(10, Math.max(0, e)).toString().substr(1) + d; } + function U(a, b, c, d) { var e = d; "string" == typeof d && (e = function () { return this[d](); }), a && (Md[a] = e), b && (Md[b[0]] = function () { return T(e.apply(this, arguments), b[1], b[2]); }), c && (Md[c] = function () { return this.localeData().ordinal(e.apply(this, arguments), a); }); } + function V(a) { return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, ""); } + function W(a) { var b, c, d = a.match(Jd); for (b = 0, c = d.length; b < c; b++) + Md[d[b]] ? d[b] = Md[d[b]] : d[b] = V(d[b]); return function (b) { var e, f = ""; for (e = 0; e < c; e++) + f += z(d[e]) ? d[e].call(b, a) : d[e]; return f; }; } + function X(a, b) { return a.isValid() ? (b = Y(b, a.localeData()), Ld[b] = Ld[b] || W(b), Ld[b](a)) : a.localeData().invalidDate(); } + function Y(a, b) { function c(a) { return b.longDateFormat(a) || a; } var d = 5; for (Kd.lastIndex = 0; d >= 0 && Kd.test(a);) + a = a.replace(Kd, c), Kd.lastIndex = 0, d -= 1; return a; } + function Z(a, b, c) { ce[a] = z(b) ? b : function (a, d) { return a && c ? c : b; }; } + function $(a, b) { return j(ce, a) ? ce[a](b._strict, b._locale) : new RegExp(_(a)); } + function _(a) { return aa(a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (a, b, c, d, e) { return b || c || d || e; })); } + function aa(a) { return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); } + function ba(a, b) { var c, d = b; for ("string" == typeof a && (a = [a]), g(b) && (d = function (a, c) { c[b] = u(a); }), c = 0; c < a.length; c++) + de[a[c]] = d; } + function ca(a, b) { ba(a, function (a, c, d, e) { d._w = d._w || {}, b(a, d._w, d, e); }); } + function da(a, b, c) { null != b && j(de, a) && de[a](b, c._a, c, a); } + function ea(a, b) { return new Date(Date.UTC(a, b + 1, 0)).getUTCDate(); } + function fa(a, b) { return a ? c(this._months) ? this._months[a.month()] : this._months[(this._months.isFormat || oe).test(b) ? "format" : "standalone"][a.month()] : c(this._months) ? this._months : this._months.standalone; } + function ga(a, b) { return a ? c(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[oe.test(b) ? "format" : "standalone"][a.month()] : c(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone; } + function ha(a, b, c) { var d, e, f, g = a.toLocaleLowerCase(); if (!this._monthsParse) + for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], d = 0; d < 12; ++d) + f = l([2e3, d]), this._shortMonthsParse[d] = this.monthsShort(f, "").toLocaleLowerCase(), this._longMonthsParse[d] = this.months(f, "").toLocaleLowerCase(); return c ? "MMM" === b ? (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : null) : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : null) : "MMM" === b ? (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : null)) : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : null)); } + function ia(a, b, c) { var d, e, f; if (this._monthsParseExact) + return ha.call(this, a, b, c); for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), d = 0; d < 12; d++) { + if (e = l([2e3, d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp("^" + this.months(e, "").replace(".", "") + "$", "i"), this._shortMonthsParse[d] = new RegExp("^" + this.monthsShort(e, "").replace(".", "") + "$", "i")), c || this._monthsParse[d] || (f = "^" + this.months(e, "") + "|^" + this.monthsShort(e, ""), this._monthsParse[d] = new RegExp(f.replace(".", ""), "i")), c && "MMMM" === b && this._longMonthsParse[d].test(a)) + return d; + if (c && "MMM" === b && this._shortMonthsParse[d].test(a)) + return d; + if (!c && this._monthsParse[d].test(a)) + return d; + } } + function ja(a, b) { var c; if (!a.isValid()) + return a; if ("string" == typeof b) + if (/^\d+$/.test(b)) + b = u(b); + else if (b = a.localeData().monthsParse(b), !g(b)) + return a; return c = Math.min(a.date(), ea(a.year(), b)), a._d["set" + (a._isUTC ? "UTC" : "") + "Month"](b, c), a; } + function ka(b) { return null != b ? (ja(this, b), a.updateOffset(this, !0), this) : P(this, "Month"); } + function la() { return ea(this.year(), this.month()); } + function ma(a) { return this._monthsParseExact ? (j(this, "_monthsRegex") || oa.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : (j(this, "_monthsShortRegex") || (this._monthsShortRegex = re), this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex); } + function na(a) { return this._monthsParseExact ? (j(this, "_monthsRegex") || oa.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : (j(this, "_monthsRegex") || (this._monthsRegex = se), this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex); } + function oa() { function a(a, b) { return b.length - a.length; } var b, c, d = [], e = [], f = []; for (b = 0; b < 12; b++) + c = l([2e3, b]), d.push(this.monthsShort(c, "")), e.push(this.months(c, "")), f.push(this.months(c, "")), f.push(this.monthsShort(c, "")); for (d.sort(a), e.sort(a), f.sort(a), b = 0; b < 12; b++) + d[b] = aa(d[b]), e[b] = aa(e[b]); for (b = 0; b < 24; b++) + f[b] = aa(f[b]); this._monthsRegex = new RegExp("^(" + f.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + e.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + d.join("|") + ")", "i"); } + function pa(a) { return qa(a) ? 366 : 365; } + function qa(a) { return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0; } + function ra() { return qa(this.year()); } + function sa(a, b, c, d, e, f, g) { var h = new Date(a, b, c, d, e, f, g); return a < 100 && a >= 0 && isFinite(h.getFullYear()) && h.setFullYear(a), h; } + function ta(a) { var b = new Date(Date.UTC.apply(null, arguments)); return a < 100 && a >= 0 && isFinite(b.getUTCFullYear()) && b.setUTCFullYear(a), b; } + function ua(a, b, c) { var d = 7 + b - c, e = (7 + ta(a, 0, d).getUTCDay() - b) % 7; return -e + d - 1; } + function va(a, b, c, d, e) { var f, g, h = (7 + c - d) % 7, i = ua(a, d, e), j = 1 + 7 * (b - 1) + h + i; return j <= 0 ? (f = a - 1, g = pa(f) + j) : j > pa(a) ? (f = a + 1, g = j - pa(a)) : (f = a, g = j), { year: f, dayOfYear: g }; } + function wa(a, b, c) { var d, e, f = ua(a.year(), b, c), g = Math.floor((a.dayOfYear() - f - 1) / 7) + 1; return g < 1 ? (e = a.year() - 1, d = g + xa(e, b, c)) : g > xa(a.year(), b, c) ? (d = g - xa(a.year(), b, c), e = a.year() + 1) : (e = a.year(), d = g), { week: d, year: e }; } + function xa(a, b, c) { var d = ua(a, b, c), e = ua(a + 1, b, c); return (pa(a) - d + e) / 7; } + function ya(a) { return wa(a, this._week.dow, this._week.doy).week; } + function za() { return this._week.dow; } + function Aa() { return this._week.doy; } + function Ba(a) { var b = this.localeData().week(this); return null == a ? b : this.add(7 * (a - b), "d"); } + function Ca(a) { var b = wa(this, 1, 4).week; return null == a ? b : this.add(7 * (a - b), "d"); } + function Da(a, b) { return "string" != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), "number" == typeof a ? a : null) : parseInt(a, 10); } + function Ea(a, b) { return "string" == typeof a ? b.weekdaysParse(a) % 7 || 7 : isNaN(a) ? null : a; } + function Fa(a, b) { return a ? c(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(b) ? "format" : "standalone"][a.day()] : c(this._weekdays) ? this._weekdays : this._weekdays.standalone; } + function Ga(a) { return a ? this._weekdaysShort[a.day()] : this._weekdaysShort; } + function Ha(a) { return a ? this._weekdaysMin[a.day()] : this._weekdaysMin; } + function Ia(a, b, c) { var d, e, f, g = a.toLocaleLowerCase(); if (!this._weekdaysParse) + for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], d = 0; d < 7; ++d) + f = l([2e3, 1]).day(d), this._minWeekdaysParse[d] = this.weekdaysMin(f, "").toLocaleLowerCase(), this._shortWeekdaysParse[d] = this.weekdaysShort(f, "").toLocaleLowerCase(), this._weekdaysParse[d] = this.weekdays(f, "").toLocaleLowerCase(); return c ? "dddd" === b ? (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : null) : "ddd" === b ? (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : null) : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null) : "dddd" === b ? (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null))) : "ddd" === b ? (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null))) : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : null))); } + function Ja(a, b, c) { var d, e, f; if (this._weekdaysParseExact) + return Ia.call(this, a, b, c); for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), d = 0; d < 7; d++) { + if (e = l([2e3, 1]).day(d), c && !this._fullWeekdaysParse[d] && (this._fullWeekdaysParse[d] = new RegExp("^" + this.weekdays(e, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[d] = new RegExp("^" + this.weekdaysShort(e, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[d] = new RegExp("^" + this.weekdaysMin(e, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[d] || (f = "^" + this.weekdays(e, "") + "|^" + this.weekdaysShort(e, "") + "|^" + this.weekdaysMin(e, ""), this._weekdaysParse[d] = new RegExp(f.replace(".", ""), "i")), c && "dddd" === b && this._fullWeekdaysParse[d].test(a)) + return d; + if (c && "ddd" === b && this._shortWeekdaysParse[d].test(a)) + return d; + if (c && "dd" === b && this._minWeekdaysParse[d].test(a)) + return d; + if (!c && this._weekdaysParse[d].test(a)) + return d; + } } + function Ka(a) { if (!this.isValid()) + return null != a ? this : NaN; var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); return null != a ? (a = Da(a, this.localeData()), this.add(a - b, "d")) : b; } + function La(a) { if (!this.isValid()) + return null != a ? this : NaN; var b = (this.day() + 7 - this.localeData()._week.dow) % 7; return null == a ? b : this.add(a - b, "d"); } + function Ma(a) { if (!this.isValid()) + return null != a ? this : NaN; if (null != a) { + var b = Ea(a, this.localeData()); + return this.day(this.day() % 7 ? b : b - 7); + } return this.day() || 7; } + function Na(a) { return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : (j(this, "_weekdaysRegex") || (this._weekdaysRegex = ye), this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex); } + function Oa(a) { return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (j(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = ze), this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex); } + function Pa(a) { return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (j(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Ae), this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex); } + function Qa() { function a(a, b) { return b.length - a.length; } var b, c, d, e, f, g = [], h = [], i = [], j = []; for (b = 0; b < 7; b++) + c = l([2e3, 1]).day(b), d = this.weekdaysMin(c, ""), e = this.weekdaysShort(c, ""), f = this.weekdays(c, ""), g.push(d), h.push(e), i.push(f), j.push(d), j.push(e), j.push(f); for (g.sort(a), h.sort(a), i.sort(a), j.sort(a), b = 0; b < 7; b++) + h[b] = aa(h[b]), i[b] = aa(i[b]), j[b] = aa(j[b]); this._weekdaysRegex = new RegExp("^(" + j.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + h.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + g.join("|") + ")", "i"); } + function Ra() { return this.hours() % 12 || 12; } + function Sa() { return this.hours() || 24; } + function Ta(a, b) { U(a, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), b); }); } + function Ua(a, b) { return b._meridiemParse; } + function Va(a) { return "p" === (a + "").toLowerCase().charAt(0); } + function Wa(a, b, c) { return a > 11 ? c ? "pm" : "PM" : c ? "am" : "AM"; } + function Xa(a) { return a ? a.toLowerCase().replace("_", "-") : a; } + function Ya(a) { for (var b, c, d, e, f = 0; f < a.length;) { + for (e = Xa(a[f]).split("-"), b = e.length, c = Xa(a[f + 1]), c = c ? c.split("-") : null; b > 0;) { + if (d = Za(e.slice(0, b).join("-"))) + return d; + if (c && c.length >= b && v(e, c, !0) >= b - 1) + break; + b--; + } + f++; + } return null; } + function Za(a) { var b = null; if (!Fe[a] && "undefined" != 'object' && module && module.exports) + try { + b = Be._abbr, commonjsRequire("./locale/" + a), $a(b); + } + catch (a) { } return Fe[a]; } + function $a(a, b) { var c; return a && (c = f(b) ? bb(a) : _a(a, b), c && (Be = c)), Be._abbr; } + function _a(a, b) { if (null !== b) { + var c = Ee; + if (b.abbr = a, null != Fe[a]) + y("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), c = Fe[a]._config; + else if (null != b.parentLocale) { + if (null == Fe[b.parentLocale]) + return Ge[b.parentLocale] || (Ge[b.parentLocale] = []), Ge[b.parentLocale].push({ name: a, config: b }), null; + c = Fe[b.parentLocale]._config; + } + return Fe[a] = new C(B(c, b)), Ge[a] && Ge[a].forEach(function (a) { _a(a.name, a.config); }), $a(a), Fe[a]; + } return delete Fe[a], null; } + function ab(a, b) { if (null != b) { + var c, d = Ee; + null != Fe[a] && (d = Fe[a]._config), b = B(d, b), c = new C(b), c.parentLocale = Fe[a], Fe[a] = c, $a(a); + } + else + null != Fe[a] && (null != Fe[a].parentLocale ? Fe[a] = Fe[a].parentLocale : null != Fe[a] && delete Fe[a]); return Fe[a]; } + function bb(a) { var b; if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) + return Be; if (!c(a)) { + if (b = Za(a)) + return b; + a = [a]; + } return Ya(a); } + function cb() { return Ad(Fe); } + function db(a) { var b, c = a._a; return c && n(a).overflow === -2 && (b = c[fe] < 0 || c[fe] > 11 ? fe : c[ge] < 1 || c[ge] > ea(c[ee], c[fe]) ? ge : c[he] < 0 || c[he] > 24 || 24 === c[he] && (0 !== c[ie] || 0 !== c[je] || 0 !== c[ke]) ? he : c[ie] < 0 || c[ie] > 59 ? ie : c[je] < 0 || c[je] > 59 ? je : c[ke] < 0 || c[ke] > 999 ? ke : -1, n(a)._overflowDayOfYear && (b < ee || b > ge) && (b = ge), n(a)._overflowWeeks && b === -1 && (b = le), n(a)._overflowWeekday && b === -1 && (b = me), n(a).overflow = b), a; } + function eb(a) { var b, c, d, e, f, g, h = a._i, i = He.exec(h) || Ie.exec(h); if (i) { + for (n(a).iso = !0, b = 0, c = Ke.length; b < c; b++) + if (Ke[b][1].exec(i[1])) { + e = Ke[b][0], d = Ke[b][2] !== !1; + break; + } + if (null == e) + return void (a._isValid = !1); + if (i[3]) { + for (b = 0, c = Le.length; b < c; b++) + if (Le[b][1].exec(i[3])) { + f = (i[2] || " ") + Le[b][0]; + break; + } + if (null == f) + return void (a._isValid = !1); + } + if (!d && null != f) + return void (a._isValid = !1); + if (i[4]) { + if (!Je.exec(i[4])) + return void (a._isValid = !1); + g = "Z"; + } + a._f = e + (f || "") + (g || ""), lb(a); + } + else + a._isValid = !1; } + function fb(a) { var b, c, d, e, f, g, h, i, j = { " GMT": " +0000", " EDT": " -0400", " EST": " -0500", " CDT": " -0500", " CST": " -0600", " MDT": " -0600", " MST": " -0700", " PDT": " -0700", " PST": " -0800" }, k = "YXWVUTSRQPONZABCDEFGHIKLM"; if (b = a._i.replace(/\([^\)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s|\s$/g, ""), c = Ne.exec(b)) { + if (d = c[1] ? "ddd" + (5 === c[1].length ? ", " : " ") : "", e = "D MMM " + (c[2].length > 10 ? "YYYY " : "YY "), f = "HH:mm" + (c[4] ? ":ss" : ""), c[1]) { + var l = new Date(c[2]), m = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][l.getDay()]; + if (c[1].substr(0, 3) !== m) + return n(a).weekdayMismatch = !0, void (a._isValid = !1); + } + switch (c[5].length) { + case 2: + 0 === i ? h = " +0000" : (i = k.indexOf(c[5][1].toUpperCase()) - 12, h = (i < 0 ? " -" : " +") + ("" + i).replace(/^-?/, "0").match(/..$/)[0] + "00"); + break; + case 4: + h = j[c[5]]; + break; + default: h = j[" GMT"]; + } + c[5] = h, a._i = c.splice(1).join(""), g = " ZZ", a._f = d + e + f + g, lb(a), n(a).rfc2822 = !0; + } + else + a._isValid = !1; } + function gb(b) { var c = Me.exec(b._i); return null !== c ? void (b._d = new Date(+c[1])) : (eb(b), void (b._isValid === !1 && (delete b._isValid, fb(b), b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b))))); } + function hb(a, b, c) { return null != a ? a : null != b ? b : c; } + function ib(b) { var c = new Date(a.now()); return b._useUTC ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()] : [c.getFullYear(), c.getMonth(), c.getDate()]; } + function jb(a) { var b, c, d, e, f = []; if (!a._d) { + for (d = ib(a), a._w && null == a._a[ge] && null == a._a[fe] && kb(a), null != a._dayOfYear && (e = hb(a._a[ee], d[ee]), (a._dayOfYear > pa(e) || 0 === a._dayOfYear) && (n(a)._overflowDayOfYear = !0), c = ta(e, 0, a._dayOfYear), a._a[fe] = c.getUTCMonth(), a._a[ge] = c.getUTCDate()), b = 0; b < 3 && null == a._a[b]; ++b) + a._a[b] = f[b] = d[b]; + for (; b < 7; b++) + a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b]; + 24 === a._a[he] && 0 === a._a[ie] && 0 === a._a[je] && 0 === a._a[ke] && (a._nextDay = !0, a._a[he] = 0), a._d = (a._useUTC ? ta : sa).apply(null, f), null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[he] = 24); + } } + function kb(a) { var b, c, d, e, f, g, h, i; if (b = a._w, null != b.GG || null != b.W || null != b.E) + f = 1, g = 4, c = hb(b.GG, a._a[ee], wa(tb(), 1, 4).year), d = hb(b.W, 1), e = hb(b.E, 1), (e < 1 || e > 7) && (i = !0); + else { + f = a._locale._week.dow, g = a._locale._week.doy; + var j = wa(tb(), f, g); + c = hb(b.gg, a._a[ee], j.year), d = hb(b.w, j.week), null != b.d ? (e = b.d, (e < 0 || e > 6) && (i = !0)) : null != b.e ? (e = b.e + f, (b.e < 0 || b.e > 6) && (i = !0)) : e = f; + } d < 1 || d > xa(c, f, g) ? n(a)._overflowWeeks = !0 : null != i ? n(a)._overflowWeekday = !0 : (h = va(c, d, e, f, g), a._a[ee] = h.year, a._dayOfYear = h.dayOfYear); } + function lb(b) { if (b._f === a.ISO_8601) + return void eb(b); if (b._f === a.RFC_2822) + return void fb(b); b._a = [], n(b).empty = !0; var c, d, e, f, g, h = "" + b._i, i = h.length, j = 0; for (e = Y(b._f, b._locale).match(Jd) || [], c = 0; c < e.length; c++) + f = e[c], d = (h.match($(f, b)) || [])[0], d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && n(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), j += d.length), Md[f] ? (d ? n(b).empty = !1 : n(b).unusedTokens.push(f), da(f, d, b)) : b._strict && !d && n(b).unusedTokens.push(f); n(b).charsLeftOver = i - j, h.length > 0 && n(b).unusedInput.push(h), b._a[he] <= 12 && n(b).bigHour === !0 && b._a[he] > 0 && (n(b).bigHour = void 0), n(b).parsedDateParts = b._a.slice(0), n(b).meridiem = b._meridiem, b._a[he] = mb(b._locale, b._a[he], b._meridiem), jb(b), db(b); } + function mb(a, b, c) { var d; return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && b < 12 && (b += 12), d || 12 !== b || (b = 0), b) : b; } + function nb(a) { var b, c, d, e, f; if (0 === a._f.length) + return n(a).invalidFormat = !0, void (a._d = new Date(NaN)); for (e = 0; e < a._f.length; e++) + f = 0, b = q({}, a), null != a._useUTC && (b._useUTC = a._useUTC), b._f = a._f[e], lb(b), o(b) && (f += n(b).charsLeftOver, f += 10 * n(b).unusedTokens.length, n(b).score = f, (null == d || f < d) && (d = f, c = b)); k(a, c || b); } + function ob(a) { if (!a._d) { + var b = L(a._i); + a._a = i([b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], function (a) { return a && parseInt(a, 10); }), jb(a); + } } + function pb(a) { var b = new r(db(qb(a))); return b._nextDay && (b.add(1, "d"), b._nextDay = void 0), b; } + function qb(a) { var b = a._i, d = a._f; return a._locale = a._locale || bb(a._l), null === b || void 0 === d && "" === b ? p({ nullInput: !0 }) : ("string" == typeof b && (a._i = b = a._locale.preparse(b)), s(b) ? new r(db(b)) : (h(b) ? a._d = b : c(d) ? nb(a) : d ? lb(a) : rb(a), o(a) || (a._d = null), a)); } + function rb(b) { var e = b._i; f(e) ? b._d = new Date(a.now()) : h(e) ? b._d = new Date(e.valueOf()) : "string" == typeof e ? gb(b) : c(e) ? (b._a = i(e.slice(0), function (a) { return parseInt(a, 10); }), jb(b)) : d(e) ? ob(b) : g(e) ? b._d = new Date(e) : a.createFromInputFallback(b); } + function sb(a, b, f, g, h) { var i = {}; return f !== !0 && f !== !1 || (g = f, f = void 0), (d(a) && e(a) || c(a) && 0 === a.length) && (a = void 0), i._isAMomentObject = !0, i._useUTC = i._isUTC = h, i._l = f, i._i = a, i._f = b, i._strict = g, pb(i); } + function tb(a, b, c, d) { return sb(a, b, c, d, !1); } + function ub(a, b) { var d, e; if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) + return tb(); for (d = b[0], e = 1; e < b.length; ++e) + b[e].isValid() && !b[e][a](d) || (d = b[e]); return d; } + function vb() { var a = [].slice.call(arguments, 0); return ub("isBefore", a); } + function wb() { var a = [].slice.call(arguments, 0); return ub("isAfter", a); } + function xb(a) { for (var b in a) + if (Re.indexOf(b) === -1 || null != a[b] && isNaN(a[b])) + return !1; for (var c = !1, d = 0; d < Re.length; ++d) + if (a[Re[d]]) { + if (c) + return !1; + parseFloat(a[Re[d]]) !== u(a[Re[d]]) && (c = !0); + } return !0; } + function yb() { return this._isValid; } + function zb() { return Sb(NaN); } + function Ab(a) { var b = L(a), c = b.year || 0, d = b.quarter || 0, e = b.month || 0, f = b.week || 0, g = b.day || 0, h = b.hour || 0, i = b.minute || 0, j = b.second || 0, k = b.millisecond || 0; this._isValid = xb(b), this._milliseconds = +k + 1e3 * j + 6e4 * i + 1e3 * h * 60 * 60, this._days = +g + 7 * f, this._months = +e + 3 * d + 12 * c, this._data = {}, this._locale = bb(), this._bubble(); } + function Bb(a) { return a instanceof Ab; } + function Cb(a) { return a < 0 ? Math.round(-1 * a) * -1 : Math.round(a); } + function Db(a, b) { U(a, 0, 0, function () { var a = this.utcOffset(), c = "+"; return a < 0 && (a = -a, c = "-"), c + T(~~(a / 60), 2) + b + T(~~a % 60, 2); }); } + function Eb(a, b) { var c = (b || "").match(a); if (null === c) + return null; var d = c[c.length - 1] || [], e = (d + "").match(Se) || ["-", 0, 0], f = +(60 * e[1]) + u(e[2]); return 0 === f ? 0 : "+" === e[0] ? f : -f; } + function Fb(b, c) { var d, e; return c._isUTC ? (d = c.clone(), e = (s(b) || h(b) ? b.valueOf() : tb(b).valueOf()) - d.valueOf(), d._d.setTime(d._d.valueOf() + e), a.updateOffset(d, !1), d) : tb(b).local(); } + function Gb(a) { return 15 * -Math.round(a._d.getTimezoneOffset() / 15); } + function Hb(b, c, d) { var e, f = this._offset || 0; if (!this.isValid()) + return null != b ? this : NaN; if (null != b) { + if ("string" == typeof b) { + if (b = Eb(_d, b), null === b) + return this; + } + else + Math.abs(b) < 16 && !d && (b = 60 * b); + return !this._isUTC && c && (e = Gb(this)), this._offset = b, this._isUTC = !0, null != e && this.add(e, "m"), f !== b && (!c || this._changeInProgress ? Xb(this, Sb(b - f, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this; + } return this._isUTC ? f : Gb(this); } + function Ib(a, b) { return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset(); } + function Jb(a) { return this.utcOffset(0, a); } + function Kb(a) { return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Gb(this), "m")), this; } + function Lb() { if (null != this._tzm) + this.utcOffset(this._tzm, !1, !0); + else if ("string" == typeof this._i) { + var a = Eb($d, this._i); + null != a ? this.utcOffset(a) : this.utcOffset(0, !0); + } return this; } + function Mb(a) { return !!this.isValid() && (a = a ? tb(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0); } + function Nb() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); } + function Ob() { if (!f(this._isDSTShifted)) + return this._isDSTShifted; var a = {}; if (q(a, this), a = qb(a), a._a) { + var b = a._isUTC ? l(a._a) : tb(a._a); + this._isDSTShifted = this.isValid() && v(a._a, b.toArray()) > 0; + } + else + this._isDSTShifted = !1; return this._isDSTShifted; } + function Pb() { return !!this.isValid() && !this._isUTC; } + function Qb() { return !!this.isValid() && this._isUTC; } + function Rb() { return !!this.isValid() && (this._isUTC && 0 === this._offset); } + function Sb(a, b) { var c, d, e, f = a, h = null; return Bb(a) ? f = { ms: a._milliseconds, d: a._days, M: a._months } : g(a) ? (f = {}, b ? f[b] = a : f.milliseconds = a) : (h = Te.exec(a)) ? (c = "-" === h[1] ? -1 : 1, f = { y: 0, d: u(h[ge]) * c, h: u(h[he]) * c, m: u(h[ie]) * c, s: u(h[je]) * c, ms: u(Cb(1e3 * h[ke])) * c }) : (h = Ue.exec(a)) ? (c = "-" === h[1] ? -1 : 1, f = { y: Tb(h[2], c), M: Tb(h[3], c), w: Tb(h[4], c), d: Tb(h[5], c), h: Tb(h[6], c), m: Tb(h[7], c), s: Tb(h[8], c) }) : null == f ? f = {} : "object" == typeof f && ("from" in f || "to" in f) && (e = Vb(tb(f.from), tb(f.to)), f = {}, f.ms = e.milliseconds, f.M = e.months), d = new Ab(f), Bb(a) && j(a, "_locale") && (d._locale = a._locale), d; } + function Tb(a, b) { var c = a && parseFloat(a.replace(",", ".")); return (isNaN(c) ? 0 : c) * b; } + function Ub(a, b) { var c = { milliseconds: 0, months: 0 }; return c.months = b.month() - a.month() + 12 * (b.year() - a.year()), a.clone().add(c.months, "M").isAfter(b) && --c.months, c.milliseconds = +b - +a.clone().add(c.months, "M"), c; } + function Vb(a, b) { var c; return a.isValid() && b.isValid() ? (b = Fb(b, a), a.isBefore(b) ? c = Ub(a, b) : (c = Ub(b, a), c.milliseconds = -c.milliseconds, c.months = -c.months), c) : { milliseconds: 0, months: 0 }; } + function Wb(a, b) { return function (c, d) { var e, f; return null === d || isNaN(+d) || (y(b, "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), f = c, c = d, d = f), c = "string" == typeof c ? +c : c, e = Sb(c, d), Xb(this, e, a), this; }; } + function Xb(b, c, d, e) { var f = c._milliseconds, g = Cb(c._days), h = Cb(c._months); b.isValid() && (e = null == e || e, f && b._d.setTime(b._d.valueOf() + f * d), g && Q(b, "Date", P(b, "Date") + g * d), h && ja(b, P(b, "Month") + h * d), e && a.updateOffset(b, g || h)); } + function Yb(a, b) { var c = a.diff(b, "days", !0); return c < -6 ? "sameElse" : c < -1 ? "lastWeek" : c < 0 ? "lastDay" : c < 1 ? "sameDay" : c < 2 ? "nextDay" : c < 7 ? "nextWeek" : "sameElse"; } + function Zb(b, c) { var d = b || tb(), e = Fb(d, this).startOf("day"), f = a.calendarFormat(this, e) || "sameElse", g = c && (z(c[f]) ? c[f].call(this, d) : c[f]); return this.format(g || this.localeData().calendar(f, this, tb(d))); } + function $b() { return new r(this); } + function _b(a, b) { var c = s(a) ? a : tb(a); return !(!this.isValid() || !c.isValid()) && (b = K(f(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() > c.valueOf() : c.valueOf() < this.clone().startOf(b).valueOf()); } + function ac(a, b) { var c = s(a) ? a : tb(a); return !(!this.isValid() || !c.isValid()) && (b = K(f(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() < c.valueOf() : this.clone().endOf(b).valueOf() < c.valueOf()); } + function bc(a, b, c, d) { return d = d || "()", ("(" === d[0] ? this.isAfter(a, c) : !this.isBefore(a, c)) && (")" === d[1] ? this.isBefore(b, c) : !this.isAfter(b, c)); } + function cc(a, b) { var c, d = s(a) ? a : tb(a); return !(!this.isValid() || !d.isValid()) && (b = K(b || "millisecond"), "millisecond" === b ? this.valueOf() === d.valueOf() : (c = d.valueOf(), this.clone().startOf(b).valueOf() <= c && c <= this.clone().endOf(b).valueOf())); } + function dc(a, b) { return this.isSame(a, b) || this.isAfter(a, b); } + function ec(a, b) { return this.isSame(a, b) || this.isBefore(a, b); } + function fc(a, b, c) { var d, e, f, g; return this.isValid() ? (d = Fb(a, this), d.isValid() ? (e = 6e4 * (d.utcOffset() - this.utcOffset()), b = K(b), "year" === b || "month" === b || "quarter" === b ? (g = gc(this, d), "quarter" === b ? g /= 3 : "year" === b && (g /= 12)) : (f = this - d, g = "second" === b ? f / 1e3 : "minute" === b ? f / 6e4 : "hour" === b ? f / 36e5 : "day" === b ? (f - e) / 864e5 : "week" === b ? (f - e) / 6048e5 : f), c ? g : t(g)) : NaN) : NaN; } + function gc(a, b) { var c, d, e = 12 * (b.year() - a.year()) + (b.month() - a.month()), f = a.clone().add(e, "months"); return b - f < 0 ? (c = a.clone().add(e - 1, "months"), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, "months"), d = (b - f) / (c - f)), -(e + d) || 0; } + function hc() { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); } + function ic() { if (!this.isValid()) + return null; var a = this.clone().utc(); return a.year() < 0 || a.year() > 9999 ? X(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : z(Date.prototype.toISOString) ? this.toDate().toISOString() : X(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"); } + function jc() { if (!this.isValid()) + return "moment.invalid(/* " + this._i + " */)"; var a = "moment", b = ""; this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", b = "Z"); var c = "[" + a + '("]', d = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", e = "-MM-DD[T]HH:mm:ss.SSS", f = b + '[")]'; return this.format(c + d + e + f); } + function kc(b) { b || (b = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat); var c = X(this, b); return this.localeData().postformat(c); } + function lc(a, b) { return this.isValid() && (s(a) && a.isValid() || tb(a).isValid()) ? Sb({ to: this, from: a }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); } + function mc(a) { return this.from(tb(), a); } + function nc(a, b) { return this.isValid() && (s(a) && a.isValid() || tb(a).isValid()) ? Sb({ from: this, to: a }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); } + function oc(a) { return this.to(tb(), a); } + function pc(a) { var b; return void 0 === a ? this._locale._abbr : (b = bb(a), null != b && (this._locale = b), this); } + function qc() { return this._locale; } + function rc(a) { switch (a = K(a)) { + case "year": this.month(0); + case "quarter": + case "month": this.date(1); + case "week": + case "isoWeek": + case "day": + case "date": this.hours(0); + case "hour": this.minutes(0); + case "minute": this.seconds(0); + case "second": this.milliseconds(0); + } return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this; } + function sc(a) { return a = K(a), void 0 === a || "millisecond" === a ? this : ("date" === a && (a = "day"), this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms")); } + function tc() { return this._d.valueOf() - 6e4 * (this._offset || 0); } + function uc() { return Math.floor(this.valueOf() / 1e3); } + function vc() { return new Date(this.valueOf()); } + function wc() { var a = this; return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]; } + function xc() { var a = this; return { years: a.year(), months: a.month(), date: a.date(), hours: a.hours(), minutes: a.minutes(), seconds: a.seconds(), milliseconds: a.milliseconds() }; } + function yc() { return this.isValid() ? this.toISOString() : null; } + function zc() { return o(this); } + function Ac() { + return k({}, n(this)); + } + function Bc() { return n(this).overflow; } + function Cc() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } + function Dc(a, b) { U(0, [a, a.length], 0, b); } + function Ec(a) { return Ic.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy); } + function Fc(a) { return Ic.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4); } + function Gc() { return xa(this.year(), 1, 4); } + function Hc() { var a = this.localeData()._week; return xa(this.year(), a.dow, a.doy); } + function Ic(a, b, c, d, e) { var f; return null == a ? wa(this, d, e).year : (f = xa(a, d, e), b > f && (b = f), Jc.call(this, a, b, c, d, e)); } + function Jc(a, b, c, d, e) { var f = va(a, b, c, d, e), g = ta(f.year, 0, f.dayOfYear); return this.year(g.getUTCFullYear()), this.month(g.getUTCMonth()), this.date(g.getUTCDate()), this; } + function Kc(a) { return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3); } + function Lc(a) { var b = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; return null == a ? b : this.add(a - b, "d"); } + function Mc(a, b) { b[ke] = u(1e3 * ("0." + a)); } + function Nc() { return this._isUTC ? "UTC" : ""; } + function Oc() { return this._isUTC ? "Coordinated Universal Time" : ""; } + function Pc(a) { return tb(1e3 * a); } + function Qc() { return tb.apply(null, arguments).parseZone(); } + function Rc(a) { return a; } + function Sc(a, b, c, d) { var e = bb(), f = l().set(d, b); return e[c](f, a); } + function Tc(a, b, c) { if (g(a) && (b = a, a = void 0), a = a || "", null != b) + return Sc(a, b, c, "month"); var d, e = []; for (d = 0; d < 12; d++) + e[d] = Sc(a, d, c, "month"); return e; } + function Uc(a, b, c, d) { "boolean" == typeof a ? (g(b) && (c = b, b = void 0), b = b || "") : (b = a, c = b, a = !1, g(b) && (c = b, b = void 0), b = b || ""); var e = bb(), f = a ? e._week.dow : 0; if (null != c) + return Sc(b, (c + f) % 7, d, "day"); var h, i = []; for (h = 0; h < 7; h++) + i[h] = Sc(b, (h + f) % 7, d, "day"); return i; } + function Vc(a, b) { return Tc(a, b, "months"); } + function Wc(a, b) { return Tc(a, b, "monthsShort"); } + function Xc(a, b, c) { return Uc(a, b, c, "weekdays"); } + function Yc(a, b, c) { return Uc(a, b, c, "weekdaysShort"); } + function Zc(a, b, c) { return Uc(a, b, c, "weekdaysMin"); } + function $c() { var a = this._data; return this._milliseconds = df(this._milliseconds), this._days = df(this._days), this._months = df(this._months), a.milliseconds = df(a.milliseconds), a.seconds = df(a.seconds), a.minutes = df(a.minutes), a.hours = df(a.hours), a.months = df(a.months), a.years = df(a.years), this; } + function _c(a, b, c, d) { var e = Sb(b, c); return a._milliseconds += d * e._milliseconds, a._days += d * e._days, a._months += d * e._months, a._bubble(); } + function ad(a, b) { return _c(this, a, b, 1); } + function bd(a, b) { return _c(this, a, b, -1); } + function cd(a) { return a < 0 ? Math.floor(a) : Math.ceil(a); } + function dd() { var a, b, c, d, e, f = this._milliseconds, g = this._days, h = this._months, i = this._data; return f >= 0 && g >= 0 && h >= 0 || f <= 0 && g <= 0 && h <= 0 || (f += 864e5 * cd(fd(h) + g), g = 0, h = 0), i.milliseconds = f % 1e3, a = t(f / 1e3), i.seconds = a % 60, b = t(a / 60), i.minutes = b % 60, c = t(b / 60), i.hours = c % 24, g += t(c / 24), e = t(ed(g)), h += e, g -= cd(fd(e)), d = t(h / 12), h %= 12, i.days = g, i.months = h, i.years = d, this; } + function ed(a) { return 4800 * a / 146097; } + function fd(a) { return 146097 * a / 4800; } + function gd(a) { if (!this.isValid()) + return NaN; var b, c, d = this._milliseconds; if (a = K(a), "month" === a || "year" === a) + return b = this._days + d / 864e5, c = this._months + ed(b), "month" === a ? c : c / 12; switch (b = this._days + Math.round(fd(this._months)), a) { + case "week": return b / 7 + d / 6048e5; + case "day": return b + d / 864e5; + case "hour": return 24 * b + d / 36e5; + case "minute": return 1440 * b + d / 6e4; + case "second": return 86400 * b + d / 1e3; + case "millisecond": return Math.floor(864e5 * b) + d; + default: throw new Error("Unknown unit " + a); + } } + function hd() { return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * u(this._months / 12) : NaN; } + function id(a) { return function () { return this.as(a); }; } + function jd(a) { return a = K(a), this.isValid() ? this[a + "s"]() : NaN; } + function kd(a) { return function () { return this.isValid() ? this._data[a] : NaN; }; } + function ld() { return t(this.days() / 7); } + function md(a, b, c, d, e) { return e.relativeTime(b || 1, !!c, a, d); } + function nd(a, b, c) { var d = Sb(a).abs(), e = uf(d.as("s")), f = uf(d.as("m")), g = uf(d.as("h")), h = uf(d.as("d")), i = uf(d.as("M")), j = uf(d.as("y")), k = e <= vf.ss && ["s", e] || e < vf.s && ["ss", e] || f <= 1 && ["m"] || f < vf.m && ["mm", f] || g <= 1 && ["h"] || g < vf.h && ["hh", g] || h <= 1 && ["d"] || h < vf.d && ["dd", h] || i <= 1 && ["M"] || i < vf.M && ["MM", i] || j <= 1 && ["y"] || ["yy", j]; return k[2] = b, k[3] = +a > 0, k[4] = c, md.apply(null, k); } + function od(a) { return void 0 === a ? uf : "function" == typeof a && (uf = a, !0); } + function pd(a, b) { return void 0 !== vf[a] && (void 0 === b ? vf[a] : (vf[a] = b, "s" === a && (vf.ss = b - 1), !0)); } + function qd(a) { if (!this.isValid()) + return this.localeData().invalidDate(); var b = this.localeData(), c = nd(this, !a, b); return a && (c = b.pastFuture(+this, c)), b.postformat(c); } + function rd() { if (!this.isValid()) + return this.localeData().invalidDate(); var a, b, c, d = wf(this._milliseconds) / 1e3, e = wf(this._days), f = wf(this._months); a = t(d / 60), b = t(a / 60), d %= 60, a %= 60, c = t(f / 12), f %= 12; var g = c, h = f, i = e, j = b, k = a, l = d, m = this.asSeconds(); return m ? (m < 0 ? "-" : "") + "P" + (g ? g + "Y" : "") + (h ? h + "M" : "") + (i ? i + "D" : "") + (j || k || l ? "T" : "") + (j ? j + "H" : "") + (k ? k + "M" : "") + (l ? l + "S" : "") : "P0D"; } + var sd, td; + td = Array.prototype.some ? Array.prototype.some : function (a) { for (var b = Object(this), c = b.length >>> 0, d = 0; d < c; d++) + if (d in b && a.call(this, b[d], d, b)) + return !0; return !1; }; + var ud = td, vd = a.momentProperties = [], wd = !1, xd = {}; + a.suppressDeprecationWarnings = !1, a.deprecationHandler = null; + var yd; + yd = Object.keys ? Object.keys : function (a) { var b, c = []; for (b in a) + j(a, b) && c.push(b); return c; }; + var zd, Ad = yd, Bd = { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, Cd = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, Dd = "Invalid date", Ed = "%d", Fd = /\d{1,2}/, Gd = { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, Hd = {}, Id = {}, Jd = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, Kd = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, Ld = {}, Md = {}, Nd = /\d/, Od = /\d\d/, Pd = /\d{3}/, Qd = /\d{4}/, Rd = /[+-]?\d{6}/, Sd = /\d\d?/, Td = /\d\d\d\d?/, Ud = /\d\d\d\d\d\d?/, Vd = /\d{1,3}/, Wd = /\d{1,4}/, Xd = /[+-]?\d{1,6}/, Yd = /\d+/, Zd = /[+-]?\d+/, $d = /Z|[+-]\d\d:?\d\d/gi, _d = /Z|[+-]\d\d(?::?\d\d)?/gi, ae = /[+-]?\d+(\.\d{1,3})?/, be = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, ce = {}, de = {}, ee = 0, fe = 1, ge = 2, he = 3, ie = 4, je = 5, ke = 6, le = 7, me = 8; + zd = Array.prototype.indexOf ? Array.prototype.indexOf : function (a) { var b; for (b = 0; b < this.length; ++b) + if (this[b] === a) + return b; return -1; }; + var ne = zd; + U("M", ["MM", 2], "Mo", function () { return this.month() + 1; }), U("MMM", 0, 0, function (a) { return this.localeData().monthsShort(this, a); }), U("MMMM", 0, 0, function (a) { return this.localeData().months(this, a); }), J("month", "M"), M("month", 8), Z("M", Sd), Z("MM", Sd, Od), Z("MMM", function (a, b) { return b.monthsShortRegex(a); }), Z("MMMM", function (a, b) { return b.monthsRegex(a); }), ba(["M", "MM"], function (a, b) { b[fe] = u(a) - 1; }), ba(["MMM", "MMMM"], function (a, b, c, d) { var e = c._locale.monthsParse(a, d, c._strict); null != e ? b[fe] = e : n(c).invalidMonth = a; }); + var oe = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, pe = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), qe = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), re = be, se = be; + U("Y", 0, 0, function () { var a = this.year(); return a <= 9999 ? "" + a : "+" + a; }), U(0, ["YY", 2], 0, function () { return this.year() % 100; }), U(0, ["YYYY", 4], 0, "year"), U(0, ["YYYYY", 5], 0, "year"), U(0, ["YYYYYY", 6, !0], 0, "year"), J("year", "y"), M("year", 1), Z("Y", Zd), Z("YY", Sd, Od), Z("YYYY", Wd, Qd), Z("YYYYY", Xd, Rd), Z("YYYYYY", Xd, Rd), ba(["YYYYY", "YYYYYY"], ee), ba("YYYY", function (b, c) { c[ee] = 2 === b.length ? a.parseTwoDigitYear(b) : u(b); }), ba("YY", function (b, c) { c[ee] = a.parseTwoDigitYear(b); }), ba("Y", function (a, b) { b[ee] = parseInt(a, 10); }), a.parseTwoDigitYear = function (a) { return u(a) + (u(a) > 68 ? 1900 : 2e3); }; + var te = O("FullYear", !0); + U("w", ["ww", 2], "wo", "week"), U("W", ["WW", 2], "Wo", "isoWeek"), J("week", "w"), J("isoWeek", "W"), M("week", 5), M("isoWeek", 5), Z("w", Sd), Z("ww", Sd, Od), Z("W", Sd), Z("WW", Sd, Od), ca(["w", "ww", "W", "WW"], function (a, b, c, d) { b[d.substr(0, 1)] = u(a); }); + var ue = { dow: 0, doy: 6 }; + U("d", 0, "do", "day"), U("dd", 0, 0, function (a) { return this.localeData().weekdaysMin(this, a); }), U("ddd", 0, 0, function (a) { return this.localeData().weekdaysShort(this, a); }), U("dddd", 0, 0, function (a) { return this.localeData().weekdays(this, a); }), U("e", 0, 0, "weekday"), U("E", 0, 0, "isoWeekday"), J("day", "d"), J("weekday", "e"), J("isoWeekday", "E"), M("day", 11), M("weekday", 11), M("isoWeekday", 11), Z("d", Sd), Z("e", Sd), Z("E", Sd), Z("dd", function (a, b) { return b.weekdaysMinRegex(a); }), Z("ddd", function (a, b) { return b.weekdaysShortRegex(a); }), Z("dddd", function (a, b) { return b.weekdaysRegex(a); }), ca(["dd", "ddd", "dddd"], function (a, b, c, d) { var e = c._locale.weekdaysParse(a, d, c._strict); null != e ? b.d = e : n(c).invalidWeekday = a; }), ca(["d", "e", "E"], function (a, b, c, d) { b[d] = u(a); }); + var ve = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), we = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), xe = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), ye = be, ze = be, Ae = be; + U("H", ["HH", 2], 0, "hour"), U("h", ["hh", 2], 0, Ra), U("k", ["kk", 2], 0, Sa), U("hmm", 0, 0, function () { return "" + Ra.apply(this) + T(this.minutes(), 2); }), U("hmmss", 0, 0, function () { return "" + Ra.apply(this) + T(this.minutes(), 2) + T(this.seconds(), 2); }), U("Hmm", 0, 0, function () { return "" + this.hours() + T(this.minutes(), 2); }), U("Hmmss", 0, 0, function () { return "" + this.hours() + T(this.minutes(), 2) + T(this.seconds(), 2); }), Ta("a", !0), Ta("A", !1), J("hour", "h"), M("hour", 13), Z("a", Ua), Z("A", Ua), Z("H", Sd), Z("h", Sd), Z("k", Sd), Z("HH", Sd, Od), Z("hh", Sd, Od), Z("kk", Sd, Od), Z("hmm", Td), Z("hmmss", Ud), Z("Hmm", Td), Z("Hmmss", Ud), ba(["H", "HH"], he), ba(["k", "kk"], function (a, b, c) { var d = u(a); b[he] = 24 === d ? 0 : d; }), ba(["a", "A"], function (a, b, c) { c._isPm = c._locale.isPM(a), c._meridiem = a; }), ba(["h", "hh"], function (a, b, c) { b[he] = u(a), n(c).bigHour = !0; }), ba("hmm", function (a, b, c) { var d = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d)), n(c).bigHour = !0; }), ba("hmmss", function (a, b, c) { var d = a.length - 4, e = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d, 2)), b[je] = u(a.substr(e)), n(c).bigHour = !0; }), ba("Hmm", function (a, b, c) { var d = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d)); }), ba("Hmmss", function (a, b, c) { var d = a.length - 4, e = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d, 2)), b[je] = u(a.substr(e)); }); + var Be, Ce = /[ap]\.?m?\.?/i, De = O("Hours", !0), Ee = { calendar: Bd, longDateFormat: Cd, invalidDate: Dd, ordinal: Ed, dayOfMonthOrdinalParse: Fd, relativeTime: Gd, months: pe, monthsShort: qe, week: ue, weekdays: ve, weekdaysMin: xe, weekdaysShort: we, meridiemParse: Ce }, Fe = {}, Ge = {}, He = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Ie = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Je = /Z|[+-]\d\d(?::?\d\d)?/, Ke = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/]], Le = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], Me = /^\/?Date\((\-?\d+)/i, Ne = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/; + a.createFromInputFallback = x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function (a) { a._d = new Date(a._i + (a._useUTC ? " UTC" : "")); }), a.ISO_8601 = function () { }, a.RFC_2822 = function () { }; + var Oe = x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var a = tb.apply(null, arguments); return this.isValid() && a.isValid() ? a < this ? this : a : p(); }), Pe = x("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var a = tb.apply(null, arguments); return this.isValid() && a.isValid() ? a > this ? this : a : p(); }), Qe = function () { return Date.now ? Date.now() : +new Date; }, Re = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; + Db("Z", ":"), Db("ZZ", ""), Z("Z", _d), Z("ZZ", _d), ba(["Z", "ZZ"], function (a, b, c) { c._useUTC = !0, c._tzm = Eb(_d, a); }); + var Se = /([\+\-]|\d\d)/gi; + a.updateOffset = function () { }; + var Te = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/, Ue = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; + Sb.fn = Ab.prototype, Sb.invalid = zb; + var Ve = Wb(1, "add"), We = Wb(-1, "subtract"); + a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; + var Xe = x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function (a) { return void 0 === a ? this.localeData() : this.locale(a); }); + U(0, ["gg", 2], 0, function () { return this.weekYear() % 100; }), U(0, ["GG", 2], 0, function () { return this.isoWeekYear() % 100; }), Dc("gggg", "weekYear"), Dc("ggggg", "weekYear"), Dc("GGGG", "isoWeekYear"), Dc("GGGGG", "isoWeekYear"), J("weekYear", "gg"), J("isoWeekYear", "GG"), M("weekYear", 1), M("isoWeekYear", 1), Z("G", Zd), Z("g", Zd), Z("GG", Sd, Od), Z("gg", Sd, Od), Z("GGGG", Wd, Qd), Z("gggg", Wd, Qd), Z("GGGGG", Xd, Rd), Z("ggggg", Xd, Rd), ca(["gggg", "ggggg", "GGGG", "GGGGG"], function (a, b, c, d) { b[d.substr(0, 2)] = u(a); }), ca(["gg", "GG"], function (b, c, d, e) { c[e] = a.parseTwoDigitYear(b); }), U("Q", 0, "Qo", "quarter"), J("quarter", "Q"), M("quarter", 7), Z("Q", Nd), ba("Q", function (a, b) { b[fe] = 3 * (u(a) - 1); }), U("D", ["DD", 2], "Do", "date"), J("date", "D"), M("date", 9), Z("D", Sd), Z("DD", Sd, Od), Z("Do", function (a, b) { return a ? b._dayOfMonthOrdinalParse || b._ordinalParse : b._dayOfMonthOrdinalParseLenient; }), ba(["D", "DD"], ge), ba("Do", function (a, b) { b[ge] = u(a.match(Sd)[0], 10); }); + var Ye = O("Date", !0); + U("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), J("dayOfYear", "DDD"), M("dayOfYear", 4), Z("DDD", Vd), Z("DDDD", Pd), ba(["DDD", "DDDD"], function (a, b, c) { c._dayOfYear = u(a); }), U("m", ["mm", 2], 0, "minute"), J("minute", "m"), M("minute", 14), Z("m", Sd), Z("mm", Sd, Od), ba(["m", "mm"], ie); + var Ze = O("Minutes", !1); + U("s", ["ss", 2], 0, "second"), J("second", "s"), M("second", 15), Z("s", Sd), Z("ss", Sd, Od), ba(["s", "ss"], je); + var $e = O("Seconds", !1); + U("S", 0, 0, function () { return ~~(this.millisecond() / 100); }), U(0, ["SS", 2], 0, function () { return ~~(this.millisecond() / 10); }), U(0, ["SSS", 3], 0, "millisecond"), U(0, ["SSSS", 4], 0, function () { return 10 * this.millisecond(); }), U(0, ["SSSSS", 5], 0, function () { return 100 * this.millisecond(); }), U(0, ["SSSSSS", 6], 0, function () { return 1e3 * this.millisecond(); }), U(0, ["SSSSSSS", 7], 0, function () { return 1e4 * this.millisecond(); }), U(0, ["SSSSSSSS", 8], 0, function () { return 1e5 * this.millisecond(); }), U(0, ["SSSSSSSSS", 9], 0, function () { return 1e6 * this.millisecond(); }), J("millisecond", "ms"), M("millisecond", 16), Z("S", Vd, Nd), Z("SS", Vd, Od), Z("SSS", Vd, Pd); + var _e; + for (_e = "SSSS"; _e.length <= 9; _e += "S") + Z(_e, Yd); + for (_e = "S"; _e.length <= 9; _e += "S") + ba(_e, Mc); + var af = O("Milliseconds", !1); + U("z", 0, 0, "zoneAbbr"), U("zz", 0, 0, "zoneName"); + var bf = r.prototype; + bf.add = Ve, bf.calendar = Zb, bf.clone = $b, bf.diff = fc, bf.endOf = sc, bf.format = kc, bf.from = lc, bf.fromNow = mc, bf.to = nc, bf.toNow = oc, bf.get = R, bf.invalidAt = Bc, bf.isAfter = _b, bf.isBefore = ac, bf.isBetween = bc, bf.isSame = cc, bf.isSameOrAfter = dc, bf.isSameOrBefore = ec, bf.isValid = zc, bf.lang = Xe, bf.locale = pc, bf.localeData = qc, bf.max = Pe, bf.min = Oe, bf.parsingFlags = Ac, bf.set = S, bf.startOf = rc, bf.subtract = We, bf.toArray = wc, bf.toObject = xc, bf.toDate = vc, bf.toISOString = ic, bf.inspect = jc, bf.toJSON = yc, bf.toString = hc, bf.unix = uc, bf.valueOf = tc, bf.creationData = Cc, bf.year = te, bf.isLeapYear = ra, bf.weekYear = Ec, bf.isoWeekYear = Fc, bf.quarter = bf.quarters = Kc, bf.month = ka, bf.daysInMonth = la, bf.week = bf.weeks = Ba, bf.isoWeek = bf.isoWeeks = Ca, bf.weeksInYear = Hc, bf.isoWeeksInYear = Gc, bf.date = Ye, bf.day = bf.days = Ka, bf.weekday = La, bf.isoWeekday = Ma, bf.dayOfYear = Lc, bf.hour = bf.hours = De, bf.minute = bf.minutes = Ze, bf.second = bf.seconds = $e, bf.millisecond = bf.milliseconds = af, bf.utcOffset = Hb, bf.utc = Jb, bf.local = Kb, bf.parseZone = Lb, bf.hasAlignedHourOffset = Mb, bf.isDST = Nb, bf.isLocal = Pb, bf.isUtcOffset = Qb, bf.isUtc = Rb, bf.isUTC = Rb, bf.zoneAbbr = Nc, bf.zoneName = Oc, bf.dates = x("dates accessor is deprecated. Use date instead.", Ye), bf.months = x("months accessor is deprecated. Use month instead", ka), bf.years = x("years accessor is deprecated. Use year instead", te), bf.zone = x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", Ib), bf.isDSTShifted = x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Ob); + var cf = C.prototype; + cf.calendar = D, cf.longDateFormat = E, cf.invalidDate = F, cf.ordinal = G, cf.preparse = Rc, cf.postformat = Rc, cf.relativeTime = H, cf.pastFuture = I, cf.set = A, cf.months = fa, cf.monthsShort = ga, cf.monthsParse = ia, cf.monthsRegex = na, cf.monthsShortRegex = ma, cf.week = ya, cf.firstDayOfYear = Aa, cf.firstDayOfWeek = za, cf.weekdays = Fa, cf.weekdaysMin = Ha, cf.weekdaysShort = Ga, cf.weekdaysParse = Ja, cf.weekdaysRegex = Na, cf.weekdaysShortRegex = Oa, cf.weekdaysMinRegex = Pa, cf.isPM = Va, cf.meridiem = Wa, $a("en", { dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (a) { var b = a % 10, c = 1 === u(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th"; return a + c; } }), a.lang = x("moment.lang is deprecated. Use moment.locale instead.", $a), a.langData = x("moment.langData is deprecated. Use moment.localeData instead.", bb); + var df = Math.abs, ef = id("ms"), ff = id("s"), gf = id("m"), hf = id("h"), jf = id("d"), kf = id("w"), lf = id("M"), mf = id("y"), nf = kd("milliseconds"), of = kd("seconds"), pf = kd("minutes"), qf = kd("hours"), rf = kd("days"), sf = kd("months"), tf = kd("years"), uf = Math.round, vf = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 }, wf = Math.abs, xf = Ab.prototype; + return xf.isValid = yb, xf.abs = $c, xf.add = ad, xf.subtract = bd, xf.as = gd, xf.asMilliseconds = ef, xf.asSeconds = ff, xf.asMinutes = gf, xf.asHours = hf, xf.asDays = jf, xf.asWeeks = kf, xf.asMonths = lf, xf.asYears = mf, xf.valueOf = hd, xf._bubble = dd, xf.get = jd, xf.milliseconds = nf, xf.seconds = of, xf.minutes = pf, xf.hours = qf, xf.days = rf, xf.weeks = ld, xf.months = sf, xf.years = tf, xf.humanize = qd, xf.toISOString = rd, xf.toString = rd, xf.toJSON = rd, xf.locale = pc, xf.localeData = qc, xf.toIsoString = x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", rd), xf.lang = Xe, U("X", 0, 0, "unix"), U("x", 0, 0, "valueOf"), Z("x", Zd), Z("X", ae), ba("X", function (a, b, c) { c._d = new Date(1e3 * parseFloat(a, 10)); }), ba("x", function (a, b, c) { c._d = new Date(u(a)); }), a.version = "2.18.1", b(tb), a.fn = bf, a.min = vb, a.max = wb, a.now = Qe, a.utc = l, a.unix = Pc, a.months = Vc, a.isDate = h, a.locale = $a, a.invalid = p, a.duration = Sb, a.isMoment = s, a.weekdays = Xc, a.parseZone = Qc, a.localeData = bb, a.isDuration = Bb, a.monthsShort = Wc, a.weekdaysMin = Zc, a.defineLocale = _a, a.updateLocale = ab, a.locales = cb, a.weekdaysShort = Yc, a.normalizeUnits = K, a.relativeTimeRounding = od, a.relativeTimeThreshold = pd, a.calendarFormat = Yb, a.prototype = bf, a; + }); +}); +var moment_ = Object.freeze({ + default: moment_min, + __moduleExports: moment_min +}); +var moment = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateUtcFilterCondition = function (options) { + if (!options.filterSearchType) { + throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }'); + } + var /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType); + if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) { + return true; + } + var /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true); + var /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; +var moment$1 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var DATE_FORMAT = 'YYYY-MM-DD'; +var dateIsoFilterCondition = function (options) { + if (!moment$1(options.cellValue, DATE_FORMAT, true).isValid() || !moment$1(options.searchTerm, DATE_FORMAT, true).isValid()) { + return true; + } + var /** @type {?} */ dateCell = moment$1(options.cellValue, DATE_FORMAT, true); + var /** @type {?} */ dateSearch = moment$1(options.searchTerm, DATE_FORMAT, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; +var moment$2 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var DATE_FORMAT$1 = 'M/D/YY'; +var dateUsShortFilterCondition = function (options) { + if (!moment$2(options.cellValue, DATE_FORMAT$1, true).isValid() || !moment$2(options.searchTerm, DATE_FORMAT$1, true).isValid()) { + return true; + } + var /** @type {?} */ dateCell = moment$2(options.cellValue, DATE_FORMAT$1, true); + var /** @type {?} */ dateSearch = moment$2(options.searchTerm, DATE_FORMAT$1, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; +var moment$3 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var DATE_FORMAT$2 = 'M/D/YYYY'; +var dateUsFilterCondition = function (options) { + if (!moment$3(options.cellValue, DATE_FORMAT$2, true).isValid() || !moment$3(options.searchTerm, DATE_FORMAT$2, true).isValid()) { + return true; + } + var /** @type {?} */ dateCell = moment$3(options.cellValue, DATE_FORMAT$2, true); + var /** @type {?} */ dateSearch = moment$3(options.searchTerm, DATE_FORMAT$2, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; +var moment$4 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateFilterCondition = function (options) { + var /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso; + var /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType); + if (!moment$4(options.cellValue, moment$4.ISO_8601).isValid() || !moment$4(options.searchTerm, searchDateFormat, true).isValid()) { + return true; + } + var /** @type {?} */ dateCell = moment$4(options.cellValue); + var /** @type {?} */ dateSearch = moment$4(options.searchTerm); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; +var numberFilterCondition = function (options) { + return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm)); +}; +var stringFilterCondition = function (options) { + // make sure the cell value is a string by casting it + options.cellValue = options.cellValue.toString(); + if (options.operator === '*') { + return options.cellValue.startsWith(options.searchTerm); + } + else if (options.operator === '' && options.cellValueLastChar === '*') { + return options.cellValue.endsWith(options.searchTerm); + } + else if (options.operator === '') { + return options.cellValue.includes(options.searchTerm); + } + return testFilterCondition(options.operator || '==', options.cellValue.toLowerCase(), options.searchTerm.toLowerCase()); +}; +var executeMappedCondition = function (options) { + // execute the mapped type, or default to String condition check + switch (options.fieldType) { + case FieldType.boolean: + return booleanFilterCondition(options); + case FieldType.date: + return dateFilterCondition(options); + case FieldType.dateUtc: + return dateUtcFilterCondition(options); + case FieldType.dateIso: + return dateIsoFilterCondition(options); + case FieldType.dateUs: + case FieldType.dateTimeUs: + return dateUsFilterCondition(options); + case FieldType.dateUsShort: + case FieldType.dateTimeUsShort: + return dateUsShortFilterCondition(options); + case FieldType.number: + return numberFilterCondition(options); + case FieldType.string: + default: + return stringFilterCondition(options); + } +}; +var FilterConditions = { + executeMappedCondition: executeMappedCondition, + booleanFilter: booleanFilterCondition, + dateFilter: dateFilterCondition, + dateIsoFilter: dateIsoFilterCondition, + dateUtcFilter: dateUtcFilterCondition, + dateUsFilter: dateUsFilterCondition, + dateUsShortFilter: dateUsShortFilterCondition, + numberFilter: numberFilterCondition, + stringFilter: stringFilterCondition, + testFilter: testFilterCondition +}; +var inputFilterTemplate = function (searchTerm, columnDef) { + return ""; +}; +var selectFilterTemplate = function (searchTerm, columnDef) { + if (!columnDef.filter.selectOptions) { + throw new Error("SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')"); + } + var /** @type {?} */ options = ''; + columnDef.filter.selectOptions.forEach(function (option) { + options += ""; + }); + return ""; +}; +var FilterTemplates = { + input: inputFilterTemplate, + select: selectFilterTemplate +}; +var checkboxFormatter = function (row, cell, value, columnDef, dataContext) { return value ? '☑' : ''; }; +var checkmarkFormatter = function (row, cell, value, columnDef, dataContext) { return value ? "" : ''; }; +var moment$5 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateIsoFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$5(value).format('YYYY-MM-DD') : ''; }; +var moment$6 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateTimeIsoAmPmFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$6(value).format('YYYY-MM-DD h:mm:ss a') : ''; }; +var moment$7 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateTimeUsAmPmFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$7(value).format('MM/DD/YYYY h:mm:ss a') : ''; }; +var moment$8 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateTimeUsFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$8(value).format('MM/DD/YYYY hh:mm:ss') : ''; }; +var moment$9 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateUsFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$9(value).format('MM/DD/YYYY') : ''; }; +var percentCompleteFormatter = function (row, cell, value, columnDef, dataContext) { + if (value === null || value === '') { + return '-'; + } + else if (value < 50) { + return "" + value + "%"; + } + else { + return "" + value + "%"; + } +}; +var percentCompleteBarFormatter = function (row, cell, value, columnDef, dataContext) { + if (value === null || value === '') { + return ''; + } + var /** @type {?} */ color; + if (value < 30) { + color = 'red'; + } + else if (value < 70) { + color = 'silver'; + } + else { + color = 'green'; + } + return ""; +}; +var progressBarFormatter = function (row, cell, value, columnDef, dataContext) { + if (value === null || value === '') { + return ''; + } + var /** @type {?} */ color; + if (value < 30) { + color = 'danger'; + } + else if (value < 70) { + color = 'warning'; + } + else { + color = 'success'; + } + return "
\n
\n " + value + "%\n
\n
"; +}; +var yesNoFormatter = function (row, cell, value, columnDef, dataContext) { return value ? 'Yes' : 'No'; }; +// import { Group, GroupTotals } from '../core' +// import { Item } from '../dataview' +/* +export interface GroupFormatter { + (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string +} + +export interface GroupTotalsFormatter { + (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string +} +*/ +var Formatters = { + checkbox: checkboxFormatter, + checkmark: checkmarkFormatter, + dateIso: dateIsoFormatter, + dateTimeIso: dateIsoFormatter, + dateTimeIsoAmPm: dateTimeIsoAmPmFormatter, + dateUs: dateUsFormatter, + dateTimeUs: dateTimeUsFormatter, + dateTimeUsAmPm: dateTimeUsAmPmFormatter, + percentComplete: percentCompleteFormatter, + percentCompleteBar: percentCompleteBarFormatter, + progressBar: progressBarFormatter, + yesNoFormatter: yesNoFormatter +}; +var moment$10 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var DATE_FORMAT$3 = 'M/D/YY'; +var dateUsShortSorter = function (value1, value2, sortDirection) { + if (!moment$10(value1, DATE_FORMAT$3, true).isValid() || !moment$10(value2, DATE_FORMAT$3, true).isValid()) { + return 0; + } + var /** @type {?} */ date1 = moment$10(value1, DATE_FORMAT$3, true); + var /** @type {?} */ date2 = moment$10(value2, DATE_FORMAT$3, true); + var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; +var moment$11 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var dateSorter = function (value1, value2, sortDirection) { + if (!moment$11(value1, moment$11.ISO_8601).isValid() || !moment$11(value2, moment$11.ISO_8601, true).isValid()) { + return 0; + } + var /** @type {?} */ date1 = moment$11(value1); + var /** @type {?} */ date2 = moment$11(value2); + var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; +var moment$12 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var DATE_FORMAT$4 = 'YYYY-MM-DD'; +var dateIsoSorter = function (value1, value2, sortDirection) { + if (!moment$12(value1, DATE_FORMAT$4, true).isValid() || !moment$12(value2, DATE_FORMAT$4, true).isValid()) { + return 0; + } + var /** @type {?} */ date1 = moment$12(value1, DATE_FORMAT$4, true); + var /** @type {?} */ date2 = moment$12(value2, DATE_FORMAT$4, true); + var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; +var moment$13 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var DATE_FORMAT$5 = 'M/D/YYYY'; +var dateUsSorter = function (value1, value2, sortDirection) { + if (!moment$13(value1, DATE_FORMAT$5, true).isValid() || !moment$13(value2, DATE_FORMAT$5, true).isValid()) { + return 0; + } + var /** @type {?} */ date1 = moment$13(value1, DATE_FORMAT$5, true); + var /** @type {?} */ date2 = moment$13(value2, DATE_FORMAT$5, true); + var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; +var numericSorter = function (value1, value2, sortDirection) { + var /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1); + var /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2); + return sortDirection * (x === y ? 0 : (x > y ? 1 : -1)); +}; +var stringSorter = function (value1, value2, sortDirection) { + return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1)); +}; +var Sorters = { + date: dateSorter, + dateIso: dateIsoSorter, + dateUs: dateUsSorter, + dateUsShort: dateUsShortSorter, + numeric: numericSorter, + string: stringSorter +}; +var FilterService = /** @class */ (function () { + function FilterService() { + } + /** + * @param {?} grid + * @param {?} gridOptions + * @param {?} columnDefinitions + * @param {?} columnFilters + * @return {?} + */ + FilterService.prototype.init = function (grid, gridOptions, columnDefinitions, columnFilters) { + this._columnDefinitions = columnDefinitions; + this._columnFilters = columnFilters; + this._gridOptions = gridOptions; + this._grid = grid; + }; + /** + * Attach a backend filter hook to the grid + * @return {?} + */ + FilterService.prototype.attachBackendOnFilter = function () { + this.subscriber = new Slick.Event(); + this.subscriber.subscribe(this._gridOptions.onFilterChanged); + this.addFilterTemplateToHeaderRow(); + }; + /** + * @param {?} operator + * @param {?} value1 + * @param {?} value2 + * @return {?} + */ + FilterService.prototype.testFilterCondition = function (operator, value1, value2) { + switch (operator) { + case '<': return (value1 < value2) ? true : false; + case '<=': return (value1 <= value2) ? true : false; + case '>': return (value1 > value2) ? true : false; + case '>=': return (value1 >= value2) ? true : false; + case '!=': + case '<>': return (value1 !== value2) ? true : false; + case '=': + case '==': return (value1 === value2) ? true : false; + } + }; + /** + * Attach a local filter hook to the grid + * @param {?} dataView + * @return {?} + */ + FilterService.prototype.attachLocalOnFilter = function (dataView) { + this._dataView = dataView; + this.subscriber = new Slick.Event(); + dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid }); + dataView.setFilter(this.customFilter); + this.subscriber.subscribe(function (e, args) { + var /** @type {?} */ columnId = args.columnId; + if (columnId != null) { + dataView.refresh(); + } + }); + this.addFilterTemplateToHeaderRow(); + }; + /** + * @param {?} item + * @param {?} args + * @return {?} + */ + FilterService.prototype.customFilter = function (item, args) { + for (var _g = 0, _h = Object.keys(args.columnFilters); _g < _h.length; _g++) { + var columnId = _h[_g]; + var /** @type {?} */ columnFilter = args.columnFilters[columnId]; + var /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId); + var /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex]; + var /** @type {?} */ fieldType = columnDef.type || FieldType.string; + var /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null; + var /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null; + var /** @type {?} */ cellValue = item[columnDef.field]; + var /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; + if (typeof fieldSearchValue === 'undefined') { + fieldSearchValue = ''; + } + fieldSearchValue = '' + fieldSearchValue; // make sure it's a string + var /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) + var /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); + var /** @type {?} */ searchTerm = (!!matches) ? matches[2] : ''; + var /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; + // no need to query if search value is empty + if (searchTerm === '') { + return true; + } + if (typeof cellValue === 'number') { + cellValue = cellValue.toString(); + } + var /** @type {?} */ conditionOptions = { + fieldType: fieldType, + searchTerm: searchTerm, + cellValue: cellValue, + operator: operator, + cellValueLastChar: lastValueChar, + filterSearchType: filterSearchType + }; + if (conditionalFilterFn && typeof conditionalFilterFn === 'function') { + conditionalFilterFn(conditionOptions); + } + if (!FilterConditions.executeMappedCondition(conditionOptions)) { + return false; + } + } + return true; + }; + /** + * @return {?} + */ + FilterService.prototype.destroy = function () { + this.subscriber.unsubscribe(); + }; + /** + * @param {?} e + * @param {?} args + * @return {?} + */ + FilterService.prototype.callbackSearchEvent = function (e, args) { + this._columnFilters[args.columnDef.id] = { + columnId: args.columnDef.id, + columnDef: args.columnDef, + searchTerm: e.target.value + }; + this.triggerEvent(this.subscriber, { + columnId: args.columnDef.id, + columnDef: args.columnDef, + columnFilters: this._columnFilters, + searchTerm: e.target.value, + grid: this._grid + }, e); + }; + /** + * @return {?} + */ + FilterService.prototype.addFilterTemplateToHeaderRow = function () { + var _this = this; + var _loop_1 = function (i) { + if (this_1._columnDefinitions[i].id !== 'selector' && this_1._columnDefinitions[i].filterable) { + var /** @type {?} */ filterTemplate = ''; + var /** @type {?} */ elm = null; + var /** @type {?} */ header = void 0; + var /** @type {?} */ columnDef_1 = this_1._columnDefinitions[i]; + var /** @type {?} */ listTerm = (columnDef_1.filter && columnDef_1.filter.listTerm) ? columnDef_1.filter.listTerm : null; + var /** @type {?} */ searchTerm = (columnDef_1.filter && columnDef_1.filter.searchTerm) ? columnDef_1.filter.searchTerm : ''; + // keep the filter in a columnFilters for later reference + this_1.keepColumnFilters(searchTerm, listTerm, columnDef_1); + if (!columnDef_1.filter) { + searchTerm = (columnDef_1.filter && columnDef_1.filter.searchTerm) ? columnDef_1.filter.searchTerm : null; + filterTemplate = FilterTemplates.input(searchTerm, columnDef_1); + } + else { + // custom Select template + if (columnDef_1.filter.type === FormElementType.select) { + filterTemplate = FilterTemplates.select(searchTerm, columnDef_1); + } + } + // create the DOM Element + header = this_1._grid.getHeaderRowColumn(columnDef_1.id); + $(header).empty(); + elm = $(filterTemplate); + elm.val(searchTerm); + elm.data('columnId', columnDef_1.id); + if (elm && typeof elm.appendTo === 'function') { + elm.appendTo(header); + } + // depending on the DOM Element type, we will watch the corrent event + var /** @type {?} */ filterType = (columnDef_1.filter && columnDef_1.filter.type) ? columnDef_1.filter.type : FormElementType.input; + switch (filterType) { + case FormElementType.select: + case FormElementType.multiSelect: + elm.change(function (e) { return _this.callbackSearchEvent(e, { columnDef: columnDef_1 }); }); + break; + case FormElementType.input: + default: + elm.keyup(function (e) { return _this.callbackSearchEvent(e, { columnDef: columnDef_1 }); }); + break; + } + } + }; + var this_1 = this; + for (var /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) { + _loop_1(/** @type {?} */ i); + } + }; + /** + * @param {?} searchTerm + * @param {?} listTerm + * @param {?} columnDef + * @return {?} + */ + FilterService.prototype.keepColumnFilters = function (searchTerm, listTerm, columnDef) { + if (searchTerm) { + this._columnFilters[columnDef.id] = { + columnId: columnDef.id, + columnDef: columnDef, + searchTerm: searchTerm + }; + if (listTerm) { + this._columnFilters.listTerm = listTerm; + } + } + }; + /** + * @param {?} evt + * @param {?} args + * @param {?} e + * @return {?} + */ + FilterService.prototype.triggerEvent = function (evt, args, e) { + e = e || new Slick.EventData(); + return evt.notify(args, e, args.grid); + }; + return FilterService; +}()); +FilterService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +FilterService.ctorParameters = function () { return []; }; +var MouseService = /** @class */ (function () { + function MouseService() { + } + /** + * @param {?} grid + * @return {?} + */ + MouseService.prototype.attachOnMouseHover = function (grid) { + grid.onMouseEnter.subscribe(function (e) { + var /** @type {?} */ cell = grid.getCellFromEvent(e); + if (cell && cell.row >= 0) { + grid.setSelectedRows([cell.row]); + e.preventDefault(); + } + }); + grid.onMouseLeave.subscribe(function (e) { + grid.setSelectedRows([]); + e.preventDefault(); + }); + }; + return MouseService; +}()); +// global constants, height/width are in pixels +var DATAGRID_MIN_HEIGHT = 180; +var DATAGRID_MIN_WIDTH = 300; +var DATAGRID_BOTTOM_PADDING = 20; +var DATAGRID_PAGINATION_HEIGHT = 35; +var ResizerService = /** @class */ (function () { + /** + * @param {?} router + */ + function ResizerService(router$$1) { + this.router = router$$1; + } + /** + * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space + * Options: we could also provide a % factor to resize on each height/width independently + * @param {?} grid + * @param {?} gridOptions + * @return {?} + */ + ResizerService.prototype.attachAutoResizeDataGrid = function (grid, gridOptions) { + var _this = this; + // if we can't find the grid to resize, return without attaching anything + var /** @type {?} */ gridDomElm = $("#" + gridOptions.gridId); + if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') { + return null; + } + // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load) + this.resizeGrid(grid, gridOptions); + // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load + // -- attach auto-resize to Window object only if it exist + $(window).on('resize.grid', function () { + _this.resizeGrid(grid, gridOptions); + }); + // destroy the resizer on route change + this.router.events.subscribe(function (event) { + _this.destroy(); + }); + }; + /** + * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation + * object gridOptions + * @param {?} gridOptions + * @return {?} + */ + ResizerService.prototype.calculateGridNewDimensions = function (gridOptions) { + var /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING; + if (bottomPadding && gridOptions.enablePagination) { + bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding + } + if (typeof $("#" + gridOptions.gridId).offset !== 'function') { + return; + } + var /** @type {?} */ availableHeight = $(window).height() - $("#" + gridOptions.gridId).offset().top - bottomPadding; + var /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $("#" + gridOptions.autoResize.containerId).width() : $("#" + gridOptions.gridContainerId).width(); + var /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT; + var /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH; + var /** @type {?} */ newHeight = availableHeight; + var /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth; + if (newHeight < minHeight) { + newHeight = minHeight; + } + if (newWidth < minWidth) { + newWidth = minWidth; + } + return { + height: newHeight, + width: newWidth + }; + }; + /** + * Destroy function when element is destroyed + * @return {?} + */ + ResizerService.prototype.destroy = function () { + $(window).trigger('resize.grid').off('resize'); + }; + /** + * Resize the datagrid to fit the browser height & width + * @param {?} grid + * @param {?} gridOptions + * @param {?=} newSizes + * @return {?} + */ + ResizerService.prototype.resizeGrid = function (grid, gridOptions, newSizes) { + // calculate new available sizes but with minimum height of 220px + newSizes = newSizes || this.calculateGridNewDimensions(gridOptions); + if (newSizes) { + // apply these new height/width to the datagrid + $("#" + gridOptions.gridId).height(newSizes.height); + $("#" + gridOptions.gridId).width(newSizes.width); + $("#" + gridOptions.gridContainerId).height(newSizes.height); + $("#" + gridOptions.gridContainerId).width(newSizes.width); + // resize the slickgrid canvas on all browser except some IE versions + // exclude all IE below IE11 + // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape' + if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) { + grid.resizeCanvas(); + } + // also call the grid auto-size columns so that it takes available when going bigger + grid.autosizeColumns(); + } + }; + return ResizerService; +}()); +ResizerService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +ResizerService.ctorParameters = function () { return [ + { type: Router, }, +]; }; +var SortService = /** @class */ (function () { + function SortService() { + } + /** + * Attach a backend sort (single/multi) hook to the grid + * @param {?} grid SlickGrid Grid object + * @param {?} gridOptions Grid Options object + * @return {?} + */ + SortService.prototype.attachBackendOnSort = function (grid, gridOptions) { + this.subscriber = grid.onSort; + this.subscriber.subscribe(gridOptions.onSortChanged); + }; + /** + * Attach a local sort (single/multi) hook to the grid + * @param {?} grid SlickGrid Grid object + * @param {?} gridOptions Grid Options object + * @param {?} dataView + * @return {?} + */ + SortService.prototype.attachLocalOnSort = function (grid, gridOptions, dataView) { + this.subscriber = grid.onSort; + this.subscriber.subscribe(function (e, args) { + // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after + // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object + var /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortAsc: args.sortAsc, sortCol: args.sortCol }); + dataView.sort(function (dataRow1, dataRow2) { + for (var /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) { + var /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1; + var /** @type {?} */ sortField = sortColumns[i].sortCol.field; + var /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string'; + var /** @type {?} */ value1 = dataRow1[sortField]; + var /** @type {?} */ value2 = dataRow2[sortField]; + var /** @type {?} */ result = 0; + switch (fieldType) { + case FieldType.number: + result = Sorters.numeric(value1, value2, sortDirection); + break; + case FieldType.date: + result = Sorters.date(value1, value2, sortDirection); + break; + case FieldType.dateIso: + result = Sorters.dateIso(value1, value2, sortDirection); + break; + case FieldType.dateUs: + result = Sorters.dateUs(value1, value2, sortDirection); + break; + case FieldType.dateUsShort: + result = Sorters.dateUsShort(value1, value2, sortDirection); + break; + default: + result = Sorters.string(value1, value2, sortDirection); + break; + } + if (result !== 0) { + return result; + } + } + return 0; + }); + grid.invalidate(); + grid.render(); + }); + }; + /** + * @return {?} + */ + SortService.prototype.destroy = function () { + this.subscriber.unsubscribe(); + }; + return SortService; +}()); +SortService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +SortService.ctorParameters = function () { return []; }; +"use strict"; +//===================================================== +//============================ parce properties to find +//===================================================== +function parceFind(_levelA) { + //+++++++++++++++++++++++++++++++++++ work over Array + //++++++++++++++++++++++++++++++++++++++++++++++++++++ + var propsA = _levelA.map(function (currentValue, index) { + var itemX = _levelA[index]; + if (itemX instanceof Query) { + return itemX.toString(); + } + else if (!Array.isArray(itemX) && "object" === typeof itemX) { + var propsA_1 = Object.keys(itemX); + if (1 !== propsA_1.length) { + throw new RangeError("Alias objects should only have one value. was passed: " + JSON.stringify(itemX)); + } + var propS = propsA_1[0]; + var item = itemX[propS]; + // contributor: https://github.com/charlierudolph/graphql-query-builder/commit/878328e857e92d140f5ba6f7cfe07837620ec490 + if (Array.isArray(item)) { + return new Query(propS).find(item); + } + return propS + " : " + item + " "; + } + else if ("string" === typeof itemX) { + return itemX; + } + else { + throw new RangeError("cannot handle Find value of " + itemX); + } + }); + return propsA.join(","); +} +//===================================================== +//=================================== get GraphQL Value +//===================================================== +function getGraphQLValue(value) { + if ("string" === typeof value) { + value = JSON.stringify(value); + } + else if (Array.isArray(value)) { + value = value.map(function (item) { + return getGraphQLValue(item); + }).join(); + value = "[" + value + "]"; + } + else if ("object" === typeof value) { + /*if (value.toSource) + value = value.toSource().slice(2,-2); + else*/ + value = objectToString(value); + //console.error("No toSource!!",value); + } + return value; +} +function objectToString(obj) { + var sourceA = []; + for (var prop in obj) { + if ("function" === typeof obj[prop]) { + continue; + } + // if ("object" === typeof obj[prop]) { + sourceA.push(prop + ":" + getGraphQLValue(obj[prop])); + // } else { + // sourceA.push(`${prop}:${obj[prop]}`); + // } + } + return "{" + sourceA.join() + "}"; +} +//===================================================== +//========================================= Query Class +//===================================================== +function Query(_fnNameS, _aliasS_OR_Filter) { + var _this = this; + this.fnNameS = _fnNameS; + this.headA = []; + this.filter = function (filtersO) { + for (var propS in filtersO) { + if ("function" === typeof filtersO[propS]) { + continue; + } + var val = getGraphQLValue(filtersO[propS]); + if ("{}" === val) { + continue; + } + _this.headA.push(propS + ":" + val); + } + return _this; + }; + if ("string" === typeof _aliasS_OR_Filter) { + this.aliasS = _aliasS_OR_Filter; + } + else if ("object" === typeof _aliasS_OR_Filter) { + this.filter(_aliasS_OR_Filter); + } + else if (undefined === _aliasS_OR_Filter && 2 === arguments.length) { + throw new TypeError("You have passed undefined as Second argument to 'Query'"); + } + else if (undefined !== _aliasS_OR_Filter) { + throw new TypeError("Second argument to 'Query' should be an alias name(String) or filter arguments(Object). was passed " + _aliasS_OR_Filter); + } + this.setAlias = function (_aliasS) { + _this.aliasS = _aliasS; + return _this; + }; + this.find = function (findA) { + if (!findA) { + throw new TypeError("find value can not be >>falsy<<"); + } + // if its a string.. it may have other values + // else it sould be an Object or Array of maped values + this.bodyS = parceFind((Array.isArray(findA)) ? findA : Array.from(arguments)); + return this; + }; +} +//===================================================== +//===================================== Query prototype +//===================================================== +Query.prototype = { + toString: function () { + if (undefined === this.bodyS) { + throw new ReferenceError("return properties are not defined. use the 'find' function to defined them"); + } + return ((this.aliasS) ? (this.aliasS + ":") : "") + " " + this.fnNameS + " " + ((0 < this.headA.length) ? "(" + this.headA.join(",") + ")" : "") + " { " + this.bodyS + " }"; + } +}; +var graphqlQueryBuilder = Query; +var GraphqlService = /** @class */ (function () { + function GraphqlService() { + this.serviceOptions = {}; + } + /** + * Build the GraphQL query, since the service include/exclude cursor, the output query will be different. + * @param {?=} serviceOptions GraphqlServiceOption + * @return {?} + */ + GraphqlService.prototype.buildQuery = function (serviceOptions) { + if (!this.serviceOptions.datasetName || !this.serviceOptions.dataFilters) { + throw new Error('GraphQL Service requires "datasetName" & "dataFilters" properties for it to work'); + } + var /** @type {?} */ pageFilterQb = new graphqlQueryBuilder(this.serviceOptions.datasetName); + var /** @type {?} */ pageInfoQb = new graphqlQueryBuilder('pageInfo'); + var /** @type {?} */ dataQb = (this.serviceOptions.isWithCursor) ? new graphqlQueryBuilder('edges') : new graphqlQueryBuilder('nodes'); + if (this.serviceOptions.isWithCursor) { + pageInfoQb.find('hasNextPage', 'endCursor'); + dataQb.find(['cursor', { 'node': this.serviceOptions.dataFilters }]); + } + else { + pageInfoQb.find('hasNextPage'); + dataQb.find(this.serviceOptions.dataFilters); + } + pageFilterQb.find(['totalCount', pageInfoQb, dataQb]); + pageFilterQb.filter(this.serviceOptions.paginationOptions); + return pageFilterQb.toString(); + }; + /** + * @param {?=} serviceOptions + * @return {?} + */ + GraphqlService.prototype.initOptions = function (serviceOptions) { + this.serviceOptions = serviceOptions || {}; + }; + /** + * @param {?} fieldName + * @return {?} + */ + GraphqlService.prototype.removeColumnFilter = function (fieldName) { + }; + /** + * @return {?} + */ + GraphqlService.prototype.resetPaginationOptions = function () { + var /** @type {?} */ paginationOptions; + if (this.serviceOptions.isWithCursor) { + // first, last, after, before + paginationOptions = { + after: '', + before: undefined, + last: undefined + }; + } + else { + // first, last, offset + paginationOptions = { + offset: 0 + }; + } + this.updateOptions({ paginationOptions: paginationOptions }); + }; + /** + * @param {?=} serviceOptions + * @return {?} + */ + GraphqlService.prototype.updateOptions = function (serviceOptions) { + this.serviceOptions = Object.assign({}, this.serviceOptions, serviceOptions); + }; + /** + * @param {?} fieldName + * @param {?} value + * @param {?=} terms + * @return {?} + */ + GraphqlService.prototype.saveColumnFilter = function (fieldName, value, terms) { + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GraphqlService.prototype.onFilterChanged = function (event, args) { + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GraphqlService.prototype.onPaginationChanged = function (event, args) { + var /** @type {?} */ paginationOptions; + if (this.serviceOptions.isWithCursor) { + paginationOptions = { + first: args.pageSize + }; + } + else { + paginationOptions = { + first: args.pageSize, + offset: (args.newPage - 1) * args.pageSize + }; + } + this.updateOptions({ paginationOptions: paginationOptions }); + // build the OData query which we will use in the WebAPI callback + return this.buildQuery(); + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GraphqlService.prototype.onSortChanged = function (event, args) { + // will use sorting as per a FB suggestion + // https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222 + }; + return GraphqlService; +}()); +String.format = function (format, args) { + // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1); + return format.replace(/{(\d+)}/g, function (match, number) { + return (typeof args[number] !== 'undefined') ? args[number] : match; + }); +}; +String.padZero = function (length) { + var /** @type {?} */ s = this; + while (s.length < length) { + s = '0' + s; + } + return s; +}; +/** + * Trim any extra white space from the string + * @param string inputStr + * @returns string outputStr + */ +String.trim = function (inputStr) { + return inputStr ? inputStr.replace(/\s+/g, ' ') : inputStr; +}; +/** + * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) + * @param string inputStr + * @returns string outputStr + */ +String.allTitleCase = function (inputStr) { + return inputStr.replace(/\w\S*/g, function (outputStr) { + return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase(); + }); +}; +/** + * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) + * @param string inputStr + * @returns string outputStr +*/ +String.titleCase = function (inputStr) { + return inputStr.charAt(0).toUpperCase() + inputStr.slice(1); +}; +var OdataService = /** @class */ (function () { + function OdataService() { + this._odataOptions = { + filterQueue: [], + orderBy: '' + }; + this._defaultSortBy = ''; + this._columnFilters = {}; + } + /** + * @return {?} + */ + OdataService.prototype.buildQuery = function () { + this._odataOptions.filterQueue = []; + var /** @type {?} */ queryTmpArray = []; + if (this._odataOptions.top) { + queryTmpArray.push("$top=" + this._odataOptions.top); + } + if (this._odataOptions.skip) { + queryTmpArray.push("$skip=" + this._odataOptions.skip); + } + if (this._odataOptions.orderBy) { + var /** @type {?} */ argument = ''; + if (Array.isArray(this._odataOptions.orderBy)) { + argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc + } + else { + argument = this._odataOptions.orderBy; + } + queryTmpArray.push("$orderby=" + argument); + } + if (this._odataOptions.filterBy || this._odataOptions.filter) { + if (this._odataOptions.filter) { + this._odataOptions.filterQueue = []; + var /** @type {?} */ filterStr = this._odataOptions.filter; + if (Array.isArray(this._odataOptions.filter)) { + var /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; + var /** @type {?} */ separatorSpacedOut = " " + filterBySeparator + " "; + filterStr = this._odataOptions.filter.join(separatorSpacedOut); + } + this._odataOptions.filterQueue.push("(" + filterStr + ")"); + } + // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered + if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) { + if (this._odataOptions.filterBy.searchTerm !== '') { + this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm); + this.updateFilterFromListTerms(this._odataOptions.filterBy); + } + } + } + if (this._odataOptions.filterQueue.length > 0) { + var /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; + var /** @type {?} */ separatorSpacedOut = " " + filterBySeparator + " "; + var /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut); + this._odataOptions.filter = query; // overwrite with + queryTmpArray.push("$filter=" + query); + } + // join all the odata functions by a '&' + return queryTmpArray.join('&'); + }; + /** + * @param {?} columnName + * @return {?} + */ + OdataService.prototype.getFilterByColumn = function (columnName) { + return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null; + }; + /** + * @return {?} + */ + OdataService.prototype.getFilterCount = function () { + return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0; + }; + Object.defineProperty(OdataService.prototype, "columnFilters", { + /** + * @return {?} + */ + get: function () { + return this._columnFilters; + }, + enumerable: true, + configurable: true + }); + Object.defineProperty(OdataService.prototype, "options", { + /** + * @return {?} + */ + get: function () { + return this._odataOptions; + }, + /** + * @param {?} options + * @return {?} + */ + set: function (options) { + this._odataOptions = options; + }, + enumerable: true, + configurable: true + }); + /** + * @param {?} fieldName + * @return {?} + */ + OdataService.prototype.removeColumnFilter = function (fieldName) { + delete this._columnFilters[fieldName]; + }; + /** + * @param {?} fieldName + * @param {?} value + * @param {?=} searchTerms + * @return {?} + */ + OdataService.prototype.saveColumnFilter = function (fieldName, value, searchTerms) { + this._columnFilters[fieldName] = { + search: searchTerms, + value: value + }; + }; + /** + * Update the filter by a list of terms usually passed manually by the user as default filters + * @param {?} filterOptions + * @return {?} + */ + OdataService.prototype.updateFilterFromListTerms = function (filterOptions) { + var _this = this; + // build the filter query + if (Array.isArray(filterOptions)) { + filterOptions.forEach(function (filterOptionObject) { + _this.updateFilterFromTerm(filterOptionObject); + }); + } + else { + this.updateFilterFromTerm(filterOptions); + } + }; + /** + * @param {?} filterOptions + * @return {?} + */ + OdataService.prototype.updateFilterFromTerm = function (filterOptions) { + var /** @type {?} */ searchBy = ''; + var /** @type {?} */ tmpSearchByArray = []; + var /** @type {?} */ fieldName = filterOptions.fieldName; + var /** @type {?} */ fieldSearchTerms = filterOptions.listTerm; + var /** @type {?} */ operator = filterOptions.operator; + // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) + if (!!fieldSearchTerms && fieldSearchTerms.length > 0) { + var /** @type {?} */ tmpSearchTerms = []; + if (operator === 'IN') { + // example:: (Stage eq "Expired" or Stage eq "Renewal") + for (var /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) { + tmpSearchTerms.push(fieldName + " eq '" + fieldSearchTerms[j] + "'"); + } + searchBy = tmpSearchTerms.join(' or '); + searchBy = "$(" + searchBy + ")"; + } + else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { + // example:: (Stage ne "Expired" and Stage ne "Renewal") + for (var /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) { + tmpSearchTerms.push(fieldName + " ne '" + fieldSearchTerms[k] + "'"); + } + searchBy = tmpSearchTerms.join(' and '); + searchBy = "$(" + searchBy + ")"; + } + } + // push to our temp array and also trim white spaces + tmpSearchByArray.push(String.trim(searchBy)); + // add to the filter queue only if it doesn't exist in the queue + var /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : ''; + if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) { + this._odataOptions.filterQueue.push(filter); + } + }; + /** + * Change any OData options that will be used to build the query + * @param {?} options + * @return {?} + */ + OdataService.prototype.updateOptions = function (options) { + for (var _g = 0, _h = Object.keys(options); _g < _h.length; _g++) { + var property = _h[_g]; + if (options.hasOwnProperty(property)) { + this._odataOptions[property] = options[property]; // replace of the property + } + // we need to keep the defaultSortBy for references whenever the user removes his Sorting + // then we would revert to the defaultSortBy and the only way is to keep a hard copy here + if (property === 'orderBy' || property === 'sortBy') { + var /** @type {?} */ sortBy = options[property]; + // make sure first char of each orderBy field is capitalize + if (this._odataOptions.caseType === CaseType.pascalCase) { + if (Array.isArray(sortBy)) { + sortBy.forEach(function (field, index, inputArray) { + inputArray[index] = String.titleCase(field); + }); + } + else { + sortBy = String.titleCase(options[property]); + } + } + this._odataOptions.orderBy = sortBy; + this._defaultSortBy = sortBy; + } + } + }; + return OdataService; +}()); +OdataService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +OdataService.ctorParameters = function () { return []; }; +var moment$14 = moment_min || moment_; +var GridOdataService = /** @class */ (function () { + /** + * @param {?} odataService + */ + function GridOdataService(odataService) { + this.odataService = odataService; + this.defaultSortBy = ''; + this.minUserInactivityOnFilter = 700; + } + /** + * @return {?} + */ + GridOdataService.prototype.buildQuery = function () { + return this.odataService.buildQuery(); + }; + /** + * @param {?} options + * @return {?} + */ + GridOdataService.prototype.initOptions = function (options) { + this.odataService.options = options; + }; + /** + * @param {?} fieldName + * @return {?} + */ + GridOdataService.prototype.removeColumnFilter = function (fieldName) { + this.odataService.removeColumnFilter(fieldName); + }; + /** + * @return {?} + */ + GridOdataService.prototype.resetPaginationOptions = function () { + this.odataService.updateOptions({ + skip: 0 + }); + }; + /** + * @param {?} fieldName + * @param {?} value + * @param {?=} terms + * @return {?} + */ + GridOdataService.prototype.saveColumnFilter = function (fieldName, value, terms) { + this.odataService.saveColumnFilter(fieldName, value, terms); + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GridOdataService.prototype.onFilterChanged = function (event, args) { + var /** @type {?} */ searchByArray = []; + // loop through all columns to inspect filters + for (var /** @type {?} */ columnId in args.columnFilters) { + if (args.columnFilters.hasOwnProperty(columnId)) { + var /** @type {?} */ columnFilter = args.columnFilters[columnId]; + var /** @type {?} */ columnDef = columnFilter.columnDef; + var /** @type {?} */ fieldName = columnDef.field || columnDef.name; + var /** @type {?} */ fieldType = columnDef.type || 'string'; + var /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; + if (typeof fieldSearchValue === 'undefined') { + fieldSearchValue = ''; + } + if (typeof fieldSearchValue !== 'string') { + throw new Error("OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]"); + } + var /** @type {?} */ searchTerms = columnFilter.listTerm || []; + fieldSearchValue = '' + fieldSearchValue; // make sure it's a string + var /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) + var /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); + var /** @type {?} */ searchValue = (!!matches) ? matches[2] : ''; + var /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; + var /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false; + // no need to query if search value is empty + if (fieldName && searchValue === '') { + this.removeColumnFilter(fieldName); + continue; + } + // escaping the search value + searchValue = searchValue.replace("'", "''"); // escape single quotes by doubling them + searchValue = encodeURIComponent(searchValue); // encode URI of the final search value + // extra query arguments + if (bypassOdataQuery) { + // push to our temp array and also trim white spaces + if (fieldName) { + this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms); + } + } + else { + var /** @type {?} */ searchBy = ''; + // titleCase the fieldName so that it matches the WebApi names + var /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || ''); + // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) + if (searchTerms && searchTerms.length > 0) { + var /** @type {?} */ tmpSearchTerms = []; + if (operator === 'IN') { + // example:: (Stage eq "Expired" or Stage eq "Renewal") + for (var /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) { + tmpSearchTerms.push(fieldNameTitleCase + " eq '" + searchTerms[j] + "'"); + } + searchBy = tmpSearchTerms.join(' or '); + searchBy = "(" + searchBy + ")"; + } + else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { + // example:: (Stage ne "Expired" and Stage ne "Renewal") + for (var /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) { + tmpSearchTerms.push(fieldNameTitleCase + " ne '" + searchTerms[k] + "'"); + } + searchBy = tmpSearchTerms.join(' and '); + searchBy = "(" + searchBy + ")"; + } + } + else if (operator === '*' || lastValueChar !== '') { + // first/last character is a '*' will be a startsWith or endsWith + searchBy = operator === '*' + ? "endswith(" + fieldNameTitleCase + ", '" + searchValue + "')" + : "startswith(" + fieldNameTitleCase + ", '" + searchValue + "')"; + } + else if (fieldType === FieldType.date) { + // date field needs to be UTC and within DateTime function + var /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true); + if (dateFormatted) { + searchBy = fieldNameTitleCase + " " + this.mapOperator(operator) + " DateTime'" + dateFormatted + "'"; + } + } + else if (fieldType === FieldType.string) { + // string field needs to be in single quotes + searchBy = "substringof('" + searchValue + "', " + fieldNameTitleCase + ")"; + } + else { + // any other field type (or undefined type) + searchValue = fieldType === FieldType.number ? searchValue : "'" + searchValue + "'"; + searchBy = fieldNameTitleCase + " " + this.mapOperator(operator) + " " + searchValue; + } + // push to our temp array and also trim white spaces + if (searchBy !== '') { + searchByArray.push(String.trim(searchBy)); + this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms); + } + } + } + } + // build the filter query + this.odataService.updateOptions({ + filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '', + skip: undefined + }); + // reset Pagination, then build the OData query which we will use in the WebAPI callback + this.resetPaginationOptions(); + return this.odataService.buildQuery(); + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GridOdataService.prototype.onPaginationChanged = function (event, args) { + this.odataService.updateOptions({ + top: args.pageSize, + skip: (args.newPage - 1) * args.pageSize + }); + // build the OData query which we will use in the WebAPI callback + return this.odataService.buildQuery(); + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GridOdataService.prototype.onSortChanged = function (event, args) { + var /** @type {?} */ sortByArray = []; + var /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc }); + // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc + if (sortColumns && sortColumns.length === 0) { + sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort + } + else { + if (sortColumns) { + for (var _g = 0, sortColumns_1 = sortColumns; _g < sortColumns_1.length; _g++) { + var column = sortColumns_1[_g]; + var /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id; + if (this.odataService.options.caseType === CaseType.pascalCase) { + fieldName = String.titleCase(fieldName); + } + var /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc'; + var /** @type {?} */ sortByColumnString = fieldName + " " + direction; + sortByArray.push(sortByColumnString); + } + } + } + // transform the sortby array into a CSV string + var /** @type {?} */ csvArray = sortByArray.join(','); + this.odataService.updateOptions({ + orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray + }); + // build the OData query which we will use in the WebAPI callback + return this.odataService.buildQuery(); + }; + /** + * Mapper for mathematical operators (ex.: <= is "le", > is "gt") + * @param {?} operator + * @return {?} string map + */ + GridOdataService.prototype.mapOperator = function (operator) { + var /** @type {?} */ map = ''; + switch (operator) { + case '<': + map = 'lt'; + break; + case '<=': + map = 'le'; + break; + case '>': + map = 'gt'; + break; + case '>=': + map = 'ge'; + break; + case '<>': + case '!=': + map = 'ne'; + break; + case '=': + case '==': + default: + map = 'eq'; + break; + } + return map; + }; + /** + * Parse a date passed as a string and return a Date object (if valid) + * @param {?} inputDateString + * @param {?} useUtc + * @return {?} object Date + */ + GridOdataService.prototype.parseUtcDate = function (inputDateString, useUtc) { + var /** @type {?} */ date = null; + if (/^[0-9\-\/]*$/.test(inputDateString)) { + // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text + var /** @type {?} */ dateString = decodeURIComponent(inputDateString); + var /** @type {?} */ dateMoment = moment$14(new Date(dateString)); + if (dateMoment.isValid() && dateMoment.year().toString().length === 4) { + date = (useUtc) ? dateMoment.utc().format() : dateMoment.format(); + } + } + return date; + }; + return GridOdataService; +}()); +GridOdataService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +GridOdataService.ctorParameters = function () { return [ + { type: OdataService, }, +]; }; +var SlickPaginationComponent = /** @class */ (function () { + function SlickPaginationComponent() { + this.dataFrom = 1; + this.dataTo = 1; + this.itemsPerPage = 25; + this.pageCount = 0; + this.pageNumber = 1; + this.totalItems = 0; + this.paginationPageSizes = [25, 75, 100]; + } + Object.defineProperty(SlickPaginationComponent.prototype, "gridPaginationOptions", { + /** + * @return {?} + */ + get: function () { + return this._gridPaginationOptions; + }, + /** + * @param {?} gridPaginationOptions + * @return {?} + */ + set: function (gridPaginationOptions) { + this._gridPaginationOptions = gridPaginationOptions; + if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) { + this.refreshPagination(); + } + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + SlickPaginationComponent.prototype.ngOnInit = function () { + }; + /** + * @return {?} + */ + SlickPaginationComponent.prototype.ngAfterViewInit = function () { + this._gridPaginationOptions = this._gridPaginationOptions; + if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) { + this.refreshPagination(); + } + }; + /** + * @param {?} number + * @return {?} + */ + SlickPaginationComponent.prototype.ceil = function (number) { + return Math.ceil(number); + }; + /** + * @param {?} event + * @return {?} + */ + SlickPaginationComponent.prototype.onChangeItemPerPage = function (event) { + var /** @type {?} */ itemsPerPage = (event.target.value); + this.pageCount = Math.ceil(this.totalItems / itemsPerPage); + this.pageNumber = 1; + this.itemsPerPage = itemsPerPage; + this.onPageChanged(event, this.pageNumber); + }; + /** + * @param {?} event + * @return {?} + */ + SlickPaginationComponent.prototype.changeToFirstPage = function (event) { + this.pageNumber = 1; + this.onPageChanged(event, this.pageNumber); + }; + /** + * @param {?} event + * @return {?} + */ + SlickPaginationComponent.prototype.changeToLastPage = function (event) { + this.pageNumber = this.pageCount; + this.onPageChanged(event, this.pageNumber); + }; + /** + * @param {?} event + * @return {?} + */ + SlickPaginationComponent.prototype.changeToNextPage = function (event) { + if (this.pageNumber < this.pageCount) { + this.pageNumber++; + this.onPageChanged(event, this.pageNumber); + } + }; + /** + * @param {?} event + * @return {?} + */ + SlickPaginationComponent.prototype.changeToPreviousPage = function (event) { + if (this.pageNumber > 0) { + this.pageNumber--; + this.onPageChanged(event, this.pageNumber); + } + }; + /** + * @return {?} + */ + SlickPaginationComponent.prototype.gotoFirstPage = function () { + this.pageNumber = 1; + this.onPageChanged(undefined, this.pageNumber); + }; + /** + * @return {?} + */ + SlickPaginationComponent.prototype.refreshPagination = function () { + if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) { + // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes + if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) { + this.pageNumber = 1; + this.recalculateFromToIndexes(); + } + // calculate and refresh the multiple properties of the pagination UI + this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes; + this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize; + if (this._gridPaginationOptions.onPaginationChanged) { + this.paginationCallback = this._gridPaginationOptions.onPaginationChanged; + } + this.totalItems = this._gridPaginationOptions.pagination.totalItems; + this.dataTo = this.itemsPerPage; + } + this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage); + }; + /** + * @param {?=} event + * @param {?=} pageNumber + * @return {?} + */ + SlickPaginationComponent.prototype.onPageChanged = function (event, pageNumber) { + this.recalculateFromToIndexes(); + if (this.dataTo > this.totalItems) { + this.dataTo = this.totalItems; + } + if (typeof this.paginationCallback === 'function') { + var /** @type {?} */ itemsPerPage = this.itemsPerPage; + this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage }); + } + }; + /** + * @return {?} + */ + SlickPaginationComponent.prototype.recalculateFromToIndexes = function () { + this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1; + this.dataTo = (this.pageNumber * this.itemsPerPage); + }; + return SlickPaginationComponent; +}()); +SlickPaginationComponent.decorators = [ + { type: Component, args: [{ + selector: 'slick-pagination', + template: "\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n ", + styles: ["\n @charset \"UTF-8\";\n /* pagination/pagination variables */\n /*!\n * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid)\n * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE)\n * @author: Ghislain B. (ghiscoding)\n */\n /*!\n\n /* SlickGrid Bootstrap variables */\n /* Used by slick-bootstrap.scss */\n /* Slickgrid container, including headers but excluding pagination */\n /* grid */\n /* cell */\n /* cell default slickgrid values */\n /* header */\n /* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */\n /* Column picker */\n /* pagination variables */\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080; }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px; }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd; }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px; }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block; }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px; }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0; }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n border: 1px solid #ccc; }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer; }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-family: \"FontAwesome\";\n font-size: 14px;\n /*color: inherit;*/\n border-color: #c4c4c4; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-first:before {\n content: \"\uF100\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-prev:before {\n content: \"\uF104\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-next:before {\n content: \"\uF105\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-end:before {\n content: \"\uF101\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n color: #b8b8b8;\n background-color: #f9f9f9;\n border-color: #dedede; }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle; }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px; }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px; }\n "] + },] }, +]; +/** + * @nocollapse + */ +SlickPaginationComponent.ctorParameters = function () { return []; }; +SlickPaginationComponent.propDecorators = { + 'gridPaginationOptions': [{ type: Input },], + 'grid': [{ type: Input },], +}; +/** + * Options that can be passed to the Bootstrap-Datetimepicker directly + */ +var GlobalGridOptions = { + autoEdit: false, + asyncEditorLoading: false, + autoFitColumnsOnFirstLoad: true, + autoResize: { + bottomPadding: 20, + minHeight: 180, + minWidth: 300, + sidePadding: 0 + }, + enableAutoResize: true, + cellHighlightCssClass: 'slick-cell-modified', + editable: false, + enableCellNavigation: false, + enableColumnReorder: true, + enableMouseOverRow: true, + enablePagination: false, + enableSorting: true, + enableTextSelectionOnCells: true, + explicitInitialization: false, + forceFitColumns: false, + headerRowHeight: 35, + multiColumnSort: true, + pagination: { + pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100], + pageSize: 25, + totalItems: 0 + }, + rowHeight: 35, + showHeaderRow: false, + topPanelHeight: 25 +}; +var AngularSlickgridComponent = /** @class */ (function () { + /** + * @param {?} resizer + * @param {?} mouseService + * @param {?} filterService + * @param {?} sortService + */ + function AngularSlickgridComponent(resizer, mouseService, filterService, sortService) { + this.resizer = resizer; + this.mouseService = mouseService; + this.filterService = filterService; + this.sortService = sortService; + this._columnFilters = {}; + this.showPagination = false; + this.onFilter = new Slick.Event(); + this.gridHeight = 100; + this.gridWidth = 600; + } + Object.defineProperty(AngularSlickgridComponent.prototype, "dataset", { + /** + * @return {?} + */ + get: function () { + return this._dataView.getItems(); + }, + /** + * @param {?} dataset + * @return {?} + */ + set: function (dataset) { + this._dataset = dataset; + this.refreshGridData(dataset); + }, + enumerable: true, + configurable: true + }); + /** + * @return {?} + */ + AngularSlickgridComponent.prototype.ngOnInit = function () { + this.gridHeightString = this.gridHeight + "px"; + this.gridWidthString = this.gridWidth + "px"; + }; + /** + * @return {?} + */ + AngularSlickgridComponent.prototype.ngAfterViewInit = function () { + // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null) + this._dataset = this._dataset || []; + this._gridOptions = this.mergeGridOptions(); + this._dataView = new Slick.Data.DataView(); + this.grid = new Slick.Grid("#" + this.gridId, this._dataView, this.columnDefinitions, this._gridOptions); + this.grid.setSelectionModel(new Slick.RowSelectionModel()); + var /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); + this.grid.init(); + this._dataView.beginUpdate(); + this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView); + this._dataView.setItems(this._dataset); + this._dataView.endUpdate(); + // attach resize ONLY after the dataView is ready + this.attachResizeHook(this.grid, this._gridOptions); + }; + /** + * @param {?} grid + * @param {?} options + * @param {?} dataView + * @return {?} + */ + AngularSlickgridComponent.prototype.attachDifferentHooks = function (grid, options, dataView) { + // attach external sorting (backend) when available or default onSort (dataView) + if (options.enableSorting) { + (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView); + } + // attach external filter (backend) when available or default onSort (dataView) + if (options.enableFiltering) { + this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters); + (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView); + } + // if enable, change background color on mouse over + if (options.enableMouseOverRow) { + this.mouseService.attachOnMouseHover(grid); + } + dataView.onRowCountChanged.subscribe(function (e, args) { + grid.updateRowCount(); + grid.render(); + }); + dataView.onRowsChanged.subscribe(function (e, args) { + grid.invalidateRows(args.rows); + grid.render(); + }); + }; + /** + * @param {?} grid + * @param {?} options + * @return {?} + */ + AngularSlickgridComponent.prototype.attachResizeHook = function (grid, options) { + // expand/autofit columns on first page load + if (this._gridOptions.autoFitColumnsOnFirstLoad) { + this.grid.autosizeColumns(); + } + // auto-resize grid on browser resize + if (options.enableAutoResize) { + this.resizer.attachAutoResizeDataGrid(grid, options); + if (options.autoFitColumnsOnFirstLoad) { + grid.autosizeColumns(); + } + } + else { + this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth }); + } + }; + /** + * @return {?} + */ + AngularSlickgridComponent.prototype.mergeGridOptions = function () { + this.gridOptions.gridId = this.gridId; + this.gridOptions.gridContainerId = "slickGridContainer-" + this.gridId; + if (this.gridOptions.enableFiltering) { + this.gridOptions.showHeaderRow = true; + } + var /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions); + return options; + }; + /** + * Toggle the filter row displayed on first row + * @param {?} isShowing + * @return {?} + */ + AngularSlickgridComponent.prototype.showHeaderRow = function (isShowing) { + this.grid.setHeaderRowVisibility(isShowing); + return isShowing; + }; + /** + * Toggle the filter row displayed on first row + * @return {?} + */ + AngularSlickgridComponent.prototype.toggleHeaderRow = function () { + var /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow; + this.grid.setHeaderRowVisibility(isShowing); + return isShowing; + }; + /** + * @param {?} dataset + * @return {?} + */ + AngularSlickgridComponent.prototype.refreshGridData = function (dataset) { + var _this = this; + if (dataset && this.grid) { + this._dataView.setItems(dataset); + // this.grid.setData(dataset); + this.grid.invalidate(); + this.grid.render(); + if (this._gridOptions.enablePagination) { + this.showPagination = true; + this.gridPaginationOptions = this.mergeGridOptions(); + } + if (this._gridOptions.enableAutoResize) { + // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed) + setTimeout(function () { + _this.resizer.resizeGrid(_this.grid, _this._gridOptions); + _this.grid.autosizeColumns(); + }); + } + } + }; + return AngularSlickgridComponent; +}()); +AngularSlickgridComponent.decorators = [ + { type: Injectable }, + { type: Component, args: [{ + selector: 'angular-slickgrid', + template: "\n
\n
\n
\n\n \n
\n " + },] }, +]; +/** + * @nocollapse + */ +AngularSlickgridComponent.ctorParameters = function () { return [ + { type: ResizerService, }, + { type: MouseService, }, + { type: FilterService, }, + { type: SortService, }, +]; }; +AngularSlickgridComponent.propDecorators = { + 'gridId': [{ type: Input },], + 'columnDefinitions': [{ type: Input },], + 'gridOptions': [{ type: Input },], + 'gridHeight': [{ type: Input },], + 'gridWidth': [{ type: Input },], + 'dataset': [{ type: Input },], +}; +var AngularSlickgridModule = /** @class */ (function () { + function AngularSlickgridModule() { + } + return AngularSlickgridModule; +}()); +AngularSlickgridModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + CommonModule + ], + declarations: [ + AngularSlickgridComponent, + SlickPaginationComponent + ], + exports: [ + AngularSlickgridComponent, + SlickPaginationComponent + ], + providers: [ + GraphqlService, + MouseService, + OdataService, + FilterService, + SortService, + ResizerService + ] + },] }, +]; +/** + * @nocollapse + */ +AngularSlickgridModule.ctorParameters = function () { return []; }; +// Public classes. +/** + * Generated bundle index. Do not edit. + */ +export { CaseType, FormElementType, FieldType, FilterConditions, FilterTemplates, Formatters, Sorters, FilterService, MouseService, ResizerService, SortService, GraphqlService, GridOdataService, SlickPaginationComponent, AngularSlickgridComponent, AngularSlickgridModule, FilterService as ɵd, MouseService as ɵc, ResizerService as ɵb, SortService as ɵe, OdataService as ɵa }; +//# sourceMappingURL=angular-slickgrid.es5.js.map diff --git a/dist/angular-slickgrid/angular-slickgrid.es5.js.map b/dist/angular-slickgrid/angular-slickgrid.es5.js.map new file mode 100644 index 000000000..eefa3dff7 --- /dev/null +++ b/dist/angular-slickgrid/angular-slickgrid.es5.js.map @@ -0,0 +1 @@ +{"version":3,"file":"angular-slickgrid.es5.js","sources":["~/angular-slickgrid/angular-slickgrid/angular-slickgrid.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/global-grid-options.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/components/slick-pagination.component.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/grid-odata.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/odata.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/global-utilities.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/graphql.service.ts","../../node_modules/graphql-query-builder/index.js","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/sort.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/resizer.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/mouse.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/filter.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/stringSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/numericSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateUsSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/yesNoFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/ProgressBarFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/percentCompleteBarFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/percentCompleteFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateUsFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/CheckmarkFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/CheckboxFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.ts","../../node_modules/moment-mini/moment.min.js","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/fieldType.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/formElementType.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/caseType.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {CaseType,Column,Formatter,GridOption,FormElementType,FieldType,FilterConditions,FilterTemplates,Formatters,Sorters,FilterService,MouseService,ResizerService,SortService,GraphqlService,GridOdataService,SlickPaginationComponent,AngularSlickgridComponent,AngularSlickgridModule} from './public_api';\n\nexport {FilterService as ɵd,MouseService as ɵc,ResizerService as ɵb,SortService as ɵe} from './src/app/modules/angular-slickgrid/services/index';\nexport {OdataService as ɵa} from './src/app/modules/angular-slickgrid/services/odata.service';","// Public classes.\nexport { CaseType } from './models/caseType';\nexport { Column } from './models/column.interface';\nexport { Formatter } from './models/formatter.interface';\nexport { GridOption } from './models/gridOption.interface';\nexport { FormElementType } from './models/formElementType';\nexport { FieldType } from './models/fieldType';\n\nexport { FilterConditions } from './filter-conditions/index';\nexport { FilterTemplates } from './filter-templates/index';\nexport { Formatters } from './formatters/index';\nexport { Sorters } from './sorters/index';\n\nexport { FilterService } from './services/filter.service';\nexport { MouseService } from './services/mouse.service';\nexport { ResizerService } from './services/resizer.service';\nexport { SortService } from './services/sort.service';\nexport { GraphqlService } from './services/graphql.service';\nexport { GridOdataService } from './services/grid-odata.service';\n\nexport { SlickPaginationComponent } from './components/slick-pagination.component';\nexport { AngularSlickgridComponent } from './components/angular-slickgrid.component';\nexport { AngularSlickgridModule } from './modules/angular-slickgrid.module';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Formatters } from './../formatters/index';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { GraphqlService } from './../services/graphql.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\nexport class AngularSlickgridModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n providers: [\n GraphqlService,\n MouseService,\n OdataService,\n FilterService,\n SortService,\n ResizerService\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction AngularSlickgridModule_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { Column, ColumnFilters, FormElementType, GridOption } from './../models/index';\nimport { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core';\nimport { FilterService, MouseService, SortService, ResizerService } from './../services/index';\nimport { GlobalGridOptions } from './../global-grid-options';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class AngularSlickgridComponent implements AfterViewInit, OnInit {\nprivate _dataset: any[];\nprivate _dataView: any;\nprivate _gridOptions: GridOption;\nprivate _columnFilters: ColumnFilters = {};\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n showPagination = false;\n onFilter = new Slick.Event();\n\n gridId: string;\n columnDefinitions: Column[];\n gridOptions: GridOption;\n gridHeight = 100;\n gridWidth = 600;\n/**\n * @param {?} dataset\n * @return {?}\n */\nset dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n/**\n * @return {?}\n */\nget dataset(): any[] {\n return this._dataView.getItems();\n }\n/**\n * @param {?} resizer\n * @param {?} mouseService\n * @param {?} filterService\n * @param {?} sortService\n */\nconstructor(private resizer: ResizerService,\nprivate mouseService: MouseService,\nprivate filterService: FilterService,\nprivate sortService: SortService) {\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this._gridOptions = this.mergeGridOptions();\n\n this._dataView = new Slick.Data.DataView();\n\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions);\n this.grid.setSelectionModel(new Slick.RowSelectionModel());\n const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions);\n\n this.grid.init();\n this._dataView.beginUpdate();\n this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView);\n\n this._dataView.setItems(this._dataset);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this._gridOptions);\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @param {?} dataView\n * @return {?}\n */\nattachDifferentHooks(grid: any, options: GridOption, dataView: any) {\n // attach external sorting (backend) when available or default onSort (dataView)\n if (options.enableSorting) {\n (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView);\n }\n\n // attach external filter (backend) when available or default onSort (dataView)\n if (options.enableFiltering) {\n this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters);\n (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView);\n }\n\n // if enable, change background color on mouse over\n if (options.enableMouseOverRow) {\n this.mouseService.attachOnMouseHover(grid);\n }\n\n dataView.onRowCountChanged.subscribe((e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n dataView.onRowsChanged.subscribe((e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\nattachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (this._gridOptions.autoFitColumnsOnFirstLoad) {\n this.grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid(grid, options);\n if (options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n } else {\n this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth });\n }\n }\n/**\n * @return {?}\n */\nmergeGridOptions(): GridOption {\n this.gridOptions.gridId = this.gridId;\n this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (this.gridOptions.enableFiltering) {\n this.gridOptions.showHeaderRow = true;\n }\n const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions);\n return options;\n }\n/**\n * Toggle the filter row displayed on first row\n * @param {?} isShowing\n * @return {?}\n */\nshowHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * Toggle the filter row displayed on first row\n * @return {?}\n */\ntoggleHeaderRow() {\n const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * @param {?} dataset\n * @return {?}\n */\nrefreshGridData(dataset: any) {\n if (dataset && this.grid) {\n this._dataView.setItems(dataset);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this._gridOptions.enablePagination) {\n this.showPagination = true;\n this.gridPaginationOptions = this.mergeGridOptions();\n }\n if (this._gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n setTimeout(() => {\n this.resizer.resizeGrid(this.grid, this._gridOptions);\n this.grid.autosizeColumns();\n });\n }\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n{ type: Component, args: [{\n selector: 'angular-slickgrid',\n template: `\n
\n
\n
\n\n \n
\n `\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ResizerService, },\n{type: MouseService, },\n{type: FilterService, },\n{type: SortService, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridId': [{ type: Input },],\n'columnDefinitions': [{ type: Input },],\n'gridOptions': [{ type: Input },],\n'gridHeight': [{ type: Input },],\n'gridWidth': [{ type: Input },],\n'dataset': [{ type: Input },],\n};\n}\n\nfunction AngularSlickgridComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridComponent.ctorParameters;\n/** @type {?} */\nAngularSlickgridComponent.propDecorators;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataset;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataView;\n/** @type {?} */\nAngularSlickgridComponent.prototype._gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype._columnFilters;\n/** @type {?} */\nAngularSlickgridComponent.prototype.grid;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridPaginationOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeightString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidthString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.showPagination;\n/** @type {?} */\nAngularSlickgridComponent.prototype.onFilter;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridId;\n/** @type {?} */\nAngularSlickgridComponent.prototype.columnDefinitions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeight;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidth;\n/** @type {?} */\nAngularSlickgridComponent.prototype.resizer;\n/** @type {?} */\nAngularSlickgridComponent.prototype.mouseService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.filterService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.sortService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './models/index';\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n enableAutoResize: true,\n cellHighlightCssClass: 'slick-cell-modified',\n editable: false,\n enableCellNavigation: false,\n enableColumnReorder: true,\n enableMouseOverRow: true,\n enablePagination: false,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: false,\n forceFitColumns: false,\n headerRowHeight: 35,\n multiColumnSort: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 25\n};\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { Column, GridOption } from './../models/index';\nexport class SlickPaginationComponent implements AfterViewInit, OnInit {\nprivate _gridPaginationOptions: GridOption;\n/**\n * @param {?} gridPaginationOptions\n * @return {?}\n */\nset gridPaginationOptions(gridPaginationOptions: GridOption) {\n this._gridPaginationOptions = gridPaginationOptions;\n if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @return {?}\n */\nget gridPaginationOptions(): GridOption {\n return this._gridPaginationOptions;\n }\n grid: any;\n dataFrom = 1;\n dataTo = 1;\n itemsPerPage = 25;\n pageCount = 0;\n pageNumber = 1;\n totalItems = 0;\n paginationCallback: Function;\n paginationPageSizes = [25, 75, 100];\nconstructor() { }\n/**\n * @return {?}\n */\nngOnInit() {\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n this._gridPaginationOptions = this._gridPaginationOptions;\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @param {?} number\n * @return {?}\n */\nceil(number: number) {\n return Math.ceil(number);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nonChangeItemPerPage(event: any) {\n const /** @type {?} */ itemsPerPage = /** @type {?} */(( event.target.value));\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\n this.pageNumber = 1;\n this.itemsPerPage = itemsPerPage;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToFirstPage(event: any) {\n this.pageNumber = 1;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToLastPage(event: any) {\n this.pageNumber = this.pageCount;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToNextPage(event: any) {\n if (this.pageNumber < this.pageCount) {\n this.pageNumber++;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToPreviousPage(event: any) {\n if (this.pageNumber > 0) {\n this.pageNumber--;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @return {?}\n */\ngotoFirstPage() {\n this.pageNumber = 1;\n this.onPageChanged(undefined, this.pageNumber);\n }\n/**\n * @return {?}\n */\nrefreshPagination() {\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\n if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) {\n this.pageNumber = 1;\n this.recalculateFromToIndexes();\n }\n\n // calculate and refresh the multiple properties of the pagination UI\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\n this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize;\n if (this._gridPaginationOptions.onPaginationChanged) {\n this.paginationCallback = this._gridPaginationOptions.onPaginationChanged;\n }\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\n this.dataTo = this.itemsPerPage;\n }\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n/**\n * @param {?=} event\n * @param {?=} pageNumber\n * @return {?}\n */\nonPageChanged(event?: Event, pageNumber?: number) {\n this.recalculateFromToIndexes();\n\n if (this.dataTo > this.totalItems) {\n this.dataTo = this.totalItems;\n }\n if (typeof this.paginationCallback === 'function') {\n const /** @type {?} */ itemsPerPage = this.itemsPerPage;\n this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage });\n }\n }\n/**\n * @return {?}\n */\nrecalculateFromToIndexes() {\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\n this.dataTo = (this.pageNumber * this.itemsPerPage);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n selector: 'slick-pagination',\n template: `\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n `,\n styles: [`\n @charset \"UTF-8\";\n /* pagination/pagination variables */\n /*!\r\n * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid)\r\n * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE)\r\n * @author: Ghislain B. (ghiscoding)\r\n */\n /*!\r\n\r\n /* SlickGrid Bootstrap variables */\n /* Used by slick-bootstrap.scss */\n /* Slickgrid container, including headers but excluding pagination */\n /* grid */\n /* cell */\n /* cell default slickgrid values */\n /* header */\n /* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */\n /* Column picker */\n /* pagination variables */\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080; }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px; }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd; }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px; }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block; }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px; }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0; }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n border: 1px solid #ccc; }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer; }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-family: \"FontAwesome\";\n font-size: 14px;\n /*color: inherit;*/\n border-color: #c4c4c4; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-first:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-prev:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-next:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-end:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n color: #b8b8b8;\n background-color: #f9f9f9;\n border-color: #dedede; }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle; }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px; }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px; }\n `]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridPaginationOptions': [{ type: Input },],\n'grid': [{ type: Input },],\n};\n}\n\nfunction SlickPaginationComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nSlickPaginationComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSlickPaginationComponent.ctorParameters;\n/** @type {?} */\nSlickPaginationComponent.propDecorators;\n/** @type {?} */\nSlickPaginationComponent.prototype._gridPaginationOptions;\n/** @type {?} */\nSlickPaginationComponent.prototype.grid;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataFrom;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataTo;\n/** @type {?} */\nSlickPaginationComponent.prototype.itemsPerPage;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageCount;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageNumber;\n/** @type {?} */\nSlickPaginationComponent.prototype.totalItems;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationCallback;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationPageSizes;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType, FilterChangedArgs, FieldType, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models/index';\nimport { OdataService } from './odata.service';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_;\nexport class GridOdataService {\n defaultSortBy = '';\n minUserInactivityOnFilter = 700;\n/**\n * @param {?} odataService\n */\nconstructor(private odataService: OdataService) { }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} options\n * @return {?}\n */\ninitOptions(options: OdataOption): void {\n this.odataService.options = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n this.odataService.removeColumnFilter(fieldName);\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n this.odataService.updateOptions({\n skip: 0\n });\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n this.odataService.saveColumnFilter(fieldName, value, terms);\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n let /** @type {?} */ searchBy: string = '';\n let /** @type {?} */ timer: any = 0;\n const /** @type {?} */ searchByArray = [];\n\n // loop through all columns to inspect filters\n for (const /** @type {?} */ columnId in args.columnFilters) {\n if (args.columnFilters.hasOwnProperty(columnId)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnDef = columnFilter.columnDef;\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || 'string';\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n if (typeof fieldSearchValue !== 'string') {\n throw new Error(`OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n const /** @type {?} */ searchTerms = columnFilter.listTerm || [];\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n let /** @type {?} */ searchValue = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false;\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '') {\n this.removeColumnFilter(fieldName);\n continue;\n }\n\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n searchValue = encodeURIComponent(searchValue); // encode URI of the final search value\n\n // extra query arguments\n if (bypassOdataQuery) {\n // push to our temp array and also trim white spaces\n if (fieldName) {\n this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms);\n }\n } else {\n let /** @type {?} */ searchBy = '';\n\n // titleCase the fieldName so that it matches the WebApi names\n const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || '');\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `(${searchBy})`;\n }\n } else if (operator === '*' || lastValueChar !== '') {\n // first/last character is a '*' will be a startsWith or endsWith\n searchBy = operator === '*'\n ? `endswith(${fieldNameTitleCase}, '${searchValue}')`\n : `startswith(${fieldNameTitleCase}, '${searchValue}')`;\n } else if (fieldType === FieldType.date) {\n // date field needs to be UTC and within DateTime function\n const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true);\n if (dateFormatted) {\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`;\n }\n } else if (fieldType === FieldType.string) {\n // string field needs to be in single quotes\n searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`;\n } else {\n // any other field type (or undefined type)\n searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`;\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`;\n }\n\n // push to our temp array and also trim white spaces\n if (searchBy !== '') {\n searchByArray.push(String.trim(searchBy));\n this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms);\n }\n }\n }\n }\n\n // build the filter query\n this.odataService.updateOptions({\n filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '',\n skip: undefined\n });\n\n // reset Pagination, then build the OData query which we will use in the WebAPI callback\n this.resetPaginationOptions();\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n this.odataService.updateOptions({\n top: args.pageSize,\n skip: (args.newPage - 1) * args.pageSize\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n let /** @type {?} */ sortByArray = [];\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc\n if (sortColumns && sortColumns.length === 0) {\n sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort\n } else {\n if (sortColumns) {\n for (let /** @type {?} */ column of sortColumns) {\n let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id;\n if (this.odataService.options.caseType === CaseType.pascalCase) {\n fieldName = String.titleCase(fieldName);\n }\n const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc';\n const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`;\n sortByArray.push(sortByColumnString);\n }\n }\n }\n\n // transform the sortby array into a CSV string\n const /** @type {?} */ csvArray = sortByArray.join(',');\n this.odataService.updateOptions({\n orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * Mapper for mathematical operators (ex.: <= is \"le\", > is \"gt\")\n * @param {?} operator\n * @return {?} string map\n */\nprivate mapOperator(operator: string) {\n let /** @type {?} */ map = '';\n switch (operator) {\n case '<':\n map = 'lt';\n break;\n case '<=':\n map = 'le';\n break;\n case '>':\n map = 'gt';\n break;\n case '>=':\n map = 'ge';\n break;\n case '<>':\n case '!=':\n map = 'ne';\n break;\n case '=':\n case '==':\n default:\n map = 'eq';\n break;\n }\n\n return map;\n }\n/**\n * Parse a date passed as a string and return a Date object (if valid)\n * @param {?} inputDateString\n * @param {?} useUtc\n * @return {?} object Date\n */\nprivate parseUtcDate(inputDateString: string, useUtc: boolean) {\n let /** @type {?} */ date = null;\n\n if (/^[0-9\\-\\/]*$/.test(inputDateString)) {\n // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text\n const /** @type {?} */ dateString = decodeURIComponent(inputDateString);\n const /** @type {?} */ dateMoment = moment(new Date(dateString));\n if (dateMoment.isValid() && dateMoment.year().toString().length === 4) {\n date = (useUtc) ? dateMoment.utc().format() : dateMoment.format();\n }\n }\n\n return date;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: OdataService, },\n];\n}\n\nfunction GridOdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nGridOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGridOdataService.ctorParameters;\n/** @type {?} */\nGridOdataService.prototype.defaultSortBy;\n/** @type {?} */\nGridOdataService.prototype.minUserInactivityOnFilter;\n/** @type {?} */\nGridOdataService.prototype.odataService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { CaseType } from '../models/caseType';\nimport'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { OdataOption } from './../models/index';\nexport class OdataService {\n _columnFilters: any;\n _defaultSortBy: string;\n _odataOptions: OdataOption;\nconstructor() {\n this._odataOptions = {\n filterQueue: [],\n orderBy: ''\n };\n this._defaultSortBy = '';\n this._columnFilters = {};\n }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ queryTmpArray = [];\n\n if (this._odataOptions.top) {\n queryTmpArray.push(`$top=${this._odataOptions.top}`);\n }\n if (this._odataOptions.skip) {\n queryTmpArray.push(`$skip=${this._odataOptions.skip}`);\n }\n if (this._odataOptions.orderBy) {\n let /** @type {?} */ argument = '';\n if (Array.isArray(this._odataOptions.orderBy)) {\n argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc\n } else {\n argument = this._odataOptions.orderBy;\n }\n queryTmpArray.push(`$orderby=${argument}`);\n }\n if (this._odataOptions.filterBy || this._odataOptions.filter) {\n if (this._odataOptions.filter) {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ filterStr = this._odataOptions.filter;\n if (Array.isArray(this._odataOptions.filter)) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n filterStr = this._odataOptions.filter.join(separatorSpacedOut);\n }\n this._odataOptions.filterQueue.push(`(${filterStr})`);\n }\n // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered\n if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) {\n if (this._odataOptions.filterBy.searchTerm !== '') {\n this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm);\n this.updateFilterFromListTerms(this._odataOptions.filterBy);\n }\n }\n }\n if (this._odataOptions.filterQueue.length > 0) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut);\n this._odataOptions.filter = query; // overwrite with\n queryTmpArray.push(`$filter=${query}`);\n }\n\n // join all the odata functions by a '&'\n return queryTmpArray.join('&');\n }\n/**\n * @param {?} columnName\n * @return {?}\n */\ngetFilterByColumn(columnName: string): string {\n return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null;\n }\n/**\n * @return {?}\n */\ngetFilterCount(): number {\n return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0;\n }\n/**\n * @return {?}\n */\nget columnFilters(): any[] {\n return this._columnFilters;\n }\n/**\n * @return {?}\n */\nget options(): OdataOption {\n return this._odataOptions;\n }\n/**\n * @param {?} options\n * @return {?}\n */\nset options(options: OdataOption) {\n this._odataOptions = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string) {\n delete this._columnFilters[fieldName];\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} searchTerms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: any, searchTerms?: any[]) {\n this._columnFilters[fieldName] = {\n search: searchTerms,\n value: value\n };\n }\n/**\n * Update the filter by a list of terms usually passed manually by the user as default filters\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromListTerms(filterOptions: any) {\n // build the filter query\n if (Array.isArray(filterOptions)) {\n filterOptions.forEach((filterOptionObject) => {\n this.updateFilterFromTerm(filterOptionObject);\n });\n } else {\n this.updateFilterFromTerm(filterOptions);\n }\n }\n/**\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromTerm(filterOptions: any) {\n let /** @type {?} */ searchBy = '';\n const /** @type {?} */ tmpSearchByArray = [];\n const /** @type {?} */ fieldName = filterOptions.fieldName;\n const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm;\n const /** @type {?} */ operator = filterOptions.operator;\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (!!fieldSearchTerms && fieldSearchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `$(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `$(${searchBy})`;\n }\n }\n\n // push to our temp array and also trim white spaces\n tmpSearchByArray.push(String.trim(searchBy));\n\n // add to the filter queue only if it doesn't exist in the queue\n const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : '';\n if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) {\n this._odataOptions.filterQueue.push(filter);\n }\n }\n/**\n * Change any OData options that will be used to build the query\n * @param {?} options\n * @return {?}\n */\nupdateOptions(options: OdataOption) {\n for (const /** @type {?} */ property of Object.keys(options)) {\n if (options.hasOwnProperty(property)) {\n this._odataOptions[property] = options[property]; // replace of the property\n }\n\n // we need to keep the defaultSortBy for references whenever the user removes his Sorting\n // then we would revert to the defaultSortBy and the only way is to keep a hard copy here\n if (property === 'orderBy' || property === 'sortBy') {\n let /** @type {?} */ sortBy = options[property];\n\n // make sure first char of each orderBy field is capitalize\n if (this._odataOptions.caseType === CaseType.pascalCase) {\n if (Array.isArray(sortBy)) {\n sortBy.forEach((field, index, inputArray) => {\n inputArray[index] = String.titleCase(field);\n });\n } else {\n sortBy = String.titleCase(options[property]);\n }\n }\n this._odataOptions.orderBy = sortBy;\n this._defaultSortBy = sortBy;\n }\n }\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOdataService.ctorParameters;\n/** @type {?} */\nOdataService.prototype._columnFilters;\n/** @type {?} */\nOdataService.prototype._defaultSortBy;\n/** @type {?} */\nOdataService.prototype._odataOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","declare interface StringConstructor {\n allTitleCase(inputStr: string): string;\n format(inputStr: string, args: any): string;\n padZero(length: number): string;\n trim(inputStr: string): string;\n titleCase(inputStr: string): string;\n}\n\n\nString.format = function(format: string, args): string {\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] !== 'undefined') ? args[number] : match;\n });\n};\n\nString.padZero = function (this: string, length: number) {\n let /** @type {?} */ s = this;\n while (s.length < length) {\n s = '0' + s;\n }\n return s;\n};\n\n/**\n * Trim any extra white space from the string\n * @param string inputStr\n * @returns string outputStr\n */\nString.trim = function(inputStr: string): string {\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n */\nString.allTitleCase = function(inputStr: string): string {\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\n });\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n*/\nString.titleCase = function(inputStr: string): string {\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\n};\n","import { CaseType, FilterChangedArgs, FieldType, GraphqlServiceOption, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models/index';\nimport QueryBuilder from 'graphql-query-builder';\nexport class GraphqlService {\n serviceOptions: GraphqlServiceOption = {};\n/**\n * Build the GraphQL query, since the service include/exclude cursor, the output query will be different.\n * @param {?=} serviceOptions GraphqlServiceOption\n * @return {?}\n */\nbuildQuery(serviceOptions?: GraphqlServiceOption) {\n if (!this.serviceOptions.datasetName || !this.serviceOptions.dataFilters) {\n throw new Error('GraphQL Service requires \"datasetName\" & \"dataFilters\" properties for it to work');\n }\n const /** @type {?} */ pageFilterQb = new QueryBuilder(this.serviceOptions.datasetName);\n const /** @type {?} */ pageInfoQb = new QueryBuilder('pageInfo');\n const /** @type {?} */ dataQb = (this.serviceOptions.isWithCursor) ? new QueryBuilder('edges') : new QueryBuilder('nodes');\n\n if (this.serviceOptions.isWithCursor) {\n pageInfoQb.find('hasNextPage', 'endCursor');\n dataQb.find(['cursor', {'node': this.serviceOptions.dataFilters}]);\n } else {\n pageInfoQb.find('hasNextPage');\n dataQb.find(this.serviceOptions.dataFilters);\n }\n pageFilterQb.find(['totalCount', pageInfoQb, dataQb]);\n pageFilterQb.filter(this.serviceOptions.paginationOptions);\n\n return pageFilterQb.toString();\n }\n/**\n * @param {?=} serviceOptions\n * @return {?}\n */\ninitOptions(serviceOptions?: GraphqlServiceOption): void {\n this.serviceOptions = serviceOptions || {};\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n let /** @type {?} */ paginationOptions;\n if (this.serviceOptions.isWithCursor) {\n // first, last, after, before\n paginationOptions = {\n after: '',\n before: undefined,\n last: undefined\n };\n } else {\n // first, last, offset\n paginationOptions = {\n offset: 0\n };\n }\n this.updateOptions({ paginationOptions: paginationOptions });\n }\n/**\n * @param {?=} serviceOptions\n * @return {?}\n */\nupdateOptions(serviceOptions?: GraphqlServiceOption) {\n this.serviceOptions = { ...this.serviceOptions, ...serviceOptions };\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n let /** @type {?} */ paginationOptions;\n if (this.serviceOptions.isWithCursor) {\n paginationOptions = {\n first: args.pageSize\n };\n } else {\n paginationOptions = {\n first: args.pageSize,\n offset: (args.newPage - 1) * args.pageSize\n };\n }\n\n this.updateOptions({ paginationOptions: paginationOptions });\n\n // build the OData query which we will use in the WebAPI callback\n return this.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n // will use sorting as per a FB suggestion\n // https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222\n }\n}\n\nfunction GraphqlService_tsickle_Closure_declarations() {\n/** @type {?} */\nGraphqlService.prototype.serviceOptions;\n}\n\n","\"use strict\";\n\n//=====================================================\n//============================ parce properties to find\n//=====================================================\n\nfunction parceFind(_levelA) {\n \n//+++++++++++++++++++++++++++++++++++ work over Array\n//++++++++++++++++++++++++++++++++++++++++++++++++++++\n \n let propsA = _levelA.map(function(currentValue, index) {\n \n let itemX = _levelA[index];\n \n if( itemX instanceof Query){\n return itemX.toString();\n } else if ( ! Array.isArray(itemX) && \"object\" === typeof itemX ) {\n let propsA = Object.keys(itemX);\n if ( 1 !== propsA.length) {\n throw new RangeError(\"Alias objects should only have one value. was passed: \"+JSON.stringify(itemX));\n }\n let propS = propsA[0];\n let item = itemX[propS];\n // contributor: https://github.com/charlierudolph/graphql-query-builder/commit/878328e857e92d140f5ba6f7cfe07837620ec490\n if (Array.isArray(item)) {\n return new Query(propS).find(item)\n }\n return `${propS} : ${item} `;\n } else if ( \"string\" === typeof itemX ) {\n return itemX;\n } else {\n throw new RangeError(\"cannot handle Find value of \"+itemX);\n }\n });\n \n return propsA.join(\",\");\n}\n\n//=====================================================\n//=================================== get GraphQL Value\n//=====================================================\n\nfunction getGraphQLValue(value) {\n if (\"string\" === typeof value) {\n value = JSON.stringify(value);\n } else if (Array.isArray(value)) {\n value = value.map(item => {\n return getGraphQLValue(item);\n }).join();\n value = `[${value}]`;\n } else if (\"object\" === typeof value) {\n /*if (value.toSource)\n value = value.toSource().slice(2,-2);\n else*/\n value = objectToString(value);\n //console.error(\"No toSource!!\",value);\n }\n return value;\n}\n\nfunction objectToString(obj) {\n \n let sourceA = [];\n \n for(let prop in obj){\n if (\"function\" === typeof obj[prop]) {\n continue;\n }\n // if (\"object\" === typeof obj[prop]) {\n sourceA.push(`${prop}:${getGraphQLValue(obj[prop])}`);\n // } else {\n // sourceA.push(`${prop}:${obj[prop]}`);\n // }\n }\n return `{${sourceA.join()}}`;\n}\n\n\n\n\n//=====================================================\n//========================================= Query Class\n//=====================================================\n\nfunction Query(_fnNameS, _aliasS_OR_Filter){\n \n this.fnNameS = _fnNameS;\n this.headA = [];\n \n this.filter = (filtersO) => {\n \n for(let propS in filtersO){\n if (\"function\" === typeof filtersO[propS]) {\n continue;\n }\n let val = getGraphQLValue(filtersO[propS]);\n if (\"{}\" === val) {\n continue;\n }\n this.headA.push( `${propS}:${val}` );\n } \n return this;\n };\n \n if (\"string\" === typeof _aliasS_OR_Filter) {\n this.aliasS = _aliasS_OR_Filter;\n } else if (\"object\" === typeof _aliasS_OR_Filter) {\n this.filter(_aliasS_OR_Filter);\n } else if (undefined === _aliasS_OR_Filter && 2 === arguments.length){\n throw new TypeError(\"You have passed undefined as Second argument to 'Query'\");\n } else if (undefined !== _aliasS_OR_Filter){\n throw new TypeError(\"Second argument to 'Query' should be an alias name(String) or filter arguments(Object). was passed \"+_aliasS_OR_Filter);\n }\n\n this.setAlias = (_aliasS) =>{\n this.aliasS = _aliasS;\n return this;\n };\n \n this.find = function(findA) { // THIS NEED TO BE A \"FUNCTION\" to scope 'arguments'\n if( ! findA){\n throw new TypeError(\"find value can not be >>falsy<<\");\n }\n // if its a string.. it may have other values\n // else it sould be an Object or Array of maped values\n this.bodyS = parceFind((Array.isArray(findA)) ? findA : Array.from(arguments));\n return this;\n };\n}\n\n//=====================================================\n//===================================== Query prototype\n//=====================================================\n\nQuery.prototype = {\n \n toString : function(){\n if (undefined === this.bodyS) {\n throw new ReferenceError(\"return properties are not defined. use the 'find' function to defined them\");\n }\n \n return `${ (this.aliasS) ? (this.aliasS + \":\") : \"\" } ${this.fnNameS } ${ (0 < this.headA.length)?\"(\"+this.headA.join(\",\")+\")\":\"\" } { ${ this.bodyS } }`;\n }\n};\n\nmodule.exports = Query;\n","import { GridOption } from './../models/gridOption.interface';\nimport { FieldType } from './../models/fieldType';\nimport { Sorter } from './../models/sorter.interface';\nimport { Sorters } from './../sorters/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\nexport class SortService {\n subscriber: any;\nconstructor() { }\n/**\n * Attach a backend sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @return {?}\n */\nattachBackendOnSort(grid: any, gridOptions: GridOption) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe(gridOptions.onSortChanged);\n }\n/**\n * Attach a local sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n dataView.sort(function (dataRow1: any, dataRow2: any) {\n for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) {\n const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1;\n const /** @type {?} */ sortField = sortColumns[i].sortCol.field;\n const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string';\n const /** @type {?} */ value1 = dataRow1[sortField];\n const /** @type {?} */ value2 = dataRow2[sortField];\n let /** @type {?} */ result = 0;\n\n switch (fieldType) {\n case FieldType.number:\n result = Sorters.numeric(value1, value2, sortDirection);\n break;\n case FieldType.date:\n result = Sorters.date(value1, value2, sortDirection);\n break;\n case FieldType.dateIso:\n result = Sorters.dateIso(value1, value2, sortDirection);\n break;\n case FieldType.dateUs:\n result = Sorters.dateUs(value1, value2, sortDirection);\n break;\n case FieldType.dateUsShort:\n result = Sorters.dateUsShort(value1, value2, sortDirection);\n break;\n default:\n result = Sorters.string(value1, value2, sortDirection);\n break;\n }\n\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n });\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction SortService_tsickle_Closure_declarations() {\n/** @type {?} */\nSortService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSortService.ctorParameters;\n/** @type {?} */\nSortService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './../models/index';\nimport { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\n\ndeclare var $: any;\n\n// global constants, height/width are in pixels\nconst /** @type {?} */ DATAGRID_MIN_HEIGHT = 180;\nconst /** @type {?} */ DATAGRID_MIN_WIDTH = 300;\nconst /** @type {?} */ DATAGRID_BOTTOM_PADDING = 20;\nconst /** @type {?} */ DATAGRID_PAGINATION_HEIGHT = 35;\nexport class ResizerService {\n/**\n * @param {?} router\n */\nconstructor(private router: Router) {\n }\n/**\n * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\n * Options: we could also provide a % factor to resize on each height/width independently\n * @param {?} grid\n * @param {?} gridOptions\n * @return {?}\n */\nattachAutoResizeDataGrid(grid: any, gridOptions: GridOption) {\n // if we can't find the grid to resize, return without attaching anything\n const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`);\n if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') {\n return null;\n }\n\n // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load)\n this.resizeGrid(grid, gridOptions);\n\n // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load\n // -- attach auto-resize to Window object only if it exist\n $(window).on('resize.grid', () => {\n this.resizeGrid(grid, gridOptions);\n });\n\n // destroy the resizer on route change\n this.router.events.subscribe((event: NavigationEnd) => {\n this.destroy();\n });\n }\n/**\n * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation\n * object gridOptions\n * @param {?} gridOptions\n * @return {?}\n */\ncalculateGridNewDimensions(gridOptions: GridOption) {\n let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING;\n if (bottomPadding && gridOptions.enablePagination) {\n bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding\n }\n if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') {\n return;\n }\n const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding;\n const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width();\n const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT;\n const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH;\n\n let /** @type {?} */ newHeight = availableHeight;\n let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth;\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n return {\n height: newHeight,\n width: newWidth\n };\n }\n/**\n * Destroy function when element is destroyed\n * @return {?}\n */\ndestroy() {\n $(window).trigger('resize.grid').off('resize');\n }\n/**\n * Resize the datagrid to fit the browser height & width\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?=} newSizes\n * @return {?}\n */\nresizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}) {\n // calculate new available sizes but with minimum height of 220px\n newSizes = newSizes || this.calculateGridNewDimensions(gridOptions);\n\n if (newSizes) {\n // apply these new height/width to the datagrid\n $(`#${gridOptions.gridId}`).height(newSizes.height);\n $(`#${gridOptions.gridId}`).width(newSizes.width);\n $(`#${gridOptions.gridContainerId}`).height(newSizes.height);\n $(`#${gridOptions.gridContainerId}`).width(newSizes.width);\n\n // resize the slickgrid canvas on all browser except some IE versions\n // exclude all IE below IE11\n // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape'\n if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) {\n grid.resizeCanvas();\n }\n\n // also call the grid auto-size columns so that it takes available when going bigger\n grid.autosizeColumns();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Router, },\n];\n}\n\nfunction ResizerService_tsickle_Closure_declarations() {\n/** @type {?} */\nResizerService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nResizerService.ctorParameters;\n/** @type {?} */\nResizerService.prototype.router;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\nexport class MouseService {\n/**\n * @param {?} grid\n * @return {?}\n */\nattachOnMouseHover(grid: any) {\n grid.onMouseEnter.subscribe(function (e: any) {\n const /** @type {?} */ cell = grid.getCellFromEvent(e);\n if (cell && cell.row >= 0) {\n grid.setSelectedRows([cell.row]);\n e.preventDefault();\n }\n });\n grid.onMouseLeave.subscribe(function (e: any) {\n grid.setSelectedRows([]);\n e.preventDefault();\n });\n }\n}\n","import { FilterConditions } from '../filter-conditions/index';\nimport { Column, ColumnFilters, FieldType, FilterChangedArgs, FormElementType, GridOption } from '../models/index';\nimport { FilterTemplates } from './../filter-templates/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class FilterService {\n _columnDefinitions: Column[];\n _columnFilters: ColumnFilters;\n _dataView: any;\n _grid: any;\n _gridOptions: GridOption;\n subscriber: any;\nconstructor() { }\n/**\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?} columnDefinitions\n * @param {?} columnFilters\n * @return {?}\n */\ninit(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any) {\n this._columnDefinitions = columnDefinitions;\n this._columnFilters = columnFilters;\n this._gridOptions = gridOptions;\n this._grid = grid;\n }\n/**\n * Attach a backend filter hook to the grid\n * @return {?}\n */\nattachBackendOnFilter() {\n this.subscriber = new Slick.Event();\n this.subscriber.subscribe(this._gridOptions.onFilterChanged);\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} operator\n * @param {?} value1\n * @param {?} value2\n * @return {?}\n */\ntestFilterCondition(operator: string, value1: any, value2: any) {\n switch (operator) {\n case '<': return (value1 < value2) ? true : false;\n case '<=': return (value1 <= value2) ? true : false;\n case '>': return (value1 > value2) ? true : false;\n case '>=': return (value1 >= value2) ? true : false;\n case '!=':\n case '<>': return (value1 !== value2) ? true : false;\n case '=':\n case '==': return (value1 === value2) ? true : false;\n }\n }\n/**\n * Attach a local filter hook to the grid\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnFilter(dataView: any) {\n this._dataView = dataView;\n this.subscriber = new Slick.Event();\n\n dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid });\n dataView.setFilter(this.customFilter);\n\n this.subscriber.subscribe((e: any, args: any) => {\n const /** @type {?} */ columnId = args.columnId;\n if (columnId != null) {\n dataView.refresh();\n }\n });\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} item\n * @param {?} args\n * @return {?}\n */\ncustomFilter(item: any, args: any) {\n for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId);\n const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex];\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || FieldType.string;\n const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null;\n const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null;\n\n let /** @type {?} */ cellValue = item[columnDef.field];\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n\n // no need to query if search value is empty\n if (searchTerm === '') {\n return true;\n }\n\n if (typeof cellValue === 'number') {\n cellValue = cellValue.toString();\n }\n\n const /** @type {?} */ conditionOptions = {\n fieldType: fieldType,\n searchTerm: searchTerm,\n cellValue: cellValue,\n operator: operator,\n cellValueLastChar: lastValueChar,\n filterSearchType: filterSearchType\n };\n if (conditionalFilterFn && typeof conditionalFilterFn === 'function') {\n conditionalFilterFn(conditionOptions);\n }\n if (!FilterConditions.executeMappedCondition(conditionOptions)) {\n return false;\n }\n }\n return true;\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\n/**\n * @param {?} e\n * @param {?} args\n * @return {?}\n */\ncallbackSearchEvent(e: any, args: any) {\n this._columnFilters[args.columnDef.id] = {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n searchTerm: e.target.value\n };\n\n this.triggerEvent(this.subscriber, {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n columnFilters: this._columnFilters,\n searchTerm: e.target.value,\n grid: this._grid\n }, e);\n }\n/**\n * @return {?}\n */\naddFilterTemplateToHeaderRow() {\n for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) {\n if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) {\n let /** @type {?} */ filterTemplate = '';\n let /** @type {?} */ elm = null;\n let /** @type {?} */ header;\n const /** @type {?} */ columnDef = this._columnDefinitions[i];\n const /** @type {?} */ columnId = columnDef.id;\n const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null;\n let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : '';\n\n // keep the filter in a columnFilters for later reference\n this.keepColumnFilters(searchTerm, listTerm, columnDef);\n\n if (!columnDef.filter) {\n searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null;\n filterTemplate = FilterTemplates.input(searchTerm, columnDef);\n } else {\n // custom Select template\n if (columnDef.filter.type === FormElementType.select) {\n filterTemplate = FilterTemplates.select(searchTerm, columnDef);\n }\n }\n\n // create the DOM Element\n header = this._grid.getHeaderRowColumn(columnDef.id);\n $(header).empty();\n elm = $(filterTemplate);\n elm.val(searchTerm);\n elm.data('columnId', columnDef.id);\n if (elm && typeof elm.appendTo === 'function') {\n elm.appendTo(header);\n }\n\n // depending on the DOM Element type, we will watch the corrent event\n const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input;\n switch (filterType) {\n case FormElementType.select:\n case FormElementType.multiSelect:\n elm.change((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n case FormElementType.input:\n default:\n elm.keyup((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n }\n }\n }\n }\n/**\n * @param {?} searchTerm\n * @param {?} listTerm\n * @param {?} columnDef\n * @return {?}\n */\nprivate keepColumnFilters(searchTerm: string, listTerm: any, columnDef: any) {\n if (searchTerm) {\n this._columnFilters[columnDef.id] = {\n columnId: columnDef.id,\n columnDef: columnDef,\n searchTerm: searchTerm\n };\n if (listTerm) {\n this._columnFilters.listTerm = listTerm;\n }\n }\n }\n/**\n * @param {?} evt\n * @param {?} args\n * @param {?} e\n * @return {?}\n */\nprivate triggerEvent(evt: any, args: any, e: any) {\n e = e || new Slick.EventData();\n return evt.notify(args, e, args.grid);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FilterService_tsickle_Closure_declarations() {\n/** @type {?} */\nFilterService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFilterService.ctorParameters;\n/** @type {?} */\nFilterService.prototype._columnDefinitions;\n/** @type {?} */\nFilterService.prototype._columnFilters;\n/** @type {?} */\nFilterService.prototype._dataView;\n/** @type {?} */\nFilterService.prototype._grid;\n/** @type {?} */\nFilterService.prototype._gridOptions;\n/** @type {?} */\nFilterService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { dateUsShortSorter } from './dateUsShortSorter';\nimport { dateSorter } from './dateSorter';\nimport { dateIsoSorter } from './dateIsoSorter';\nimport { dateUsSorter } from './dateUsSorter';\nimport { numericSorter } from './numericSorter';\nimport { stringSorter } from './stringSorter';\n\nexport const /** @type {?} */ Sorters = {\n date: dateSorter,\n dateIso: dateIsoSorter,\n dateUs: dateUsSorter,\n dateUsShort: dateUsShortSorter,\n numeric: numericSorter,\n string: stringSorter\n};\n","import { Sorter } from './../models/index';\n\nexport const /** @type {?} */ stringSorter: Sorter = (value1, value2, sortDirection) => {\n return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\n\nexport const /** @type {?} */ numericSorter: Sorter = (value1, value2, sortDirection) => {\n const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1);\n const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2);\n return sortDirection * (x === y ? 0 : (x > y ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, moment.ISO_8601).isValid() || !moment(value2, moment.ISO_8601, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1);\n const /** @type {?} */ date2 = moment(value2);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Column } from './../models/index';\n// import { Group, GroupTotals } from '../core'\n// import { Item } from '../dataview'\n\nimport { checkboxFormatter } from './CheckboxFormatter';\nimport { checkmarkFormatter } from './CheckmarkFormatter';\nimport { dateIsoFormatter } from './dateIsoFormatter';\nimport { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter';\nimport { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter';\nimport { dateTimeUsFormatter } from './dateTimeUsFormatter';\nimport { dateUsFormatter } from './dateUsFormatter';\nimport { percentCompleteFormatter } from './percentCompleteFormatter';\nimport { percentCompleteBarFormatter } from './percentCompleteBarFormatter';\nimport { progressBarFormatter } from './ProgressBarFormatter';\nimport { yesNoFormatter } from './yesNoFormatter';\n\n\n/*\nexport interface GroupFormatter {\n (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string\n}\n\nexport interface GroupTotalsFormatter {\n (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string\n}\n*/\nexport const /** @type {?} */ Formatters = {\n checkbox: checkboxFormatter,\n checkmark: checkmarkFormatter,\n dateIso: dateIsoFormatter,\n dateTimeIso: dateIsoFormatter,\n dateTimeIsoAmPm: dateTimeIsoAmPmFormatter,\n dateUs: dateUsFormatter,\n dateTimeUs: dateTimeUsFormatter,\n dateTimeUsAmPm: dateTimeUsAmPmFormatter,\n percentComplete: percentCompleteFormatter,\n percentCompleteBar: percentCompleteBarFormatter,\n progressBar: progressBarFormatter,\n yesNoFormatter: yesNoFormatter\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ yesNoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string =>\n value ? 'Yes' : 'No';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ progressBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '';\n }\n\n let /** @type {?} */ color;\n\n if (value < 30) {\n color = 'danger';\n } else if (value < 70) {\n color = 'warning';\n } else {\n color = 'success';\n }\n\n return `
\n
\n ${value}%\n
\n
`;\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ percentCompleteBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '';\n }\n\n let /** @type {?} */ color;\n\n if (value < 30) {\n color = 'red';\n } else if (value < 70) {\n color = 'silver';\n } else {\n color = 'green';\n }\n\n return ``;\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ percentCompleteFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '-';\n } else if (value < 50) {\n return `${value}%`;\n } else {\n return `${value}%`;\n }\n};\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY hh:mm:ss') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY h:mm:ss a') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('YYYY-MM-DD h:mm:ss a') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('YYYY-MM-DD') : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkmarkFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? `` : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkboxFormatter: Formatter = (row, cell, value, columnDef, dataContext) =>\n value ? '☑' : '';\n","import { Column, Filter } from './../models/index';\nimport { inputFilterTemplate } from './inputFilterTemplate';\nimport { selectFilterTemplate } from './selectFilterTemplate';\n\nexport const /** @type {?} */ FilterTemplates = {\n input: inputFilterTemplate,\n select: selectFilterTemplate\n};\n","import { Column, Filter } from './../models/index';\n\nexport const /** @type {?} */ selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n if (!columnDef.filter.selectOptions) {\n throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`);\n }\n let /** @type {?} */ options = '';\n columnDef.filter.selectOptions.forEach((option: any) => {\n options += ``;\n });\n return ``;\n};\n","import { Column, Filter } from './../models/index';\n\nexport const /** @type {?} */ inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n return ``;\n};\n","import { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { executeMappedCondition } from './executeMappedCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ FilterConditions = {\n executeMappedCondition: executeMappedCondition,\n booleanFilter: booleanFilterCondition,\n dateFilter: dateFilterCondition,\n dateIsoFilter: dateIsoFilterCondition,\n dateUtcFilter: dateUtcFilterCondition,\n dateUsFilter: dateUsFilterCondition,\n dateUsShortFilter: dateUsShortFilterCondition,\n numberFilter: numberFilterCondition,\n stringFilter: stringFilterCondition,\n testFilter: testFilterCondition\n};\n","import { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { FilterCondition } from '../models/filterCondition.interface';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { FieldType } from '../models/index';\n\nexport const /** @type {?} */ executeMappedCondition: FilterCondition = (options: FilterConditionOption) => {\n // execute the mapped type, or default to String condition check\n switch (options.fieldType) {\n case FieldType.boolean:\n return booleanFilterCondition(options);\n case FieldType.date:\n return dateFilterCondition(options);\n case FieldType.dateUtc:\n return dateUtcFilterCondition(options);\n case FieldType.dateIso:\n return dateIsoFilterCondition(options);\n case FieldType.dateUs:\n case FieldType.dateTimeUs:\n return dateUsFilterCondition(options);\n case FieldType.dateUsShort:\n case FieldType.dateTimeUsShort:\n return dateUsShortFilterCondition(options);\n case FieldType.number:\n return numberFilterCondition(options);\n case FieldType.string:\n default:\n return stringFilterCondition(options);\n }\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ stringFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n // make sure the cell value is a string by casting it\n options.cellValue = options.cellValue.toString();\n\n if (options.operator === '*') {\n return options.cellValue.startsWith(options.searchTerm);\n } else if (options.operator === '' && options.cellValueLastChar === '*') {\n return options.cellValue.endsWith(options.searchTerm);\n } else if (options.operator === '') {\n return options.cellValue.includes(options.searchTerm);\n }\n return testFilterCondition(options.operator || '==', options.cellValue.toLowerCase(), options.searchTerm.toLowerCase());\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ numberFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm));\n};\n","import { FieldType } from '../models/fieldType';\nimport { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso;\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue);\n const /** @type {?} */ dateSearch = moment(options.searchTerm);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!options.filterSearchType) {\n throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }');\n }\n\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","//! moment.js\n//! version : 2.18.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){\"use strict\";function a(){return sd.apply(null,arguments)}function b(a){sd=a}function c(a){return a instanceof Array||\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){return null!=a&&\"[object Object]\"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return\"number\"==typeof a||\"[object Number]\"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c0)for(c=0;c0?\"future\":\"past\"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Hd[c]=Hd[c+\"s\"]=Hd[b]=a}function K(a){return\"string\"==typeof a?Hd[a]||Hd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Id[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Id[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if(\"object\"==typeof a){a=L(a);for(var c=N(a),d=0;d=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&(Md[a]=e),b&&(Md[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Md[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\")}function W(a){var b,c,d=a.match(Jd);for(b=0,c=d.length;b=0&&Kd.test(a);)a=a.replace(Kd,c),Kd.lastIndex=0,d-=1;return a}function Z(a,b,c){ce[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(ce,a)?ce[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function ba(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}function Da(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return\"string\"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,\"\").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,\"\").toLocaleLowerCase();return c?\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:null):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null):\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,\"d\")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,\"_weekdaysRegex\")||(this._weekdaysRegex=ye),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Ae),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,\"\"),e=this.weekdaysShort(c,\"\"),f=this.weekdays(c,\"\"),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp(\"^(\"+j.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+g.join(\"|\")+\")\",\"i\")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return\"p\"===(a+\"\").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function Xa(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}function Ya(a){for(var b,c,d,e,f=0;f0;){if(d=Za(e.slice(0,b).join(\"-\")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Fe[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=Be._abbr,require(\"./locale/\"+a),$a(b)}catch(a){}return Fe[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Be=c)),Be._abbr}function _a(a,b){if(null!==b){var c=Ee;if(b.abbr=a,null!=Fe[a])y(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),c=Fe[a]._config;else if(null!=b.parentLocale){if(null==Fe[b.parentLocale])return Ge[b.parentLocale]||(Ge[b.parentLocale]=[]),Ge[b.parentLocale].push({name:a,config:b}),null;c=Fe[b.parentLocale]._config}return Fe[a]=new C(B(c,b)),Ge[a]&&Ge[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Fe[a]}return delete Fe[a],null}function ab(a,b){if(null!=b){var c,d=Ee;null!=Fe[a]&&(d=Fe[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Fe[a],Fe[a]=c,$a(a)}else null!=Fe[a]&&(null!=Fe[a].parentLocale?Fe[a]=Fe[a].parentLocale:null!=Fe[a]&&delete Fe[a]);return Fe[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Be;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return Ad(Fe)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[fe]<0||c[fe]>11?fe:c[ge]<1||c[ge]>ea(c[ee],c[fe])?ge:c[he]<0||c[he]>24||24===c[he]&&(0!==c[ie]||0!==c[je]||0!==c[ke])?he:c[ie]<0||c[ie]>59?ie:c[je]<0||c[je]>59?je:c[ke]<0||c[ke]>999?ke:-1,n(a)._overflowDayOfYear&&(bge)&&(b=ge),n(a)._overflowWeeks&&b===-1&&(b=le),n(a)._overflowWeekday&&b===-1&&(b=me),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=He.exec(h)||Ie.exec(h);if(i){for(n(a).iso=!0,b=0,c=Ke.length;b10?\"YYYY \":\"YY \"),f=\"HH:mm\"+(c[4]?\":ss\":\"\"),c[1]){var l=new Date(c[2]),m=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=\" +0000\":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?\" -\":\" +\")+(\"\"+i).replace(/^-?/,\"0\").match(/..$/)[0]+\"00\");break;case 4:h=j[c[5]];break;default:h=j[\" GMT\"]}c[5]=h,a._i=c.splice(1).join(\"\"),g=\" ZZ\",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Me.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ge]&&null==a._a[fe]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[ee],d[ee]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[fe]=c.getUTCMonth(),a._a[ge]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[he]&&0===a._a[ie]&&0===a._a[je]&&0===a._a[ke]&&(a._nextDay=!0,a._a[he]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[he]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[ee],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[ee],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ee]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=\"\"+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Jd)||[],c=0;c0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Md[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[he]<=12&&n(b).bigHour===!0&&b._a[he]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[he]=mb(b._locale,b._a[he],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Te.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:0,d:u(h[ge])*c,h:u(h[he])*c,m:u(h[ie])*c,s:u(h[je])*c,ms:u(Cb(1e3*h[ke]))*c}):(h=Ue.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:\"object\"==typeof f&&(\"from\"in f||\"to\"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,\"_locale\")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(\",\",\".\"));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,\"Date\",P(b,\"Date\")+g*d),h&&ja(b,P(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,\"days\",!0);return c<-6?\"sameElse\":c<-1?\"lastWeek\":c<0?\"lastDay\":c<1?\"sameDay\":c<2?\"nextDay\":c<7?\"nextWeek\":\"sameElse\"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf(\"day\"),f=a.calendarFormat(this,e)||\"sameElse\",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()>c.valueOf():c.valueOf()9999?X(a,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function jc(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var a=\"moment\",b=\"\";this.isLocal()||(a=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",b=\"Z\");var c=\"[\"+a+'(\"]',d=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",e=\"-MM-DD[T]HH:mm:ss.SSS\",f=b+'[\")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===a&&this.weekday(0),\"isoWeek\"===a&&this.isoWeekday(1),\"quarter\"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||\"millisecond\"===a?this:(\"date\"===a&&(a=\"day\"),this.startOf(a).add(1,\"isoWeek\"===a?\"week\":a).subtract(1,\"ms\"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){\nreturn k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==a?b:this.add(a-b,\"d\")}function Mc(a,b){b[ke]=u(1e3*(\"0.\"+a))}function Nc(){return this._isUTC?\"UTC\":\"\"}function Oc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||\"\",null!=b)return Sc(a,b,c,\"month\");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,\"month\");return e}function Uc(a,b,c,d){\"boolean\"==typeof a?(g(b)&&(c=b,b=void 0),b=b||\"\"):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||\"\");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,\"day\");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,\"day\");return i}function Vc(a,b){return Tc(a,b,\"months\")}function Wc(a,b){return Tc(a,b,\"monthsShort\")}function Xc(a,b,c){return Uc(a,b,c,\"weekdays\")}function Yc(a,b,c){return Uc(a,b,c,\"weekdaysShort\")}function Zc(a,b,c){return Uc(a,b,c,\"weekdaysMin\")}function $c(){var a=this._data;return this._milliseconds=df(this._milliseconds),this._days=df(this._days),this._months=df(this._months),a.milliseconds=df(a.milliseconds),a.seconds=df(a.seconds),a.minutes=df(a.minutes),a.hours=df(a.hours),a.months=df(a.months),a.years=df(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),\"month\"===a||\"year\"===a)return b=this._days+d/864e5,c=this._months+ed(b),\"month\"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case\"week\":return b/7+d/6048e5;case\"day\":return b+d/864e5;case\"hour\":return 24*b+d/36e5;case\"minute\":return 1440*b+d/6e4;case\"second\":return 86400*b+d/1e3;case\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+\"s\"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=uf(d.as(\"s\")),f=uf(d.as(\"m\")),g=uf(d.as(\"h\")),h=uf(d.as(\"d\")),i=uf(d.as(\"M\")),j=uf(d.as(\"y\")),k=e<=vf.ss&&[\"s\",e]||e0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?uf:\"function\"==typeof a&&(uf=a,!0)}function pd(a,b){return void 0!==vf[a]&&(void 0===b?vf[a]:(vf[a]=b,\"s\"===a&&(vf.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=wf(this._milliseconds)/1e3,e=wf(this._days),f=wf(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}var sd,td;td=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d68?1900:2e3)};var te=O(\"FullYear\",!0);U(\"w\",[\"ww\",2],\"wo\",\"week\"),U(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),J(\"week\",\"w\"),J(\"isoWeek\",\"W\"),M(\"week\",5),M(\"isoWeek\",5),Z(\"w\",Sd),Z(\"ww\",Sd,Od),Z(\"W\",Sd),Z(\"WW\",Sd,Od),ca([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var ue={dow:0,doy:6};U(\"d\",0,\"do\",\"day\"),U(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),U(\"e\",0,0,\"weekday\"),U(\"E\",0,0,\"isoWeekday\"),J(\"day\",\"d\"),J(\"weekday\",\"e\"),J(\"isoWeekday\",\"E\"),M(\"day\",11),M(\"weekday\",11),M(\"isoWeekday\",11),Z(\"d\",Sd),Z(\"e\",Sd),Z(\"E\",Sd),Z(\"dd\",function(a,b){return b.weekdaysMinRegex(a)}),Z(\"ddd\",function(a,b){return b.weekdaysShortRegex(a)}),Z(\"dddd\",function(a,b){return b.weekdaysRegex(a)}),ca([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=u(a)});var ve=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),we=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),xe=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ye=be,ze=be,Ae=be;U(\"H\",[\"HH\",2],0,\"hour\"),U(\"h\",[\"hh\",2],0,Ra),U(\"k\",[\"kk\",2],0,Sa),U(\"hmm\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)}),U(\"hmmss\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U(\"Hmm\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)}),U(\"Hmmss\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta(\"a\",!0),Ta(\"A\",!1),J(\"hour\",\"h\"),M(\"hour\",13),Z(\"a\",Ua),Z(\"A\",Ua),Z(\"H\",Sd),Z(\"h\",Sd),Z(\"k\",Sd),Z(\"HH\",Sd,Od),Z(\"hh\",Sd,Od),Z(\"kk\",Sd,Od),Z(\"hmm\",Td),Z(\"hmmss\",Ud),Z(\"Hmm\",Td),Z(\"Hmmss\",Ud),ba([\"H\",\"HH\"],he),ba([\"k\",\"kk\"],function(a,b,c){var d=u(a);b[he]=24===d?0:d}),ba([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba([\"h\",\"hh\"],function(a,b,c){b[he]=u(a),n(c).bigHour=!0}),ba(\"hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d)),n(c).bigHour=!0}),ba(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e)),n(c).bigHour=!0}),ba(\"Hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d))}),ba(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e))});var Be,Ce=/[ap]\\.?m?\\.?/i,De=O(\"Hours\",!0),Ee={calendar:Bd,longDateFormat:Cd,invalidDate:Dd,ordinal:Ed,dayOfMonthOrdinalParse:Fd,relativeTime:Gd,months:pe,monthsShort:qe,week:ue,weekdays:ve,weekdaysMin:xe,weekdaysShort:we,meridiemParse:Ce},Fe={},Ge={},He=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Ie=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Je=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Ke=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Le=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Me=/^\\/?Date\\((\\-?\\d+)/i,Ne=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d?\\d\\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(?:\\d\\d)?\\d\\d\\s)(\\d\\d:\\d\\d)(\\:\\d\\d)?(\\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\\d{4}))$/;a.createFromInputFallback=x(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Oe=x(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?athis?this:a:p()}),Qe=function(){return Date.now?Date.now():+new Date},Re=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];Db(\"Z\",\":\"),Db(\"ZZ\",\"\"),Z(\"Z\",_d),Z(\"ZZ\",_d),ba([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=Eb(_d,a)});var Se=/([\\+\\-]|\\d\\d)/gi;a.updateOffset=function(){};var Te=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Ue=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Ve=Wb(1,\"add\"),We=Wb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",a.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Xe=x(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,[\"gg\",2],0,function(){return this.weekYear()%100}),U(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),Dc(\"gggg\",\"weekYear\"),Dc(\"ggggg\",\"weekYear\"),Dc(\"GGGG\",\"isoWeekYear\"),Dc(\"GGGGG\",\"isoWeekYear\"),J(\"weekYear\",\"gg\"),J(\"isoWeekYear\",\"GG\"),M(\"weekYear\",1),M(\"isoWeekYear\",1),Z(\"G\",Zd),Z(\"g\",Zd),Z(\"GG\",Sd,Od),Z(\"gg\",Sd,Od),Z(\"GGGG\",Wd,Qd),Z(\"gggg\",Wd,Qd),Z(\"GGGGG\",Xd,Rd),Z(\"ggggg\",Xd,Rd),ca([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U(\"Q\",0,\"Qo\",\"quarter\"),J(\"quarter\",\"Q\"),M(\"quarter\",7),Z(\"Q\",Nd),ba(\"Q\",function(a,b){b[fe]=3*(u(a)-1)}),U(\"D\",[\"DD\",2],\"Do\",\"date\"),J(\"date\",\"D\"),M(\"date\",9),Z(\"D\",Sd),Z(\"DD\",Sd,Od),Z(\"Do\",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba([\"D\",\"DD\"],ge),ba(\"Do\",function(a,b){b[ge]=u(a.match(Sd)[0],10)});var Ye=O(\"Date\",!0);U(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),J(\"dayOfYear\",\"DDD\"),M(\"dayOfYear\",4),Z(\"DDD\",Vd),Z(\"DDDD\",Pd),ba([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=u(a)}),U(\"m\",[\"mm\",2],0,\"minute\"),J(\"minute\",\"m\"),M(\"minute\",14),Z(\"m\",Sd),Z(\"mm\",Sd,Od),ba([\"m\",\"mm\"],ie);var Ze=O(\"Minutes\",!1);U(\"s\",[\"ss\",2],0,\"second\"),J(\"second\",\"s\"),M(\"second\",15),Z(\"s\",Sd),Z(\"ss\",Sd,Od),ba([\"s\",\"ss\"],je);var $e=O(\"Seconds\",!1);U(\"S\",0,0,function(){return~~(this.millisecond()/100)}),U(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),U(0,[\"SSS\",3],0,\"millisecond\"),U(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),U(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),U(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),U(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),U(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),U(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),J(\"millisecond\",\"ms\"),M(\"millisecond\",16),Z(\"S\",Vd,Nd),Z(\"SS\",Vd,Od),Z(\"SSS\",Vd,Pd);var _e;for(_e=\"SSSS\";_e.length<=9;_e+=\"S\")Z(_e,Yd);for(_e=\"S\";_e.length<=9;_e+=\"S\")ba(_e,Mc);var af=O(\"Milliseconds\",!1);U(\"z\",0,0,\"zoneAbbr\"),U(\"zz\",0,0,\"zoneName\");var bf=r.prototype;bf.add=Ve,bf.calendar=Zb,bf.clone=$b,bf.diff=fc,bf.endOf=sc,bf.format=kc,bf.from=lc,bf.fromNow=mc,bf.to=nc,bf.toNow=oc,bf.get=R,bf.invalidAt=Bc,bf.isAfter=_b,bf.isBefore=ac,bf.isBetween=bc,bf.isSame=cc,bf.isSameOrAfter=dc,bf.isSameOrBefore=ec,bf.isValid=zc,bf.lang=Xe,bf.locale=pc,bf.localeData=qc,bf.max=Pe,bf.min=Oe,bf.parsingFlags=Ac,bf.set=S,bf.startOf=rc,bf.subtract=We,bf.toArray=wc,bf.toObject=xc,bf.toDate=vc,bf.toISOString=ic,bf.inspect=jc,bf.toJSON=yc,bf.toString=hc,bf.unix=uc,bf.valueOf=tc,bf.creationData=Cc,bf.year=te,bf.isLeapYear=ra,bf.weekYear=Ec,bf.isoWeekYear=Fc,bf.quarter=bf.quarters=Kc,bf.month=ka,bf.daysInMonth=la,bf.week=bf.weeks=Ba,bf.isoWeek=bf.isoWeeks=Ca,bf.weeksInYear=Hc,bf.isoWeeksInYear=Gc,bf.date=Ye,bf.day=bf.days=Ka,bf.weekday=La,bf.isoWeekday=Ma,bf.dayOfYear=Lc,bf.hour=bf.hours=De,bf.minute=bf.minutes=Ze,bf.second=bf.seconds=$e,bf.millisecond=bf.milliseconds=af,bf.utcOffset=Hb,bf.utc=Jb,bf.local=Kb,bf.parseZone=Lb,bf.hasAlignedHourOffset=Mb,bf.isDST=Nb,bf.isLocal=Pb,bf.isUtcOffset=Qb,bf.isUtc=Rb,bf.isUTC=Rb,bf.zoneAbbr=Nc,bf.zoneName=Oc,bf.dates=x(\"dates accessor is deprecated. Use date instead.\",Ye),bf.months=x(\"months accessor is deprecated. Use month instead\",ka),bf.years=x(\"years accessor is deprecated. Use year instead\",te),bf.zone=x(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",Ib),bf.isDSTShifted=x(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",Ob);var cf=C.prototype;cf.calendar=D,cf.longDateFormat=E,cf.invalidDate=F,cf.ordinal=G,cf.preparse=Rc,cf.postformat=Rc,cf.relativeTime=H,cf.pastFuture=I,cf.set=A,cf.months=fa,cf.monthsShort=ga,cf.monthsParse=ia,cf.monthsRegex=na,cf.monthsShortRegex=ma,cf.week=ya,cf.firstDayOfYear=Aa,cf.firstDayOfWeek=za,cf.weekdays=Fa,cf.weekdaysMin=Ha,cf.weekdaysShort=Ga,cf.weekdaysParse=Ja,cf.weekdaysRegex=Na,cf.weekdaysShortRegex=Oa,cf.weekdaysMinRegex=Pa,cf.isPM=Va,cf.meridiem=Wa,$a(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.lang=x(\"moment.lang is deprecated. Use moment.locale instead.\",$a),a.langData=x(\"moment.langData is deprecated. Use moment.localeData instead.\",bb);var df=Math.abs,ef=id(\"ms\"),ff=id(\"s\"),gf=id(\"m\"),hf=id(\"h\"),jf=id(\"d\"),kf=id(\"w\"),lf=id(\"M\"),mf=id(\"y\"),nf=kd(\"milliseconds\"),of=kd(\"seconds\"),pf=kd(\"minutes\"),qf=kd(\"hours\"),rf=kd(\"days\"),sf=kd(\"months\"),tf=kd(\"years\"),uf=Math.round,vf={ss:44,s:45,m:45,h:22,d:26,M:11},wf=Math.abs,xf=Ab.prototype;return xf.isValid=yb,xf.abs=$c,xf.add=ad,xf.subtract=bd,xf.as=gd,xf.asMilliseconds=ef,xf.asSeconds=ff,xf.asMinutes=gf,xf.asHours=hf,xf.asDays=jf,xf.asWeeks=kf,xf.asMonths=lf,xf.asYears=mf,xf.valueOf=hd,xf._bubble=dd,xf.get=jd,xf.milliseconds=nf,xf.seconds=of,xf.minutes=pf,xf.hours=qf,xf.days=rf,xf.weeks=ld,xf.months=sf,xf.years=tf,xf.humanize=qd,xf.toISOString=rd,xf.toString=rd,xf.toJSON=rd,xf.locale=pc,xf.localeData=qc,xf.toIsoString=x(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",rd),xf.lang=Xe,U(\"X\",0,0,\"unix\"),U(\"x\",0,0,\"valueOf\"),Z(\"x\",Zd),Z(\"X\",ae),ba(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba(\"x\",function(a,b,c){c._d=new Date(u(a))}),a.version=\"2.18.1\",b(tb),a.fn=bf,a.min=vb,a.max=wb,a.now=Qe,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bf,a});\n","import { FieldType } from '../models/index';\n\nexport const /** @type {?} */ mapDateFormatByFieldType: Function = (fieldType: FieldType) => {\n switch (fieldType) {\n case FieldType.dateUs:\n return 'M/D/YYYY';\n case FieldType.dateTimeUs:\n return 'M/D/YYYY h:m:s';\n case FieldType.dateUsShort:\n return 'M/D/YY';\n case FieldType.dateTimeUsShort:\n return 'M/D/YY h:m:s';\n case FieldType.dateTimeIso:\n return 'YYYY-MM-DD h:m:s';\n case FieldType.dateIso:\n default:\n return 'YYYY-MM-DD';\n }\n};\n\nexport const /** @type {?} */ testFilterCondition: Function = (operator: string, value1: any, value2: any): boolean => {\n switch (operator) {\n case '<': return (value1 < value2);\n case '<=': return (value1 <= value2);\n case '>': return (value1 > value2);\n case '>=': return (value1 >= value2);\n case '!=':\n case '<>': return (value1 !== value2);\n case '=':\n case '==': return (value1 === value2);\n }\n return true;\n};\n","import { FilterCondition, FilterConditionOption } from './../models/index';\nimport { testFilterCondition } from './filterUtilities';\n/**\n * @param {?} str\n * @return {?}\n */\nfunction parseBoolean(str: string) {\n return /(true|1)/i.test(str);\n}\n\nexport const /** @type {?} */ booleanFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm);\n};\n","\nexport type FieldType = number;\nexport let FieldType: any = {};\nFieldType.unknown = 0;\nFieldType.string = 1;\nFieldType.boolean = 2;\nFieldType.number = 3;\nFieldType.date = 4;\nFieldType.dateIso = 5;\nFieldType.dateUtc = 6;\nFieldType.dateTime = 7;\nFieldType.dateTimeIso = 8;\nFieldType.dateUs = 9;\nFieldType.dateUsShort = 10;\nFieldType.dateTimeUs = 11;\nFieldType.dateTimeUsShort = 12;\nFieldType[FieldType.unknown] = \"unknown\";\nFieldType[FieldType.string] = \"string\";\nFieldType[FieldType.boolean] = \"boolean\";\nFieldType[FieldType.number] = \"number\";\nFieldType[FieldType.date] = \"date\";\nFieldType[FieldType.dateIso] = \"dateIso\";\nFieldType[FieldType.dateUtc] = \"dateUtc\";\nFieldType[FieldType.dateTime] = \"dateTime\";\nFieldType[FieldType.dateTimeIso] = \"dateTimeIso\";\nFieldType[FieldType.dateUs] = \"dateUs\";\nFieldType[FieldType.dateUsShort] = \"dateUsShort\";\nFieldType[FieldType.dateTimeUs] = \"dateTimeUs\";\nFieldType[FieldType.dateTimeUsShort] = \"dateTimeUsShort\";\n\n","\nexport type FormElementType = number;\nexport let FormElementType: any = {};\nFormElementType.input = 0;\nFormElementType.multiSelect = 1;\nFormElementType.select = 2;\nFormElementType.textarea = 3;\nFormElementType[FormElementType.input] = \"input\";\nFormElementType[FormElementType.multiSelect] = \"multiSelect\";\nFormElementType[FormElementType.select] = \"select\";\nFormElementType[FormElementType.textarea] = \"textarea\";\n\n","\nexport type CaseType = number;\nexport let CaseType: any = {};\nCaseType.camelCase = 0;\nCaseType.pascalCase = 1;\nCaseType.snakeCase = 2;\nCaseType[CaseType.camelCase] = \"camelCase\";\nCaseType[CaseType.pascalCase] = \"pascalCase\";\nCaseType[CaseType.snakeCase] = \"snakeCase\";\n\n"],"names":["moment","((moment_)).default","QueryBuilder","router","DATE_FORMAT","require","this"],"mappings":";;;AmDEO,IAAI,QAAQ,GAAQ,EAAE,CAAC;AAC9B,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,QAAQ,CAAC,UAAU,GAAG,CAAC,CAAC;AACxB,QAAQ,CAAC,SAAS,GAAG,CAAC,CAAC;AACvB,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;AAC3C,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;AAC7C,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;ADNpC,IAAI,eAAe,GAAQ,EAAE,CAAC;AACrC,eAAe,CAAC,KAAK,GAAG,CAAC,CAAC;AAC1B,eAAe,CAAC,WAAW,GAAG,CAAC,CAAC;AAChC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3B,eAAe,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC7B,eAAe,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;AACjD,eAAe,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;AAC7D,eAAe,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACnD,eAAe,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;ADRhD,IAAI,SAAS,GAAQ,EAAE,CAAC;AAC/B,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACrB,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACrB,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;AACnB,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC;AACtB,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC;AACvB,SAAS,CAAC,WAAW,GAAG,CAAC,CAAC;AAC1B,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;AACrB,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;AAC3B,SAAS,CAAC,UAAU,GAAG,EAAE,CAAC;AAC1B,SAAS,CAAC,eAAe,GAAG,EAAE,CAAC;AAC/B,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AACzC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACvC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AACzC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACvC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AACnC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AACzC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;AACzC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,UAAU,CAAC;AAC3C,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;AACjD,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;AACvC,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC;AACjD,SAAS,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,YAAY,CAAC;AAC/C,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,iBAAiB,CAAC;AD1BzD;;;;AAIA,sBAHC,GAAA;IAIC,MAAF,CAHS,WAAA,CAAY,IAAC,CAAI,GAAC,CAAG,CAAC;AAI/B,CAAC;AAED,IAHa,sBAAA,GAA0C,UAAA,OAAU;IAI/D,MAAF,CAHS,YAAA,CAAa,OAAC,CAAO,SAAC,CAAS,KAAK,YAAA,CAAa,OAAC,CAAO,UAAC,CAAU,CAAC;AAI9E,CAAC,CAAD;ADVO,IAAM,wBAAA,GAAqC,UAAA,SAAY;IAC5D,MAAF,CAAA,CAAU,SAAC,CAAX,CAAA,CAAA;QACI,KAAK,SAAA,CAAU,MAAC;YACd,MAAN,CAAa,UAAA,CAAW;QACpB,KAAK,SAAA,CAAU,UAAC;YACd,MAAN,CAAa,gBAAA,CAAiB;QAC1B,KAAK,SAAA,CAAU,WAAC;YACd,MAAN,CAAa,QAAA,CAAS;QAClB,KAAK,SAAA,CAAU,eAAC;YACd,MAAN,CAAa,cAAA,CAAe;QACxB,KAAK,SAAA,CAAU,WAAC;YACd,MAAN,CAAa,kBAAA,CAAmB;QAC5B,KAAK,SAAA,CAAU,OAAC,CAAO;QACvB;YACE,MAAN,CAAa,YAAA,CAAa;IAC1B,CAAG;AACH,CAAC,CAAC;AAEF,IAAa,mBAAA,GAAgC,UAAA,QAAW,EAAQ,MAAQ,EAAK,MAAQ;IACnF,MAAF,CAAA,CAAU,QAAC,CAAX,CAAA,CAAA;QACI,KAAK,GAAA,EAAK,MAAd,CAAA,CAAqB,MAAE,GAAQ,MAAA,CAA/B,CAAuC;QACnC,KAAK,IAAA,EAAM,MAAf,CAAA,CAAsB,MAAE,IAAS,MAAA,CAAjC,CAAyC;QACrC,KAAK,GAAA,EAAK,MAAd,CAAA,CAAqB,MAAE,GAAQ,MAAA,CAA/B,CAAuC;QACnC,KAAK,IAAA,EAAM,MAAf,CAAA,CAAsB,MAAE,IAAS,MAAA,CAAjC,CAAyC;QACrC,KAAK,IAAA,CAAK;QACV,KAAK,IAAA,EAAM,MAAf,CAAA,CAAsB,MAAE,KAAU,MAAA,CAAlC,CAA0C;QACtC,KAAK,GAAA,CAAI;QACT,KAAK,IAAA,EAAM,MAAf,CAAA,CAAsB,MAAE,KAAU,MAAA,CAAlC,CAA0C;IAC1C,CAAG;IACD,MAAF,CAAS,IAAA,CAAK;AACd,CAAC,CAAD;;;;;;;;;;;;;;ID3BA,CAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAAf,CAAA,OAAkF,GAAC,CAAC,EAAE,CAA6D,CAAA,CAAC,CAACM,cAAI,EAAC;QAAW,YAAY,CAAC;QAAA,eAAa,MAA/L,CAAsM,EAAE,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,EAAE,GAAC,CAAhP,CAAiP,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAhQ,CAAuQ,CAAC,YAAY,KAAK,IAAE,gBAAgB,KAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAA9V,CAAqW,IAAI,IAAE,CAAC,IAAE,iBAAiB,KAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,GAAxb,CAAA,CAA4b,CAAC,IAAI,CAAC,CAAC;YAAA,MAAM,CAAA,CAAC,CAAC,CAAC,CAAA,MAAM,CAAA,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAne,CAA0e,KAAK,CAAC,KAAG,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAM,CAAA,QAAQ,IAAE,OAAO,CAAC,IAAE,iBAAiB,KAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAjmB,CAAwmB,CAAC,YAAY,IAAI,IAAE,eAAe,KAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAA1sB,CAAA,CAA8sB,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,EAAE,CAAC;YAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAnvB,CAA0vB,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,MAA5wB,CAAmxB,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,GAA70B,CAAA,CAAi1B,IAAI,CAAC,IAAI,CAAC,CAAC;YAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAl2B,CAAq2B,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAh3B,CAAu3B,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,IAAt4B,CAAy4B,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,SAAS,CAAC,IAA96B,CAAi7B,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAA59B,CAAm+B,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA,CAAA,CAAC;QAAA,eAAa,MAAM,CAAA,EAAC,KAAK,EAAC,CAAC,CAAC,EAAC,YAAY,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,CAAC,EAAC,aAAa,EAAC,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC,EAAC,YAAY,EAAC,IAAI,EAAC,aAAa,EAAC,CAAC,CAAC,EAAC,eAAe,EAAC,CAAC,CAAC,EAAC,GAAG,EAAC,CAAC,CAAC,EAAC,eAAe,EAAC,EAAE,EAAC,QAAQ,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC,EAAC,eAAe,EAAC,CAAC,CAAC,EAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAxuC,CAA+uC,IAAI,IAAE,CAAC,CAAC,GAAG,IAA1vC,CAA6vC,CAAC,CAAC,GAAG,GAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,EAA5xC,CAAA,CAA+xC,IAAI,IAAE,CAAC,CAAC,QAAQ,CAAC,CAAA,CAAC;YAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,EAAC,UAAS,CAAC,IAAE,MAAp2C,CAA22C,IAAI,IAAE,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAE,CAAC,CAAC,QAAQ,GAAC,CAAC,IAAE,CAAC,CAAC,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC,YAAY,IAAE,CAAC,CAAC,CAAC,cAAc,IAAE,CAAC,CAAC,CAAC,SAAS,IAAE,CAAC,CAAC,CAAC,aAAa,IAAE,CAAC,CAAC,CAAC,eAAe,IAA7/C,CAAggD,CAAC,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,QAAQ,IAAE,CAAC,CAAC,CAAC;YAAA,EAA5hD,CAAA,CAA+hD,CAAC,CAAC,OAAO,IAAxiD,CAA2iD,CAAC,GAAC,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,aAAa,IAAE,CAAC,KAAG,CAAC,CAAC,YAAY,CAAC,MAAM,IAAE,KAAK,CAAC,KAAG,CAAC,CAAC,OAAO,CAAC,EAAC,IAAI,IAAE,MAAM,CAAC,QAAQ,IAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAA,MAA9pD,CAAqqD,CAAC,CAAC;YAAA,CAAC,CAAC,QAAQ,GAAC,CAAlrD,CAAmrD;QAAA,CAAC,CAAA,MAAprD,CAA2rD,CAAC,CAAC,QAAQ,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA,MAAjuD,CAAwuD,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,EAA9yD,CAAA,CAAizD,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAt0D,CAAy0D,CAAC,CAAC,gBAAgB,GAAC,CAAC,CAAC,gBAAgB,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAv3D,CAA03D,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAA54D,CAA+4D,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAj6D,CAAo6D,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAA37D,CAA87D,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAA59D,CAA+9D,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAz/D,CAA4/D,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAA3hE,CAA8hE,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAA3jE,CAA8jE,CAAC,CAAC,GAAG,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAtlE,CAAylE,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC,EAAC,EAAE,CAAC,MAAM,GAAC,CAAC,CAAC;YAAA,GAA1nE,CAAA,CAA8nE,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,MAAM,EAAC,CAAC,EAAE;gBAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAArqE,CAAwqE,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA,MAAhrE,CAAurE,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,IAAI,IAAE,CAAC,CAAC,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,EAAC,IAAI,CAAC,OAAO,EAAE,IAA/wE,CAAkxE,IAAI,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,EAAE,KAAG,CAAC,CAAC,IAAhzE,CAAmzE,EAAE,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,CAAn1E,CAAo1E,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAn2E,CAA02E,CAAC,YAAY,CAAC,IAAE,IAAI,IAAE,CAAC,IAAE,IAAI,IAAE,CAAC,CAAC,gBAAgB,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAA16E,CAAi7E,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAA,MAA9+E,CAAq/E,CAAC,KAAG,CAAC,IAAE,QAAQ,CAAC,CAAC,CAAC,IAAvgF,CAA0gF,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAA,GAA5mF,CAAA,CAAgnF,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;YAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAlqF,IAAqqF,CAAC,EAAE,CAAC,CAAA,MAAzqF,CAAgrF,CAAC,GAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,CAAC,CAAC,2BAA2B,KAAG,CAAC,CAAC,IAAE,WAAW,IAAE,OAAO,OAAO,IAAE,OAAO,CAAC,IAAI,IAAE,OAAO,CAAC,IAAI,CAAC,uBAAuB,GAAC,CAAC,CAAvzF,CAAwzF,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAA,MAAl1F,CAAy1F,CAAC,CAAC,cAAW,EAAt2F,CAAA,CAAy2F,IAAI,IAAE,CAAC,CAAC,kBAAkB,IAAE,CAAC,CAAC,kBAAkB,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC;YAAA,GAAr6F,CAAA,CAAy6F,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,SAAS,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;gBAAA,EAAh9F,CAAA,CAAm9F,CAAC,GAAC,EAAE,EAAC,QAAQ,IAAE,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;oBAAA,CAAC,IAAE,KAAK,GAAC,CAAC,GAAC,IAAI,CAAC;oBAAA,GAAvgG,CAAA,CAA2gG,IAAI,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC;wBAAA,CAAC,IAAE,CAAC,GAAC,IAAI,GAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC;oBAAA,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAA9kG,CAA+kG;gBAAA,CAAC;gBAAA,IAAhlG;oBAAqlG,CAAC,GAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBAAA,CAAC,CAAC,IAAI,CAAC,CAAC,CAA5mG,CAA6mG;YAAA,CAAC;YAAA,CAAC,CAAC,CAAC,GAAC,eAAe,GAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAC,IAAI,GAAC,CAAC,IAAI,KAAK,CAAxrG,CAA0rG,KAAK,CAAC,EAAC,CAAC,GAAC,CAAC,CAApsG,CAAqsG;QAAA,CAAC,CAAA,MAAtsG,CAA6sG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,IAAI,IAAE,CAAC,CAAC,kBAAkB,IAAE,CAAC,CAAC,kBAAkB,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,IAApzG,CAAuzG,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAp0G,CAAq0G,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAp1G,CAA21G,CAAC,YAAY,QAAQ,IAAE,mBAAmB,KAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,CAAC,CAAA,GAAh8G,CAAA,CAAo8G,CAAC,IAAI,CAAC,CAAC;YAAA,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAA,IAAI,CAAC,OAAO,GAAC,CAAC,EAAC,IAAI,CAAC,8BAA8B,GAAC,IAAI,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,MAAM,IAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAA5mH,GAA8mH,GAAG,GAAC,SAAS,CAAC,MAAM,CAAloH,CAAmoH,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAA,GAApqH,CAAA,CAAwqH,CAAC,IAAI,CAAC,CAAC;YAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAArrH,CAAwrH,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAxsH,CAAA,CAA0sH,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAA3uH,CAAA,CAA6uH,CAAA,IAAI,IAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,GAA/wH,CAAA,CAAmxH,CAAC,IAAI,CAAC,CAAC;YAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAlzH,CAAqzH,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAt0H,CAA60H,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,IAAE,CAAC,IAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAh3H,CAAi3H,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAA,MAAr7H,CAA47H,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA,MAAniI,CAA0iI,CAAC,IAAE,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAjjI,CAAA,CAAmjI,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAC,UAAS,CAAC,IAAE,MAApnI,CAA2nI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,eAAa,MAA9qI,CAAqrI,IAAI,CAAC,YAAY,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAArtI,CAA4tI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAA,MAA1yI,CAAizI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,MAAM,CAAC,CAAC,CAAA,MAAl5I,CAAy5I,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,GAAC,GAAG,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAl/I,CAAm/I,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAM,CAAA,QAAQ,IAAE,OAAO,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAAxlJ,CAAA,CAA4lJ,CAAC,IAAI,CAAC,CAAC;YAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAzmJ,CAA4mJ,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAApnJ,CAAunJ,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAnoJ,CAA0oJ,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,GAAC,CAAlqJ,CAAmqJ,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,CAAA,GAA3rJ,CAAA,CAA+rJ,IAAI,CAAC,IAAI,CAAC,CAAC;YAAA,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,MAA1uJ,CAAivJ,CAAC,CAAC,IAAI,CAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAAtwJ,CAA6wJ,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,QAAQ,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,MAAvzJ,CAA8zJ,UAAS,CAAC,IAAE,MAA10J,CAAi1J,IAAI,IAAE,CAAC,CAAA,CAAx1J,CAAA,CAA01J,CAAC,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,CAAj4J,CAAA,CAAm4J,CAAA,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,MAA95J,CAAq6J,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,KAAK,GAA37J,CAA67J,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,EAAE,CAAC,GAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAA,GAAG,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,EAAE,CAAC,KAAK,GAAlgK,CAAogK,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAA3hK,CAA4hK,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAA3iK,CAAkjK,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA,CAAC,CAAA,IAAI,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,EAAnmK,CAAA,CAAsmK,QAAQ,IAAE,OAAO,CAAC,CAAC,CAAA,CAAC;YAAA,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA,GAAjoK,CAAA,CAAqoK,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE;gBAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAA/rK,CAAgsK;QAAA,CAAC;QAAA,IAAjsK,CAAssK,EAAtsK,CAAA,CAAysK,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA,MAA3tK,CAAkuK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAA7uK,CAAovK,IAAI,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,CAAA,MAAM,CAAA,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,GAAG,CAAz0K,GAA20K,IAAI,CAAC,GAAG,CAAC,EAAE,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,QAAQ,IAAE,OAAO,CAAC,IAA36K,CAA86K,CAAC,GAAC,cAAW,MAA37K,CAAk8K,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,IAA/8K,CAAk9K,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,IAA59K,CAA+9K,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,cAAW,MAAn/K,CAA0/K,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,IAAliL,CAAqiL,EAAE,CAAC,CAAC,CAAC,GAAC,cAAW,MAAtjL,CAA6jL,IAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAlnL,CAAmnL,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAloL,CAAyoL,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,CAAC,KAAK,EAAC,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAA,GAA9uL,CAAA,CAAkvL,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;YAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAA7yL,CAAozL,UAAS,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAA30L,CAAA,CAA+0L,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;YAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAA13L,CAAi4L,CAAC,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,MAAp5L,CAA25L,CAAC,CAAC,OAAO,EAAE,CAAA,CAAt6L,CAAA,CAAw6L,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAx9L,CAAA,CAA09L,CAAA,CAAC,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,WAAW,CAAC,IAAE,MAArhM,CAA4hM,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,IAAE,CAAC,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAA,GAA3jM,CAAA,CAA+jM,EAAE,CAAC,SAAS,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;YAAE,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,SAAS,GAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAA,MAAtoM,CAA6oM,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,UAAS,CAAC,EAAC,CAAC,IAAE,MAA5rM,CAAmsM,CAAC,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAA,CAA3sM,CAA4sM,CAAA,CAAC;QAAA,WAAW,CAAC,EAAC,CAAC,IAAE,MAA7tM,CAAouM,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,WAAW,CAAC,IAAE,MAAtyM,CAA6yM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,qCAAqC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAAr4M,CAA44M,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAz6M,CAAg7M,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAC,MAAM,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAA,GAAt/M,CAAA,CAA0/M,QAAQ,IAAE,OAAO,CAAC,IAA5gN,CAA+gN,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAA1hN,CAA6hN,CAAC,GAAC,UAAS,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAArjN,CAAsjN,CAAA,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE;YAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAArlN,CAAslN,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,EAAE,CAAC,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,IAAE,EAAE,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAzpN,CAA0pN,CAAA,CAAC,CAA3pN,CAA4pN,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,IAAE,CAAC,IAAE,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAltN,CAAmtN,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAruN,CAA4uN,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAtyN,CAA6yN,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAE,EAAE,CAA93N,CAAg4N,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,UAAU,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAh/N,CAAu/N,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAA,EAAnuO,CAAA,CAAsuO,CAAC,IAAI,CAAC,YAAY,CAAC;YAAA,GAAzvO,CAAA,CAA6vO,IAAI,CAAC,YAAY,GAAC,EAAE,EAAC,IAAI,CAAC,gBAAgB,GAAC,EAAE,EAAC,IAAI,CAAC,iBAAiB,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,EAAE,CAAC;gBAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAA,MAAn+O,CAA0+O,CAAC,CAAA,CAAC,CAAA,KAAK,KAAG,CAAC,CAAA,CAAr/O,CAAA,CAAu/O,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAxiP,CAAA,CAAA,CAAA,CAA2iP,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAA,CAAC,CAAA,KAAK,KAAG,CAAC,CAAA,CAAtmP,CAAA,CAAwmP,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAppP,CAAA,CAAspP,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAvsP,CAAA,CAAA,CAAA,CAA0sP,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAArvP,CAAA,CAAuvP,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,EAAx0P,CAAA,CAA20P,IAAI,CAAC,iBAAiB,CAAC;YAAA,MAAl2P,CAAy2P,EAAE,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,GAA73P,CAAA,CAAi4P,IAAI,CAAC,YAAY,IAAl5P,CAAq5P,IAAI,CAAC,YAAY,GAAC,EAAE,EAAC,IAAI,CAAC,gBAAgB,GAAC,EAAE,EAAC,IAAI,CAAC,iBAAiB,GAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE,EAAC,CAAC;YAAA,EAA5+P,CAAA,CAA++P,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAxhQ,CAA2hQ,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAC,IAAI,MAAM,CAAC,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAC,IAAI,MAAM,CAAC,GAAG,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAA/tQ,CAAkuQ,CAAC,GAAC,GAAG,GAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,CAAC,GAAC,IAAI,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC,CAAC,IAAE,MAAM,KAAG,CAAC,IAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,MAA93Q,CAAq4Q,CAAC,CAAC;YAAA,EAAv4Q,CAAA,CAA04Q,CAAC,IAAE,KAAK,KAAG,CAAC,IAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,MAA17Q,CAAi8Q,CAAC,CAAC;YAAA,EAAn8Q,CAAA,CAAs8Q,CAAC,CAAC,IAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,MAAv+Q,CAA8+Q,CAAC,CAAA;QAAA,CAAC,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,EAAxgR,CAAA,CAA2gR,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;YAAA,MAAxhR,CAA+hR,CAAC,CAAC,CAAA,EAAjiR,CAAA,CAAoiR,QAAQ,IAAE,OAAO,CAAC,CAAC;YAAA,EAAvjR,CAAA,CAA0jR,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA,IAAjlR,CAAslR,EAAtlR,CAAA,CAAylR,CAAC,GAAC,CAAC,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAA,MAA/nR,CAAsoR,CAAC,CAAC,CAAA,MAAxoR,CAA+oR,CAAC,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAA7rR,CAA+rR,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,EAAE,CAAC,GAAC,OAAO,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAjvR,CAAwvR,IAAI,IAAE,CAAC,CAAA,CAA/vR,CAAA,CAAiwR,EAAE,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,IAAI,CAAxyR,CAAA,CAA0yR,CAAA,CAAC,CAAC,IAAI,EAAC,OAAO,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAx0R,CAA+0R,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA33R,CAAk4R,IAAI,CAAC,iBAAiB,CAAA,CAAx5R,CAAA,CAA05R,CAAC,CAAC,IAAI,EAAC,cAAc,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,uBAAuB,CAAA,CAAC,CAAA,IAAI,CAAC,iBAAiB,CAAr/R,CAAA,CAAA,CAAA,CAAw/R,CAAC,CAAC,IAAI,EAAC,mBAAmB,CAAC,IAAnhS,CAAshS,IAAI,CAAC,iBAAiB,GAAC,EAAE,CAAC,EAAC,IAAI,CAAC,uBAAuB,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,uBAAuB,CAAA,CAAC,CAAA,IAAI,CAAC,iBAAiB,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAArpS,CAA4pS,IAAI,CAAC,iBAAiB,CAAA,CAAlrS,CAAA,CAAorS,CAAC,CAAC,IAAI,EAAC,cAAc,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAArwS,CAAA,CAAA,CAAA,CAAwwS,CAAC,CAAC,IAAI,EAAC,cAAc,CAAC,IAA9xS,CAAiyS,IAAI,CAAC,YAAY,GAAC,EAAE,CAAC,EAAC,IAAI,CAAC,kBAAkB,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,kBAAkB,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,WAAW,CAAC,EAAC,CAAC,IAAE,MAA35S,CAAk6S,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,MAAM,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAA38S,CAAA,CAA+8S,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE;YAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA,GAA3lT,CAAA,CAA+lT,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE;YAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,GAAtqT,CAAA,CAA0qT,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE;YAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,YAAY,GAAC,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,iBAAiB,GAAC,IAAI,CAAC,YAAY,EAAC,IAAI,CAAC,kBAAkB,GAAC,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,uBAAuB,GAAC,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,EAAC,GAAG,CAAl6T,CAAm6T,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAn7T,CAA07T,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,GAAG,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAv9T,CAA89T,CAAC,GAAC,CAAC,KAAG,CAAC,IAAE,CAAC,GAAC,GAAG,KAAG,CAAC,IAAE,CAAC,GAAC,GAAG,KAAG,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAA1gU,CAAihU,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,IAAI,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,MAA1lU,CAAimU,CAAC,GAAC,GAAG,IAAE,CAAC,IAAE,CAAC,IAAE,QAAQ,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,IAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAC,CAAA,MAA1tU,CAAiuU,CAAC,GAAC,GAAG,IAAE,CAAC,IAAE,CAAC,IAAE,QAAQ,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,IAAE,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAC,CAAC,CAA71U,GAA+1U,CAAC,CAAC,CAAA,MAAM,CAAA,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAr5U,GAAu5U,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,GAAC,CAAC,GAA16U,CAA46U,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,CAAA,MAAr7U,CAA47U,CAAC,IAAE,CAAC,CAAA,CAAh8U,CAAA,CAAk8U,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAj9U,CAAA,CAAm9U,CAAA,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAA19U,CAAA,CAA49U,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAA3+U,CAAA,CAAA,CAAA,CAA8+U,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,SAAS,EAAC,CAAC,EAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAC,CAAC,GAAC,CAAC,CAAzlV,GAA2lV,CAAC,CAAC,GAAC,CAAC,CAAC,CAAA,MAAhmV,CAAumV,CAAC,GAAC,CAAC,CAAA,CAA1mV,CAAA,CAA4mV,CAAC,GAAC,CAAC,CAAC,IAAI,EAAE,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAtoV,CAAA,CAAwoV,CAAA,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAA1pV,CAAA,CAA4pV,CAAC,GAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,IAAI,EAAE,GAAC,CAAC,CAA7rV,CAAA,CAAA,CAAA,CAAgsV,CAAC,GAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,MAAM,CAAA,CAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAjyV,GAAmyV,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAApzV,CAA2zV,EAAE,CAAC,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAl3V,CAAy3V,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAt5V,CAA65V,IAAI,CAAC,KAAK,CAAC,GAAG,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA,MAA99V,CAAq+V,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAz/V,CAA2/V,CAAC,GAAC,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA,MAA5iW,CAAmjW,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAvkW,CAAykW,CAAC,GAAC,CAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAM,CAAA,QAAQ,IAAE,OAAO,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC,CAAC,CAAA,CAAvoW,CAAA,CAAyoW,CAAC,GAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAC,QAAQ,IAAE,OAAO,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAvrW,CAAA,CAAyrW,CAAA,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAM,CAAA,QAAQ,IAAE,OAAO,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAC,CAAC,IAAE,CAAC,CAAA,CAAC,CAAA,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA3yW,CAAkzW,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,QAAQ,CAAA,CAAC,CAAA,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,SAAS,CAAA,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,UAAU,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAv/W,CAA8/W,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,cAAc,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAhkX,CAAukX,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,YAAY,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAA,EAA3qX,CAAA,CAA8qX,CAAC,IAAI,CAAC,cAAc,CAAC;YAAA,GAAnsX,CAAA,CAAusX,IAAI,CAAC,cAAc,GAAC,EAAE,EAAC,IAAI,CAAC,mBAAmB,GAAC,EAAE,EAAC,IAAI,CAAC,iBAAiB,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,EAAE,CAAC;gBAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAA,MAAjgY,CAAwgY,CAAC,CAAA,CAAC,CAAA,MAAM,KAAG,CAAC,CAAA,CAAphY,CAAA,CAAshY,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAApkY,CAAA,CAAskY,CAAA,KAAK,KAAG,CAAC,CAAA,CAA/kY,CAAA,CAAilY,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAApoY,CAAA,CAAA,CAAA,CAAuoY,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAA,CAAC,CAAA,MAAM,KAAG,CAAC,CAAA,CAApsY,CAAA,CAAssY,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAA/uY,CAAA,CAAivY,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAA/xY,CAAA,CAAiyY,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAp1Y,CAAA,CAAs1Y,CAAA,KAAK,KAAG,CAAC,CAAA,CAA/1Y,CAAA,CAAi2Y,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAA/4Y,CAAA,CAAi5Y,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAA17Y,CAAA,CAA47Y,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAA/+Y,CAAA,CAAA,CAAA,CAAk/Y,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAA9hZ,CAAA,CAAgiZ,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAzkZ,CAAA,CAA2kZ,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAC,CAAC,CAAC,EAAC,CAAC,KAAG,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,EAA/pZ,CAAA,CAAkqZ,IAAI,CAAC,mBAAmB,CAAC;YAAA,MAA3rZ,CAAksZ,EAAE,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,GAAttZ,CAAA,CAA0tZ,IAAI,CAAC,cAAc,IAA7uZ,CAAgvZ,IAAI,CAAC,cAAc,GAAC,EAAE,EAAC,IAAI,CAAC,iBAAiB,GAAC,EAAE,EAAC,IAAI,CAAC,mBAAmB,GAAC,EAAE,EAAC,IAAI,CAAC,kBAAkB,GAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE,EAAC,CAAC;YAAA,EAAt2Z,CAAA,CAAy2Z,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAA35Z,CAA85Z,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAC,IAAI,MAAM,CAAC,GAAG,GAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,IAAI,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAC,IAAI,MAAM,CAAC,GAAG,GAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,IAAI,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAC,IAAI,MAAM,CAAC,GAAG,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,IAAI,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,CAAC,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,IAAxsa,CAA2sa,CAAC,GAAC,GAAG,GAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,GAAC,IAAI,GAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAC,EAAE,CAAC,GAAC,IAAI,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC,CAAC,IAAE,MAAM,KAAG,CAAC,IAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,MAA34a,CAAk5a,CAAC,CAAC;YAAA,EAAp5a,CAAA,CAAu5a,CAAC,IAAE,KAAK,KAAG,CAAC,IAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,MAAz8a,CAAg9a,CAAC,CAAC;YAAA,EAAl9a,CAAA,CAAq9a,CAAC,IAAE,IAAI,KAAG,CAAC,IAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,MAApgb,CAA2gb,CAAC,CAAC;YAAA,EAA7gb,CAAA,CAAghb,CAAC,CAAC,IAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAA,MAAnjb,CAA0jb,CAAC,CAAA;QAAA,CAAC,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,EAA5kb,CAAA,CAA+kb,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAA/lb,CAAsmb,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,GAAG,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA,MAA9qb,CAAqrb,IAAI,IAAE,CAAC,CAAA,CAA5rb,CAAA,CAA8rb,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAC,GAAG,CAAC,CAAzub,CAAA,CAA2ub,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,EAA5vb,CAAA,CAA+vb,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAA/wb,CAAsxb,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,GAAG,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,CAAC,GAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAt1b,GAAw1b,CAAC,CAAC,CAAA,MAA11b,CAAi2b,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,EAA54b,CAAA,CAA+4b,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAA/5b,CAAs6b,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,GAAG,CAAC,CAAA,EAAv7b,CAAA,CAA07b,IAAI,IAAE,CAAC,CAAC,CAAA,CAAC;YAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YAAA,MAAj+b,CAAw+b,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,CAAC,CAAA;QAAA,CAAC,CAAA,MAArgc,CAA4gc,IAAI,CAAC,GAAG,EAAE,IAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAzic,CAAgjc,IAAI,CAAC,mBAAmB,CAAA,CAAxkc,CAAA,CAA0kc,CAAC,CAAC,IAAI,EAAC,gBAAgB,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,oBAAoB,CAAA,CAAC,CAAA,IAAI,CAAC,cAAc,CAAjqc,CAAA,CAAA,CAAA,CAAoqc,CAAC,CAAC,IAAI,EAAC,gBAAgB,CAAC,IAA5rc,CAA+rc,IAAI,CAAC,cAAc,GAAC,EAAE,CAAC,EAAC,IAAI,CAAC,oBAAoB,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,oBAAoB,CAAA,CAAC,CAAA,IAAI,CAAC,cAAc,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAlzc,CAAyzc,IAAI,CAAC,mBAAmB,CAAA,CAAj1c,CAAA,CAAm1c,CAAC,CAAC,IAAI,EAAC,gBAAgB,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,yBAAyB,CAAA,CAAC,CAAA,IAAI,CAAC,mBAAmB,CAAp7c,CAAA,CAAA,CAAA,CAAu7c,CAAC,CAAC,IAAI,EAAC,qBAAqB,CAAC,IAAp9c,CAAu9c,IAAI,CAAC,mBAAmB,GAAC,EAAE,CAAC,EAAC,IAAI,CAAC,yBAAyB,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,yBAAyB,CAAA,CAAC,CAAA,IAAI,CAAC,mBAAmB,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA9ld,CAAqmd,IAAI,CAAC,mBAAmB,CAAA,CAA7nd,CAAA,CAA+nd,CAAC,CAAC,IAAI,EAAC,gBAAgB,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,uBAAuB,CAAA,CAAC,CAAA,IAAI,CAAC,iBAAiB,CAA5td,CAAA,CAAA,CAAA,CAA+td,CAAC,CAAC,IAAI,EAAC,mBAAmB,CAAC,IAA1vd,CAA6vd,IAAI,CAAC,iBAAiB,GAAC,EAAE,CAAC,EAAC,IAAI,CAAC,uBAAuB,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,uBAAuB,CAAA,CAAC,CAAA,IAAI,CAAC,iBAAiB,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,WAAW,CAAC,EAAC,CAAC,IAAE,MAA34d,CAAk5d,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,MAAM,CAAA,CAAA,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAAt8d,CAAA,CAA08d,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;YAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,GAAhne,CAAA,CAAone,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;YAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,cAAc,GAAC,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,mBAAmB,GAAC,IAAI,CAAC,cAAc,EAAC,IAAI,CAAC,iBAAiB,GAAC,IAAI,CAAC,cAAc,EAAC,IAAI,CAAC,oBAAoB,GAAC,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,yBAAyB,GAAC,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,EAAC,GAAG,CAAC,EAAC,IAAI,CAAC,uBAAuB,GAAC,IAAI,MAAM,CAAC,IAAI,GAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,EAAC,GAAG,CAAtif,CAAuif,CAAA,CAAC;QAAA,gBAAc,MAAtjf,CAA6jf,IAAI,CAAC,KAAK,EAAE,GAAC,EAAE,IAAE,EAAE,CAAA,CAAA,CAAC;QAAA,gBAAc,MAA/lf,CAAsmf,IAAI,CAAC,KAAK,EAAE,IAAE,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAA3pf,CAAkqf,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,EAAC,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAA5tf,CAA6tf,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA/uf,CAAsvf,CAAC,CAAC,cAAc,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAM,CAAA,GAAG,KAAG,CAAC,CAAC,GAAC,EAAE,CAAvyf,CAAyyf,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAAp1f,CAA21f,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAv4f,CAA84f,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,GAAl8f,CAAA,CAAs8f,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,GAAE,CAAC;YAAA,GAAn+f,CAAA,CAAu+f,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAC,CAAA,IAAI,EAAC,CAAC,GAAC,CAAC,GAAE,CAAC;gBAAA,EAAjjgB,CAAA,CAAojgB,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAA,MAAjlgB,CAAwlgB,CAAC,CAAC;gBAAA,EAA1lgB,CAAA,CAA6lgB,CAAC,IAAE,CAAC,CAAC,MAAM,IAAE,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAE,CAAC,GAAC,CAAC,CAAC;oBAAA,KAA5ngB,CAAkogB;gBAAA,CAAC,EAAnogB,CAAqogB;YAAA,CAAC;YAAA,CAAC,EAAvogB,CAAyogB;QAAA,CAAC,CAAA,MAA1ogB,CAAipgB,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,CAAA,EAAhrgB,CAAA,CAAmrgB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAE,WAAW,IAAE,QAAa,IAAE,MAAM,IAAE,MAAM,CAAC,OAAO,CAAC;YAAA,IAAG,CAAC;gBAAA,CAAC,GAAC,EAAE,CAAC,KAAK,EAACD,eAAO,CAAC,WAAW,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAxxgB,CAAyxgB;YAAA,CAAC;YAAA,KAA1xgB,CAAA,CAAgygB,CAAC,CAAC,CAAA,CAAlygB,CAAA,CAAoygB,CAAA,MAApygB,CAA2ygB,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,MAAx0gB,CAA+0gB,CAAC,IAAh1gB,CAAm1gB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,IAAz2gB,CAA42gB,EAAE,GAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,KAAK,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,EAA74gB,CAAA,CAAg5gB,IAAI,KAAG,CAAC,CAAC,CAAA,CAAC;YAAA,IAAI,CAAC,GAAC,EAAE,CAAC;YAAA,EAAn6gB,CAAA,CAAs6gB,CAAC,CAAC,IAAI,GAAC,CAAC,EAAC,IAAI,IAAE,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAA,CAAC,CAAC,sBAAsB,EAAC,yOAAyO,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAAA,IAA/shB,CAAothB,EAApthB,CAAA,CAAuthB,IAAI,IAAE,CAAC,CAAC,YAAY,CAAC,CAAA,CAAC;gBAAA,EAA7uhB,CAAA,CAAgvhB,IAAI,IAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;oBAAA,MAAzwhB,CAAgxhB,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAlyhB,CAAqyhB,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,CAAC;gBAAA,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAj4hB,CAAw4hB;YAAA,CAAC;YAAA,MAAz4hB,CAAg5hB,EAAE,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAS,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,MAAM,CAAv9hB,CAAw9hB,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA;QAAA,CAAC,CAAA,MAAv+hB,CAA8+hB,OAAO,EAAE,CAAC,CAAC,CAAC,EAAC,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,EAAjhiB,CAAA,CAAohiB,IAAI,IAAE,CAAC,CAAC,CAAA,CAAC;YAAA,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC;YAAA,IAAI,IAAE,EAAE,CAAC,CAAC,CAAC,IAAnjiB,CAAsjiB,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAA5niB,CAA6niB;QAAA,CAAC;QAAA,IAA9niB;YAAmoiB,IAAI,IAAE,EAAE,CAAC,CAAC,CAAC,IAA9oiB,CAAipiB,IAAI,IAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAA,CAAC,CAAA,IAAI,IAAE,EAAE,CAAC,CAAC,CAAC,IAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAA9tiB,CAAquiB,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,EAAhwiB,CAAA,CAAmwiB,CAAC,IAAE,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,OAAO,CAAC,KAAK,IAAhyiB,CAAmyiB,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC;YAAA,MAAzziB,CAAg0iB,EAAE,CAAC,CAAA,EAAn0iB,CAAA,CAAs0iB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;YAAA,EAA70iB,CAAA,CAAg1iB,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAAA,MAAx1iB,CAA+1iB,CAAC,CAAC;YAAA,CAAC,GAAC,CAAC,CAAC,CAAr2iB,CAAs2iB;QAAA,CAAC,CAAA,MAAv2iB,CAA82iB,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAl4iB,CAAy4iB,EAAE,CAAC,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAA,MAA56iB,CAAm7iB,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,IAAx8iB,CAA28iB,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,IAAE,EAAE,KAAG,CAAC,CAAC,EAAE,CAAC,IAAjijB,CAAoijB,CAAC,KAAG,CAAC,CAAC,EAAE,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,EAAE,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAlqjB,CAAqqjB,CAAC,GAAC,EAAE,IAAE,CAAC,GAAC,EAAE,CAAC,IAAhrjB,CAAmrjB,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,IAAE,CAAC,KAAG,CAAC,CAAC,IAAptjB,CAAutjB,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAE,CAAC,KAAG,CAAC,CAAC,IAA1vjB,CAA6vjB,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,EAAr1jB,CAAA,CAAw1jB,CAAC,CAAC,CAAA,CAAC;YAAA,GAA31jB,CAAA,CAA+1jB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,MAAM,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;gBAAC,EAAn4jB,CAAA,CAAs4jB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;oBAAA,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,CAAC;oBAAA,KAAK,CAAA;gBAAA,CAAC;YAAA,EAA57jB,CAAA,CAA+7jB,IAAI,IAAE,CAAC,CAAC;gBAAA,MAAv8jB,CAA88jB,KAA98jB,CAAm9jB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,CAAC,CAAC;YAAA,EAAl+jB,CAAA,CAAq+jB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;gBAAA,GAA3+jB,CAAA,CAA++jB,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,MAAM,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;oBAAC,EAAvgkB,CAAA,CAA0gkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;wBAAA,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,GAAG,CAA3ikB,GAA6ikB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;wBAAA,KAAK,CAAA;oBAAA,CAAC;gBAAA,EAA5jkB,CAAA,CAA+jkB,IAAI,IAAE,CAAC,CAAC;oBAAA,MAAvkkB,CAA8kkB,KAA9kkB,CAAmlkB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,CAAC,CAAA;YAAA,CAAC;YAAA,EAAlmkB,CAAA,CAAqmkB,CAAC,CAAC,IAAE,IAAI,IAAE,CAAC,CAAC;gBAAA,MAAjnkB,CAAwnkB,KAAxnkB,CAA6nkB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,CAAC,CAAC;YAAA,EAA5okB,CAAA,CAA+okB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;gBAAA,EAArpkB,CAAA,CAAwpkB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAA,MAAvqkB,CAA8qkB,KAA9qkB,CAAmrkB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,CAAC,CAAC;gBAAA,CAAC,GAAC,GAApskB,CAAuskB;YAAA,CAAC;YAAA,CAAC,CAAC,EAAE,GAAC,CAAC,GAA9skB,CAAgtkB,CAAC,IAAE,EAAE,CAAC,GAAttkB,CAAwtkB,CAAC,IAAE,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,CAAnukB,CAAoukB;QAAA,CAAC;QAAA,IAArukB;YAA0ukB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAtvkB,CAAuvkB,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,CAAC,GAAC,2BAA2B,CAAC,CAAA,EAA78kB,CAAA,CAAg9kB,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAC,EAAE,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;YAAA,EAAtjlB,CAAA,CAAyjlB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,KAAK,GAArklB,CAAuklB,CAAC,KAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,GAAG,CAAC,CAAA,CAAC,CAAA,EAAE,EAAC,CAAC,GAAC,QAAQ,GAA9mlB,CAAgnlB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,EAAE,CAAA,CAAC,CAAA,OAAO,CAAA,CAAC,CAAA,KAAK,CAAC,EAAC,CAAC,GAAC,OAAO,GAAvplB,CAAyplB,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;gBAAA,IAAI,CAAC,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;gBAAA,EAA7vlB,CAAA,CAAgwlB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,KAAG,CAAC,CAAC;oBAAA,MAArxlB,CAA4xlB,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAC,CAAC,CAAC,EAAC,KAApzlB,CAAyzlB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,CAAC,CAAA;YAAA,CAAC;YAAA,MAAx0lB,CAAA,CAA+0lB,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAA11lB,CAAA,CAA41lB;gBAAA,KAAK,CAAC;oBAAC,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,QAAQ,CAAA,CAAn3lB,CAAA,CAAq3lB,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,IAAI,CAA36lB,GAA66lB,CAAC,EAAE,GAAC,CAAC,CAAl7lB,CAAo7lB,OAAO,CAAC,KAAK,EAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,CAAC,CAAC;oBAAA,KAA79lB,CAAm+lB;gBAAA,KAAK,CAAC;oBAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBAAA,KAAp/lB,CAA0/lB;gBAAA,SAAQ,CAAC,GAAC,CAAC,CAAC,MAAM,CAA5gmB,CAA6gmB;YAAA,CAAC;YAAA,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAC,CAAC,GAAC,KAAK,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAC,CAAC,CAAxlmB,CAAylmB;QAAA,CAAC;QAAA,IAA1lmB;YAA+lmB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAA3mmB,CAA4mmB,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,MAAhpmB,CAAupmB,IAAI,KAAG,CAAC,CAAA,CAAC,CAAA,KAAhqmB,CAAqqmB,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAA1rmB,CAAA,CAA4rmB,EAAE,CAAC,CAAC,CAAC,EAAC,KAAlsmB,CAAusmB,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,IAAttmB,CAAytmB,OAAO,CAAC,CAAC,QAAQ,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,KAAG,CAAC,CAAC,IAAhwmB,CAAmwmB,OAAO,CAAC,CAAC,QAAQ,EAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAAz0mB,CAAg1mB,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA,MAA74mB,CAAo5mB,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,cAAc,EAAE,EAAC,CAAC,CAAC,WAAW,EAAE,EAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,WAAW,EAAE,EAAC,CAAC,CAAC,QAAQ,EAAE,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,EAA7hnB,CAAA,CAAginB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC;YAAA,GAAvinB,CAAA,CAA2inB,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,IAAE,IAAI,IAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAE,IAAI,IAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,CAAC,CAAC,CAAC,EAAC,IAAI,IAAE,CAAC,CAAC,UAAU,IAAjnnB,CAAonnB,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,UAAU,GAAC,EAAE,CAAC,CAAC,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,UAAU,CAA9qnB,IAAA,CAAkrnB,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,WAAW,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,IAAE,IAAI,IAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC;gBAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAAA,GAAp0nB,CAAA,CAAA,EAAy0nB,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;gBAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,IAAI,IAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAAA,EAAE,KAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAr7nB,CAAw7nB,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,EAAE,CAAv+nB,CAAy+nB,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,IAAE,CAAC,CAAC,IAAI,IAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,GAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,QAAQ,IAA/joB,CAAkkoB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,EAAE,CAA7koB,CAA8koB;QAAA,CAAC,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,EAAnnoB,CAAA,CAAsnoB,CAAC,GAAC,CAAC,CAAC,EAAE,EAAC,IAAI,IAAE,CAAC,CAAC,EAAE,IAAE,IAAI,IAAE,CAAC,CAAC,CAAC,IAAE,IAAI,IAAE,CAAC,CAAC,CAAC,CAAC;YAAA,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,EAAE,CAAC,EAAE,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAC,CAAC,IAAE,CAAC,GAAC,CAAC,CAA7uoB,IAAA,CAAivoB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;QAAA,IAAI,CAAA,CAAC;YAAA,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAC,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;YAAA,IAAI,CAAC,GAAC,EAAE,CAAC,EAAE,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;YAAA,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,CAAC,EAAC,IAAI,IAAE,CAAC,CAAC,CAAC,CAAA,CAAh3oB,CAAA,CAAk3oB,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAC,CAAC,IAAE,CAAC,GAAC,CAAC,CAAj4oB,IAAA,CAAq4oB,CAAC,GAAC,CAAC,CAAC,CAAC,CAA14oB,CAAA,CAA44oB,CAAA,IAAI,IAAE,CAAC,CAAC,CAAC,CAAA,CAAr5oB,CAAA,CAAu5oB,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,IAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAA56oB,IAAA,CAAg7oB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAr7oB,CAAA,CAAu7oB,CAAA,CAAC,GAAC,CAAz7oB,CAA07oB;QAAA,CAAC,CAAA,CAAC,GAAC,CAAC,IAAE,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,GAAC,CAAC,CAAC,CAAA,CAAngpB,CAAA,CAAqgpB,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,UAAU,GAAC,CAAC,CAAC,SAAS,CAA7jpB,CAA8jpB,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,EAA9kpB,CAAA,CAAilpB,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,QAAQ,CAAC;YAAA,MAAnmpB,CAA0mpB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,EAArnpB,CAAA,CAAwnpB,CAAC,CAAC,EAAE,KAAG,CAAC,CAAC,QAAQ,CAAC;YAAA,MAA1opB,CAAippB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,GAAC,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,GAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,GAAC,CAAC,CAAC,CAAA,GAAztpB,CAAA,CAA6tpB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,IAAE,EAAE,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE;YAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAE,EAAE,CAA/ypB,CAAizpB,CAAC,CAAC,EAAC,CAAC,IAArzpB,CAAwzpB,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,GAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,MAAM,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAA36pB,CAAA,CAA66pB,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAh+pB,CAAA,CAAk+pB,CAAA,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,MAAM,GAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAE,EAAE,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAG,CAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,CAAC,IAAlnqB,CAAqnqB,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,GAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAA7vqB,CAA8vqB,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,MAAxxqB,CAA+xqB,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,IAAE,CAAC,CAAC,YAAY,CAAA,CAAC,CAAA,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,IAAE,CAAC,CAAC,IAAI,CAAA,CAA91qB,CAAA,CAAg2qB,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,GAAC,EAAE,IAAn3qB,CAAs3qB,CAAC,IAAE,EAAE,CAAC,EAAC,CAAC,IAAE,EAAE,KAAG,CAAC,IAAt4qB,CAAy4qB,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,CAA/4qB,CAAA,CAAi5qB,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,EAAh7qB,CAAA,CAAm7qB,CAAC,KAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC;YAAA,MAAn8qB,CAA08qB,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,GAAC,CAAC,CAAC,EAAC,KAAh+qB,CAAq+qB,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,GAAz/qB,CAAA,CAA6/qB,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,MAAM,EAAC,CAAC,EAAE;YAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,IAAI,IAAE,CAAC,CAAC,OAAO,IAAhjrB,CAAmjrB,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAA/lrB,CAAkmrB,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,EAAC,CAAC,IAAE,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAC,CAAC,EAAC,CAAC,IAAI,IAAE,CAAC,IAAE,CAAC,GAAC,CAAC,CAAjrrB,IAAA,CAAqrrB,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAvsrB,CAAwsrB,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,EAAxtrB,CAAA,CAA2trB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC;YAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAA,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,GAAG,IAAE,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,WAAW,CAAC,EAAC,UAAS,CAAC,IAAE,MAAz0rB,CAAg1rB,CAAC,IAAE,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAx2rB,CAAy2rB;QAAA,CAAC,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAj5rB,CAAw5rB,CAAC,CAAC,QAAQ,IAAl6rB,CAAq6rB,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,QAAQ,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAA,MAAx+rB,CAA++rB,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,OAAO,IAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAC,IAAI,KAAG,CAAC,IAAE,KAAK,CAAC,KAAG,CAAC,IAAE,EAAE,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,EAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,CAAA,CAA3jsB,CAAA,CAA6jsB,QAAQ,IAAE,OAAO,CAAC,IAA/ksB,CAAklsB,CAAC,CAAC,EAAE,GAAC,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAjosB,CAAA,CAAmosB,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAA5qsB,CAA+qsB,CAAC,CAAC,EAAE,GAAC,IAAI,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA,CAAC,CAAA,QAAQ,IAAE,OAAO,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAjzsB,CAAA,CAAmzsB,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,UAAS,CAAC,IAAE,MAAj1sB,CAAw1sB,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAA92sB,CAAA,CAAg3sB,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAA56sB,CAA66sB,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,CAAA,MAA98sB,CAAq9sB,CAAC,KAAG,CAAC,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,IAAn+sB,CAAs+sB,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,KAAG,CAAC,CAAC,MAAM,CAAnhtB,IAAA,CAAuhtB,CAAC,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,CAAC,gBAAgB,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,EAAC,CAAC,CAAC,OAAO,GAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAAxotB,CAA+otB,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,CAAC,CAAA,EAAvrtB,CAAA,CAA0rtB,CAAC,KAAG,CAAC,CAAC,MAAM,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAA/stB,CAAkttB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAAA,MAAputB,CAA2utB,EAAE,EAAE,CAAC,CAAA,GAAhvtB,CAAA,CAAovtB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,EAAE,CAAC;YAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAzytB,CAA4ytB,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAApztB,CAA2ztB,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,IAAI,CAAC,GAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,CAAA,MAA52tB,CAAm3tB,EAAE,CAAC,UAAU,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,IAAI,CAAC,GAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,CAAA,MAAn7tB,CAA07tB,EAAE,CAAC,SAAS,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,GAAz9tB,CAAA,CAA69tB,IAAI,CAAC,IAAI,CAAC,CAAC;YAAA,EAAx+tB,CAAA,CAA2+tB,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,IAAE,IAAI,IAAE,CAAC,CAAC,CAAC,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAAA,MAAM,CAAA,CAAC,CAAC,CAAC,CAAA,GAAhiuB,CAAA,CAAoiuB,IAAI,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,MAAM,EAAC,EAAE,CAAC;YAAC,EAAjkuB,CAAA,CAAokuB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC;gBAAA,EAA9kuB,CAAA,CAAiluB,CAAC,CAAC;oBAAA,MAAM,CAAA,CAAC,CAAC,CAAC;gBAAA,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAA9nuB,CAAiouB,CAAC,GAAC,CAAC,CAAC,CAArouB,CAAsouB;YAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAA9puB,CAAqquB,IAAI,CAAC,QAAQ,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAjsuB,CAAwsuB,EAAE,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,IAAI,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,OAAO,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,IAAI,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,GAAG,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,IAAI,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,IAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,WAAW,IAAE,CAAC,CAAC,CAAA,IAAI,CAAC,QAAQ,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,EAAE,GAAC,EAAE,EAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,EAAC,IAAI,CAAC,OAAO,GAAC,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,EAAE,GAAC,CAAC,EAAC,IAAI,CAAC,KAAK,GAAC,EAAE,EAAC,IAAI,CAAC,OAAO,GAAC,EAAE,EAAE,EAAC,IAAI,CAAC,OAAO,EAA7/uB,CAA+/uB,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA/gvB,CAAshvB,CAAC,YAAY,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAArjvB,CAA4jvB,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,IAAI,CAAC,GAAC,IAAI,CAAC,SAAS,EAAE,EAAC,CAAC,GAAC,GAAG,CAAC,CAAA,MAAnqvB,CAA0qvB,CAAC,GAAC,CAAC,IAA7qvB,CAAgrvB,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,GAAG,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAjsvB,CAAmsvB,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAA1tvB,CAA2tvB,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,IAAE,EAAE,CAAzvvB,CAA2vvB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA,EAApwvB,CAAA,CAAuwvB,IAAI,KAAG,CAAC,CAAC;YAAA,MAAhxvB,CAAuxvB,IAAI,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,IAAE,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,GAAC,EAAE,CAA3zvB,CAA6zvB,KAAK,CAAC,EAAE,CAAC,IAAE,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAp1vB,CAAs1vB,EAAE,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAv2vB,CAA82vB,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,GAAG,KAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,CAAC,CAAA,MAA/5vB,CAAs6vB,CAAC,CAAC,MAAM,CAAA,CAA96vB,CAAA,CAAg7vB,CAAC,GAAC,CAAC,CAAC,KAAK,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAr+vB,GAAu+vB,CAAC,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAxiwB,CAAA,CAA0iwB,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAvkwB,CAA8kwB,EAAE,GAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,GAAC,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,OAAO,IAAE,CAAC,CAAC,CAAA,EAArqwB,CAAA,CAAwqwB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAAxrwB,CAA+rwB,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,GAAG,CAAC,CAAA,EAAhtwB,CAAA,CAAmtwB,IAAI,IAAE,CAAC,CAAC,CAAA,CAAC;YAAA,EAA5twB,CAAA,CAA+twB,QAAQ,IAAE,OAAO,CAAC,CAAC,CAAA,CAAC;gBAAA,EAAnvwB,CAAA,CAAsvwB,CAAC,GAAC,EAAE,CAAC,EAAE,EAAC,CAAC,CAAC,EAAC,IAAI,KAAG,CAAC,CAAC;oBAAA,MAA1wwB,CAAixwB,IAAI,CAAA;YAAA,CAAC;YAAA,IAAtxwB;gBAA2xwB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAC,EAAE,IAAE,CAAC,CAAC,IAA7ywB,CAAgzwB,CAAC,GAAC,EAAE,GAAC,CAAC,CAAC,CAAC;YAAA,MAAM,CAAA,CAAC,IAAI,CAAC,MAAM,IAAE,CAAC,IAA70wB,CAAg1wB,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAC,OAAO,GAAC,CAAC,EAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,EAAC,IAAI,IAAE,CAAC,IAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,GAAG,CAAC,EAAC,CAAC,KAAG,CAAC,IAAx5wB,CAA25wB,CAAC,CAAC,IAAE,IAAI,CAAC,iBAAiB,CAAA,CAAC,CAAA,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,GAAC,CAAC,EAAC,GAAG,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,iBAAiB,IAAt+wB,CAAy+wB,IAAI,CAAC,iBAAiB,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,iBAAiB,GAAC,IAAI,CAAC,CAAC,EAAC,IAAI,CAAA;QAAA,CAAC,CAAA,MAA9jxB,CAAqkxB,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,IAAI,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA7mxB,CAAonxB,IAAI,IAAE,CAAC,CAAA,CAA3nxB,CAAA,CAA6nxB,QAAQ,IAAE,OAAO,CAAC,IAA/oxB,CAAkpxB,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,IAAI,CAAhrxB,CAAA,CAAkrxB,CAAA,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAntxB,CAA0txB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA7vxB,CAAowxB,IAAI,CAAC,MAAM,IAA/wxB,CAAkxxB,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,EAAC,GAAG,CAAC,CAAC,EAAC,IAAI,CAAA,CAAA,CAAC;QAAA,gBAAc,EAAx2xB,CAAA,CAA22xB,IAAI,IAAE,IAAI,CAAC,IAAI,CAAC;YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC;QAAA,IAA35xB,CAAg6xB,EAAh6xB,CAAA,CAAm6xB,QAAQ,IAAE,OAAO,IAAI,CAAC,EAAE,CAAC,CAAA,CAAC;YAAA,IAAI,CAAC,GAAC,EAAE,CAAC,EAAE,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAAA,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,CAAC,EAAC,CAAC,CAAC,CAA//xB,CAAggyB;QAAA,CAAC,CAAA,MAAjgyB,CAAwgyB,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAM,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAljyB,CAAqjyB,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA,CAAC,CAAA,CAAC,EAAC,CAAC,IAAI,CAAC,SAAS,EAAE,GAAC,CAAC,CAAhmyB,GAAkmyB,EAAE,KAAG,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAxnyB,CAA+nyB,IAAI,CAAC,SAAS,EAAE,GAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAE,IAAI,CAAC,SAAS,EAAE,GAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA,CAAA,CAAC;QAAA,gBAAc,EAApvyB,CAAA,CAAuvyB,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAAA,MAA9wyB,CAAqxyB,IAAI,CAAC,aAAa,CAAC,CAAA,IAAI,CAAC,GAAC,EAAE,CAAC,CAAA,EAAjzyB,CAAA,CAAozyB,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC;YAAA,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAA,IAAI,CAAC,aAAa,GAAC,IAAI,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAC,CAAn6yB,CAAo6yB;QAAA,CAAC;QAAA,IAAr6yB;YAA06yB,IAAI,CAAC,aAAa,GAAC,CAAC,CAAC,CAAC,CAAA,MAAh8yB,CAAu8yB,IAAI,CAAC,aAAa,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAM,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAE,CAAC,IAAI,CAAC,MAAM,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAM,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAE,IAAI,CAAC,MAAM,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAM,CAAA,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAnmzB,CAAsmzB,IAAI,CAAC,MAAM,IAAE,CAAC,KAAG,IAAI,CAAC,OAAO,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,CAAA,MAA3qzB,CAAkrzB,EAAE,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,EAAC,EAAE,EAAC,CAAC,CAAC,aAAa,EAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAA,CAAzuzB,CAAA,CAA2uzB,CAAC,GAAC,EAAE,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,YAAY,GAAC,CAAC,CAAzwzB,CAAA,CAA2wzB,CAAA,CAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAxxzB,CAAA,CAAA,CAAA,CAA2xzB,CAAC,GAAC,GAAG,KAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,CAAC,GAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAC,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,GAAG,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAA93zB,CAAA,CAAg4zB,CAAA,CAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAA74zB,CAAA,CAAA,CAAA,CAAg5zB,CAAC,GAAC,GAAG,KAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,CAAC,GAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAhg0B,CAAA,CAAkg0B,CAAA,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,QAAQ,IAAE,OAAO,CAAC,IAAji0B,CAAoi0B,MAAM,IAAG,CAAC,IAAE,IAAI,IAAG,CAAC,CAAC,IAAzj0B,CAA4j0B,CAAC,GAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,CAAC,EAAE,GAAC,CAAC,CAAC,YAAY,EAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,GAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,SAAS,CAAC,IAA9p0B,CAAiq0B,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,IAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC,CAAC,CAAA,MAAM,CAAA,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAApw0B,GAAsw0B,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAC,CAAA,MAAzz0B,CAAg00B,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,KAAK,EAAE,GAAC,EAAE,GAA/10B,CAAi20B,CAAC,CAAC,IAAI,EAAE,GAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAE,EAAE,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,YAAY,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,MAA/+0B,CAAs/0B,CAAC,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,OAAO,EAAE,CAAA,CAA9g1B,CAAA,CAAgh1B,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAjj1B,CAAA,CAAmj1B,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,GAAC,CAAC,CAAC,CAAC,YAAY,EAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAjn1B,CAAA,CAAmn1B,CAAA,EAAC,YAAY,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA9p1B,CAAqq1B,UAAS,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,CAAC,CAAA,MAA3r1B,CAAks1B,IAAI,KAAG,CAAC,IAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAArt1B,CAAwt1B,CAAC,CAAC,CAAC,EAAC,WAAW,GAAC,CAAC,GAAC,sDAAsD,GAAC,CAAC,GAAC,gGAAgG,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,QAAQ,IAAE,OAAO,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,EAAE,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,IAAI,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,aAAa,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,CAAC,OAAO,EAAE,IAA7h2B,CAAgi2B,CAAC,GAAC,IAAI,IAAE,CAAC,IAAE,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAE,GAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAC,MAAM,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,IAAE,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,OAAO,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAnq2B,CAAoq2B,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAht2B,CAAut2B,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,CAAC,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,SAAS,CAAA,CAAC,CAAA,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,UAAU,CAAA,CAAC,CAAA,UAAU,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,IAAE,EAAE,EAAE,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,cAAc,CAAC,IAAI,EAAC,CAAC,CAAC,IAAE,UAAU,EAAC,CAAC,GAAC,CAAC,IAAh62B,CAAm62B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,MAAn82B,CAA082B,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAjh3B,CAAwh3B,IAAI,CAAC,CAAC,IAAI,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,MAAM,CAAA,CAA9k3B,CAAgl3B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAA9m3B,CAAin3B,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,aAAa,CAAA,CAAC,CAAA,CAAC,CAAC,EAAC,aAAa,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,EAAE,GAAC,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,OAAO,EAAE,GAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,MAAM,CAAA,CAAjx3B,CAAmx3B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAjz3B,CAAoz3B,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,aAAa,CAAA,CAAC,CAAA,CAAC,CAAC,EAAC,aAAa,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,EAAE,GAAC,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,GAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAA773B,CAAo83B,CAAC,GAAC,CAAC,IAAE,IAAI,EAAC,CAAC,GAAG,KAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAA//3B,IAAA,CAAmg4B,GAAG,KAAG,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA,MAAM,CAAA,CAAjm4B,CAAmm4B,CAAC,IAAI,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAjo4B,CAAoo4B,CAAC,GAAC,CAAC,CAAC,CAAC,IAAE,aAAa,CAAC,EAAC,aAAa,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,EAAE,KAAG,CAAC,CAAC,OAAO,EAAE,CAAA,CAAxs4B,CAAA,CAA0s4B,CAAC,GAAC,CAAC,CAAC,OAAO,EAAE,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,IAAE,CAAC,IAAE,CAAC,IAAE,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAApz4B,CAA2z4B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAh34B,CAAu34B,IAAI,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,IAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,MAA374B,CAAk84B,IAAI,CAAC,OAAO,EAAE,CAAA,CAAh94B,CAAA,CAAk94B,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,IAAI,CAAC,EAAC,CAAC,CAAC,OAAO,EAAE,CAAA,CAA1+4B,CAAA,CAA4+4B,CAAC,GAAC,GAAG,GAAj/4B,CAAm/4B,CAAC,CAAC,SAAS,EAAE,GAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,MAAM,KAAG,CAAC,IAAE,OAAO,KAAG,CAAC,IAAE,SAAS,KAAG,CAAC,CAAA,CAAhk5B,CAAA,CAAkk5B,CAAC,GAAC,EAAE,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,SAAS,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,IAAE,CAAC,CAAA,CAAC,CAAA,MAAM,KAAG,CAAC,IAA5m5B,CAA+m5B,CAAC,IAAE,EAAE,CAAC,CAArn5B,CAAA,CAAA,CAAA,CAAwn5B,CAAC,GAAC,IAAI,GAAC,CAAC,EAAC,CAAC,GAAC,QAAQ,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,QAAQ,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,MAAM,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,IAAI,CAAA,CAAC,CAAA,KAAK,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAC,CAAC,CAAzs5B,GAA2s5B,KAAK,CAAA,CAAC,CAAA,MAAM,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAC,CAAC,CAAhu5B,GAAku5B,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAApv5B,CAAA,CAAsv5B,CAAA,GAAG,CAAzv5B,CAAA,CAA2v5B,CAAA,GAAG,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,GAA5x5B,CAA8x5B,CAAC,CAAC,IAAI,EAAE,GAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAhz5B,CAAkz5B,CAAC,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,QAAQ,CAAC,CAAC,CAAA,MAAn25B,CAA025B,CAAC,GAAC,CAAC,GAAC,CAAC,CAAA,CAA/25B,CAAA,CAAi35B,CAAC,GAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAC,QAAQ,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAr55B,GAAA,CAAw55B,CAAC,GAAC,CAAC,CAAC,CAA555B,CAAA,CAAA,CAAA,CAA+55B,CAAC,GAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAC,QAAQ,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,CAAn85B,GAAA,CAAs85B,CAAC,GAAC,CAAC,CAAC,CAAC,EAAC,CAA585B,CAA885B,CAAC,GAAC,CAAC,CAAC,IAAE,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAp+5B,CAA2+5B,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,EAA9j6B,CAAA,CAAik6B,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAAjl6B,CAAwl6B,IAAI,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,CAAA,MAAtn6B,CAA6n6B,CAAC,CAAC,IAAI,EAAE,GAAC,CAAC,IAAE,CAAC,CAAC,IAAI,EAAE,GAAC,IAAI,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,EAAC,gCAAgC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,EAAC,8BAA8B,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,EAAzy6B,CAAA,CAA4y6B,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAAM,CAAA,oBAAoB,GAAC,IAAI,CAAC,EAAE,GAAC,MAAM,CAAC,CAAA,IAAI,CAAC,GAAC,QAAQ,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,IAAI,CAAC,OAAO,EAAE,IAAx46B,CAA246B,CAAC,GAAC,CAAC,KAAG,IAAI,CAAC,SAAS,EAAE,CAAA,CAAC,CAAA,YAAY,CAAA,CAAC,CAAA,kBAAkB,EAAC,CAAC,GAAC,GAAG,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,GAAG,GAAC,CAAC,GAAC,KAAK,EAAC,CAAC,GAAC,CAAC,IAAE,IAAI,CAAC,IAAI,EAAE,IAAE,IAAI,CAAC,IAAI,EAAE,IAAE,IAAI,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,QAAQ,EAAC,CAAC,GAAC,uBAAuB,EAAC,CAAC,GAAC,CAAC,GAAC,MAAM,CAAC,CAAA,MAApj7B,CAA2j7B,IAAI,CAAC,MAAM,CAAC,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,CAAC,IAAhm7B,CAAmm7B,CAAC,GAAC,IAAI,CAAC,KAAK,EAAE,CAAA,CAAC,CAAA,CAAC,CAAC,gBAAgB,CAAA,CAAC,CAAA,CAAC,CAAC,aAAa,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAA,MAAtq7B,CAA6q7B,IAAI,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA9t7B,CAAqu7B,IAAI,CAAC,OAAO,EAAE,IAAnv7B,CAAsv7B,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,EAAE,IAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAj47B,CAAw47B,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA367B,CAAk77B,IAAI,CAAC,OAAO,EAAE,IAAh87B,CAAm87B,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,OAAO,EAAE,IAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,IAAI,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA9k8B,CAAql8B,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,MAA1n8B,CAAio8B,KAAK,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,OAAO,CAAC,KAAK,CAAA,CAA9p8B,CAAA,CAAgq8B,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,IAAI,IAAE,CAAC,IAA/q8B,CAAkr8B,IAAI,CAAC,OAAO,GAAC,CAAC,CAAC,EAAC,IAAI,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAtt8B,CAA6t8B,IAAI,CAAC,OAAO,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAzv8B,CAAA,CAAgw8B,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAtw8B,CAAA,CAAww8B;YAAA,KAAI,MAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAA,KAAI,SAAS,CAAC;YAAA,KAAI,OAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAA,KAAI,MAAM,CAAC;YAAA,KAAI,SAAS,CAAC;YAAA,KAAI,KAAK,CAAC;YAAA,KAAI,MAAM,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAAA,KAAI,MAAM,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAAA,KAAI,QAAQ,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAAA,KAAI,QAAQ,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAA598B,CAA698B;QAAA,CAAC,CAAA,MAAM,CAAA,MAAM,KAAG,CAAC,IAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAC,SAAS,KAAG,CAAC,IAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,SAAS,KAAG,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,CAAC,EAAC,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA9m9B,CAAqn9B,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,KAAK,CAAC,KAAG,CAAC,IAAE,aAAa,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAA9p9B,CAAA,CAAgq9B,MAAM,KAAG,CAAC,IAA1q9B,CAA6q9B,CAAC,GAAC,KAAK,CAAC,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAC,SAAS,KAAG,CAAC,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAApw9B,CAA2w9B,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAC,GAAG,GAAhy9B,CAAky9B,IAAI,CAAC,OAAO,IAAE,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAj09B,CAAw09B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,GAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAr39B,CAA439B,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,IAAI,CAAC,GAAC,IAAI,CAAC,CAAA,MAAM,CAAA,CAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,KAAK,EAAE,EAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC,MAAM,EAAE,EAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,IAAI,CAAC,GAAC,IAAI,CAAC,CAAA,MAAM,CAAA,EAAC,KAAK,EAAC,CAAC,CAAC,IAAI,EAAE,EAAC,MAAM,EAAC,CAAC,CAAC,KAAK,EAAE,EAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAE,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,EAAE,EAAC,OAAO,EAAC,CAAC,CAAC,OAAO,EAAE,EAAC,YAAY,EAAC,CAAC,CAAC,YAAY,EAAE,EAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAApr+B,CAA2r+B,IAAI,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,WAAW,EAAE,CAAA,CAAC,CAAA,IAAI,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAhv+B,CAAuv+B,CAAC,CAAC,IAAI,CAAC,CAAA,CAAA,CAAC;QAAA;YAC/v+B,MAAA,CAAO,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;QAAA,CAAC;QAAA,gBAAc,MAAnC,CAA0C,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAM,CAAA,EAAC,KAAK,EAAC,IAAI,CAAC,EAAE,EAAC,MAAM,EAAC,IAAI,CAAC,EAAE,EAAC,MAAM,EAAC,IAAI,CAAC,OAAO,EAAC,KAAK,EAAC,IAAI,CAAC,MAAM,EAAC,MAAM,EAAC,IAAI,CAAC,OAAO,EAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,EAAC,CAAC,CAA7M,CAA8M,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA9N,CAAqO,EAAE,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC,IAAI,EAAE,EAAC,IAAI,CAAC,OAAO,EAAE,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAvV,CAA8V,EAAE,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC,OAAO,EAAE,EAAC,IAAI,CAAC,UAAU,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAja,CAAwa,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,IAAI,CAAC,GAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAA,MAAxe,CAA+e,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,CAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,MAAxiB,CAA+iB,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAA,CAAxkB,CAAA,CAA0kB,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,IAAzlB,CAA4lB,CAAC,GAAC,CAAC,CAAC,EAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA,MAAhsB,CAAusB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,EAAC,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA/yB,CAAszB,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,GAAC,CAAC,CAAv1B,GAAy1B,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAx2B,CAA02B,CAAC,GAAC,CAAC,CAAC,GAAC,IAAI,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAC,IAAI,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAx9B,GAA09B,KAAK,CAAC,GAAC,CAAC,CAAC,CAAA,MAAn+B,CAA0+B,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAC,CAAC,EAAC,GAAG,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,GAAG,GAAliC,CAAoiC,IAAI,GAAC,CAAC,CAAC,CAA3iC,CAA4iC,CAAA,CAAC;QAAA,gBAAc,MAA3jC,CAAkkC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,KAAK,CAAA,CAAC,CAAA,EAAE,CAAA,CAAA,CAAC;QAAA,gBAAc,MAArmC,CAA4mC,IAAI,CAAC,MAAM,CAAA,CAAC,CAAA,4BAA4B,CAAA,CAAC,CAAA,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAvqC,CAA8qC,EAAE,CAAC,GAAG,GAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAAtsC,CAA6sC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,SAAS,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAjwC,CAAwwC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,EAAE,EAAC,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,MAAzzC,CAAg0C,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,EAA71C,CAAA,CAAg2C,CAAC,CAAC,CAAC,CAAC,IAAp2C,CAAu2C,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,IAAE,EAAE,EAAC,IAAI,IAAE,CAAC,CAAC;YAAA,MAAr4C,CAA44C,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,OAAO,CAAC,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAAz6C,CAAA,CAA66C,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,EAAE,EAAC,CAAC,EAAE;YAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,OAAO,CAAC,CAAC,CAAA,MAAj9C,CAAw9C,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,SAAS,IAAE,OAAO,CAAC,CAAA,CAAlgD,CAAA,CAAogD,CAAC,CAAC,CAAC,CAAC,IAAxgD,CAA2gD,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,IAAE,EAAE,CAAhiD,CAAA,CAAA,CAAA,CAAmiD,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,IAApjD,CAAujD,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,IAAE,EAAE,CAAC,CAAC,CAAA,IAAI,CAAC,GAAC,EAAE,EAAE,EAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,KAAK,CAAC,GAAG,CAAA,CAAC,CAAA,CAAC,CAAC,CAAA,EAA3mD,CAAA,CAA8mD,IAAI,IAAE,CAAC,CAAC;YAAA,MAAtnD,CAA6nD,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAC,CAAC,CAAtoD,GAAwoD,CAAC,EAAC,CAAC,EAAC,KAAK,CAAC,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAA9pD,CAAA,CAAkqD,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;YAAC,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,GAAC,CAAC,CAA5rD,GAA8rD,CAAC,EAAC,CAAC,EAAC,KAAK,CAAC,CAAC,CAAA,MAAzsD,CAAgtD,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAnuD,CAA0uD,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,QAAQ,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA5wD,CAAmxD,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,aAAa,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAA5zD,CAAm0D,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,UAAU,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAA32D,CAAk3D,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,eAAe,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAA/5D,CAAs6D,EAAE,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,aAAa,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,IAAI,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,CAAA,MAA79D,CAAo+D,IAAI,CAAC,aAAa,GAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,EAAC,IAAI,CAAC,KAAK,GAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,IAAI,CAAC,OAAO,GAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,YAAY,GAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,EAAC,CAAC,CAAC,OAAO,GAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,OAAO,GAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAC,CAAC,CAAC,KAAK,GAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,MAAM,GAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC,KAAK,GAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAC,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,MAA9vE,CAAqwE,CAAC,CAAC,aAAa,IAAE,CAAC,GAAC,CAAC,CAAC,aAAa,EAAC,CAAC,CAAC,KAAK,IAAE,CAAC,GAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC,OAAO,IAAE,CAAC,GAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,OAAO,EAAE,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAA/2E,CAAs3E,EAAE,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAt5E,CAA65E,EAAE,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA57E,CAAm8E,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,aAAa,EAAC,CAAC,GAAC,IAAI,CAAC,KAAK,EAAC,CAAC,GAAC,IAAI,CAAC,OAAO,EAAC,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,CAAA,MAA5jF,CAAmkF,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAArmF,CAAwmF,CAAC,IAAE,KAAK,GAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,YAAY,GAAC,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,GAAG,CAAC,EAAC,CAAC,CAAC,OAAO,GAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,CAAC,OAAO,GAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,CAAC,KAAK,GAAC,CAAC,GAAC,EAAE,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAE,CAAC,EAAC,CAAC,IAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,IAAE,EAAE,EAAC,CAAC,CAAC,IAAI,GAAC,CAAC,EAAC,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,CAAC,KAAK,GAAC,CAAC,EAAC,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA/0F,CAAs1F,IAAI,GAAC,CAAC,GAAC,MAAM,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAn3F,CAA03F,MAAM,GAAC,CAAC,GAAC,IAAI,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,EAAv5F,CAAA,CAA05F,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAA16F,CAAi7F,GAAG,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,aAAa,CAAC,CAAA,EAAl9F,CAAA,CAAq9F,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,OAAO,KAAG,CAAC,IAAE,MAAM,KAAG,CAAC,CAAC;YAAA,MAAp/F,CAA2/F,CAAC,GAAC,IAAI,CAAC,KAAK,GAAC,CAAC,GAAC,KAAK,EAAC,CAAC,GAAC,IAAI,CAAC,OAAO,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,OAAO,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,EAAE,CAAC,CAAA,MAAxjG,CAAA,CAA+jG,CAAC,GAAC,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAA1mG,CAAA,CAA4mG;YAAA,KAAI,MAAM,EAAC,MAAvnG,CAA8nG,CAAC,GAAC,CAAC,GAAC,CAAC,GAAC,MAAM,CAAC;YAAA,KAAI,KAAK,EAAC,MAArpG,CAA4pG,CAAC,GAAC,CAAC,GAAC,KAAK,CAAC;YAAA,KAAI,MAAM,EAAC,MAAjrG,CAAwrG,EAAE,GAAC,CAAC,GAAC,CAAC,GAAC,IAAI,CAAC;YAAA,KAAI,QAAQ,EAAC,MAAjtG,CAAwtG,IAAI,GAAC,CAAC,GAAC,CAAC,GAAC,GAAG,CAAC;YAAA,KAAI,QAAQ,EAAC,MAAlvG,CAAyvG,KAAK,GAAC,CAAC,GAAC,CAAC,GAAC,GAAG,CAAC;YAAA,KAAI,aAAa,EAAC,MAAzxG,CAAgyG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAC,CAAC,CAAC,GAAC,CAAC,CAAC;YAAA,SAAQ,MAAM,IAAI,KAAK,CAAC,eAAe,GAAC,CAAC,CAAC,CAAA;QAAA,CAAC,CAAA,CAAC;QAAA,gBAAc,MAAh3G,CAAu3G,IAAI,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,aAAa,GAAC,KAAK,GAAC,IAAI,CAAC,KAAK,GAAC,IAAI,CAAC,OAAO,GAAC,EAAE,GAAC,MAAM,GAAC,OAAO,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAC,EAAE,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA/+G,CAAs/G,cAAW,MAAjgH,CAAwgH,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAniH,CAA0iH,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,IAAI,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,CAAC,GAAC,GAAG,CAAC,EAAE,CAAA,CAAC,CAAA,GAAG,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAAjmH,CAAwmH,cAAW,MAAnnH,CAA0nH,IAAI,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAA,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,MAA1qH,CAAirH,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,GAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,MAAztH,CAAguH,CAAC,CAAC,YAAY,CAAC,CAAC,IAAE,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,GAAC,CAAC,IAAE,EAAE,CAAC,EAAE,IAAE,CAAC,GAAG,EAAC,CAAC,CAAC,IAAE,CAAC,GAAC,EAAE,CAAC,CAAC,IAAE,CAAC,IAAI,EAAC,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,GAAG,CAAC,IAAE,CAAC,GAAC,EAAE,CAAC,CAAC,IAAE,CAAC,IAAI,EAAC,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,GAAG,CAAC,IAAE,CAAC,GAAC,EAAE,CAAC,CAAC,IAAE,CAAC,IAAI,EAAC,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,GAAG,CAAC,IAAE,CAAC,GAAC,EAAE,CAAC,CAAC,IAAE,CAAC,IAAI,EAAC,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,GAAG,CAAC,IAAE,CAAC,GAAC,EAAE,CAAC,CAAC,IAAE,CAAC,IAAI,EAAC,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,GAAG,CAAC,IAAE,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAA,MAA3jI,CAAkkI,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,MAA1nI,CAAioI,KAAK,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,UAAU,IAAE,OAAO,CAAC,IAAnqI,CAAsqI,EAAE,GAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,EAAC,CAAC,IAAE,MAAhsI,CAAusI,KAAK,CAAC,KAAG,EAAE,CAAC,CAAC,CAAC,IAArtI,CAAwtI,KAAK,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,EAAE,CAAC,CAAC,CAAC,CAAA,CAAxuI,CAAA,CAA0uI,EAAE,CAAC,CAAC,CAAC,GAAC,CAAC,EAAC,GAAG,KAAG,CAAC,IAAzvI,CAA4vI,EAAE,CAAC,EAAE,GAAC,CAAC,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,YAAY,CAAC,IAAE,EAA3xI,CAAA,CAA8xI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAA9yI,CAAqzI,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA,IAAI,CAAC,GAAC,IAAI,CAAC,UAAU,EAAE,EAAC,CAAC,GAAC,EAAE,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAA,MAA73I,CAAo4I,CAAC,IAAr4I,CAAw4I,CAAC,GAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC;QAAA,gBAAc,EAA/7I,CAAA,CAAk8I,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAAA,MAAl9I,CAAy9I,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA,IAAI,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,GAAC,GAAG,EAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,IAAE,EAAE,EAAC,CAAC,IAAE,EAAE,EAAC,CAAC,GAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAC,EAAC,CAAC,IAAE,EAAE,CAAC,CAAA,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA,MAAnqJ,CAA0qJ,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,EAAE,CAAvrJ,GAAyrJ,GAAG,GAA5rJ,CAA8rJ,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAAzsJ,CAA2sJ,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAAttJ,CAAwtJ,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAAnuJ,CAAquJ,CAAC,IAAE,CAAC,IAAE,CAAC,CAAA,CAAC,CAAA,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAApvJ,CAAsvJ,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAAjwJ,CAAmwJ,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,GAA9wJ,CAAgxJ,CAAC,CAAA,CAAC,CAAA,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,CAAC,CAAA,CAAC,CAAA,KAAK,CAAA,CAAA,CAAC;QAAA,IAAI,EAAE,EAAC,EAAE,CAAC;QAAA,EAAE,GAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA,CAAC,CAAA,KAAK,CAAC,SAAS,CAAC,IAAI,CAAA,CAAC,CAAA,UAAS,CAAC,IAAE,GAAr2J,CAAA,CAAy2J,IAAI,CAAC,GAAC,MAAM,CAAC,IAAI,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,KAAG,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,EAAC,CAAC,EAAE;YAAC,EAAv5J,CAAA,CAA05J,CAAC,IAAI,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC;gBAAA,MAAM,CAAA,CAAC,CAAC,CAAC,CAAA,MAAM,CAAA,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,CAAC,CAAC,gBAAgB,GAAC,EAAE,EAAC,EAAE,GAAC,CAAC,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC;QAAA,CAAC,CAAC,2BAA2B,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,kBAAkB,GAAC,IAAI,CAAC;QAAA,IAAI,EAAE,CAAC;QAAA,EAAE,GAAC,MAAM,CAAC,IAAI,CAAA,CAAC,CAAA,MAAM,CAAC,IAAI,CAAA,CAAC,CAAA,UAAS,CAAC,IAAE,IAAI,CAAC,EAAC,CAAC,GAAC,EAAE,CAAC,CAAA,GAA9mK,CAAA,CAAknK,CAAC,IAAI,CAAC,CAAC;YAAA,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA,MAA3oK,CAAkpK,CAAC,CAAA,CAAA,CAAC,CAAC;QAAA,IAAI,EAAE,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAC,OAAO,EAAC,eAAe,EAAC,OAAO,EAAC,kBAAkB,EAAC,QAAQ,EAAC,cAAc,EAAC,OAAO,EAAC,mBAAmB,EAAC,QAAQ,EAAC,qBAAqB,EAAC,QAAQ,EAAC,GAAG,EAAC,EAAC,EAAE,GAAC,EAAC,GAAG,EAAC,WAAW,EAAC,EAAE,EAAC,QAAQ,EAAC,CAAC,EAAC,YAAY,EAAC,EAAE,EAAC,cAAc,EAAC,GAAG,EAAC,qBAAqB,EAAC,IAAI,EAAC,2BAA2B,EAAC,EAAC,EAAE,GAAC,cAAc,EAAC,EAAE,GAAC,IAAI,EAAC,EAAE,GAAC,SAAS,EAAC,EAAE,GAAC,EAAC,MAAM,EAAC,OAAO,EAAC,IAAI,EAAC,QAAQ,EAAC,CAAC,EAAC,eAAe,EAAC,EAAE,EAAC,YAAY,EAAC,CAAC,EAAC,UAAU,EAAC,EAAE,EAAC,YAAY,EAAC,CAAC,EAAC,SAAS,EAAC,EAAE,EAAC,UAAU,EAAC,CAAC,EAAC,OAAO,EAAC,EAAE,EAAC,SAAS,EAAC,CAAC,EAAC,SAAS,EAAC,EAAE,EAAC,WAAW,EAAC,CAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,UAAU,EAAC,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,sLAAsL,EAAC,EAAE,GAAC,4CAA4C,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,IAAI,EAAC,EAAE,GAAC,MAAM,EAAC,EAAE,GAAC,OAAO,EAAC,EAAE,GAAC,OAAO,EAAC,EAAE,GAAC,YAAY,EAAC,EAAE,GAAC,OAAO,EAAC,EAAE,GAAC,WAAW,EAAC,EAAE,GAAC,eAAe,EAAC,EAAE,GAAC,SAAS,EAAC,EAAE,GAAC,SAAS,EAAC,EAAE,GAAC,cAAc,EAAC,EAAE,GAAC,KAAK,EAAC,EAAE,GAAC,UAAU,EAAC,EAAE,GAAC,oBAAoB,EAAC,EAAE,GAAC,yBAAyB,EAAC,EAAE,GAAC,sBAAsB,EAAC,EAAE,GAAC,kHAAkH,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC;QAAA,EAAE,GAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAA,CAAC,CAAA,KAAK,CAAC,SAAS,CAAC,OAAO,CAAA,CAAC,CAAA,UAAS,CAAC,IAAE,IAAI,CAAC,CAAC,CAAA,GAAj5M,CAAA,CAAq5M,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,MAAM,EAAC,EAAE,CAAC;YAAC,EAA36M,CAAA,CAA86M,IAAI,CAAC,CAAC,CAAC,KAAG,CAAC,CAAC;gBAAA,MAA17M,CAAi8M,CAAC,CAAC,CAAA,MAAM,CAAA,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,EAAE,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,EAAC,cAAW,MAAt/M,CAA6/M,IAAI,CAAC,KAAK,EAAE,GAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,UAAS,CAAC,IAAE,MAAtiN,CAA6iN,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAC,CAAC,EAAC,UAAS,CAAC,IAAE,MAA9mN,CAAqnN,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAAluN,CAAyuN,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAAxxN,CAA+xN,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,GAAC,CAAz1N,CAA01N,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,KAAK,EAAC,MAAM,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,GAAC,CAA98N,CAA+8N,CAAA,CAAC,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,+BAA+B,EAAC,EAAE,GAAC,uFAAuF,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,iDAAiD,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAE,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,IAAI,CAAC,GAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA,MAAltO,CAAytO,CAAC,IAAE,IAAI,CAAA,CAAC,CAAA,EAAE,GAAC,CAAC,CAAA,CAAC,CAAA,GAAG,GAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAxwO,CAA+wO,IAAI,CAAC,IAAI,EAAE,GAAC,GAAG,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,QAAQ,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,OAAO,EAAC,QAAQ,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,MAAM,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,KAAG,CAAC,CAAC,MAAM,CAAA,CAAC,CAAA,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAtjP,CAAujP,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,IAAI,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAA3mP,CAA4mP,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,GAAG,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,QAAQ,CAAC,CAAC,EAAC,EAAE,CAAvpP,CAAwpP,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,iBAAiB,GAAC,UAAS,CAAC,IAAE,MAA3rP,CAAksP,CAAC,CAAC,CAAC,CAAC,GAAtsP,CAAwsP,CAAC,CAAC,CAAC,CAAC,GAAC,EAAE,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,UAAU,EAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,EAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,EAAC,SAAS,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,SAAS,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAr9P,CAAs9P,CAAA,CAAC,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,KAAK,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,UAAS,CAAC,IAAE,MAAzhQ,CAAgiQ,IAAI,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,UAAS,CAAC,IAAE,MAAhmQ,CAAumQ,IAAI,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAC,CAAC,EAAC,UAAS,CAAC,IAAE,MAA1qQ,CAAirQ,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,SAAS,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,YAAY,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,SAAS,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,YAAY,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,SAAS,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,YAAY,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAAv5Q,CAA85Q,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAA58Q,CAAm9Q,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAApgR,CAA2gR,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,IAAI,EAAC,KAAK,EAAC,MAAM,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAA,IAAI,IAAE,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,GAAC,CAAxpR,CAAypR,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,GAAG,EAAC,GAAG,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAvsR,CAAwsR,CAAA,CAAC,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,0DAA0D,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,6BAA6B,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAE,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAM,CAAA,EAAE,GAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAM,CAAA,EAAE,GAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAM,CAAA,EAAE,GAAC,IAAI,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAM,CAAA,EAAE,GAAC,IAAI,CAAC,KAAK,EAAE,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,EAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAAC,GAAG,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,EAAE,KAAG,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAArgT,CAAsgT,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,GAAG,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,KAAK,GAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,GAAC,CAA5kT,CAA6kT,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAC,CAAC,CAAvoT,CAAwoT,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,KAAK,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAC,CAAC,CAA/uT,CAAgvT,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,OAAO,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAC,CAAC,CAA73T,CAA83T,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,KAAK,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAr9T,CAAs9T,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,OAAO,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,GAAC,CAAC,CAAC,CAAA,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAnlU,CAAolU,CAAA,CAAC,CAAC,CAAC;QAAA,IAAI,EAAE,EAAC,EAAE,GAAC,eAAe,EAAC,EAAE,GAAC,CAAC,CAAC,OAAO,EAAC,CAAC,CAAC,CAAC,EAAC,EAAE,GAAC,EAAC,QAAQ,EAAC,EAAE,EAAC,cAAc,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,OAAO,EAAC,EAAE,EAAC,sBAAsB,EAAC,EAAE,EAAC,YAAY,EAAC,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,QAAQ,EAAC,EAAE,EAAC,WAAW,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,aAAa,EAAC,EAAE,EAAC,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,EAAE,EAAC,EAAE,GAAC,kJAAkJ,EAAC,EAAE,GAAC,6IAA6I,EAAC,EAAE,GAAC,uBAAuB,EAAC,EAAE,GAAC,CAAC,CAAC,cAAc,EAAC,qBAAqB,CAAC,EAAC,CAAC,YAAY,EAAC,iBAAiB,CAAC,EAAC,CAAC,cAAc,EAAC,gBAAgB,CAAC,EAAC,CAAC,YAAY,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,UAAU,EAAC,aAAa,CAAC,EAAC,CAAC,SAAS,EAAC,YAAY,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,YAAY,EAAC,YAAY,CAAC,EAAC,CAAC,UAAU,EAAC,OAAO,CAAC,EAAC,CAAC,YAAY,EAAC,aAAa,CAAC,EAAC,CAAC,WAAW,EAAC,aAAa,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,EAAC,OAAO,CAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,eAAe,EAAC,qBAAqB,CAAC,EAAC,CAAC,eAAe,EAAC,oBAAoB,CAAC,EAAC,CAAC,UAAU,EAAC,gBAAgB,CAAC,EAAC,CAAC,OAAO,EAAC,WAAW,CAAC,EAAC,CAAC,aAAa,EAAC,mBAAmB,CAAC,EAAC,CAAC,aAAa,EAAC,kBAAkB,CAAC,EAAC,CAAC,QAAQ,EAAC,cAAc,CAAC,EAAC,CAAC,MAAM,EAAC,UAAU,CAAC,EAAC,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC,EAAC,EAAE,GAAC,qBAAqB,EAAC,EAAE,GAAC,8LAA8L,CAAC;QAAA,CAAC,CAAC,uBAAuB,GAAC,CAAC,CAAC,gVAAgV,EAAC,UAAS,CAAC,IAAE,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAA70X,CAA+0X,CAAC,CAAC,OAAO,CAAA,CAAC,CAAA,MAAM,CAAA,CAAC,CAAA,EAAE,CAAC,CAAn2X,CAAo2X,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,GAAC,cAAl3X,CAA83X,EAAC,CAAC,CAAC,QAAQ,GAAC,cAA14X,CAAs5X,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,oGAAoG,EAAC,cAAW,IAAI,CAAC,GAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAA,MAA/iY,CAAsjY,IAAI,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,CAAC,GAAC,IAAI,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,GAAC,CAAC,CAAC,oGAAoG,EAAC,cAAW,IAAI,CAAC,GAAC,EAAE,CAAC,KAAK,CAAC,IAAI,EAAC,SAAS,CAAC,CAAC,CAAA,MAA1vY,CAAiwY,IAAI,CAAC,OAAO,EAAE,IAAE,CAAC,CAAC,OAAO,EAAE,CAAA,CAAC,CAAA,CAAC,GAAC,IAAI,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,CAAA,CAAC,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,GAAC,cAAW,MAA/zY,CAAs0Y,IAAI,CAAC,GAAG,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,EAAE,CAAA,CAAC,CAAA,CAAC,IAAI,IAAI,CAAA,CAAA,CAAC,EAAC,EAAE,GAAC,CAAC,MAAM,EAAC,SAAS,EAAC,OAAO,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,EAAC,QAAQ,EAAC,aAAa,CAAC,CAAC;QAAA,EAAE,CAAC,GAAG,EAAC,GAAG,CAAC,EAAC,EAAE,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,OAAO,GAAC,CAAC,CAAC,EAAC,CAAC,CAAC,IAAI,GAAC,EAAE,CAAC,EAAE,EAAC,CAAC,CAA7hZ,CAA8hZ,CAAA,CAAC,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,iBAAiB,CAAC;QAAA,CAAC,CAAC,YAAY,GAAC,cAAzkZ,CAAqlZ,CAAC;QAAA,IAAI,EAAE,GAAC,uDAAuD,EAAC,EAAE,GAAC,6IAA6I,CAAC;QAAA,EAAE,CAAC,EAAE,GAAC,EAAE,CAAC,SAAS,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,CAAC;QAAA,IAAI,EAAE,GAAC,EAAE,CAAC,CAAC,EAAC,KAAK,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,CAAC;QAAA,CAAC,CAAC,aAAa,GAAC,sBAAsB,EAAC,CAAC,CAAC,gBAAgB,GAAC,wBAAwB,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,iJAAiJ,EAAC,UAAS,CAAC,IAAE,MAAzma,CAAgna,KAAK,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAC,UAAU,EAAE,CAAA,CAAC,CAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAA,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAxra,CAA+ra,IAAI,CAAC,QAAQ,EAAE,GAAC,GAAG,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAA/ua,CAAsva,IAAI,CAAC,WAAW,EAAE,GAAC,GAAG,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,MAAM,EAAC,UAAU,CAAC,EAAC,EAAE,CAAC,OAAO,EAAC,UAAU,CAAC,EAAC,EAAE,CAAC,MAAM,EAAC,aAAa,CAAC,EAAC,EAAE,CAAC,OAAO,EAAC,aAAa,CAAC,EAAC,CAAC,CAAC,UAAU,EAAC,IAAI,CAAC,EAAC,CAAC,CAAC,aAAa,EAAC,IAAI,CAAC,EAAC,CAAC,CAAC,UAAU,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,aAAa,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,OAAO,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,MAAM,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAtnb,CAAunb,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,IAAI,EAAC,IAAI,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAArrb,CAAsrb,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,SAAS,CAAC,EAAC,CAAC,CAAC,SAAS,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,GAAvxb,CAAyxb,CAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAA/xb,CAAgyb,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,IAAI,EAAC,MAAM,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,MAAt4b,CAA64b,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,uBAAuB,IAAE,CAAC,CAAC,aAAa,CAAA,CAAC,CAAA,CAAC,CAAC,8BAA8B,CAAA,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,IAAI,EAAC,UAAS,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,EAAE,CAA9hc,CAA+hc,CAAA,CAAC,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,KAAK,EAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,MAAM,EAAC,WAAW,CAAC,EAAC,CAAC,CAAC,WAAW,EAAC,KAAK,CAAC,EAAC,CAAC,CAAC,WAAW,EAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,MAAM,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,KAAK,EAAC,MAAM,CAAC,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,UAAU,GAAC,CAAC,CAAC,CAAC,CAA9sc,CAA+sc,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,EAAE,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,QAAQ,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,GAAG,CAAC,EAAC,CAAC,CAAC,QAAQ,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,EAAE,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,SAAS,EAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAM,CAAA,CAAC,CAAp+c,CAAs+c,IAAI,CAAC,WAAW,EAAE,GAAC,GAAG,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAM,CAAA,CAAC,CAAjid,CAAmid,IAAI,CAAC,WAAW,EAAE,GAAC,EAAE,CAAC,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,aAAa,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAvnd,CAA8nd,EAAE,GAAC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAnrd,CAA0rd,GAAG,GAAC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,QAAQ,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAjvd,CAAwvd,GAAG,GAAC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAhzd,CAAuzd,GAAG,GAAC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,UAAU,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAh3d,CAAu3d,GAAG,GAAC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,CAAC,WAAW,EAAC,CAAC,CAAC,EAAC,CAAC,EAAC,cAAW,MAAj7d,CAAw7d,GAAG,GAAC,IAAI,CAAC,WAAW,EAAE,CAAA,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,aAAa,EAAC,IAAI,CAAC,EAAC,CAAC,CAAC,aAAa,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,EAAE,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QAAA,IAAI,EAAE,CAAC;QAAA,GAA5ie,CAAA,CAAgje,EAAE,GAAC,MAAM,EAAC,EAAE,CAAC,MAAM,IAAE,CAAC,EAAC,EAAE,IAAE,GAAG;YAAC,CAAC,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QAAA,GAAxle,CAAA,CAA4le,EAAE,GAAC,GAAG,EAAC,EAAE,CAAC,MAAM,IAAE,CAAC,EAAC,EAAE,IAAE,GAAG;YAAC,EAAE,CAAC,EAAE,EAAC,EAAE,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,cAAc,EAAC,CAAC,CAAC,CAAC,CAAC;QAAA,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,UAAU,CAAC,EAAC,CAAC,CAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,UAAU,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,SAAS,CAAC;QAAA,EAAE,CAAC,GAAG,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,EAAE,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,CAAC,EAAC,EAAE,CAAC,SAAS,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,SAAS,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,aAAa,GAAC,EAAE,EAAC,EAAE,CAAC,cAAc,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,UAAU,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,EAAE,EAAC,EAAE,CAAC,YAAY,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,CAAC,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,YAAY,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,UAAU,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,cAAc,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,UAAU,GAAC,EAAE,EAAC,EAAE,CAAC,SAAS,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,CAAC,YAAY,GAAC,EAAE,EAAC,EAAE,CAAC,SAAS,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,SAAS,GAAC,EAAE,EAAC,EAAE,CAAC,oBAAoB,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,CAAC,CAAC,iDAAiD,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,MAAM,GAAC,CAAC,CAAC,kDAAkD,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,KAAK,GAAC,CAAC,CAAC,gDAAgD,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,IAAI,GAAC,CAAC,CAAC,0GAA0G,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,YAAY,GAAC,CAAC,CAAC,yGAAyG,EAAC,EAAE,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,CAAC,CAAC,SAAS,CAAC;QAAA,EAAE,CAAC,QAAQ,GAAC,CAAC,EAAC,EAAE,CAAC,cAAc,GAAC,CAAC,EAAC,EAAE,CAAC,WAAW,GAAC,CAAC,EAAC,EAAE,CAAC,OAAO,GAAC,CAAC,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,UAAU,GAAC,EAAE,EAAC,EAAE,CAAC,YAAY,GAAC,CAAC,EAAC,EAAE,CAAC,UAAU,GAAC,CAAC,EAAC,EAAE,CAAC,GAAG,GAAC,CAAC,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,gBAAgB,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,cAAc,GAAC,EAAE,EAAC,EAAE,CAAC,cAAc,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,aAAa,GAAC,EAAE,EAAC,EAAE,CAAC,aAAa,GAAC,EAAE,EAAC,EAAE,CAAC,aAAa,GAAC,EAAE,EAAC,EAAE,CAAC,kBAAkB,GAAC,EAAE,EAAC,EAAE,CAAC,gBAAgB,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,EAAC,EAAC,sBAAsB,EAAC,sBAAsB,EAAC,OAAO,EAAC,UAAS,CAAC,IAAE,IAAI,CAAC,GAAC,CAAC,GAAC,EAAE,EAAC,CAAC,GAAC,CAAC,KAAG,CAAC,CAAC,CAAC,GAAC,GAAG,GAAC,EAAE,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,CAAC,KAAG,CAAC,CAAA,CAAC,CAAA,IAAI,CAAA,CAAC,CAAA,IAAI,CAAC,CAAA,MAA1ziB,CAAi0iB,CAAC,GAAC,CAAC,CAAA,CAAA,CAAC,EAAC,CAAC,EAAC,CAAC,CAAC,IAAI,GAAC,CAAC,CAAC,uDAAuD,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,QAAQ,GAAC,CAAC,CAAC,+DAA+D,EAAC,EAAE,CAAC,CAAC;QAAA,IAAI,EAAE,GAAC,IAAI,CAAC,GAAG,EAAC,EAAE,GAAC,EAAE,CAAC,IAAI,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,GAAG,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,cAAc,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,SAAS,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,SAAS,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,OAAO,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,MAAM,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,EAAC,EAAE,GAAC,EAAE,CAAC,OAAO,CAAC,EAAC,EAAE,GAAC,IAAI,CAAC,KAAK,EAAC,EAAE,GAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAC,EAAE,GAAC,IAAI,CAAC,GAAG,EAAC,EAAE,GAAC,EAAE,CAAC,SAAS,CAAC;QAAA,MAAzwjB,CAAgxjB,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,EAAE,GAAC,EAAE,EAAC,EAAE,CAAC,cAAc,GAAC,EAAE,EAAC,EAAE,CAAC,SAAS,GAAC,EAAE,EAAC,EAAE,CAAC,SAAS,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,GAAG,GAAC,EAAE,EAAC,EAAE,CAAC,YAAY,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,OAAO,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,KAAK,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,EAAE,EAAC,EAAE,CAAC,QAAQ,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,MAAM,GAAC,EAAE,EAAC,EAAE,CAAC,UAAU,GAAC,EAAE,EAAC,EAAE,CAAC,WAAW,GAAC,CAAC,CAAC,qFAAqF,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,IAAI,GAAC,EAAE,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,MAAM,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,SAAS,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,CAAC,CAAC,GAAG,EAAC,EAAE,CAAC,EAAC,EAAE,CAAC,GAAG,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,GAAG,GAAC,UAAU,CAAC,CAAC,EAAC,EAAE,CAAC,CAA35kB,CAA45kB,CAAA,CAAC,CAAC,EAAC,EAAE,CAAC,GAAG,EAAC,UAAS,CAAC,EAAC,CAAC,EAAC,CAAC,IAAE,CAAC,CAAC,EAAE,GAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAx8kB,CAAy8kB,CAAA,CAAC,CAAC,EAAC,CAAC,CAAC,OAAO,GAAC,QAAQ,EAAC,CAAC,CAAC,EAAE,CAAC,EAAC,CAAC,CAAC,EAAE,GAAC,EAAE,EAAC,CAAC,CAAC,GAAG,GAAC,EAAE,EAAC,CAAC,CAAC,GAAG,GAAC,EAAE,EAAC,CAAC,CAAC,GAAG,GAAC,EAAE,EAAC,CAAC,CAAC,GAAG,GAAC,CAAC,EAAC,CAAC,CAAC,IAAI,GAAC,EAAE,EAAC,CAAC,CAAC,MAAM,GAAC,EAAE,EAAC,CAAC,CAAC,MAAM,GAAC,CAAC,EAAC,CAAC,CAAC,MAAM,GAAC,EAAE,EAAC,CAAC,CAAC,OAAO,GAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,GAAC,EAAE,EAAC,CAAC,CAAC,QAAQ,GAAC,CAAC,EAAC,CAAC,CAAC,QAAQ,GAAC,EAAE,EAAC,CAAC,CAAC,SAAS,GAAC,EAAE,EAAC,CAAC,CAAC,UAAU,GAAC,EAAE,EAAC,CAAC,CAAC,UAAU,GAAC,EAAE,EAAC,CAAC,CAAC,WAAW,GAAC,EAAE,EAAC,CAAC,CAAC,WAAW,GAAC,EAAE,EAAC,CAAC,CAAC,YAAY,GAAC,EAAE,EAAC,CAAC,CAAC,YAAY,GAAC,EAAE,EAAC,CAAC,CAAC,OAAO,GAAC,EAAE,EAAC,CAAC,CAAC,aAAa,GAAC,EAAE,EAAC,CAAC,CAAC,cAAc,GAAC,CAAC,EAAC,CAAC,CAAC,oBAAoB,GAAC,EAAE,EAAC,CAAC,CAAC,qBAAqB,GAAC,EAAE,EAAC,CAAC,CAAC,cAAc,GAAC,EAAE,EAAC,CAAC,CAAC,SAAS,GAAC,EAAE,EAAC,CAAC,CAAA;IAAA,CAAC,CAAC,CAAC;;;;;;ADHt3lB,IAAM,MAAA,GAAcJ,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,sBAAA,GAA0C,UAAA,OAAU;IAC/D,EAAF,CAAA,CAAM,CAAC,OAAC,CAAO,gBAAC,CAAhB,CAAiC,CAAjC;QACI,MAAM,IAAI,KAAA,CAAM,wMAAC,CAAwM,CAAC;IAC9N,CAAG;IAED,IAAF,gBAAA,CAAQ,gBAAA,GAAmB,wBAAA,CAAyB,OAAC,CAAO,gBAAC,CAAgB,CAAC;IAC5E,EAAF,CAAA,CAAM,CAAC,MAAC,CAAM,OAAC,CAAO,SAAC,EAAU,MAAA,CAAO,QAAC,CAAQ,CAAC,OAAC,EAAO,IAAK,CAAA,MAAE,CAAM,OAAC,CAAO,UAAC,EAAW,gBAAA,EAAkB,IAAA,CAAK,CAAC,OAAC,EAAO,CAA3H,CAA8H,CAA9H;QACI,MAAJ,CAAW,IAAA,CAAK;IAChB,CAAG;IACD,IAAF,gBAAA,CAAQ,QAAA,GAAW,MAAA,CAAO,OAAC,CAAO,SAAC,EAAU,MAAA,CAAO,QAAC,EAAS,IAAA,CAAK,CAAC;IAClE,IAAF,gBAAA,CAAQ,UAAA,GAAa,MAAA,CAAO,OAAC,CAAO,UAAC,EAAW,gBAAA,EAAkB,IAAA,CAAK,CAAC;;IAGtE,MAAF,CAAS,mBAAA,CAAoB,OAAC,CAAO,QAAC,IAAW,IAAA,EAAM,QAAA,CAAS,QAAC,CAAQ,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,EAAE,QAAA,CAAS,UAAC,CAAU,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC,CAAC;AACjI,CAAC,CAAD;ADhBA,IAAMD,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AACA,IAAM,WAAA,GAAc,YAAA,CAAa;AAEjC,IAAa,sBAAA,GAA0C,UAAA,OAAU;IAC/D,EAAF,CAAA,CAAM,CAACD,QAAC,CAAM,OAAC,CAAO,SAAC,EAAU,WAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,IAAK,CAAAA,QAAE,CAAM,OAAC,CAAO,UAAC,EAAW,WAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,CAAxH,CAA2H,CAA3H;QACI,MAAJ,CAAW,IAAA,CAAK;IAChB,CAAG;IACD,IAAF,gBAAA,CAAQ,QAAA,GAAWA,QAAA,CAAO,OAAC,CAAO,SAAC,EAAU,WAAA,EAAa,IAAA,CAAK,CAAC;IAC9D,IAAF,gBAAA,CAAQ,UAAA,GAAaA,QAAA,CAAO,OAAC,CAAO,UAAC,EAAW,WAAA,EAAa,IAAA,CAAK,CAAC;;IAGjE,MAAF,CAAS,mBAAA,CAAoB,OAAC,CAAO,QAAC,IAAW,IAAA,EAAM,QAAA,CAAS,QAAC,CAAQ,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,EAAE,QAAA,CAAS,UAAC,CAAU,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC,CAAC;AACjI,CAAC,CAAD;ADZA,IAAMA,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AACA,IAAMG,aAAA,GAAc,QAAA,CAAS;AAE7B,IAAa,0BAAA,GAA8C,UAAA,OAAU;IACnE,EAAF,CAAA,CAAM,CAACJ,QAAC,CAAM,OAAC,CAAO,SAAC,EAAUI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,IAAK,CAAAJ,QAAE,CAAM,OAAC,CAAO,UAAC,EAAWI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,CAAxH,CAA2H,CAA3H;QACI,MAAJ,CAAW,IAAA,CAAK;IAChB,CAAG;IACD,IAAF,gBAAA,CAAQ,QAAA,GAAWJ,QAAA,CAAO,OAAC,CAAO,SAAC,EAAUI,aAAA,EAAa,IAAA,CAAK,CAAC;IAC9D,IAAF,gBAAA,CAAQ,UAAA,GAAaJ,QAAA,CAAO,OAAC,CAAO,UAAC,EAAWI,aAAA,EAAa,IAAA,CAAK,CAAC;;IAGjE,MAAF,CAAS,mBAAA,CAAoB,OAAC,CAAO,QAAC,IAAW,IAAA,EAAM,QAAA,CAAS,QAAC,CAAQ,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,EAAE,QAAA,CAAS,UAAC,CAAU,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC,CAAC;AACjI,CAAC,CAAD;ADZA,IAAMJ,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AACA,IAAMG,aAAA,GAAc,UAAA,CAAW;AAE/B,IAAa,qBAAA,GAAyC,UAAA,OAAU;IAC9D,EAAF,CAAA,CAAM,CAACJ,QAAC,CAAM,OAAC,CAAO,SAAC,EAAUI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,IAAK,CAAAJ,QAAE,CAAM,OAAC,CAAO,UAAC,EAAWI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,CAAxH,CAA2H,CAA3H;QACI,MAAJ,CAAW,IAAA,CAAK;IAChB,CAAG;IACD,IAAF,gBAAA,CAAQ,QAAA,GAAWJ,QAAA,CAAO,OAAC,CAAO,SAAC,EAAUI,aAAA,EAAa,IAAA,CAAK,CAAC;IAC9D,IAAF,gBAAA,CAAQ,UAAA,GAAaJ,QAAA,CAAO,OAAC,CAAO,UAAC,EAAWI,aAAA,EAAa,IAAA,CAAK,CAAC;;IAGjE,MAAF,CAAS,mBAAA,CAAoB,OAAC,CAAO,QAAC,IAAW,IAAA,EAAM,QAAA,CAAS,QAAC,CAAQ,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,EAAE,QAAA,CAAS,UAAC,CAAU,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC,CAAC;AACjI,CAAC,CAAD;ADXA,IAAMJ,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,mBAAA,GAAuC,UAAA,OAAU;IAC5D,IAAF,gBAAA,CAAQ,gBAAA,GAAmB,OAAA,CAAQ,gBAAC,IAAmB,SAAA,CAAU,OAAC,CAAO;IACvE,IAAF,gBAAA,CAAQ,gBAAA,GAAmB,wBAAA,CAAyB,gBAAC,CAAgB,CAAC;IACpE,EAAF,CAAA,CAAM,CAACD,QAAC,CAAM,OAAC,CAAO,SAAC,EAAUA,QAAA,CAAO,QAAC,CAAQ,CAAC,OAAC,EAAO,IAAK,CAAAA,QAAE,CAAM,OAAC,CAAO,UAAC,EAAW,gBAAA,EAAkB,IAAA,CAAK,CAAC,OAAC,EAAO,CAA3H,CAA8H,CAA9H;QACI,MAAJ,CAAW,IAAA,CAAK;IAChB,CAAG;IACD,IAAF,gBAAA,CAAQ,QAAA,GAAWA,QAAA,CAAO,OAAC,CAAO,SAAC,CAAS,CAAC;IAC3C,IAAF,gBAAA,CAAQ,UAAA,GAAaA,QAAA,CAAO,OAAC,CAAO,UAAC,CAAU,CAAC;;IAG9C,MAAF,CAAS,mBAAA,CAAoB,OAAC,CAAO,QAAC,IAAW,IAAA,EAAM,QAAA,CAAS,QAAC,CAAQ,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,EAAE,QAAA,CAAS,UAAC,CAAU,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC,CAAC;AACjI,CAAC,CAAD;ADdO,IAAM,qBAAA,GAAyC,UAAA,OAAU;IAC9D,MAAF,CAAS,mBAAA,CAAoB,OAAC,CAAO,QAAC,IAAW,IAAA,EAAM,UAAA,CAAW,OAAC,CAAO,SAAC,CAAS,EAAE,UAAA,CAAW,OAAC,CAAO,UAAC,CAAU,CAAC,CAAC;AACtH,CAAC,CAAD;ADFO,IAAM,qBAAA,GAAyC,UAAA,OAAU;;IAE9D,OAAO,CAAC,SAAC,GAAW,OAAA,CAAQ,SAAC,CAAS,QAAC,EAAQ,CAAE;IAEjD,EAAF,CAAA,CAAM,OAAC,CAAO,QAAC,KAAY,GAAA,CAA3B,CAAgC,CAAhC;QACI,MAAJ,CAAW,OAAA,CAAQ,SAAC,CAAS,UAAC,CAAU,OAAC,CAAO,UAAC,CAAU,CAAC;IAC5D,CAAG;IAAH,IAAA,CAAS,EAAT,CAAA,CAAS,OAAK,CAAO,QAAC,KAAY,EAAA,IAAM,OAAA,CAAQ,iBAAC,KAAqB,GAAA,CAAtE,CAA2E,CAA3E;QACI,MAAJ,CAAW,OAAA,CAAQ,SAAC,CAAS,QAAC,CAAQ,OAAC,CAAO,UAAC,CAAU,CAAC;IAC1D,CAAG;IAAH,IAAA,CAAS,EAAT,CAAA,CAAS,OAAK,CAAO,QAAC,KAAY,EAAA,CAAlC,CAAsC,CAAtC;QACI,MAAJ,CAAW,OAAA,CAAQ,SAAC,CAAS,QAAC,CAAQ,OAAC,CAAO,UAAC,CAAU,CAAC;IAC1D,CAAG;IACD,MAAF,CAAS,mBAAA,CAAoB,OAAC,CAAO,QAAC,IAAW,IAAA,EAAM,OAAA,CAAQ,SAAC,CAAS,WAAC,EAAW,EAAG,OAAA,CAAQ,UAAC,CAAU,WAAC,EAAW,CAAE,CAAC;AAC1H,CAAC,CAAD;ADHO,IAAM,sBAAA,GAA0C,UAAA,OAAU;;IAE/D,MAAF,CAAA,CAAU,OAAC,CAAO,SAAC,CAAnB,CAAA,CAAA;QACI,KAAK,SAAA,CAAU,OAAC;YACd,MAAN,CAAa,sBAAA,CAAuB,OAAC,CAAO,CAAC;QACzC,KAAK,SAAA,CAAU,IAAC;YACd,MAAN,CAAa,mBAAA,CAAoB,OAAC,CAAO,CAAC;QACtC,KAAK,SAAA,CAAU,OAAC;YACd,MAAN,CAAa,sBAAA,CAAuB,OAAC,CAAO,CAAC;QACzC,KAAK,SAAA,CAAU,OAAC;YACd,MAAN,CAAa,sBAAA,CAAuB,OAAC,CAAO,CAAC;QACzC,KAAK,SAAA,CAAU,MAAC,CAAM;QACtB,KAAK,SAAA,CAAU,UAAC;YACd,MAAN,CAAa,qBAAA,CAAsB,OAAC,CAAO,CAAC;QACxC,KAAK,SAAA,CAAU,WAAC,CAAW;QAC3B,KAAK,SAAA,CAAU,eAAC;YACd,MAAN,CAAa,0BAAA,CAA2B,OAAC,CAAO,CAAC;QAC7C,KAAK,SAAA,CAAU,MAAC;YACd,MAAN,CAAa,qBAAA,CAAsB,OAAC,CAAO,CAAC;QACxC,KAAK,SAAA,CAAU,MAAC,CAAM;QACtB;YACE,MAAN,CAAa,qBAAA,CAAsB,OAAC,CAAO,CAAC;IAC5C,CAAG;AACH,CAAC,CAAD;ADvBO,IAAM,gBAAA,GAAmB;IAC9B,sBAAsB,EAAE,sBAAA;IACxB,aAAa,EAAE,sBAAA;IACf,UAAU,EAAE,mBAAA;IACZ,aAAa,EAAE,sBAAA;IACf,aAAa,EAAE,sBAAA;IACf,YAAY,EAAE,qBAAA;IACd,iBAAiB,EAAE,0BAAA;IACnB,YAAY,EAAE,qBAAA;IACd,YAAY,EAAE,qBAAA;IACd,UAAU,EAAE,mBAAA;CACb,CAAD;ADrBO,IAAM,mBAAA,GAA8B,UAAA,UAAa,EAAQ,SAAW;IACzE,MAAF,CAAS,8HAAA,CAAuH;AAChI,CAAC,CAAD;ADFO,IAAM,oBAAA,GAA+B,UAAA,UAAa,EAAQ,SAAW;IAC1E,EAAF,CAAA,CAAM,CAAC,SAAC,CAAS,MAAC,CAAM,aAAC,CAAzB,CAAuC,CAAvC;QACI,MAAM,IAAI,KAAA,CAAM,iLAAC,CAAiL,CAAC;IACvM,CAAG;IACD,IAAF,gBAAA,CAAM,OAAA,GAAU,EAAA,CAAG;IACjB,SAAS,CAAC,MAAC,CAAM,aAAC,CAAa,OAAC,CAAO,UAAC,MAAQ;QAC9C,OAAO,IAAI,qBAAA,MAAmB,CAAM,KAAC,WAAK,MAAK,CAAM,KAAC,cAAK,CAAW;IAC1E,CAAG,CAAC,CAAC;IACH,MAAF,CAAS,yBAAA,SAAuB,CAAS,EAAC,kCAAE,OAA0B,cAAO,CAAW;AACxF,CAAC,CAAD;ADPO,IAAM,eAAA,GAAkB;IAC7B,KAAK,EAAE,mBAAA;IACP,MAAM,EAAE,oBAAA;CACT,CAAD;ADLO,IAAM,iBAAA,GAA+B,UAAA,GAAE,EAAI,IAAA,EAAM,KAAA,EAAO,SAAA,EAAW,WAAA,IACxE,OAAA,KAAK,CADP,CAAA,CACU,UAAA,CADV,CAAA,CACuB,EAAA,EAArB,CAAqB,CADvB;ADAO,IAAM,kBAAA,GAAgC,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa,IAChH,OAAA,KAAK,CADP,CAAA,CACU,oDAAA,CADV,CAAA,CAC6D,EAAA,EAA3D,CAA2D,CAD7D;ADAA,IAAMA,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,gBAAA,GAA8B,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa,IAC9G,OAAA,KAAK,CADP,CAAA,CACUD,QAAA,CAAO,KAAC,CAAK,CAAC,MAAC,CAAM,YAAC,CAAY,CAD5C,CAAA,CAC+C,EAAA,EAA7C,CAA6C,CAD/C;ADFA,IAAMA,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,wBAAA,GAAsC,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa,IACtH,OAAA,KAAK,CADP,CAAA,CACUD,QAAA,CAAO,KAAC,CAAK,CAAC,MAAC,CAAM,sBAAC,CAAsB,CADtD,CAAA,CACyD,EAAA,EAAvD,CAAuD,CADzD;ADFA,IAAMA,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,uBAAA,GAAqC,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa,IACrH,OAAA,KAAK,CADP,CAAA,CACUD,QAAA,CAAO,KAAC,CAAK,CAAC,MAAC,CAAM,sBAAC,CAAsB,CADtD,CAAA,CACyD,EAAA,EAAvD,CAAuD,CADzD;ADFA,IAAMA,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,mBAAA,GAAiC,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa,IACjH,OAAA,KAAK,CADP,CAAA,CACUD,QAAA,CAAO,KAAC,CAAK,CAAC,MAAC,CAAM,qBAAC,CAAqB,CADrD,CAAA,CACwD,EAAA,EAAtD,CAAsD,CADxD;ADFA,IAAMA,QAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,eAAA,GAA6B,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa,IAC7G,OAAA,KAAK,CADP,CAAA,CACUD,QAAA,CAAO,KAAC,CAAK,CAAC,MAAC,CAAM,YAAC,CAAY,CAD5C,CAAA,CAC+C,EAAA,EAA7C,CAA6C,CAD/C;ADFO,IAAM,wBAAA,GAAsC,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa;IACtH,EAAF,CAAA,CAAM,KAAC,KAAS,IAAA,IAAQ,KAAA,KAAU,EAAA,CAAlC,CAAsC,CAAtC;QACI,MAAJ,CAAW,GAAA,CAAI;IACf,CAAG;IAAH,IAAA,CAAS,EAAT,CAAA,CAAS,KAAK,GAAO,EAAA,CAArB,CAAyB,CAAzB;QACI,MAAJ,CAAW,+CAAA,KAA8C,aAAK,CAAU;IACxE,CAAG;IAAH,IAAA,CAAS,CAAT;QACI,MAAJ,CAAW,+BAAA,KAA8B,aAAK,CAAU;IACxD,CAAG;AACH,CAAC,CAAD;ADRO,IAAM,2BAAA,GAAyC,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa;IACzH,EAAF,CAAA,CAAM,KAAC,KAAS,IAAA,IAAQ,KAAA,KAAU,EAAA,CAAlC,CAAsC,CAAtC;QACI,MAAJ,CAAW,EAAA,CAAG;IACd,CAAG;IAED,IAAF,gBAAA,CAAM,KAAA,CAAM;IAEV,EAAF,CAAA,CAAM,KAAC,GAAO,EAAA,CAAd,CAAkB,CAAlB;QACI,KAAK,GAAG,KAAA,CAAM;IAClB,CAAG;IAAH,IAAA,CAAS,EAAT,CAAA,CAAS,KAAK,GAAO,EAAA,CAArB,CAAyB,CAAzB;QACI,KAAK,GAAG,QAAA,CAAS;IACrB,CAAG;IAAH,IAAA,CAAS,CAAT;QACI,KAAK,GAAG,OAAA,CAAQ;IACpB,CAAG;IAED,MAAF,CAAS,6DAAA,KAAyD,gBAAK,KAAW,gBAAK,CAAY;AACnG,CAAC,CAAD;ADhBO,IAAM,oBAAA,GAAkC,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa;IAClH,EAAF,CAAA,CAAM,KAAC,KAAS,IAAA,IAAQ,KAAA,KAAU,EAAA,CAAlC,CAAsC,CAAtC;QACI,MAAJ,CAAW,EAAA,CAAG;IACd,CAAG;IAED,IAAF,gBAAA,CAAM,KAAA,CAAM;IAEV,EAAF,CAAA,CAAM,KAAC,GAAO,EAAA,CAAd,CAAkB,CAAlB;QACI,KAAK,GAAG,QAAA,CAAS;IACrB,CAAG;IAAH,IAAA,CAAS,EAAT,CAAA,CAAS,KAAK,GAAO,EAAA,CAArB,CAAyB,CAAzB;QACI,KAAK,GAAG,SAAA,CAAU;IACtB,CAAG;IAAH,IAAA,CAAS,CAAT;QACI,KAAK,GAAG,SAAA,CAAU;IACtB,CAAG;IAED,MAAF,CAAS,0EACmC,KAAC,gDAAK,KAAuC,oFAAK,KAAyE,mBACjK,KAAC,4BAEE,CAAC;AACV,CAAC,CAAD;ADpBO,IAAM,cAAA,GAA4B,UAAA,GAAM,EAAQ,IAAM,EAAQ,KAAO,EAAK,SAAW,EAAK,WAAa,IAC5G,OAAA,KAAK,CADP,CAAA,CACU,KAAA,CADV,CAAA,CACkB,IAAA,EAAhB,CAAgB,CADlB;ADDA,+CAAA;;AAGA;;;;;;;;;AAsBA,IADa,UAAA,GAAa;IAExB,QAAQ,EADE,iBAAA;IAEV,SAAS,EADE,kBAAA;IAEX,OAAO,EADE,gBAAA;IAET,WAAW,EADE,gBAAA;IAEb,eAAe,EADE,wBAAA;IAEjB,MAAM,EADE,eAAA;IAER,UAAU,EADE,mBAAA;IAEZ,cAAc,EADE,uBAAA;IAEhB,eAAe,EADE,wBAAA;IAEjB,kBAAkB,EADE,2BAAA;IAEpB,WAAW,EADE,oBAAA;IAEb,cAAc,EADE,cAAA;CAEjB,CAAD;ADrCA,IAAMA,SAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAMG,aAAA,GAAc,QAAA,CAAS;AAE7B,IAAa,iBAAA,GAA4B,UAAA,MAAE,EAAO,MAAA,EAAQ,aAAA;IACxD,EAAF,CAAA,CAAM,CAACJ,SAAC,CAAM,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,IAAK,CAAAJ,SAAE,CAAM,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,CAAjG,CAAoG,CAApG;QACI,MAAJ,CAAW,CAAA,CAAE;IACb,CAAG;IACD,IAAF,gBAAA,CAAQ,KAAA,GAAQJ,SAAA,CAAO,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC;IAChD,IAAF,gBAAA,CAAQ,KAAA,GAAQJ,SAAA,CAAO,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC;IAChD,IAAF,gBAAA,CAAQ,IAAA,GAAO,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,GAAG,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC;IAE/E,MAAF,CAAS,aAAA,GAAT,CAAyB,IAAE,KAAQ,CAAA,CAAnC,CAAA,CAAuC,CAAA,CAAvC,CAAA,CAAA,CAA2C,IAAE,GAAM,CAAA,CAAnD,CAAA,CAAuD,CAAA,CAAvD,CAAA,CAA2D,CAAA,CAAE,CAAC,CAAC,CAAC;AAChE,CAAC,CAAD;ADbA,IAAMJ,SAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAa,UAAA,GAAqB,UAAA,MAAE,EAAO,MAAA,EAAQ,aAAA;IACjD,EAAF,CAAA,CAAM,CAACD,SAAC,CAAM,MAAC,EAAOA,SAAA,CAAO,QAAC,CAAQ,CAAC,OAAC,EAAO,IAAK,CAAAA,SAAE,CAAM,MAAC,EAAOA,SAAA,CAAO,QAAC,EAAS,IAAA,CAAK,CAAC,OAAC,EAAO,CAAnG,CAAsG,CAAtG;QACI,MAAJ,CAAW,CAAA,CAAE;IACb,CAAG;IACD,IAAF,gBAAA,CAAQ,KAAA,GAAQA,SAAA,CAAO,MAAC,CAAM,CAAC;IAC7B,IAAF,gBAAA,CAAQ,KAAA,GAAQA,SAAA,CAAO,MAAC,CAAM,CAAC;IAC7B,IAAF,gBAAA,CAAQ,IAAA,GAAO,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,GAAG,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC;IAE/E,MAAF,CAAS,aAAA,GAAT,CAAyB,IAAE,KAAQ,CAAA,CAAnC,CAAA,CAAuC,CAAA,CAAvC,CAAA,CAAA,CAA2C,IAAE,GAAM,CAAA,CAAnD,CAAA,CAAuD,CAAA,CAAvD,CAAA,CAA2D,CAAA,CAAE,CAAC,CAAC,CAAC;AAChE,CAAC,CAAD;ADXA,IAAMA,SAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAMG,aAAA,GAAc,YAAA,CAAa;AAEjC,IAAa,aAAA,GAAwB,UAAA,MAAE,EAAO,MAAA,EAAQ,aAAA;IACpD,EAAF,CAAA,CAAM,CAACJ,SAAC,CAAM,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,IAAK,CAAAJ,SAAE,CAAM,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,CAAjG,CAAoG,CAApG;QACI,MAAJ,CAAW,CAAA,CAAE;IACb,CAAG;IACD,IAAF,gBAAA,CAAQ,KAAA,GAAQJ,SAAA,CAAO,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC;IAChD,IAAF,gBAAA,CAAQ,KAAA,GAAQJ,SAAA,CAAO,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC;IAChD,IAAF,gBAAA,CAAQ,IAAA,GAAO,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,GAAG,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC;IAE/E,MAAF,CAAS,aAAA,GAAT,CAAyB,IAAE,KAAQ,CAAA,CAAnC,CAAA,CAAuC,CAAA,CAAvC,CAAA,CAAA,CAA2C,IAAE,GAAM,CAAA,CAAnD,CAAA,CAAuD,CAAA,CAAvD,CAAA,CAA2D,CAAA,CAAE,CAAC,CAAC,CAAC;AAChE,CAAC,CAAD;ADbA,IAAMJ,SAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ,CAAtD,sHAAA;AAEA,IAAMG,aAAA,GAAc,UAAA,CAAW;AAE/B,IAAa,YAAA,GAAuB,UAAA,MAAE,EAAO,MAAA,EAAQ,aAAA;IACnD,EAAF,CAAA,CAAM,CAACJ,SAAC,CAAM,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,IAAK,CAAAJ,SAAE,CAAM,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC,OAAC,EAAO,CAAjG,CAAoG,CAApG;QACI,MAAJ,CAAW,CAAA,CAAE;IACb,CAAG;IACD,IAAF,gBAAA,CAAQ,KAAA,GAAQJ,SAAA,CAAO,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC;IAChD,IAAF,gBAAA,CAAQ,KAAA,GAAQJ,SAAA,CAAO,MAAC,EAAOI,aAAA,EAAa,IAAA,CAAK,CAAC;IAChD,IAAF,gBAAA,CAAQ,IAAA,GAAO,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,GAAG,QAAA,CAAS,KAAC,CAAK,MAAC,CAAM,GAAC,CAAG,EAAE,EAAA,CAAG,CAAC;IAE/E,MAAF,CAAS,aAAA,GAAT,CAAyB,IAAE,KAAQ,CAAA,CAAnC,CAAA,CAAuC,CAAA,CAAvC,CAAA,CAAA,CAA2C,IAAE,GAAM,CAAA,CAAnD,CAAA,CAAuD,CAAA,CAAvD,CAAA,CAA2D,CAAA,CAAE,CAAC,CAAC,CAAC;AAChE,CAAC,CAAD;ADbO,IAAM,aAAA,GAAwB,UAAA,MAAE,EAAO,MAAA,EAAQ,aAAA;IACpD,IAAF,gBAAA,CAAQ,CAAA,GAAI,CAAA,KAAE,CAAK,MAAC,CAAM,IAAI,MAAA,KAAW,EAAA,IAAM,MAAA,KAAW,IAAA,CAA1D,CAAA,CAAA,CAAkE,CAAA,MAAE,CAApE,CAAA,CAA4E,UAAA,CAAW,MAAC,CAAM,CAAC;IAC7F,IAAF,gBAAA,CAAQ,CAAA,GAAI,CAAA,KAAE,CAAK,MAAC,CAAM,IAAI,MAAA,KAAW,EAAA,IAAM,MAAA,KAAW,IAAA,CAA1D,CAAA,CAAA,CAAkE,CAAA,MAAE,CAApE,CAAA,CAA4E,UAAA,CAAW,MAAC,CAAM,CAAC;IAC7F,MAAF,CAAS,aAAA,GAAT,CAAyB,CAAE,KAAK,CAAA,CAAhC,CAAA,CAAoC,CAAA,CAApC,CAAA,CAAA,CAAwC,CAAE,GAAG,CAAA,CAA7C,CAAA,CAAiD,CAAA,CAAjD,CAAA,CAAqD,CAAA,CAAE,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAD;ADJO,IAAM,YAAA,GAAuB,UAAA,MAAE,EAAO,MAAA,EAAQ,aAAA;IACnD,MAAF,CAAS,aAAA,GAAT,CAAyB,MAAE,KAAU,MAAA,CAArC,CAAA,CAA8C,CAAA,CAA9C,CAAA,CAAA,CAAkD,MAAE,GAAQ,MAAA,CAA5D,CAAA,CAAqE,CAAA,CAArE,CAAA,CAAyE,CAAA,CAAE,CAAC,CAAC,CAAC;AAC9E,CAAC,CAAD;ADGO,IAAM,OAAA,GAAU;IACrB,IAAI,EAAE,UAAA;IACN,OAAO,EAAE,aAAA;IACT,MAAM,EAAE,YAAA;IACR,WAAW,EAAE,iBAAA;IACb,OAAO,EAAE,aAAA;IACT,MAAM,EAAE,YAAA;CACT,CAAD;ADLA;IAOA;IAAA,CAGG;;;;;;;;IAKH,4BAHG,GAGH,UAHG,IAAA,EAAA,WAAA,EAAA,iBAAA,EAAA,aAAA;QAIC,IAAI,CAHC,kBAAC,GAAoB,iBAAA,CAAkB;QAI5C,IAAI,CAHC,cAAC,GAAgB,aAAA,CAAc;QAIpC,IAAI,CAHC,YAAC,GAAc,WAAA,CAAY;QAIhC,IAAI,CAHC,KAAC,GAAO,IAAA,CAAK;IAItB,CAAG;;;;;IAKH,6CADG,GACH;QACI,IAAI,CADC,UAAC,GAAY,IAAI,KAAA,CAAM,KAAC,EAAK,CAAE;QAEpC,IAAI,CADC,UAAC,CAAU,SAAC,CAAS,IAAC,CAAI,YAAC,CAAY,eAAC,CAAe,CAAC;QAE7D,IAAI,CADC,4BAAC,EAA4B,CAAE;IAExC,CAAG;;;;;;;IAOH,2CANG,GAMH,UANG,QAAA,EAAA,MAAA,EAAA,MAAA;QAOC,MAAJ,CAAA,CAAY,QANC,CAMb,CAAA,CAAA;YACM,KANK,GAAA,EAAK,MAMhB,CANuB,CAAA,MAAE,GAAQ,MAAA,CAMjC,CAAA,CAAA,CAN2C,IAAA,CAM3C,CAAA,CANkD,KAAA,CAAM;YAOlD,KANK,IAAA,EAAM,MAMjB,CANwB,CAAA,MAAE,IAAS,MAAA,CAMnC,CAAA,CAAA,CAN6C,IAAA,CAM7C,CAAA,CANoD,KAAA,CAAM;YAOpD,KANK,GAAA,EAAK,MAMhB,CANuB,CAAA,MAAE,GAAQ,MAAA,CAMjC,CAAA,CAAA,CAN2C,IAAA,CAM3C,CAAA,CANkD,KAAA,CAAM;YAOlD,KANK,IAAA,EAAM,MAMjB,CANwB,CAAA,MAAE,IAAS,MAAA,CAMnC,CAAA,CAAA,CAN6C,IAAA,CAM7C,CAAA,CANoD,KAAA,CAAM;YAOpD,KANK,IAAA,CAAK;YAOV,KANK,IAAA,EAAM,MAMjB,CANwB,CAAA,MAAE,KAAU,MAAA,CAMpC,CAAA,CAAA,CAN8C,IAAA,CAM9C,CAAA,CANqD,KAAA,CAAM;YAOrD,KANK,GAAA,CAAI;YAOT,KANK,IAAA,EAAM,MAMjB,CANwB,CAAA,MAAE,KAAU,MAAA,CAMpC,CAAA,CAAA,CAN8C,IAAA,CAM9C,CAAA,CANqD,KAAA,CAAM;QAO3D,CAAK;IACL,CAAG;;;;;;IAMH,2CALG,GAKH,UALG,QAAA;QAMC,IAAI,CALC,SAAC,GAAW,QAAA,CAAS;QAM1B,IAAI,CALC,UAAC,GAAY,IAAI,KAAA,CAAM,KAAC,EAAK,CAAE;QAOpC,QAAQ,CALC,aAAC,CAAa,EAAE,aAAA,EAAe,IAAA,CAAK,cAAC,EAAe,IAAA,EAAM,IAAA,CAAK,KAAC,EAAK,CAAE,CAAC;QAMjF,QAAQ,CALC,SAAC,CAAS,IAAC,CAAI,YAAC,CAAY,CAAC;QAOtC,IAAI,CALC,UAAC,CAAU,SAAC,CAAS,UAAC,CAAG,EAAK,IAAM;YAMvC,IAAN,gBAAA,CALY,QAAA,GAAW,IAAA,CAAK,QAAC,CAAQ;YAM/B,EAAN,CAAA,CAAU,QALC,IAAW,IAAA,CAKtB,CAL4B,CAK5B;gBACQ,QAAQ,CALC,OAAC,EAAO,CAAE;YAM3B,CAAO;QACP,CAAK,CALC,CAAC;QAMH,IAAI,CALC,4BAAC,EAA4B,CAAE;IAMxC,CAAG;;;;;;IAMH,oCATG,GASH,UATG,IAAA,EAAA,IAAA;QAUC,GAAJ,CAAA,CAT2B,UAA+B,EAA/B,KAAA,MAAA,CAAO,IAAC,CAAI,IAAC,CAAI,aAAC,CAAa,EAA/B,cAA+B,EAA/B,IAA+B;YASjD,IATM,QAAA,SAAA;YAUT,IAAN,gBAAA,CATY,YAAA,GAAe,IAAA,CAAK,aAAC,CAAa,QAAC,CAAQ,CAAC;YAUlD,IAAN,gBAAA,CATY,WAAA,GAAc,IAAA,CAAK,IAAC,CAAI,cAAC,CAAc,QAAC,CAAQ,CAAC;YAUvD,IAAN,gBAAA,CATY,SAAA,GAAY,IAAA,CAAK,IAAC,CAAI,UAAC,EAAU,CAAE,WAAC,CAAW,CAAC;YAUtD,IAAN,gBAAA,CARY,SAAA,GAAY,SAAA,CAAU,IAAC,IAAO,SAAA,CAAU,MAAC,CAAM;YAUrD,IAAN,gBAAA,CATY,mBAAA,GAAsB,CAAA,SAAE,CAAS,MAAC,IAAS,SAAA,CAAU,MAAC,CAAM,iBAAC,CASzE,CAAA,CAAA,CAT6F,SAAA,CAAU,MAAC,CAAM,iBAAC,CAS/G,CAAA,CATkI,IAAA,CAAK;YAUjI,IAAN,gBAAA,CATY,gBAAA,GAAmB,CAAA,SAAE,CAAS,gBAAC,CAS3C,CAAA,CAAA,CAT8D,SAAA,CAAU,gBAAC,CASzE,CAAA,CAT2F,IAAA,CAAK;YAW1F,IAAN,gBAAA,CATU,SAAA,GAAY,IAAA,CAAK,SAAC,CAAS,KAAC,CAAK,CAAC;YAUtC,IAAN,gBAAA,CATU,gBAAA,GAAmB,YAAA,CAAa,UAAC,CAAU;YAU/C,EAAN,CAAA,CAAU,OATO,gBAAA,KAAqB,WAAA,CAStC,CATmD,CASnD;gBACQ,gBAAgB,GATG,EAAA,CAAG;YAU9B,CAAO;YACD,gBAAgB,GATG,EAAA,GAAK,gBAAA,CAAiB,CAS/C,0BAAA;YAEM,IAAN,gBAAA,CATY,OAAA,GAAU,gBAAA,CAAiB,KAAC,CAAK,uCAAC,CAAuC,CAAC,CAStF,0FAAA;YACM,IAAN,gBAAA,CATY,QAAA,GAAW,YAAA,CAAa,QAAC,IASrC,CATgD,CAAE,OAAC,CASnD,CAAA,CAAA,CAT6D,OAAA,CAAQ,CAAC,CAAC,CASvE,CAAA,CAT0E,EAAA,CAAG,CAAC;YAUxE,IAAN,gBAAA,CATY,UAAA,GAAa,CAAA,CAAE,CAAC,OAAC,CAS7B,CAAA,CAAA,CATuC,OAAA,CAAQ,CAAC,CAAC,CASjD,CAAA,CAToD,EAAA,CAAG;YAUjD,IAAN,gBAAA,CATY,aAAA,GAAgB,CAAA,CAAE,CAAC,OAAC,CAShC,CAAA,CAAA,CAT0C,OAAA,CAAQ,CAAC,CAAC,CASpD,CAAA,CATuD,EAAA,CAAG;;YAYpD,EAAN,CAAA,CAAU,UATC,KAAc,EAAA,CASzB,CAT6B,CAS7B;gBACQ,MAAR,CATe,IAAA,CAAK;YAUpB,CAAO;YAED,EAAN,CAAA,CAAU,OATO,SAAA,KAAc,QAAA,CAS/B,CATyC,CASzC;gBACQ,SAAS,GATG,SAAA,CAAU,QAAC,EAAQ,CAAE;YAUzC,CAAO;YAED,IAAN,gBAAA,CATY,gBAAA,GAAmB;gBAUvB,SAAS,EATE,SAAA;gBAUX,UAAU,EATE,UAAA;gBAUZ,SAAS,EATE,SAAA;gBAUX,QAAQ,EATE,QAAA;gBAUV,iBAAiB,EATE,aAAA;gBAUnB,gBAAgB,EATE,gBAAA;aAUnB,CATC;YAUF,EAAN,CAAA,CAAU,mBATC,IAAsB,OAAO,mBAAA,KAAwB,UAAA,CAShE,CAT4E,CAS5E;gBACQ,mBAAmB,CATC,gBAAC,CAAgB,CAAC;YAU9C,CAAO;YACD,EAAN,CAAA,CAAU,CATC,gBAAC,CAAgB,sBAAC,CAAsB,gBAAC,CAAgB,CASpE,CATsE,CAStE;gBACQ,MAAR,CATe,KAAA,CAAM;YAUrB,CAAO;SACF;QACD,MAAJ,CATW,IAAA,CAAK;IAUhB,CAAG;;;;IAIH,+BAXG,GAWH;QACI,IAAI,CAXC,UAAC,CAAU,WAAC,EAAW,CAAE;IAYlC,CAAG;;;;;;IAMH,2CAfG,GAeH,UAfG,CAAA,EAAA,IAAA;QAgBC,IAAI,CAfC,cAAC,CAAc,IAAC,CAAI,SAAC,CAAS,EAAC,CAAE,GAAG;YAgBvC,QAAQ,EAfE,IAAA,CAAK,SAAC,CAAS,EAAC;YAgB1B,SAAS,EAfE,IAAA,CAAK,SAAC;YAgBjB,UAAU,EAfE,CAAA,CAAE,MAAC,CAAM,KAAC;SAgBvB,CAfC;QAiBF,IAAI,CAfC,YAAC,CAAY,IAAC,CAAI,UAAC,EAAW;YAgBjC,QAAQ,EAfE,IAAA,CAAK,SAAC,CAAS,EAAC;YAgB1B,SAAS,EAfE,IAAA,CAAK,SAAC;YAgBjB,aAAa,EAfE,IAAA,CAAK,cAAC;YAgBrB,UAAU,EAfE,CAAA,CAAE,MAAC,CAAM,KAAC;YAgBtB,IAAI,EAfE,IAAA,CAAK,KAAC;SAgBb,EAfE,CAAA,CAAE,CAAC;IAgBV,CAAG;;;;IAIH,oDAjBG,GAiBH;QAAA,iBAgDG;gCAhEU,CAAA;YAkBP,EAAN,CAAA,CAAU,OAjBK,kBAAC,CAAkB,CAAC,CAAC,CAAC,EAAC,KAAM,UAAA,IAAc,OAAK,kBAAC,CAAkB,CAAC,CAAC,CAAC,UAAC,CAiBtF,CAjBiG,CAiBjG;gBACQ,IAAR,gBAAA,CAjBY,cAAA,GAAiB,EAAA,CAAG;gBAkBxB,IAAR,gBAAA,CAjBY,GAAA,GAAM,IAAA,CAAK;gBAkBf,IAAR,gBAAA,CAjBY,MAAA,SAAA,CAAO;gBAkBX,IAAR,gBAAA,CAjBc,WAAA,GAAY,OAAK,kBAAC,CAAkB,CAAC,CAAC,CAAC;gBAkB7C,IAAR,gBAAA,CAhBc,QAAA,GAAW,CAAA,WAAE,CAAS,MAAC,IAAS,WAAA,CAAU,MAAC,CAAM,QAAC,CAgBhE,CAAA,CAAA,CAhB2E,WAAA,CAAU,MAAC,CAAM,QAAC,CAgB7F,CAAA,CAhBuG,IAAA,CAAK;gBAkBpG,IAAR,gBAAA,CAjBY,UAAA,GAAa,CAAA,WAAE,CAAS,MAAC,IAAS,WAAA,CAAU,MAAC,CAAM,UAAC,CAiBhE,CAAA,CAAA,CAjB6E,WAAA,CAAU,MAAC,CAAM,UAAC,CAiB/F,CAAA,CAjB2G,EAAA,CAAG;;gBAoBtG,OAjBK,iBAAC,CAAiB,UAAC,EAAW,QAAA,EAAU,WAAA,CAAU,CAAC;gBAmBxD,EAAR,CAAA,CAAY,CAjBC,WAAC,CAAS,MAAC,CAiBxB,CAjB+B,CAiB/B;oBACU,UAAU,GAjBG,CAAA,WAAE,CAAS,MAAC,IAAS,WAAA,CAAU,MAAC,CAAM,UAAC,CAiB9D,CAAA,CAAA,CAjB2E,WAAA,CAAU,MAAC,CAAM,UAAC,CAiB7F,CAAA,CAjByG,IAAA,CAAK;oBAkBpG,cAAc,GAjBG,eAAA,CAAgB,KAAC,CAAK,UAAC,EAAW,WAAA,CAAU,CAAC;gBAkBxE,CAAS;gBAjBT,IAAA,CAAe,CAAf;;oBAmBU,EAAV,CAAA,CAAc,WAjBC,CAAS,MAAC,CAAM,IAAC,KAAQ,eAAA,CAAgB,MAAC,CAiBzD,CAjBgE,CAiBhE;wBACY,cAAc,GAjBG,eAAA,CAAgB,MAAC,CAAM,UAAC,EAAW,WAAA,CAAU,CAAC;oBAkB3E,CAAW;gBACX,CAAS;;gBAGD,MAAM,GAjBG,OAAK,KAAC,CAAK,kBAAC,CAAkB,WAAC,CAAS,EAAC,CAAE,CAAC;gBAkBrD,CAAC,CAjBC,MAAC,CAAM,CAAC,KAAC,EAAK,CAAE;gBAkBlB,GAAG,GAjBG,CAAA,CAAE,cAAC,CAAc,CAAC;gBAkBxB,GAAG,CAjBC,GAAC,CAAG,UAAC,CAAU,CAAC;gBAkBpB,GAAG,CAjBC,IAAC,CAAI,UAAC,EAAW,WAAA,CAAU,EAAC,CAAE,CAAC;gBAkBnC,EAAR,CAAA,CAAY,GAjBC,IAAM,OAAO,GAAA,CAAI,QAAC,KAAY,UAAA,CAiB3C,CAjBuD,CAiBvD;oBACU,GAAG,CAjBC,QAAC,CAAQ,MAAC,CAAM,CAAC;gBAkB/B,CAAS;;gBAGD,IAAR,gBAAA,CAjBc,UAAA,GAAa,CAAA,WAAE,CAAS,MAAC,IAAS,WAAA,CAAU,MAAC,CAAM,IAAC,CAiBlE,CAAA,CAAA,CAjByE,WAAA,CAAU,MAAC,CAAM,IAAC,CAiB3F,CAAA,CAjBiG,eAAA,CAAgB,KAAC,CAAK;gBAkB/G,MAAR,CAAA,CAAgB,UAjBC,CAiBjB,CAAA,CAAA;oBACU,KAjBK,eAAA,CAAgB,MAAC,CAAM;oBAkB5B,KAjBK,eAAA,CAAgB,WAAC;wBAkBpB,GAAG,CAjBC,MAAC,CAAM,UAAC,CAAG,IAAQ,OAAA,KAAA,CAAK,mBAAC,CAAmB,CAAC,EAAE,EAAE,SAAA,EAAW,WAAA,EAAU,CAAE,EAArD,CAAqD,CAAC,CAAC;wBAkB9E,KAAZ,CAAkB;oBACR,KAjBK,eAAA,CAAgB,KAAC,CAAK;oBAkB3B;wBACE,GAAG,CAjBC,KAAC,CAAK,UAAC,CAAG,IAAQ,OAAA,KAAA,CAAK,mBAAC,CAAmB,CAAC,EAAE,EAAE,SAAA,EAAW,WAAA,EAAU,CAAE,EAArD,CAAqD,CAAC,CAAC;wBAkB7E,KAAZ,CAAkB;gBAClB,CAAS;YACT,CAAO;QACP,CAAK;;QA9CD,GAAJ,CAAA,CAAS,IAAT,gBAAA,CAjBa,CAAA,GAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,kBAAC,CAAkB,MAAC,EAAO,CAAA,EAAE;oBAiB1D,gBAAA,CAjBa,CAAA;SA+DR;IACL,CAAG;;;;;;;IAfA,yCAAA,GAAA,UAAA,UAAA,EAAA,QAAA,EAAA,SAAA;QAiBD,EAAF,CAAA,CAAE,UAhBO,CAgBT,CAhBoB,CAgBpB;YAOM,IAAI,CAtBC,cAAC,CAAc,SAAC,CAAS,EAAC,CAAE,GAAG;gBAuBlC,QAAQ,EAtBE,SAAA,CAAU,EAAC;gBAuBrB,SAAS,EAtBE,SAAA;gBAuBX,UAAU,EAtBE,UAAA;aAuBb,CAtBC;YAuBF,EAAN,CAAA,CAAU,QAtBC,CAsBX,CAtBoB,CAsBpB;gBACQ,IAAI,CAtBC,cAAC,CAAc,QAAC,GAAU,QAAA,CAAS;YAuBhD,CAAO;QACP,CAAK;IACL,CAAG;;;;;;;IApBA,oCAAA,GAAA,UAAA,GAAA,EAAA,IAAA,EAAA,CAAA;QA4BC,CAAC,GA3BG,CAAA,IAAK,IAAI,KAAA,CAAM,SAAC,EAAS,CAAE;QA4B/B,MAAJ,CA3BW,GAAA,CAAI,MAAC,CAAM,IAAC,EAAK,CAAA,EAAG,IAAA,CAAK,IAAC,CAAI,CAAC;IA4B1C,CAAG;;CAlOH;AAwMO,aAAP,CAAA,UAAO,GAAoC;IA4B3C,EA3BE,IAAA,EAAM,UAAA,EAAW;CA4BlB,CA3BC;;;;AAED,aAAD,CAAA,cAAC,GAAA,cAAA,OAAA,EA8BA,EA9BA,CA8BA,CAAC;ADlPF;IAAA;IAkBA,CAAC;;;;;IAbD,yCALG,GAKH,UALG,IAAA;QAMC,IAAI,CALC,YAAC,CAAY,SAAC,CAAS,UAAC,CAAY;YAMvC,IAAN,gBAAA,CALY,IAAA,GAAO,IAAA,CAAK,gBAAC,CAAgB,CAAC,CAAC,CAAC;YAMtC,EAAN,CAAA,CAAU,IALC,IAAO,IAAA,CAAK,GAAC,IAAM,CAAA,CAK9B,CALiC,CAKjC;gBACQ,IAAI,CALC,eAAC,CAAe,CAAC,IAAC,CAAI,GAAC,CAAG,CAAC,CAAC;gBAMjC,CAAC,CALC,cAAC,EAAc,CAAE;YAM3B,CAAO;QACP,CAAK,CALC,CAAC;QAMH,IAAI,CALC,YAAC,CAAY,SAAC,CAAS,UAAC,CAAY;YAMvC,IAAI,CALC,eAAC,CAAe,EAAC,CAAE,CAAC;YAMzB,CAAC,CALC,cAAC,EAAc,CAAE;QAMzB,CAAK,CALC,CAAC;IAMP,CAAG;IACH,mBAAC;AAAD,CAAC,AAlBD,IAkBC;ADbD,+CAAA;AACA,IAAM,mBAAA,GAAsB,GAAA,CAAI;AAChC,IAAM,kBAAA,GAAqB,GAAA,CAAI;AAC/B,IAAM,uBAAA,GAA0B,EAAA,CAAG;AACnC,IAAM,0BAAA,GAA6B,EAAA,CAAG;AACtC;;;;IAIA,wBADsBD,SAAQ;QAAR,IAAtB,CAAA,MAAsB,GAAAA,SAAA,CAAQ;IAE9B,CAAG;;;;;;;;IAQH,iDAJG,GAIH,UAJG,IAAA,EAAA,WAAA;QAIH,iBAoBG;;QAlBC,IAAJ,gBAAA,CAJU,UAAA,GAAa,CAAA,CAAE,MAAC,WAAI,CAAW,MAAO,CAAE,CAAC;QAK/C,EAAJ,CAAA,CAAQ,CAJC,UAAC,IAAa,OAAO,UAAA,CAAW,MAAC,EAAM,KAAM,WAAA,CAItD,CAJmE,CAInE;YACM,MAAN,CAJa,IAAA,CAAK;QAKlB,CAAK;;QAGD,IAAI,CAJC,UAAC,CAAU,IAAC,EAAK,WAAA,CAAY,CAAC;;;QAQnC,CAAC,CAJC,MAAC,CAAM,CAAC,EAAC,CAAE,aAAC,EAAc;YAK1B,KAAI,CAJC,UAAC,CAAU,IAAC,EAAK,WAAA,CAAY,CAAC;QAKzC,CAAK,CAJC,CAAC;;QAOH,IAAI,CAJC,MAAC,CAAM,MAAC,CAAM,SAAC,CAAS,UAAC,KAAO;YAKnC,KAAI,CAJC,OAAC,EAAO,CAAE;QAKrB,CAAK,CAJC,CAAC;IAKP,CAAG;;;;;;;IAOH,mDALG,GAKH,UALG,WAAA;QAMC,IAAJ,gBAAA,CALQ,aAAA,GAAgB,CAAA,WAAE,CAAW,UAAC,IAAa,WAAA,CAAY,UAAC,CAAU,aAAC,CAK3E,CAAA,CAAA,CAL2F,WAAA,CAAY,UAAC,CAAU,aAAC,CAKnH,CAAA,CALkI,uBAAA,CAAwB;QAMtJ,EAAJ,CAAA,CAAQ,aALC,IAAgB,WAAA,CAAY,gBAAC,CAKtC,CALuD,CAKvD;YACM,aAAa,IALI,0BAAA,CAA2B,CAKlD,0CAAA;QACA,CAAK;QACD,EAAJ,CAAA,CAAQ,OALO,CAAA,CAAE,MAAC,WAAI,CAAW,MAAO,CAAE,CAAC,MAAC,KAAU,UAAA,CAKtD,CALkE,CAKlE;YACM,MAAN,CAAa;QACb,CAAK;QACD,IAAJ,gBAAA,CALU,eAAA,GAAkB,CAAA,CAAE,MAAC,CAAM,CAAC,MAAC,EAAM,GAAI,CAAA,CAAE,MAAC,WAAI,CAAW,MAAO,CAAE,CAAC,MAAC,EAAM,CAAE,GAAC,GAAK,aAAA,CAAc;QAMtG,IAAJ,gBAAA,CALU,cAAA,GAAiB,CAAA,WAAE,CAAW,UAAC,IAAa,WAAA,CAAY,UAAC,CAAU,WAAC,CAK9E,CAAA,CAAA,CAL4F,CAAA,CAAE,MAAC,WAAI,CAAW,UAAC,CAAU,WAAY,CAAE,CAAC,KAAC,EAAK,CAK9I,CAAA,CALkJ,CAAA,CAAE,MAAC,WAAI,CAAW,eAAgB,CAAE,CAAC,KAAC,EAAK,CAAE;QAM3L,IAAJ,gBAAA,CALU,SAAA,GAAY,CAAA,WAAE,CAAW,UAAC,IAAa,WAAA,CAAY,UAAC,CAAU,SAAC,GAAW,CAAA,CAKpF,CAAA,CAAA,CALyF,WAAA,CAAY,UAAC,CAAU,SAAC,CAKjH,CAAA,CAL4H,mBAAA,CAAoB;QAM5I,IAAJ,gBAAA,CALU,QAAA,GAAW,CAAA,WAAE,CAAW,UAAC,IAAa,WAAA,CAAY,UAAC,CAAU,QAAC,GAAU,CAAA,CAKlF,CAAA,CAAA,CALuF,WAAA,CAAY,UAAC,CAAU,QAAC,CAK/G,CAAA,CALyH,kBAAA,CAAmB;QAOxI,IAAJ,gBAAA,CALQ,SAAA,GAAY,eAAA,CAAgB;QAMhC,IAAJ,gBAAA,CALQ,QAAA,GAAW,CAAA,WAAE,CAAW,UAAC,IAAa,WAAA,CAAY,UAAC,CAAU,WAAC,CAKtE,CAAA,CAAA,CALoF,cAAA,GAAiB,WAAA,CAAY,UAAC,CAAU,WAAC,CAK7H,CAAA,CAL0I,cAAA,CAAe;QAMrJ,EAAJ,CAAA,CAAQ,SALC,GAAW,SAAA,CAKpB,CAL+B,CAK/B;YACM,SAAS,GALG,SAAA,CAAU;QAM5B,CAAK;QACD,EAAJ,CAAA,CAAQ,QALC,GAAU,QAAA,CAKnB,CAL6B,CAK7B;YACM,QAAQ,GALG,QAAA,CAAS;QAM1B,CAAK;QAED,MAAJ,CALW;YAML,MAAM,EALE,SAAA;YAMR,KAAK,EALE,QAAA;SAMR,CALC;IAMN,CAAG;;;;;IAKH,gCALG,GAKH;QACI,CAAC,CALC,MAAC,CAAM,CAAC,OAAC,CAAO,aAAC,CAAa,CAAC,GAAC,CAAG,QAAC,CAAQ,CAAC;IAMnD,CAAG;;;;;;;;IAQH,mCAVG,GAUH,UAVG,IAAA,EAAA,WAAA,EAAA,QAAA;;QAYC,QAAQ,GAVG,QAAA,IAAY,IAAA,CAAK,0BAAC,CAA0B,WAAC,CAAW,CAAC;QAYpE,EAAJ,CAAA,CAAQ,QAVC,CAUT,CAVkB,CAUlB;;YAEM,CAAC,CAVC,MAAC,WAAI,CAAW,MAAO,CAAE,CAAC,MAAC,CAAM,QAAC,CAAQ,MAAC,CAAM,CAAC;YAWpD,CAAC,CAVC,MAAC,WAAI,CAAW,MAAO,CAAE,CAAC,KAAC,CAAK,QAAC,CAAQ,KAAC,CAAK,CAAC;YAWlD,CAAC,CAVC,MAAC,WAAI,CAAW,eAAgB,CAAE,CAAC,MAAC,CAAM,QAAC,CAAQ,MAAC,CAAM,CAAC;YAW7D,CAAC,CAVC,MAAC,WAAI,CAAW,eAAgB,CAAE,CAAC,KAAC,CAAK,QAAC,CAAQ,KAAC,CAAK,CAAC;;;;YAe3D,EAAN,CAAA,CAAU,IAVI,MAAA,CAAO,YAAC,CAAY,CAAC,IAAC,CAAI,SAAC,CAAS,SAAC,CAAS,KAAK,IAAA,IAAQ,IAAA,CAUzE,CAV+E,CAU/E;gBACQ,IAAI,CAVC,YAAC,EAAY,CAAE;YAW5B,CAAO;;YAJL,IAAA,CAHS,eAAC,EAAe,CAAE;QAW7B,CAAK;IACL,CAAG;;CAtGH;AA6FO,cAAP,CAAA,UAAO,GAAoC;IAW3C,EAVE,IAAA,EAAM,UAAA,EAAW;CAWlB,CAVC;;;;AAED,cAAD,CAAA,cAAC,GAAA,cAAA,OAAA;IAaD,EAAC,IAAI,EAAE,MAAM,GAAG;CACf,EAdA,CAcA,CAAC;ADrHF;IAEA;IAAA,CAGG;;;;;;;IAIH,yCAGG,GAHH,UAGG,IAAA,EAAA,WAAA;QAFC,IAAI,CAGC,UAAC,GAAY,IAAA,CAAK,MAAC,CAAM;QAF9B,IAAI,CAGC,UAAC,CAAU,SAAC,CAAS,WAAC,CAAW,aAAC,CAAa,CAAC;IAFzD,CAAG;;;;;;;;IAQH,uCAGG,GAHH,UAGG,IAAA,EAAA,WAAA,EAAA,QAAA;QAFC,IAAI,CAGC,UAAC,GAAY,IAAA,CAAK,MAAC,CAAM;QAF9B,IAAI,CAGC,UAAC,CAAU,SAAC,CAAS,UAAC,CAAG,EAAK,IAAM;;;YAAvC,IAAN,gBAAA,CAGY,WAAA,GAAc,CAAA,IAAE,CAAI,eAAC,CAHjC,CAAA,CAAA,CAGmD,IAAA,CAAK,QAAC,CAHzD,CAAA,CAGmE,IAAI,KAAA,CAAM,EAAC,OAAC,EAAQ,IAAA,CAAK,OAAC,EAAQ,OAAA,EAAS,IAAA,CAAK,OAAC,EAAO,CAAC,CAAC;YADvH,QAAQ,CAGC,IAAC,CAAI,UAAC,QAAmB,EAAK,QAAU;gBAF/C,GAAR,CAAA,CAAa,IAAb,gBAAA,CAGiB,CAAA,GAAI,CAAA,EAHrB,gBAAA,CAGwB,CAAA,GAAI,WAAA,CAAY,MAAC,EAAO,CAAA,GAAI,CAAA,EAAG,CAAA,EAAE,EAAG,CAH5D;oBACU,IAAV,gBAAA,CAGgB,aAAA,GAAgB,WAAA,CAAY,CAAC,CAAC,CAAC,OAAC,CAHhD,CAAA,CAGyD,CAAA,CAHzD,CAAA,CAG6D,CAAA,CAAE,CAAC;oBAFtD,IAAV,gBAAA,CAGgB,SAAA,GAAY,WAAA,CAAY,CAAC,CAAC,CAAC,OAAC,CAAO,KAAC,CAAK;oBAF/C,IAAV,gBAAA,CAGgB,SAAA,GAAY,WAAA,CAAY,CAAC,CAAC,CAAC,OAAC,CAAO,IAAC,IAAO,QAAA,CAAS;oBAF1D,IAAV,gBAAA,CAGgB,MAAA,GAAS,QAAA,CAAS,SAAC,CAAS,CAAC;oBAFnC,IAAV,gBAAA,CAGgB,MAAA,GAAS,QAAA,CAAS,SAAC,CAAS,CAAC;oBAFnC,IAAV,gBAAA,CAGc,MAAA,GAAS,CAAA,CAAE;oBADf,MAAV,CAAA,CAAkB,SAGC,CAHnB,CAAA,CAAA;wBACY,KAGK,SAAA,CAAU,MAAC;4BAFd,MAAM,GAGG,OAAA,CAAQ,OAAC,CAAO,MAAC,EAAO,MAAA,EAAQ,aAAA,CAAc,CAAC;4BAFxD,KAAd,CAAoB;wBACR,KAGK,SAAA,CAAU,IAAC;4BAFd,MAAM,GAGG,OAAA,CAAQ,IAAC,CAAI,MAAC,EAAO,MAAA,EAAQ,aAAA,CAAc,CAAC;4BAFrD,KAAd,CAAoB;wBACR,KAGK,SAAA,CAAU,OAAC;4BAFd,MAAM,GAGG,OAAA,CAAQ,OAAC,CAAO,MAAC,EAAO,MAAA,EAAQ,aAAA,CAAc,CAAC;4BAFxD,KAAd,CAAoB;wBACR,KAGK,SAAA,CAAU,MAAC;4BAFd,MAAM,GAGG,OAAA,CAAQ,MAAC,CAAM,MAAC,EAAO,MAAA,EAAQ,aAAA,CAAc,CAAC;4BAFvD,KAAd,CAAoB;wBACR,KAGK,SAAA,CAAU,WAAC;4BAFd,MAAM,GAGG,OAAA,CAAQ,WAAC,CAAW,MAAC,EAAO,MAAA,EAAQ,aAAA,CAAc,CAAC;4BAF5D,KAAd,CAAoB;wBACR;4BACE,MAAM,GAGG,OAAA,CAAQ,MAAC,CAAM,MAAC,EAAO,MAAA,EAAQ,aAAA,CAAc,CAAC;4BAFvD,KAAd,CAAoB;oBACpB,CAAW;oBAED,EAAV,CAAA,CAAc,MAGC,KAAU,CAAA,CAHzB,CAG4B,CAH5B;wBACY,MAAZ,CAGmB,MAAA,CAAO;oBAF1B,CAAW;gBACX,CAAS;gBACD,MAAR,CAGe,CAAA,CAAE;YAFjB,CAAO,CAGC,CAAC;YAFH,IAAI,CAGC,UAAC,EAAU,CAAE;YAFlB,IAAI,CAGC,MAAC,EAAM,CAAE;QAFpB,CAAK,CAGC,CAAC;IAFP,CAAG;;;;IAIH,6BACG,GADH;QACI,IAAI,CACC,UAAC,CAAU,WAAC,EAAW,CAAE;IAAlC,CAAG;;CAxEH;AA0EO,WAAP,CAAA,UAAO,GAAoC;IAA3C,EACE,IAAA,EAAM,UAAA,EAAW;CAAlB,CACC;;;;AAED,WAAD,CAAA,cAAC,GAAA,cAAA,OAAA,EAEA,EAFA,CAEA,CANC;AD/EF,YAAY,CAAC;;;;AAMb,mBAAmB,OAAO;;;IAKtB,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,UAAS,YAAY,EAAE,KAAK;QAEjD,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE3B,EAAR,CAAA,CAAY,KAAK,YAAY,KAAK,CAAC,CAAA,CAAnC;YACY,MAAZ,CAAmB,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpC,CAAS;QAAT,IAAA,CAAe,EAAf,CAAA,CAAoB,CAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,QAAQ,KAAK,OAAO,KAAlE,CAAA,CAA0E,CAA1E;YACY,IAAI,QAAM,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,EAAZ,CAAA,CAAiB,CAAC,KAAK,QAAM,CAAC,MAAM,CAApC,CAAsC,CAAtC;gBACgB,MAAM,IAAI,UAAU,CAAC,wDAAwD,GAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YACrH,CAAa;YACD,IAAI,KAAK,GAAG,QAAM,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;;YAExB,EAAZ,CAAA,CAAgB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAnC,CAAqC,CAArC;gBACc,MAAd,CAAqB,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAChD,CAAa;YACD,MAAZ,CAAsB,KAAK,WAAM,IAAI,MAAG,CAAC;QACzC,CAAS;QAAT,IAAA,CAAe,EAAf,CAAA,CAAoB,QAAQ,KAAK,OAAO,KAAxC,CAAA,CAAgD,CAAhD;YACY,MAAZ,CAAmB,KAAK,CAAC;QACzB,CAAS;QAAT,IAAA,CAAe,CAAf;YACY,MAAM,IAAI,UAAU,CAAC,8BAA8B,GAAC,KAAK,CAAC,CAAC;QACvE,CAAS;IACT,CAAK,CAAC,CAAC;IAEH,MAAJ,CAAW,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC;;;;AAMD,yBAAyB,KAAK;IACxB,EAAN,CAAA,CAAU,QAAQ,KAAK,OAAO,KAAK,CAAnC,CAAqC,CAArC;QACQ,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,CAAO;IAAP,IAAA,CAAa,EAAb,CAAA,CAAiB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAArC,CAAuC,CAAvC;QACQ,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,UAAA,IAAI;YAClB,MAAZ,CAAmB,eAAe,CAAC,IAAI,CAAC,CAAC;QACzC,CAAa,CAAC,CAAC,IAAI,EAAE,CAAC;QACd,KAAK,GAAG,MAAI,KAAK,MAAG,CAAC;IAC7B,CAAO;IAAP,IAAA,CAAa,EAAb,CAAA,CAAiB,QAAQ,KAAK,OAAO,KAAK,CAA1C,CAA4C,CAA5C;;;;QAIY,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;;IAE1C,CAAO;IACD,MAAN,CAAa,KAAK,CAAC;AACnB,CAAC;AAED,wBAAwB,GAAG;IAEzB,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,GAAF,CAAA,CAAM,IAAI,IAAI,IAAI,GAAG,CAAC,CAAA,CAAtB;QACI,EAAJ,CAAA,CAAQ,UAAU,KAAK,OAAO,GAAG,CAAC,IAAI,CAAC,CAAvC,CAAyC,CAAzC;YACM,QAAN,CAAe;QACf,CAAK;;QAEG,OAAO,CAAC,IAAI,CAAI,IAAI,SAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAG,CAAC,CAAC;;;;IAI9D,CAAG;IACD,MAAF,CAAS,MAAI,OAAO,CAAC,IAAI,EAAE,MAAG,CAAC;AAC/B,CAAC;;;;AASD,eAAe,QAAQ,EAAE,iBAAiB;IAA1C,iBA4CC;IA1CG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAC;IACxB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IAEhB,IAAI,CAAC,MAAM,GAAG,UAAC,QAAQ;QAEnB,GAAR,CAAA,CAAY,IAAI,KAAK,IAAI,QAAQ,CAAC,CAAA,CAAlC;YACY,EAAZ,CAAA,CAAgB,UAAU,KAAK,OAAO,QAAQ,CAAC,KAAK,CAAC,CAArD,CAAuD,CAAvD;gBACc,QAAd,CAAuB;YACvB,CAAa;YACD,IAAI,GAAG,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;YAC3C,EAAZ,CAAA,CAAgB,IAAI,KAAK,GAAG,CAA5B,CAA8B,CAA9B;gBACc,QAAd,CAAuB;YACvB,CAAa;YACD,KAAI,CAAC,KAAK,CAAC,IAAI,CAAK,KAAK,SAAI,GAAK,CAAE,CAAC;QACjD,CAAU;QACF,MAAR,CAAe,KAAI,CAAC;IACpB,CAAK,CAAC;IAEF,EAAJ,CAAA,CAAQ,QAAQ,KAAK,OAAO,iBAAiB,CAA7C,CAA+C,CAA/C;QACM,IAAI,CAAC,MAAM,GAAG,iBAAiB,CAAC;IACtC,CAAK;IAAL,IAAA,CAAW,EAAX,CAAA,CAAe,QAAQ,KAAK,OAAO,iBAAiB,CAApD,CAAsD,CAAtD;QACQ,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACvC,CAAK;IAAL,IAAA,CAAW,EAAX,CAAA,CAAe,SAAS,KAAK,iBAAiB,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,CAAA,CAAzE;QACQ,MAAM,IAAI,SAAS,CAAC,yDAAyD,CAAC,CAAC;IACvF,CAAK;IAAL,IAAA,CAAW,EAAX,CAAA,CAAe,SAAS,KAAK,iBAAiB,CAAC,CAAA,CAA/C;QACQ,MAAM,IAAI,SAAS,CAAC,qGAAqG,GAAC,iBAAiB,CAAC,CAAC;IACrJ,CAAK;IAED,IAAI,CAAC,QAAQ,GAAG,UAAC,OAAO;QACrB,KAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QACrB,MAAR,CAAe,KAAI,CAAC;IACpB,CAAK,CAAC;IAEF,IAAI,CAAC,IAAI,GAAG,UAAS,KAAK;QACtB,EAAR,CAAA,CAAY,CAAE,KAAK,CAAC,CAAA,CAApB;YACY,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;QACnE,CAAS;;;QAGD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAApD,CAAA,CAAA,CAAwD,KAAK,CAA7D,CAAA,CAAgE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAC/E,MAAR,CAAe,IAAI,CAAC;IACpB,CAAK,CAAC;AACN,CAAC;;;;AAMD,KAAK,CAAC,SAAS,GAAG;IAEd,QAAQ,EAAG;QACP,EAAR,CAAA,CAAY,SAAS,KAAK,IAAI,CAAC,KAAK,CAApC,CAAsC,CAAtC;YACY,MAAM,IAAI,cAAc,CAAC,4EAA4E,CAAC,CAAC;QACnH,CAAS;QAED,MAAR,CAAe,CAAI,CAAC,IAAI,CAAC,MAAM,CAA/B,CAAA,CAAA,CAAA,CAAoC,IAAI,CAAC,MAAM,GAAG,GAAG,CAArD,CAAA,CAAA,CAAyD,EAAE,UAAK,IAAI,CAAC,OAAO,UAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAxG,CAAA,CAA0G,CAAA,GAAG,GAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,CAAA,CAAC,CAAA,EAAE,aAAS,IAAI,CAAC,KAAK,OAAK,CAAC;IAClK,CAAK;CACJ,CAAC;AAEF,IAAA,mBAAc,GAAG,KAAK,CAAtB;ADhJA;IAAA;QACE,IAAF,CAAA,cAAgB,GACyB,EAAA,CAAG;IAiH5C,CAAC;;;;;;IA5GD,mCACG,GADH,UACG,cAAA;QAAC,EAAJ,CAAA,CAAQ,CACC,IAAC,CAAI,cAAC,CAAc,WAAC,IAAc,CAAA,IAAE,CAAI,cAAC,CAAc,WAAC,CADlE,CAC8E,CAD9E;YACM,MACM,IAAI,KAAA,CAAM,kFAAC,CAAkF,CAAC;QAA1G,CAAK;QACD,IAAJ,gBAAA,CACU,YAAA,GAAe,IAAID,mBAAA,CAAa,IAAC,CAAI,cAAC,CAAc,WAAC,CAAW,CAAC;QAAvE,IAAJ,gBAAA,CACU,UAAA,GAAa,IAAIA,mBAAA,CAAa,UAAC,CAAU,CAAC;QAAhD,IAAJ,gBAAA,CACU,MAAA,GAAS,CAAA,IAAE,CAAI,cAAC,CAAc,YAAC,CADzC,CAAA,CAAA,CACwD,IAAIA,mBAAA,CAAa,OAAC,CAAO,CADjF,CAAA,CACoF,IAAIA,mBAAA,CAAa,OAAC,CAAO,CAAC;QAC1G,EAAJ,CAAA,CAAQ,IACC,CAAI,cAAC,CAAc,YAAC,CAD7B,CAC0C,CAD1C;YACM,UAAU,CACC,IAAC,CAAI,aAAC,EAAc,WAAA,CAAY,CAAC;YAA5C,MAAM,CACC,IAAC,CAAI,CAAC,QAAC,EAAS,EAAA,MAAE,EAAO,IAAA,CAAK,cAAC,CAAc,WAAC,EAAW,CAAC,CAAC,CAAC;QAAzE,CAAK;QACL,IAAA,CAAW,CAAX;YAAM,UAAU,CACC,IAAC,CAAI,aAAC,CAAa,CAAC;YAA/B,MAAM,CACC,IAAC,CAAI,IAAC,CAAI,cAAC,CAAc,WAAC,CAAW,CAAC;QAAnD,CAAK;QACD,YAAY,CACC,IAAC,CAAI,CAAC,YAAC,EAAa,UAAA,EAAY,MAAA,CAAO,CAAC,CAAC;QAAtD,YAAY,CACC,MAAC,CAAM,IAAC,CAAI,cAAC,CAAc,iBAAC,CAAiB,CAAC;QAC3D,MAAJ,CACW,YAAA,CAAa,QAAC,EAAQ,CAAE;IAAnC,CAAG;;;;;IAKH,oCAFG,GAEH,UAFG,cAAA;QAGC,IAAI,CAFC,cAAC,GAAgB,cAAA,IAAkB,EAAA,CAAG;IAG/C,CAAG;;;;;IAKH,2CALG,GAKH,UALG,SAAA;IAOH,CAAG;;;;IAIH,+CAJG,GAIH;QACI,IAAJ,gBAAA,CAJQ,iBAAA,CAAkB;QAKtB,EAAJ,CAAA,CAAQ,IAJC,CAAI,cAAC,CAAc,YAAC,CAI7B,CAJ0C,CAI1C;;YAEM,iBAAiB,GAJG;gBAKlB,KAAK,EAJE,EAAA;gBAKP,MAAM,EAJE,SAAA;gBAKR,IAAI,EAJE,SAAA;aAKP,CAJC;QAKR,CAAK;QAJL,IAAA,CAAW,CAAX;;YAMM,iBAAiB,GAJG;gBAKlB,MAAM,EAJE,CAAA;aAKT,CAJC;QAKR,CAAK;QACD,IAAI,CAJC,aAAC,CAAa,EAAE,iBAAA,EAAmB,iBAAA,EAAkB,CAAE,CAAC;IAKjE,CAAG;;;;;IAKH,sCAPG,GAOH,UAPG,cAAA;QAQC,IAAI,CAPC,cAAC,GAOV,MAAA,CAAA,MAAA,CAAA,EAAA,EAP4B,IAAI,CAAI,cAAC,EAAe,cAAI,CAAc,CAAE;IAQxE,CAAG;;;;;;;IAOH,yCAZG,GAYH,UAZG,SAAA,EAAA,KAAA,EAAA,KAAA;IAaH,CAAG;;;;;;IAMH,wCAbG,GAaH,UAbG,KAAA,EAAA,IAAA;IAcH,CAAG;;;;;;IAMH,4CAYG,GAZH,UAYG,KAAA,EAAA,IAAA;QAXC,IAAJ,gBAAA,CAYQ,iBAAA,CAAkB;QAXtB,EAAJ,CAAA,CAAQ,IAYC,CAAI,cAAC,CAAc,YAAC,CAZ7B,CAY0C,CAZ1C;YACM,iBAAiB,GAYG;gBAXlB,KAAK,EAYE,IAAA,CAAK,QAAC;aAXd,CAYC;QAXR,CAAK;QAYL,IAAA,CAAW,CAAX;YAXM,iBAAiB,GAYG;gBAXlB,KAAK,EAYE,IAAA,CAAK,QAAC;gBAXb,MAAM,EAYE,CAAA,IAAE,CAAI,OAAC,GAAS,CAAA,CAZhC,GAYqC,IAAA,CAAK,QAAC;aAXpC,CAYC;QAXR,CAAK;QAED,IAAI,CAYC,aAAC,CAAa,EAAE,iBAAA,EAAmB,iBAAA,EAAkB,CAAE,CAAC;;QAT7D,MAAJ,CAYW,IAAA,CAAK,UAAC,EAAU,CAAE;IAX7B,CAAG;;;;;;IAMH,sCAWG,GAXH,UAWG,KAAA,EAAA,IAAA;;;IARH,CAAG;IACH,qBAAC;AAAD,CAAC,AAnHD,IAmHC;AD5GD,MAAM,CAAC,MAAC,GAAQ,UAAA,MAAiB,EAAQ,IAAA;;IAGvC,MAAF,CAAS,MAAA,CAAO,OAAC,CAAO,UAAC,EAAW,UAAA,KAAW,EAAM,MAAA;QACjD,MAAJ,CAAW,CAAA,OAAQ,IAAA,CAAK,MAAC,CAAM,KAAK,WAAA,CAApC,CAAA,CAAA,CAAmD,IAAA,CAAK,MAAC,CAAM,CAA/D,CAAA,CAAkE,KAAA,CAAM;IACxE,CAAG,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,OAAC,GAAS,UAAwB,MAAQ;IAC/C,IAAF,gBAAA,CAAM,CAAA,GAAI,IAAA,CAAK;IACb,OAAO,CAAC,CAAC,MAAC,GAAQ,MAAA,EAAQ,CAA5B;QACI,CAAC,GAAG,GAAA,GAAM,CAAA,CAAE;IAChB,CAAG;IACD,MAAF,CAAS,CAAA,CAAE;AACX,CAAC,CAAC;;;;;;AAOF,MAAM,CAAC,IAAC,GAAM,UAAA,QAAmB;IAC/B,MAAF,CAAS,QAAA,CAAT,CAAA,CAAoB,QAAA,CAAS,OAAC,CAAO,MAAC,EAAO,GAAA,CAAI,CAAjD,CAAA,CAAoD,QAAA,CAAS;AAC7D,CAAC,CAAC;;;;;;AAOF,MAAM,CAAC,YAAC,GAAc,UAAA,QAAmB;IACvC,MAAF,CAAS,QAAA,CAAS,OAAC,CAAO,QAAC,EAAS,UAAA,SAAU;QACzC,MAAL,CAAY,SAAA,CAAU,MAAC,CAAM,CAAC,CAAC,CAAC,WAAC,EAAW,GAAI,SAAA,CAAU,MAAC,CAAM,CAAC,CAAC,CAAC,WAAC,EAAW,CAAE;IAClF,CAAG,CAAC,CAAC;AACL,CAAC,CAAC;;;;;;AAOF,MAAM,CAAC,SAAC,GAAW,UAAA,QAAmB;IACpC,MAAF,CAAS,QAAA,CAAS,MAAC,CAAM,CAAC,CAAC,CAAC,WAAC,EAAW,GAAI,QAAA,CAAS,KAAC,CAAK,CAAC,CAAC,CAAC;AAC9D,CAAC,CAAC;ADhDF;IAIA;QACI,IAAI,CAAC,aAAa,GAAG;YACnB,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,EAAE;SACZ,CAAC;QACF,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;QACzB,IAAI,CAAC,cAAc,GAAG,EAAE,CAAC;IAC7B,CAAG;;;;IAIH,iCAKG,GALH;QACI,IAAI,CAKC,aAAC,CAAa,WAAC,GAAa,EAAA,CAAG;QAJpC,IAAJ,gBAAA,CAKQ,aAAA,GAAgB,EAAA,CAAG;QAHvB,EAAJ,CAAA,CAAQ,IAKC,CAAI,aAAC,CAAa,GAAC,CAL5B,CAKgC,CALhC;YACM,aAAa,CAKC,IAAC,CAAI,UAAC,IAAQ,CAAI,aAAC,CAAa,GAAI,CAAE,CAAC;QAJ3D,CAAK;QACD,EAAJ,CAAA,CAAQ,IAKC,CAAI,aAAC,CAAa,IAAC,CAL5B,CAKiC,CALjC;YACM,aAAa,CAKC,IAAC,CAAI,WAAC,IAAS,CAAI,aAAC,CAAa,IAAK,CAAE,CAAC;QAJ7D,CAAK;QACD,EAAJ,CAAA,CAAQ,IAKC,CAAI,aAAC,CAAa,OAAC,CAL5B,CAKoC,CALpC;YACM,IAAN,gBAAA,CAKU,QAAA,GAAW,EAAA,CAAG;YAJlB,EAAN,CAAA,CAAU,KAKC,CAAK,OAAC,CAAO,IAAC,CAAI,aAAC,CAAa,OAAC,CAAO,CALnD,CAKqD,CALrD;gBACQ,QAAQ,GAKG,IAAA,CAAK,aAAC,CAAa,OAAC,CAAO,IAAC,CAAI,GAAC,CAAG,CAAC,CALxD,2EAAA;YACA,CAAO;YAKP,IAAA,CAAa,CAAb;gBAJQ,QAAQ,GAKG,IAAA,CAAK,aAAC,CAAa,OAAC,CAAO;YAJ9C,CAAO;YACD,aAAa,CAKC,IAAC,CAAI,cAAC,QAAoB,CAAE,CAAC;QAJjD,CAAK;QACD,EAAJ,CAAA,CAAQ,IAKC,CAAI,aAAC,CAAa,QAAC,IAAW,IAAA,CAAK,aAAC,CAAa,MAAC,CAL3D,CAKkE,CALlE;YACM,EAAN,CAAA,CAAU,IAKC,CAAI,aAAC,CAAa,MAAC,CAL9B,CAKqC,CALrC;gBACQ,IAAI,CAKC,aAAC,CAAa,WAAC,GAAa,EAAA,CAAG;gBAJpC,IAAR,gBAAA,CAKY,SAAA,GAAY,IAAA,CAAK,aAAC,CAAa,MAAC,CAAM;gBAJ1C,EAAR,CAAA,CAAY,KAKC,CAAK,OAAC,CAAO,IAAC,CAAI,aAAC,CAAa,MAAC,CAAM,CALpD,CAKsD,CALtD;oBACU,IAAV,gBAAA,CAKgB,iBAAA,GAAoB,IAAA,CAAK,aAAC,CAAa,iBAAC,IAAoB,KAAA,CAAM;oBAJxE,IAAV,gBAAA,CAKgB,kBAAA,GAAqB,MAAA,iBAAK,MAAiB,CAAG;oBAJpD,SAAS,GAKG,IAAA,CAAK,aAAC,CAAa,MAAC,CAAM,IAAC,CAAI,kBAAC,CAAkB,CAAC;gBAJzE,CAAS;gBACD,IAAI,CAKC,aAAC,CAAa,WAAC,CAAW,IAAC,CAAI,MAAC,SAAI,MAAS,CAAG,CAAC;YAJ9D,CAAO;;YAED,EAAN,CAAA,CAAU,CAKC,CAAC,IAAC,CAAI,aAAC,CAAa,QAAC,IAAW,CAAA,CAAE,IAAC,CAAI,aAAC,CAAa,QAAC,CAAQ,SAAC,IAAY,CAAA,IAAE,CAAI,cAAC,CAAc,IAAC,CAAI,aAAC,CAAa,QAAC,CAAQ,SAAC,CAAS,WAAC,EAAW,CAAE,CAL/J,CAKiK,CALjK;gBACQ,EAAR,CAAA,CAAY,IAKC,CAAI,aAAC,CAAa,QAAC,CAAQ,UAAC,KAAc,EAAA,CALvD,CAK2D,CAL3D;oBACU,IAAI,CAKC,gBAAC,CAAgB,IAAC,CAAI,aAAC,CAAa,QAAC,CAAQ,SAAC,CAAS,WAAC,EAAW,EAAG,IAAA,CAAK,aAAC,CAAa,QAAC,CAAQ,UAAC,EAAW,IAAA,CAAK,aAAC,CAAa,QAAC,CAAQ,QAAC,CAAQ,CAAC;oBAJzJ,IAAI,CAKC,yBAAC,CAAyB,IAAC,CAAI,aAAC,CAAa,QAAC,CAAQ,CAAC;gBAJtE,CAAS;YACT,CAAO;QACP,CAAK;QACD,EAAJ,CAAA,CAAQ,IAKC,CAAI,aAAC,CAAa,WAAC,CAAW,MAAC,GAAQ,CAAA,CALhD,CAKmD,CALnD;YACM,IAAN,gBAAA,CAKY,iBAAA,GAAoB,IAAA,CAAK,aAAC,CAAa,iBAAC,IAAoB,KAAA,CAAM;YAJxE,IAAN,gBAAA,CAKY,kBAAA,GAAqB,MAAA,iBAAK,MAAiB,CAAG;YAJpD,IAAN,gBAAA,CAKY,KAAA,GAAQ,IAAA,CAAK,aAAC,CAAa,WAAC,CAAW,IAAC,CAAI,kBAAC,CAAkB,CAAC;YAJtE,IAAI,CAKC,aAAC,CAAa,MAAC,GAAQ,KAAA,CAAM,CALxC,iBAAA;YACM,aAAa,CAKC,IAAC,CAAI,aAAC,KAAgB,CAAE,CAAC;QAJ7C,CAAK;;QAGD,MAAJ,CAKW,aAAA,CAAc,IAAC,CAAI,GAAC,CAAG,CAAC;IAJnC,CAAG;;;;;IAKH,wCAEG,GAFH,UAEG,UAAA;QADC,MAAJ,CAEW,CAAA,CAAE,CAAC,IAAC,CAAI,cAAC,CAAc,UAAC,CAAU,CAF7C,CAAA,CAAA,CAEiD,IAAA,CAAK,cAAC,CAAc,UAAC,CAAU,CAFhF,CAAA,CAEmF,IAAA,CAAK;IADxF,CAAG;;;;IAIH,qCAAG,GAAH;QACI,MAAJ,CAAW,CAAA,IAAE,CAAI,aAAC,CAAa,WAAC,CAAhC,CAAA,CAAA,CAA8C,IAAA,CAAK,aAAC,CAAa,WAAC,CAAW,MAAC,CAA9E,CAAA,CAAsF,CAAA,CAAE;IACxF,CAAG;IAIH,sBAFG,uCAAA;;;;aAEH;YACI,MAAJ,CAFW,IAAA,CAAK,cAAC,CAAc;QAG/B,CAAG;;;OAAA;IAIH,sBAJG,iCAAA;;;;aAIH;YACI,MAAJ,CAJW,IAAA,CAAK,aAAC,CAAa;QAK9B,CAAG;;;;;aAKH,UAPG,OAAA;YAQC,IAAI,CAPC,aAAC,GAAe,OAAA,CAAQ;QAQjC,CAAG;;;OAPA;;;;;IAYH,yCAVG,GAUH,UAVG,SAAA;QAWC,OAVO,IAAA,CAAK,cAAC,CAAc,SAAC,CAAS,CAAC;IAW1C,CAAG;;;;;;;IAOH,uCAfG,GAeH,UAfG,SAAA,EAAA,KAAA,EAAA,WAAA;QAgBC,IAAI,CAfC,cAAC,CAAc,SAAC,CAAS,GAAG;YAgB/B,MAAM,EAfE,WAAA;YAgBR,KAAK,EAfE,KAAA;SAgBR,CAfC;IAgBN,CAAG;;;;;;IAMH,gDAdG,GAcH,UAdG,aAAA;QAcH,iBASG;;QAPC,EAAJ,CAAA,CAAQ,KAdC,CAAK,OAAC,CAAO,aAAC,CAAa,CAcpC,CAdsC,CActC;YACM,aAAa,CAdC,OAAC,CAAO,UAAC,kBAAC;gBAetB,KAAI,CAdC,oBAAC,CAAoB,kBAAC,CAAkB,CAAC;YAetD,CAAO,CAdC,CAAC;QAeT,CAAK;QAdL,IAAA,CAAW,CAAX;YAeM,IAAI,CAdC,oBAAC,CAAoB,aAAC,CAAa,CAAC;QAe/C,CAAK;IACL,CAAG;;;;;IAKH,2CAjBG,GAiBH,UAjBG,aAAA;QAkBC,IAAJ,gBAAA,CAjBQ,QAAA,GAAW,EAAA,CAAG;QAkBlB,IAAJ,gBAAA,CAjBU,gBAAA,GAAmB,EAAA,CAAG;QAkB5B,IAAJ,gBAAA,CAjBU,SAAA,GAAY,aAAA,CAAc,SAAC,CAAS;QAkB1C,IAAJ,gBAAA,CAjBU,gBAAA,GAAmB,aAAA,CAAc,QAAC,CAAQ;QAkBhD,IAAJ,gBAAA,CAjBU,QAAA,GAAW,aAAA,CAAc,QAAC,CAAQ;;QAoBxC,EAAJ,CAAA,CAAQ,CAjBC,CAAC,gBAAC,IAAmB,gBAAA,CAAiB,MAAC,GAAQ,CAAA,CAiBxD,CAjB2D,CAiB3D;YACM,IAAN,gBAAA,CAjBU,cAAA,GAAiB,EAAA,CAAG;YAmBxB,EAAN,CAAA,CAAU,QAjBC,KAAY,IAAA,CAiBvB,CAjB6B,CAiB7B;;gBAEQ,GAAR,CAAA,CAAa,IAAb,gBAAA,CAjBiB,CAAA,GAAI,CAAA,EAiBrB,gBAAA,CAjBwB,GAAA,GAAM,gBAAA,CAAiB,MAAC,EAAO,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,EAAG,CAiBrE;oBACU,cAAc,CAjBC,IAAC,CAAK,SAAG,aAAS,gBAAQ,CAAgB,CAAC,CAAC,MAAC,CAAG,CAAC;gBAkB1E,CAAS;gBACD,QAAQ,GAjBG,cAAA,CAAe,IAAC,CAAI,MAAC,CAAM,CAAC;gBAkBvC,QAAQ,GAjBG,OAAA,QAAM,MAAQ,CAAG;YAkBpC,CAAO;YAjBP,IAAA,CAAa,EAAb,CAAA,CAAa,QAAK,KAAY,KAAA,IAAS,QAAA,KAAa,OAAA,IAAW,QAAA,KAAa,QAAA,CAA5E,CAAsF,CAAtF;;gBAmBQ,GAAR,CAAA,CAAa,IAAb,gBAAA,CAjBiB,CAAA,GAAI,CAAA,EAiBrB,gBAAA,CAjBwB,GAAA,GAAM,gBAAA,CAAiB,MAAC,EAAO,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,EAAG,CAiBrE;oBACU,cAAc,CAjBC,IAAC,CAAK,SAAG,aAAS,gBAAQ,CAAgB,CAAC,CAAC,MAAC,CAAG,CAAC;gBAkB1E,CAAS;gBACD,QAAQ,GAjBG,cAAA,CAAe,IAAC,CAAI,OAAC,CAAO,CAAC;gBAkBxC,QAAQ,GAjBG,OAAA,QAAM,MAAQ,CAAG;YAkBpC,CAAO;QACP,CAAK;;QAGD,gBAAgB,CAjBC,IAAC,CAAI,MAAC,CAAM,IAAC,CAAI,QAAC,CAAQ,CAAC,CAAC;;QAoB7C,IAAJ,gBAAA,CAjBU,MAAA,GAAS,CAAA,gBAAE,CAAgB,MAAC,GAAQ,CAAA,CAiB9C,CAAA,CAAA,CAjBmD,gBAAA,CAAiB,IAAC,CAAI,OAAC,CAAO,CAiBjF,CAAA,CAjBoF,EAAA,CAAG;QAkBnF,EAAJ,CAAA,CAAQ,IAjBC,CAAI,aAAC,CAAa,WAAC,IAAc,IAAA,CAAK,aAAC,CAAa,WAAC,CAAW,OAAC,CAAO,MAAC,CAAM,KAAK,CAAA,CAAE,CAiB/F,CAjBiG,CAiBjG;YACM,IAAI,CAjBC,aAAC,CAAa,WAAC,CAAW,IAAC,CAAI,MAAC,CAAM,CAAC;QAkBlD,CAAK;IACL,CAAG;;;;;;IAMH,oCAjBG,GAiBH,UAjBG,OAAA;QAkBC,GAAJ,CAAA,CAjB2B,UAAoB,EAApB,KAAA,MAAA,CAAO,IAAC,CAAI,OAAC,CAAO,EAApB,cAAoB,EAApB,IAAoB;YAiBtC,IAjBM,QAAA,SAAA;YAkBT,EAAN,CAAA,CAAU,OAjBC,CAAO,cAAC,CAAc,QAAC,CAAQ,CAiB1C,CAjB4C,CAiB5C;gBACQ,IAAI,CAjBC,aAAC,CAAa,QAAC,CAAQ,GAAG,OAAA,CAAQ,QAAC,CAAQ,CAAC,CAiBzD,0BAAA;YACA,CAAO;;;YAID,EAAN,CAAA,CAAU,QAjBC,KAAY,SAAA,IAAa,QAAA,KAAa,QAAA,CAiBjD,CAjB2D,CAiB3D;gBACQ,IAAR,gBAAA,CAjBY,MAAA,GAAS,OAAA,CAAQ,QAAC,CAAQ,CAAC;;gBAoB/B,EAAR,CAAA,CAAY,IAjBC,CAAI,aAAC,CAAa,QAAC,KAAY,QAAA,CAAS,UAAC,CAiBtD,CAjBiE,CAiBjE;oBACU,EAAV,CAAA,CAAc,KAjBC,CAAK,OAAC,CAAO,MAAC,CAAM,CAiBnC,CAjBqC,CAiBrC;wBACY,MAAM,CAjBC,OAAC,CAAO,UAAC,KAAC,EAAM,KAAA,EAAO,UAAA;4BAkB5B,UAAU,CAjBC,KAAC,CAAK,GAAG,MAAA,CAAO,SAAC,CAAS,KAAC,CAAK,CAAC;wBAY1D,CAAE,CAXY,CAAC;oBAkBf,CAAW;oBAjBX,IAAA,CAAiB,CAAjB;wBAkBY,MAAM,GAjBG,MAAA,CAAO,SAAC,CAAS,OAAC,CAAO,QAAC,CAAQ,CAAC,CAAC;oBAkBzD,CAAW;gBACX,CAAS;gBACD,IAAI,CAjBC,aAAC,CAAa,OAAC,GAAS,MAAA,CAAO;gBAkBpC,IAAI,CAjBC,cAAC,GAAgB,MAAA,CAAO;YAkBrC,CAAO;SACF;IACL,CAAG;;CAzMH;AA0LO,YAAP,CAAA,UAAO,GAAoC;IAkB3C,EAjBE,IAAA,EAAM,UAAA,EAAW;CAkBlB,CAjBC;;;;AAED,YAAD,CAAA,cAAC,GAAA,cAAA,OAAA,EAoBA,EApBA,CAoBA,CAAC;ADjNF,IAAMF,SAAA,GAAcC,UAAgB,IAAU,OAAA,CAAQ;AACtD;;;;IAMA,0BAAsB,YAAc;QAAd,IAAtB,CAAA,YAAsB,GAAA,YAAA,CAAc;QALlC,IAAF,CAAA,aAAe,GAEG,EAAA,CAAG;QADnB,IAAF,CAAA,yBAA2B,GAEG,GAAA,CAAI;IAElC,CAAiD;;;;IAIjD,qCAFG,GAEH;QACI,MAAJ,CAFW,IAAA,CAAK,YAAC,CAAY,UAAC,EAAU,CAAE;IAG1C,CAAG;;;;;IAKH,sCALG,GAKH,UALG,OAAA;QAMC,IAAI,CALC,YAAC,CAAY,OAAC,GAAS,OAAA,CAAQ;IAMxC,CAAG;;;;;IAKH,6CARG,GAQH,UARG,SAAA;QASC,IAAI,CARC,YAAC,CAAY,kBAAC,CAAkB,SAAC,CAAS,CAAC;IASpD,CAAG;;;;IAIH,iDAPG,GAOH;QACI,IAAI,CAPC,YAAC,CAAY,aAAC,CAAa;YAQ9B,IAAI,EAPE,CAAA;SAQP,CAPC,CAAC;IAQP,CAAG;;;;;;;IAOH,2CAZG,GAYH,UAZG,SAAA,EAAA,KAAA,EAAA,KAAA;QAaC,IAAI,CAZC,YAAC,CAAY,gBAAC,CAAgB,SAAC,EAAU,KAAA,EAAO,KAAA,CAAM,CAAC;IAahE,CAAG;;;;;;IAMH,0CAbG,GAaH,UAbG,KAAA,EAAA,IAAA;QAcC,IAAJ,gBAAA,CAXU,aAAA,GAAgB,EAAA,CAAG;;QAgBzB,GAAJ,CAAA,CAAS,IAAT,gBAAA,CAbe,QAAA,IAAY,IAAA,CAAK,aAAC,CAajC,CAb+C,CAa/C;YACM,EAAN,CAAA,CAAU,IAbC,CAAI,aAAC,CAAa,cAAC,CAAc,QAAC,CAAQ,CAarD,CAbuD,CAavD;gBACQ,IAAR,gBAAA,CAbc,YAAA,GAAe,IAAA,CAAK,aAAC,CAAa,QAAC,CAAQ,CAAC;gBAclD,IAAR,gBAAA,CAbc,SAAA,GAAY,YAAA,CAAa,SAAC,CAAS;gBAczC,IAAR,gBAAA,CAbc,SAAA,GAAY,SAAA,CAAU,KAAC,IAAQ,SAAA,CAAU,IAAC,CAAI;gBAcpD,IAAR,gBAAA,CAbc,SAAA,GAAY,SAAA,CAAU,IAAC,IAAO,QAAA,CAAS;gBAc7C,IAAR,gBAAA,CAbY,gBAAA,GAAmB,YAAA,CAAa,UAAC,CAAU;gBAc/C,EAAR,CAAA,CAAY,OAbO,gBAAA,KAAqB,WAAA,CAaxC,CAbqD,CAarD;oBACU,gBAAgB,GAbG,EAAA,CAAG;gBAchC,CAAS;gBACD,EAAR,CAAA,CAAY,OAbO,gBAAA,KAAqB,QAAA,CAaxC,CAbkD,CAalD;oBACU,MAbM,IAAI,KAAA,CAAM,oQAAC,CAA0P,CAAC;gBActR,CAAS;gBAED,IAAR,gBAAA,CAbc,WAAA,GAAc,YAAA,CAAa,QAAC,IAAW,EAAA,CAAG;gBAchD,gBAAgB,GAbG,EAAA,GAAK,gBAAA,CAAiB,CAajD,0BAAA;gBACQ,IAAR,gBAAA,CAbc,OAAA,GAAU,gBAAA,CAAiB,KAAC,CAAK,uCAAC,CAAuC,CAAC,CAaxF,0FAAA;gBACQ,IAAR,gBAAA,CAbc,QAAA,GAAW,YAAA,CAAa,QAAC,IAavC,CAbkD,CAAE,OAAC,CAarD,CAAA,CAAA,CAb+D,OAAA,CAAQ,CAAC,CAAC,CAazE,CAAA,CAb4E,EAAA,CAAG,CAAC;gBAcxE,IAAR,gBAAA,CAbY,WAAA,GAAc,CAAA,CAAE,CAAC,OAAC,CAa9B,CAAA,CAAA,CAbwC,OAAA,CAAQ,CAAC,CAAC,CAalD,CAAA,CAbqD,EAAA,CAAG;gBAchD,IAAR,gBAAA,CAbc,aAAA,GAAgB,CAAA,CAAE,CAAC,OAAC,CAalC,CAAA,CAAA,CAb4C,OAAA,CAAQ,CAAC,CAAC,CAatD,CAAA,CAbyD,EAAA,CAAG;gBAcpD,IAAR,gBAAA,CAbc,gBAAA,GAAmB,YAAA,CAAa,kBAAC,IAAqB,KAAA,CAAM;;gBAgBlE,EAAR,CAAA,CAAY,SAbC,IAAY,WAAA,KAAgB,EAAA,CAazC,CAb6C,CAa7C;oBACU,IAAI,CAbC,kBAAC,CAAkB,SAAC,CAAS,CAAC;oBAcnC,QAAV,CAAmB;gBACnB,CAAS;;gBAGD,WAAW,GAbG,WAAA,CAAY,OAAC,CAAO,GAAC,EAAI,IAAA,CAAK,CAAC,CAarD,wCAAA;gBACQ,WAAW,GAbG,kBAAA,CAAmB,WAAC,CAAW,CAAC,CAatD,uCAAA;;gBAGQ,EAAR,CAAA,CAAY,gBAbC,CAab,CAb8B,CAa9B;;oBAEU,EAAV,CAAA,CAAc,SAbC,CAaf,CAbyB,CAazB;wBACY,IAAI,CAbC,gBAAC,CAAgB,SAAC,EAAU,gBAAA,EAAkB,WAAA,CAAY,CAAC;oBAc5E,CAAW;gBACX,CAAS;gBAbT,IAAA,CAAe,CAAf;oBAcU,IAAV,gBAAA,CAbc,QAAA,GAAW,EAAA,CAAG;;oBAgBlB,IAAV,gBAAA,CAbgB,kBAAA,GAAqB,MAAA,CAAO,SAAC,CAAS,SAAC,IAAY,EAAA,CAAG,CAAC;;oBAgB7D,EAAV,CAAA,CAAc,WAbC,IAAc,WAAA,CAAY,MAAC,GAAQ,CAAA,CAalD,CAbqD,CAarD;wBACY,IAAZ,gBAAA,CAbgB,cAAA,GAAiB,EAAA,CAAG;wBAexB,EAAZ,CAAA,CAAgB,QAbC,KAAY,IAAA,CAa7B,CAbmC,CAanC;;4BAEc,GAAd,CAAA,CAAmB,IAAnB,gBAAA,CAbuB,CAAA,GAAI,CAAA,EAa3B,gBAAA,CAb8B,GAAA,GAAM,WAAA,CAAY,MAAC,EAAO,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,EAAG,CAatE;gCACgB,cAAc,CAbC,IAAC,CAAK,kBAAG,aAAkB,WAAQ,CAAW,CAAC,CAAC,MAAC,CAAG,CAAC;4BAcpF,CAAe;4BACD,QAAQ,GAbG,cAAA,CAAe,IAAC,CAAI,MAAC,CAAM,CAAC;4BAcvC,QAAQ,GAbG,MAAA,QAAK,MAAQ,CAAG;wBAczC,CAAa;wBAbb,IAAA,CAAmB,EAAnB,CAAA,CAAmB,QAAK,KAAY,KAAA,IAAS,QAAA,KAAa,OAAA,IAAW,QAAA,KAAa,QAAA,CAAlF,CAA4F,CAA5F;;4BAec,GAAd,CAAA,CAAmB,IAAnB,gBAAA,CAbuB,CAAA,GAAI,CAAA,EAa3B,gBAAA,CAb8B,GAAA,GAAM,WAAA,CAAY,MAAC,EAAO,CAAA,GAAI,GAAA,EAAK,CAAA,EAAE,EAAG,CAatE;gCACgB,cAAc,CAbC,IAAC,CAAK,kBAAG,aAAkB,WAAQ,CAAW,CAAC,CAAC,MAAC,CAAG,CAAC;4BAcpF,CAAe;4BACD,QAAQ,GAbG,cAAA,CAAe,IAAC,CAAI,OAAC,CAAO,CAAC;4BAcxC,QAAQ,GAbG,MAAA,QAAK,MAAQ,CAAG;wBAczC,CAAa;oBACb,CAAW;oBAbX,IAAA,CAAiB,EAAjB,CAAA,CAAiB,QAAK,KAAY,GAAA,IAAO,aAAA,KAAkB,EAAA,CAA3D,CAA+D,CAA/D;;wBAeY,QAAQ,GAbG,QAAA,KAAa,GAAA;4BACpC,CAAA,CAAgB,cAAA,kBAAa,WAAkB,WAAM,OAAW;4BAChE,CAAA,CAAgB,gBAAA,kBAAe,WAAkB,WAAM,OAAW,CAAI;oBActE,CAAW;oBAbX,IAAA,CAAiB,EAAjB,CAAA,CAAiB,SAAK,KAAa,SAAA,CAAU,IAAC,CAA9C,CAAmD,CAAnD;;wBAeY,IAAZ,gBAAA,CAbkB,aAAA,GAAgB,IAAA,CAAK,YAAC,CAAY,WAAC,EAAY,IAAA,CAAK,CAAC;wBAc3D,EAAZ,CAAA,CAAgB,aAbC,CAajB,CAb+B,CAa/B;4BACc,QAAQ,GAbG,kBAAI,SAAkB,IAAI,CAAI,WAAC,CAAW,QAAC,CAAQ,kBAAC,aAAa,MAAa,CAAG;wBAc1G,CAAa;oBACb,CAAW;oBAbX,IAAA,CAAiB,EAAjB,CAAA,CAAiB,SAAK,KAAa,SAAA,CAAU,MAAC,CAA9C,CAAqD,CAArD;;wBAeY,QAAQ,GAbG,kBAAA,WAAiB,WAAW,kBAAM,MAAkB,CAAG;oBAc9E,CAAW;oBAbX,IAAA,CAAiB,CAAjB;;wBAeY,WAAW,GAbG,SAAA,KAAc,SAAA,CAAU,MAAC,CAanD,CAAA,CAb2D,WAAA,CAa3D,CAAA,CAbyE,MAAA,WAAK,MAAW,CAAG;wBAchF,QAAQ,GAbG,kBAAI,SAAkB,IAAI,CAAI,WAAC,CAAW,QAAC,CAAQ,SAAC,WAAe,CAAE;oBAc5F,CAAW;;oBAGD,EAAV,CAAA,CAAc,QAbC,KAAY,EAAA,CAa3B,CAb+B,CAa/B;wBACY,aAAa,CAbC,IAAC,CAAI,MAAC,CAAM,IAAC,CAAI,QAAC,CAAQ,CAAC,CAAC;wBAc1C,IAAI,CAbC,gBAAC,CAAgB,SAAC,IAAY,EAAA,EAAI,gBAAA,EAAkB,WAAA,CAAY,CAAC;oBAclF,CAAW;gBACX,CAAS;YACT,CAAO;QACP,CAAK;;QAGD,IAAI,CAbC,YAAC,CAAY,aAAC,CAAa;YAc9B,MAAM,EAbE,CAAA,aAAE,CAAa,MAAC,GAAQ,CAAA,CAatC,CAAA,CAAA,CAb2C,aAAA,CAAc,IAAC,CAAI,OAAC,CAAO,CAatE,CAAA,CAbyE,EAAA;YAcnE,IAAI,EAbE,SAAA;SAcP,CAbC,CAAC;;QAgBH,IAAI,CAbC,sBAAC,EAAsB,CAAE;QAc9B,MAAJ,CAbW,IAAA,CAAK,YAAC,CAAY,UAAC,EAAU,CAAE;IAc1C,CAAG;;;;;;IAMH,8CAdG,GAcH,UAdG,KAAA,EAAA,IAAA;QAeC,IAAI,CAdC,YAAC,CAAY,aAAC,CAAa;YAe9B,GAAG,EAdE,IAAA,CAAK,QAAC;YAeX,IAAI,EAdE,CAAA,IAAE,CAAI,OAAC,GAAS,CAAA,CAc5B,GAdiC,IAAA,CAAK,QAAC;SAelC,CAdC,CAAC;;QAiBH,MAAJ,CAdW,IAAA,CAAK,YAAC,CAAY,UAAC,EAAU,CAAE;IAe1C,CAAG;;;;;;IAMH,wCAfG,GAeH,UAfG,KAAA,EAAA,IAAA;QAgBC,IAAJ,gBAAA,CAfQ,WAAA,GAAc,EAAA,CAAG;QAgBrB,IAAJ,gBAAA,CAfU,WAAA,GAAc,CAAA,IAAE,CAAI,eAAC,CAe/B,CAAA,CAAA,CAfiD,IAAA,CAAK,QAAC,CAevD,CAAA,CAfiE,IAAI,KAAA,CAAM,EAAE,OAAA,EAAS,IAAA,CAAK,OAAC,EAAQ,OAAA,EAAS,IAAA,CAAK,OAAC,EAAO,CAAE,CAAC;;QAkBzH,EAAJ,CAAA,CAAQ,WAfC,IAAc,WAAA,CAAY,MAAC,KAAU,CAAA,CAe9C,CAfiD,CAejD;YACM,WAAW,GAfG,IAAI,KAAA,CAAM,IAAC,CAAI,aAAC,CAAa,CAAC,CAelD,mCAAA;QACA,CAAK;QAfL,IAAA,CAAW,CAAX;YAgBM,EAAN,CAAA,CAAU,WAfC,CAeX,CAfuB,CAevB;gBACQ,GAAR,CAAA,CAf2B,UAAA,EAAA,2BAAA,EAAA,yBAAA,EAAA,IAAA;oBAed,IAfI,MAAA,oBAAA;oBAgBP,IAAV,gBAAA,CAfc,SAAA,GAAY,MAAA,CAAO,OAAC,CAAO,KAAC,IAAQ,MAAA,CAAO,OAAC,CAAO,EAAC,CAAE;oBAgB1D,EAAV,CAAA,CAAc,IAfC,CAAI,YAAC,CAAY,OAAC,CAAO,QAAC,KAAY,QAAA,CAAS,UAAC,CAe/D,CAf0E,CAe1E;wBACY,SAAS,GAfG,MAAA,CAAO,SAAC,CAAS,SAAC,CAAS,CAAC;oBAgBpD,CAAW;oBACD,IAAV,gBAAA,CAfgB,SAAA,GAAY,MAAA,CAAO,OAAC,CAepC,CAAA,CAf6C,KAAA,CAe7C,CAAA,CAfqD,MAAA,CAAO;oBAgBlD,IAAV,gBAAA,CAfgB,kBAAA,GAAqB,SAAI,SAAS,SAAa,CAAE;oBAgBvD,WAAW,CAfC,IAAC,CAAI,kBAAC,CAAkB,CAAC;iBAgBtC;YACT,CAAO;QACP,CAAK;;QAGD,IAAJ,gBAAA,CAfU,QAAA,GAAW,WAAA,CAAY,IAAC,CAAI,GAAC,CAAG,CAAC;QAgBvC,IAAI,CAfC,YAAC,CAAY,aAAC,CAAa;YAgB9B,OAAO,EAfE,CAAA,IAAE,CAAI,YAAC,CAAY,OAAC,CAAO,QAAC,KAAY,QAAA,CAAS,UAAC,CAejE,CAAA,CAAA,CAf8E,MAAA,CAAO,SAAC,CAAS,QAAC,CAAQ,CAexG,CAAA,CAf2G,QAAA;SAgBtG,CAfC,CAAC;;QAkBH,MAAJ,CAfW,IAAA,CAAK,YAAC,CAAY,UAAC,EAAU,CAAE;IAgB1C,CAAG;;;;;;IARA,sCAAA,GAAA,UAAA,QAAA;QAeC,IAAJ,gBAAA,CAdQ,GAAA,GAAM,EAAA,CAAG;QAeb,MAAJ,CAAA,CAAY,QAdC,CAcb,CAAA,CAAA;YACM,KAdK,GAAA;gBAeH,GAAG,GAdG,IAAA,CAAK;gBAeX,KAAR,CAAc;YACR,KAdK,IAAA;gBAeH,GAAG,GAdG,IAAA,CAAK;gBAeX,KAAR,CAAc;YACR,KAdK,GAAA;gBAeH,GAAG,GAdG,IAAA,CAAK;gBAeX,KAAR,CAAc;YACR,KAdK,IAAA;gBAeH,GAAG,GAdG,IAAA,CAAK;gBAeX,KAAR,CAAc;YACR,KAdK,IAAA,CAAK;YAeV,KAdK,IAAA;gBAeH,GAAG,GAdG,IAAA,CAAK;gBAeX,KAAR,CAAc;YACR,KAdK,GAAA,CAAI;YAeT,KAdK,IAAA,CAAK;YAeV;gBACE,GAAG,GAdG,IAAA,CAAK;gBAeX,KAAR,CAAc;QACd,CAAK;QAED,MAAJ,CAdW,GAAA,CAAI;IAef,CAAG;;;;;;;IAPA,uCAAA,GAAA,UAAA,eAAA,EAAA,MAAA;QAeC,IAAJ,gBAAA,CAdQ,IAAA,GAAO,IAAA,CAAK;QAgBhB,EAAJ,CAAA,CAAQ,cAdC,CAAc,IAAC,CAAI,eAAC,CAAe,CAc5C,CAd8C,CAc9C;;YAEM,IAAN,gBAAA,CAdY,UAAA,GAAa,kBAAA,CAAmB,eAAC,CAAe,CAAC;YAevD,IAAN,gBAAA,CAdY,UAAA,GAAaD,SAAA,CAAO,IAAI,IAAA,CAAK,UAAC,CAAU,CAAC,CAAC;YAQpD,EAAF,CAAA,CAAE,UAPS,CAAU,OAAC,EAAO,IAAK,UAAA,CAAW,IAAC,EAAI,CAAE,QAAC,EAAQ,CAAE,MAAC,KAAU,CAAA,CAO1E,CAP6E,CAO7E;gBAQQ,IAAI,GAdG,CAAA,MAAE,CAcjB,CAAA,CAAA,CAd0B,UAAA,CAAW,GAAC,EAAG,CAAE,MAAC,EAAM,CAclD,CAAA,CAdsD,UAAA,CAAW,MAAC,EAAM,CAAE;YAe1E,CAAO;QACP,CAAK;QAED,MAAJ,CAdW,IAAA,CAAK;IAehB,CAAG;;CAlQH;AAqPO,gBAAP,CAAA,UAAO,GAAoC;IAe3C,EAdE,IAAA,EAAM,UAAA,EAAW;CAelB,CAdC;;;;AAED,gBAAD,CAAA,cAAC,GAAA,cAAA,OAAA;IAiBD,EAAC,IAAI,EAAE,YAAY,GAAG;CACrB,EAlBA,CAkBA,CAAC;AD/QF;IA2BA;QARE,IAAF,CAAA,QAAU,GAHG,CAAA,CAAE;QAIb,IAAF,CAAA,MAAQ,GAHG,CAAA,CAAE;QAIX,IAAF,CAAA,YAAc,GAHG,EAAA,CAAG;QAIlB,IAAF,CAAA,SAAW,GAHG,CAAA,CAAE;QAId,IAAF,CAAA,UAAY,GAHG,CAAA,CAAE;QAIf,IAAF,CAAA,UAAY,GAHG,CAAA,CAAE;QAKf,IAAF,CAAA,mBAAqB,GAHG,CAAA,EAAE,EAAG,EAAA,EAAI,GAAA,CAAI,CAAC;IAEtC,CAAG;IAnBH,sBAAG,2DAAA;;;;aASH;YACI,MAAJ,CAHW,IAAA,CAAK,sBAAC,CAAsB;QAIvC,CAAG;;;;;aAXH,UAAG,qBAAA;YACC,IAAI,CAAC,sBAAC,GAAwB,qBAAA,CAAsB;YACpD,EAAJ,CAAA,CAAQ,CAAC,qBAAC,IAAwB,CAAA,qBAAE,CAAqB,UAAC,IAA1D,CAAuE,qBAAE,CAAqB,UAAC,CAAU,UAAC,KAAc,IAAA,CAAK,UAAC,CAAU,CAAxI,CAA0I,CAA1I;gBACM,IAAI,CAAC,iBAAC,EAAiB,CAAE;YAC/B,CAAK;QACL,CAAG;;;OAAA;;;;IAoBH,2CAJG,GAIH;IACA,CAAG;;;;IAIH,kDANG,GAMH;QACI,IAAI,CANC,sBAAC,GAAwB,IAAA,CAAK,sBAAC,CAAsB;QAO1D,EAAJ,CAAA,CAAQ,CANC,IAAC,CAAI,sBAAC,IAAyB,CAAA,IAAE,CAAI,sBAAC,CAAsB,UAAC,IAMtE,CANmF,IAAE,CAAI,sBAAC,CAAsB,UAAC,CAAU,UAAC,KAAc,IAAA,CAAK,UAAC,CAAU,CAM1J,CAN4J,CAM5J;YACM,IAAI,CANC,iBAAC,EAAiB,CAAE;QAO/B,CAAK;IACL,CAAG;;;;;IAKH,uCATG,GASH,UATG,MAAA;QAUC,MAAJ,CATW,IAAA,CAAK,IAAC,CAAI,MAAC,CAAM,CAAC;IAU7B,CAAG;;;;;IAKH,sDAbG,GAaH,UAbG,KAAA;QAcC,IAAJ,gBAAA,CAbU,YAAA,GAaV,CAbiC,KAAC,CAAK,MAAC,CAAM,KAAC,CAAA,CAAK;QAchD,IAAI,CAbC,SAAC,GAAW,IAAA,CAAK,IAAC,CAAI,IAAC,CAAI,UAAC,GAAY,YAAA,CAAa,CAAC;QAc3D,IAAI,CAbC,UAAC,GAAY,CAAA,CAAE;QAcpB,IAAI,CAbC,YAAC,GAAc,YAAA,CAAa;QAcjC,IAAI,CAbC,aAAC,CAAa,KAAC,EAAM,IAAA,CAAK,UAAC,CAAU,CAAC;IAc/C,CAAG;;;;;IAKH,oDAhBG,GAgBH,UAhBG,KAAA;QAiBC,IAAI,CAhBC,UAAC,GAAY,CAAA,CAAE;QAiBpB,IAAI,CAhBC,aAAC,CAAa,KAAC,EAAM,IAAA,CAAK,UAAC,CAAU,CAAC;IAiB/C,CAAG;;;;;IAKH,mDApBG,GAoBH,UApBG,KAAA;QAqBC,IAAI,CApBC,UAAC,GAAY,IAAA,CAAK,SAAC,CAAS;QAqBjC,IAAI,CApBC,aAAC,CAAa,KAAC,EAAM,IAAA,CAAK,UAAC,CAAU,CAAC;IAqB/C,CAAG;;;;;IAKH,mDAxBG,GAwBH,UAxBG,KAAA;QAyBC,EAAJ,CAAA,CAAQ,IAxBC,CAAI,UAAC,GAAY,IAAA,CAAK,SAAC,CAwBhC,CAxB0C,CAwB1C;YACM,IAAI,CAxBC,UAAC,EAAU,CAAE;YAyBlB,IAAI,CAxBC,aAAC,CAAa,KAAC,EAAM,IAAA,CAAK,UAAC,CAAU,CAAC;QAyBjD,CAAK;IACL,CAAG;;;;;IAKH,uDA5BG,GA4BH,UA5BG,KAAA;QA6BC,EAAJ,CAAA,CAAQ,IA5BC,CAAI,UAAC,GAAY,CAAA,CA4B1B,CA5B6B,CA4B7B;YACM,IAAI,CA5BC,UAAC,EAAU,CAAE;YA6BlB,IAAI,CA5BC,aAAC,CAAa,KAAC,EAAM,IAAA,CAAK,UAAC,CAAU,CAAC;QA6BjD,CAAK;IACL,CAAG;;;;IAIH,gDA9BG,GA8BH;QACI,IAAI,CA9BC,UAAC,GAAY,CAAA,CAAE;QA+BpB,IAAI,CA9BC,aAAC,CAAa,SAAC,EAAU,IAAA,CAAK,UAAC,CAAU,CAAC;IA+BnD,CAAG;;;;IAIH,oDAhCG,GAgCH;QACI,EAAJ,CAAA,CAAQ,IAhCC,CAAI,sBAAC,IAAyB,IAAA,CAAK,sBAAC,CAAsB,UAAC,CAgCpE,CAhC+E,CAgC/E;;YAEM,EAAN,CAAA,CAAU,IAhCC,CAAI,UAAC,KAAc,IAAA,CAAK,sBAAC,CAAsB,UAAC,CAAU,UAAC,CAgCtE,CAhCiF,CAgCjF;gBACQ,IAAI,CAhCC,UAAC,GAAY,CAAA,CAAE;gBAiCpB,IAAI,CAhCC,wBAAC,EAAwB,CAAE;YAiCxC,CAAO;;YAGD,IAAI,CAhCC,mBAAC,GAAqB,IAAA,CAAK,sBAAC,CAAsB,UAAC,CAAU,SAAC,CAAS;YAiC5E,IAAI,CAhCC,YAAC,GAAc,IAAA,CAAK,sBAAC,CAAsB,UAAC,CAAU,QAAC,CAAQ;YAiCpE,EAAN,CAAA,CAAU,IAhCC,CAAI,sBAAC,CAAsB,mBAAC,CAgCvC,CAhC2D,CAgC3D;gBACU,IAAI,CAhCC,kBAAC,GAAoB,IAAA,CAAK,sBAAC,CAAsB,mBAAC,CAAmB;YAiCpF,CAAO;YACD,IAAI,CAhCC,UAAC,GAAY,IAAA,CAAK,sBAAC,CAAsB,UAAC,CAAU,UAAC,CAAU;YAiCpE,IAAI,CAhCC,MAAC,GAAQ,IAAA,CAAK,YAAC,CAAY;QAiCtC,CAAK;QACD,IAAI,CAhCC,SAAC,GAAW,IAAA,CAAK,IAAC,CAAI,IAAC,CAAI,UAAC,GAAY,IAAA,CAAK,YAAC,CAAY,CAAC;IAiCpE,CAAG;;;;;;IAMH,gDApCG,GAoCH,UApCG,KAAA,EAAA,UAAA;QAqCC,IAAI,CApCC,wBAAC,EAAwB,CAAE;QAsChC,EAAJ,CAAA,CAAQ,IApCC,CAAI,MAAC,GAAQ,IAAA,CAAK,UAAC,CAoC5B,CApCuC,CAoCvC;YACM,IAAI,CApCC,MAAC,GAAQ,IAAA,CAAK,UAAC,CAAU;QAqCpC,CAAK;QACD,EAAJ,CAAA,CAAQ,OApCO,IAAA,CAAK,kBAAC,KAAsB,UAAA,CAoC3C,CApCuD,CAoCvD;YACM,IAAN,gBAAA,CApCY,YAAA,GAAe,IAAA,CAAK,YAAC,CAAY;YAqCvC,IAAI,CApCC,kBAAC,CAAkB,KAAC,EAAM,EAAE,OAAA,EAAS,UAAA,EAAY,QAAA,EAAU,YAAA,EAAa,CAAE,CAAC;QAqCtF,CAAK;IACL,CAAG;;;;IAIH,2DAtCG,GAsCH;QACI,IAAI,CAtCC,QAAC,GAAU,CAAA,IAAE,CAAI,UAAC,GAAY,IAAA,CAAK,YAAC,CAsC7C,GAtC4D,IAAA,CAAK,YAAC,GAAc,CAAA,CAAE;QAuC9E,IAAI,CAtCC,MAAC,GAsCV,CAtCkB,IAAE,CAAI,UAAC,GAAY,IAAA,CAAK,YAAC,CAAY,CAAC;IAuCxD,CAAG;;CAnJH;AA8GO,wBAAP,CAAA,UAAO,GAAoC;IAuC3C,EAtCE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,CAAA;gBAuCvB,QAAQ,EAtCE,kBAAA;gBAuCV,QAAQ,EAtCE,2iEAiFT;gBACD,MAAM,EAtCE,CAAA,o3HAoIP,CAtCC;aAuCH,EAtCC,EAAG;CAuCJ,CAtCC;;;;AAED,wBAAD,CAAA,cAAC,GAAA,cAAA,OAAA,EAyCA,EAzCA,CAyCA,CAAC;AAvCK,wBAAP,CAAA,cAAO,GAAyD;IAyChE,uBAAuB,EAxCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;IAyC1C,MAAM,EAxCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;CAyCxB,CAxCC;ADrQF;;;AAGA,IACC,iBAAA,GAAA;IAAC,QAAQ,EAAE,KAAK;IACf,kBAAkB,EAAE,KAAK;IACzB,yBAAyB,EAAE,IAAI;IAC/B,UAAU,EAAE;QACV,aAAa,EAAE,EAAE;QACjB,SAAS,EAAE,GAAG;QACd,QAAQ,EAAE,GAAG;QACb,WAAW,EAAE,CAAC;KACf;IACD,gBAAgB,EAAE,IAAI;IACtB,qBAAqB,EAAE,qBAAqB;IAC5C,QAAQ,EAAE,KAAK;IACf,oBAAoB,EAAE,KAAK;IAC3B,mBAAmB,EAAE,IAAI;IACzB,kBAAkB,EAAE,IAAI;IACxB,gBAAgB,EAAE,KAAK;IACvB,aAAa,EAAE,IAAI;IACnB,0BAA0B,EAAE,IAAI;IAChC,sBAAsB,EAAE,KAAK;IAC7B,eAAe,EAAE,KAAK;IACtB,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,IAAI;IACrB,UAAU,EAAE;QACV,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;QAChD,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,CAAC;KACd;IACD,SAAS,EAAE,EAAE;IACb,aAAa,EAAE,KAAK;IACpB,cAAc,EAAE,EAAE;CACnB,CAAD;AD1BA;;;;;;;IAqCA,mCARsB,OAAS,EACnB,YAAc,EACd,aAAe,EACf,WAAa;QAHH,IAAtB,CAAA,OAAsB,GAAA,OAAA,CAAS;QACnB,IAAZ,CAAA,YAAY,GAAA,YAAA,CAAc;QACd,IAAZ,CAAA,aAAY,GAAA,aAAA,CAAe;QACf,IAAZ,CAAA,WAAY,GAAA,WAAA,CAAa;QAzBf,IAAV,CAAA,cAAU,GAAgC,EAAA,CAAG;QAE3C,IAAF,CAAA,cAAgB,GAGG,KAAA,CAAM;QAFvB,IAAF,CAAA,QAAU,GAGG,IAAI,KAAA,CAAM,KAAC,EAAK,CAAE;QAE5B,IAAH,CAAA,UAAa,GAGG,GAAA,CAAI;QAFjB,IAAH,CAAA,SAAY,GAGG,GAAA,CAAI;IAsBnB,CAAG;IApBH,sBAAG,8CAAA;;;;aAOH;YACI,MAAJ,CAHW,IAAA,CAAK,SAAC,CAAS,QAAC,EAAQ,CAAE;QAIrC,CAAG;;;;;aATH,UAAG,OAAA;YACC,IAAI,CAAC,QAAC,GAAU,OAAA,CAAQ;YACxB,IAAI,CAAC,eAAC,CAAe,OAAC,CAAO,CAAC;QAClC,CAAG;;;OAAA;;;;IAqBH,4CAVG,GAUH;QACI,IAAI,CAVC,gBAAC,GAAkB,IAAI,CAAI,UAAC,OAAU,CAAI;QAW/C,IAAI,CAVC,eAAC,GAAiB,IAAI,CAAI,SAAC,OAAS,CAAI;IAWjD,CAAG;;;;IAIH,mDAZG,GAYH;;QAEI,IAAI,CAZC,QAAC,GAAU,IAAA,CAAK,QAAC,IAAW,EAAA,CAAG;QAapC,IAAI,CAZC,YAAC,GAAc,IAAA,CAAK,gBAAC,EAAgB,CAAE;QAc5C,IAAI,CAZC,SAAC,GAAW,IAAI,KAAA,CAAM,IAAC,CAAI,QAAC,EAAQ,CAAE;QAc3C,IAAI,CAZC,IAAC,GAAM,IAAI,KAAA,CAAM,IAAC,CAAI,MAAC,IAAI,CAAI,MAAO,EAAG,IAAA,CAAK,SAAC,EAAU,IAAA,CAAK,iBAAC,EAAkB,IAAA,CAAK,YAAC,CAAY,CAAC;QAazG,IAAI,CAZC,IAAC,CAAI,iBAAC,CAAiB,IAAI,KAAA,CAAM,iBAAC,EAAiB,CAAE,CAAC;QAa3D,IAAJ,gBAAA,CAZU,YAAA,GAAe,IAAI,KAAA,CAAM,QAAC,CAAQ,YAAC,CAAY,IAAC,CAAI,iBAAC,EAAkB,IAAA,CAAK,IAAC,EAAK,IAAA,CAAK,YAAC,CAAY,CAAC;QAc3G,IAAI,CAZC,IAAC,CAAI,IAAC,EAAI,CAAE;QAajB,IAAI,CAZC,SAAC,CAAS,WAAC,EAAW,CAAE;QAa7B,IAAI,CAZC,oBAAC,CAAoB,IAAC,CAAI,IAAC,EAAK,IAAA,CAAK,YAAC,EAAa,IAAA,CAAK,SAAC,CAAS,CAAC;QAcxE,IAAI,CAZC,SAAC,CAAS,QAAC,CAAQ,IAAC,CAAI,QAAC,CAAQ,CAAC;QAavC,IAAI,CAZC,SAAC,CAAS,SAAC,EAAS,CAAE;;QAe3B,IAAI,CAZC,gBAAC,CAAgB,IAAC,CAAI,IAAC,EAAK,IAAA,CAAK,YAAC,CAAY,CAAC;IAaxD,CAAG;;;;;;;IAOH,wDAjBG,GAiBH,UAjBG,IAAA,EAAA,OAAA,EAAA,QAAA;;QAmBC,EAAJ,CAAA,CAAQ,OAjBC,CAAO,aAAC,CAiBjB,CAjB+B,CAiB/B;YACM,CAAC,OAjBO,OAAA,CAAQ,aAAC,KAAiB,UAAA,CAiBxC,CAAA,CAAA,CAjBsD,IAAA,CAAK,WAAC,CAAW,mBAAC,CAAmB,IAAC,EAAK,OAAA,CAAQ,CAiBzG,CAAA,CAjB4G,IAAA,CAAK,WAAC,CAAW,iBAAC,CAAiB,IAAC,EAAK,OAAA,EAAS,IAAA,CAAK,SAAC,CAAS,CAAC;QAkB9K,CAAK;;QAGD,EAAJ,CAAA,CAAQ,OAjBC,CAAO,eAAC,CAiBjB,CAjBiC,CAiBjC;YACM,IAAI,CAjBC,aAAC,CAAa,IAAC,CAAI,IAAC,EAAK,OAAA,EAAS,IAAA,CAAK,iBAAC,EAAkB,IAAA,CAAK,cAAC,CAAc,CAAC;YAkBpF,CAAC,OAjBO,OAAA,CAAQ,eAAC,KAAmB,UAAA,CAiB1C,CAAA,CAAA,CAjBwD,IAAA,CAAK,aAAC,CAAa,qBAAC,EAAqB,CAiBjG,CAAA,CAjBqG,IAAA,CAAK,aAAC,CAAa,mBAAC,CAAmB,IAAC,CAAI,SAAC,CAAS,CAAC;QAkB5J,CAAK;;QAGD,EAAJ,CAAA,CAAQ,OAjBC,CAAO,kBAAC,CAiBjB,CAjBoC,CAiBpC;YACM,IAAI,CAjBC,YAAC,CAAY,kBAAC,CAAkB,IAAC,CAAI,CAAC;QAkBjD,CAAK;QAED,QAAQ,CAjBC,iBAAC,CAAiB,SAAC,CAAS,UAAC,CAAG,EAAK,IAAM;YAkBlD,IAAI,CAjBC,cAAC,EAAc,CAAE;YAkBtB,IAAI,CAjBC,MAAC,EAAM,CAAE;QAkBpB,CAAK,CAjBC,CAAC;QAkBH,QAAQ,CAjBC,aAAC,CAAa,SAAC,CAAS,UAAC,CAAG,EAAK,IAAM;YAkB9C,IAAI,CAjBC,cAAC,CAAc,IAAC,CAAI,IAAC,CAAI,CAAC;YAkB/B,IAAI,CAjBC,MAAC,EAAM,CAAE;QAkBpB,CAAK,CAjBC,CAAC;IAkBP,CAAG;;;;;;IAMH,oDArBG,GAqBH,UArBG,IAAA,EAAA,OAAA;;QAuBC,EAAJ,CAAA,CAAQ,IArBC,CAAI,YAAC,CAAY,yBAAC,CAqB3B,CArBqD,CAqBrD;YACM,IAAI,CArBC,IAAC,CAAI,eAAC,EAAe,CAAE;QAsBlC,CAAK;;QAGD,EAAJ,CAAA,CAAQ,OArBC,CAAO,gBAAC,CAqBjB,CArBkC,CAqBlC;YACM,IAAI,CArBC,OAAC,CAAO,wBAAC,CAAwB,IAAC,EAAK,OAAA,CAAQ,CAAC;YAsBrD,EAAN,CAAA,CAAU,OArBC,CAAO,yBAAC,CAqBnB,CArB6C,CAqB7C;gBACQ,IAAI,CArBC,eAAC,EAAe,CAAE;YAsB/B,CAAO;QACP,CAAK;QArBL,IAAA,CAAW,CAAX;YAsBM,IAAI,CArBC,OAAC,CAAO,UAAC,CAAU,IAAC,EAAK,OAAA,EAAS,EAAE,MAAA,EAAQ,IAAA,CAAK,UAAC,EAAW,KAAA,EAAO,IAAA,CAAK,SAAC,EAAS,CAAE,CAAC;QAsBjG,CAAK;IACL,CAAG;;;;IAIH,oDAvBG,GAuBH;QACI,IAAI,CAvBC,WAAC,CAAW,MAAC,GAAQ,IAAA,CAAK,MAAC,CAAM;QAwBtC,IAAI,CAvBC,WAAC,CAAW,eAAC,GAAiB,wBAAA,IAAuB,CAAI,MAAO,CAAE;QAwBvE,EAAJ,CAAA,CAAQ,IAvBC,CAAI,WAAC,CAAW,eAAC,CAuB1B,CAvB0C,CAuB1C;YACM,IAAI,CAvBC,WAAC,CAAW,aAAC,GAAe,IAAA,CAAK;QAwB5C,CAAK;QACD,IAAJ,gBAAA,CAvBU,OAAA,GAAU,MAAA,CAAO,MAAC,CAAM,EAAC,EAAG,iBAAA,EAAmB,IAAA,CAAK,WAAC,CAAW,CAAC;QAwBvE,MAAJ,CAvBW,OAAA,CAAQ;IAwBnB,CAAG;;;;;;IAMH,iDA1BG,GA0BH,UA1BG,SAAA;QA2BC,IAAI,CA1BC,IAAC,CAAI,sBAAC,CAAsB,SAAC,CAAS,CAAC;QA2B5C,MAAJ,CA1BW,SAAA,CAAU;IA2BrB,CAAG;;;;;IAKH,mDA5BG,GA4BH;QACI,IAAJ,gBAAA,CA5BU,SAAA,GAAY,CAAA,IAAE,CAAI,IAAC,CAAI,UAAC,EAAU,CAAE,aAAC,CAAa;QA6BxD,IAAI,CA5BC,IAAC,CAAI,sBAAC,CAAsB,SAAC,CAAS,CAAC;QA6B5C,MAAJ,CA5BW,SAAA,CAAU;IA6BrB,CAAG;;;;;IAKH,mDA/BG,GA+BH,UA/BG,OAAA;QA+BH,iBAoBG;QAnBC,EAAJ,CAAA,CAAQ,OA/BC,IAAU,IAAA,CAAK,IAAC,CA+BzB,CA/B8B,CA+B9B;YACM,IAAI,CA/BC,SAAC,CAAS,QAAC,CAAQ,OAAC,CAAO,CAAC;;YAkCjC,IAAI,CA/BC,IAAC,CAAI,UAAC,EAAU,CAAE;YAgCvB,IAAI,CA/BC,IAAC,CAAI,MAAC,EAAM,CAAE;YAiCnB,EAAN,CAAA,CAAU,IA/BC,CAAI,YAAC,CAAY,gBAAC,CA+B7B,CA/B8C,CA+B9C;gBACQ,IAAI,CA/BC,cAAC,GAAgB,IAAA,CAAK;gBAgC3B,IAAI,CA/BC,qBAAC,GAAuB,IAAA,CAAK,gBAAC,EAAgB,CAAE;YAgC7D,CAAO;YACD,EAAN,CAAA,CAAU,IA/BC,CAAI,YAAC,CAAY,gBAAC,CA+B7B,CA/B8C,CA+B9C;;gBAEQ,UAAU,CA/BC;oBAgCT,KAAI,CA/BC,OAAC,CAAO,UAAC,CAAU,KAAC,CAAI,IAAC,EAAK,KAAA,CAAK,YAAC,CAAY,CAAC;oBAgCtD,KAAI,CA/BC,IAAC,CAAI,eAAC,EAAe,CAAE;gBAgCtC,CAAS,CA/BC,CAAC;YAgCX,CAAO;QACP,CAAK;IACL,CAAG;;CApLH;AAsJO,yBAAP,CAAA,UAAO,GAAoC;IAgC3C,EA/BE,IAAA,EAAM,UAAA,EAAW;IAgCnB,EA/BE,IAAA,EAAM,SAAA,EAAW,IAAA,EAAM,CAAA;gBAgCvB,QAAQ,EA/BE,mBAAA;gBAgCV,QAAQ,EA/BE,2aAyCT;aACF,EA/BC,EAAG;CAgCJ,CA/BC;;;;AAED,yBAAD,CAAA,cAAC,GAAA,cAAA,OAAA;IAkCD,EAAC,IAAI,EAAE,cAAc,GAAG;IACxB,EAAC,IAAI,EAAE,YAAY,GAAG;IACtB,EAAC,IAAI,EAAE,aAAa,GAAG;IACvB,EAAC,IAAI,EAAE,WAAW,GAAG;CACpB,EAtCA,CAsCA,CAAC;AAhCK,yBAAP,CAAA,cAAO,GAAyD;IAkChE,QAAQ,EAjCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;IAkC3B,mBAAmB,EAjCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;IAkCtC,aAAa,EAjCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;IAkChC,YAAY,EAjCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;IAkC/B,WAAW,EAjCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;IAkC9B,SAAS,EAjCE,CAAA,EAAG,IAAA,EAAM,KAAA,EAAM,EAAE;CAkC3B,CAjCC;ADnLF;IAAA;;;CAAA;AAE6C,sBAA7C,CAAA,UAA6C,GAAoC;IADjF,EAEE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAM,CAAA;gBADtB,OAAO,EAEE;oBADP,YAAY;iBACb;gBACD,YAAY,EAEE;oBADZ,yBAAyB;oBACzB,wBAAwB;iBACzB;gBACD,OAAO,EAEE;oBADP,yBAAyB;oBACzB,wBAAwB;iBACzB;gBACD,SAAS,EAEE;oBADT,cAAc;oBACd,YAAY;oBACZ,YAAY;oBACZ,aAAa;oBACb,WAAW;oBACX,cAAc;iBACf;aACF,EAEC,EAAG;CADJ,CAEC;;;;AAED,sBAAD,CAAA,cAAC,GAAA,cAAA,OAAA,EACA,EADA,CACA,CAAC;ADtCF,kBAAC;ADAD;;GAEG;"} \ No newline at end of file diff --git a/dist/angular-slickgrid/angular-slickgrid.js b/dist/angular-slickgrid/angular-slickgrid.js new file mode 100644 index 000000000..a0998110f --- /dev/null +++ b/dist/angular-slickgrid/angular-slickgrid.js @@ -0,0 +1,2190 @@ +import { Component, Injectable, Input, NgModule } from '@angular/core'; +import { Router } from '@angular/router'; +import { CommonModule } from '@angular/common'; + +let CaseType = {}; +CaseType.camelCase = 0; +CaseType.pascalCase = 1; +CaseType.snakeCase = 2; +CaseType[CaseType.camelCase] = "camelCase"; +CaseType[CaseType.pascalCase] = "pascalCase"; +CaseType[CaseType.snakeCase] = "snakeCase"; + +let FormElementType = {}; +FormElementType.input = 0; +FormElementType.multiSelect = 1; +FormElementType.select = 2; +FormElementType.textarea = 3; +FormElementType[FormElementType.input] = "input"; +FormElementType[FormElementType.multiSelect] = "multiSelect"; +FormElementType[FormElementType.select] = "select"; +FormElementType[FormElementType.textarea] = "textarea"; + +let FieldType = {}; +FieldType.unknown = 0; +FieldType.string = 1; +FieldType.boolean = 2; +FieldType.number = 3; +FieldType.date = 4; +FieldType.dateIso = 5; +FieldType.dateUtc = 6; +FieldType.dateTime = 7; +FieldType.dateTimeIso = 8; +FieldType.dateUs = 9; +FieldType.dateUsShort = 10; +FieldType.dateTimeUs = 11; +FieldType.dateTimeUsShort = 12; +FieldType[FieldType.unknown] = "unknown"; +FieldType[FieldType.string] = "string"; +FieldType[FieldType.boolean] = "boolean"; +FieldType[FieldType.number] = "number"; +FieldType[FieldType.date] = "date"; +FieldType[FieldType.dateIso] = "dateIso"; +FieldType[FieldType.dateUtc] = "dateUtc"; +FieldType[FieldType.dateTime] = "dateTime"; +FieldType[FieldType.dateTimeIso] = "dateTimeIso"; +FieldType[FieldType.dateUs] = "dateUs"; +FieldType[FieldType.dateUsShort] = "dateUsShort"; +FieldType[FieldType.dateTimeUs] = "dateTimeUs"; +FieldType[FieldType.dateTimeUsShort] = "dateTimeUsShort"; + +/** + * @param {?} str + * @return {?} + */ +function parseBoolean(str) { + return /(true|1)/i.test(str); +} +const booleanFilterCondition = (options) => { + return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm); +}; + +const mapDateFormatByFieldType = (fieldType) => { + switch (fieldType) { + case FieldType.dateUs: + return 'M/D/YYYY'; + case FieldType.dateTimeUs: + return 'M/D/YYYY h:m:s'; + case FieldType.dateUsShort: + return 'M/D/YY'; + case FieldType.dateTimeUsShort: + return 'M/D/YY h:m:s'; + case FieldType.dateTimeIso: + return 'YYYY-MM-DD h:m:s'; + case FieldType.dateIso: + default: + return 'YYYY-MM-DD'; + } +}; +const testFilterCondition = (operator, value1, value2) => { + switch (operator) { + case '<': return (value1 < value2); + case '<=': return (value1 <= value2); + case '>': return (value1 > value2); + case '>=': return (value1 >= value2); + case '!=': + case '<>': return (value1 !== value2); + case '=': + case '==': return (value1 === value2); + } + return true; +}; + +var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; + +function commonjsRequire () { + throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs'); +} + + + +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} + +var moment_min = createCommonjsModule(function (module, exports) { +//! moment.js +//! version : 2.18.1 +//! authors : Tim Wood, Iskren Chernev, Moment.js contributors +//! license : MIT +//! momentjs.com +!function(a,b){module.exports=b();}(commonjsGlobal,function(){"use strict";function a(){return sd.apply(null,arguments)}function b(a){sd=a;}function c(a){return a instanceof Array||"[object Array]"===Object.prototype.toString.call(a)}function d(a){return null!=a&&"[object Object]"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return"number"==typeof a||"[object Number]"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||"[object Date]"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c0)for(c=0;c0?"future":"past"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Hd[c]=Hd[c+"s"]=Hd[b]=a;}function K(a){return"string"==typeof a?Hd[a]||Hd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Id[a]=b;}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Id[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d["get"+(a._isUTC?"UTC":"")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d["set"+(a._isUTC?"UTC":"")+b](c);}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if("object"==typeof a){a=L(a);for(var c=N(a),d=0;d=0;return(f?c?"+":"":"-")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;"string"==typeof d&&(e=function(){return this[d]()}),a&&(Md[a]=e),b&&(Md[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Md[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)});}function V(a){return a.match(/\[[\s\S]/)?a.replace(/^\[|\]$/g,""):a.replace(/\\/g,"")}function W(a){var b,c,d=a.match(Jd);for(b=0,c=d.length;b=0&&Kd.test(a);)a=a.replace(Kd,c),Kd.lastIndex=0,d-=1;return a}function Z(a,b,c){ce[a]=z(b)?b:function(a,d){return a&&c?c:b};}function $(a,b){return j(ce,a)?ce[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function ba(a,b){var c,d=b;for("string"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a);}),c=0;c=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),"d")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),"d")}function Da(a,b){return"string"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),"number"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return"string"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?"format":"standalone"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,"").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,"").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,"").toLocaleLowerCase();return c?"dddd"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:null):"ddd"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null):"dddd"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):"ddd"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp("^"+this.weekdays(e,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[d]=new RegExp("^"+this.weekdaysShort(e,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[d]=new RegExp("^"+this.weekdaysMin(e,"").replace(".",".?")+"$","i")),this._weekdaysParse[d]||(f="^"+this.weekdays(e,"")+"|^"+this.weekdaysShort(e,"")+"|^"+this.weekdaysMin(e,""),this._weekdaysParse[d]=new RegExp(f.replace(".",""),"i")),c&&"dddd"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&"ddd"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&"dd"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,"d")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,"d")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,"_weekdaysRegex")||(this._weekdaysRegex=ye),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,"_weekdaysRegex")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Ae),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,""),e=this.weekdaysShort(c,""),f=this.weekdays(c,""),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp("^("+j.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+h.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+g.join("|")+")","i");}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)});}function Ua(a,b){return b._meridiemParse}function Va(a){return"p"===(a+"").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?"pm":"PM":c?"am":"AM"}function Xa(a){return a?a.toLowerCase().replace("_","-"):a}function Ya(a){for(var b,c,d,e,f=0;f0;){if(d=Za(e.slice(0,b).join("-")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--;}f++;}return null}function Za(a){var b=null;if(!Fe[a]&&"undefined"!='object'&&module&&module.exports)try{b=Be._abbr,commonjsRequire("./locale/"+a),$a(b);}catch(a){}return Fe[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Be=c)),Be._abbr}function _a(a,b){if(null!==b){var c=Ee;if(b.abbr=a,null!=Fe[a])y("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),c=Fe[a]._config;else if(null!=b.parentLocale){if(null==Fe[b.parentLocale])return Ge[b.parentLocale]||(Ge[b.parentLocale]=[]),Ge[b.parentLocale].push({name:a,config:b}),null;c=Fe[b.parentLocale]._config;}return Fe[a]=new C(B(c,b)),Ge[a]&&Ge[a].forEach(function(a){_a(a.name,a.config);}),$a(a),Fe[a]}return delete Fe[a],null}function ab(a,b){if(null!=b){var c,d=Ee;null!=Fe[a]&&(d=Fe[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Fe[a],Fe[a]=c,$a(a);}else null!=Fe[a]&&(null!=Fe[a].parentLocale?Fe[a]=Fe[a].parentLocale:null!=Fe[a]&&delete Fe[a]);return Fe[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Be;if(!c(a)){if(b=Za(a))return b;a=[a];}return Ya(a)}function cb(){return Ad(Fe)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[fe]<0||c[fe]>11?fe:c[ge]<1||c[ge]>ea(c[ee],c[fe])?ge:c[he]<0||c[he]>24||24===c[he]&&(0!==c[ie]||0!==c[je]||0!==c[ke])?he:c[ie]<0||c[ie]>59?ie:c[je]<0||c[je]>59?je:c[ke]<0||c[ke]>999?ke:-1,n(a)._overflowDayOfYear&&(bge)&&(b=ge),n(a)._overflowWeeks&&b===-1&&(b=le),n(a)._overflowWeekday&&b===-1&&(b=me),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=He.exec(h)||Ie.exec(h);if(i){for(n(a).iso=!0,b=0,c=Ke.length;b10?"YYYY ":"YY "),f="HH:mm"+(c[4]?":ss":""),c[1]){var l=new Date(c[2]),m=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=" +0000":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?" -":" +")+(""+i).replace(/^-?/,"0").match(/..$/)[0]+"00");break;case 4:h=j[c[5]];break;default:h=j[" GMT"];}c[5]=h,a._i=c.splice(1).join(""),g=" ZZ",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0;}else a._isValid=!1;}function gb(b){var c=Me.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ge]&&null==a._a[fe]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[ee],d[ee]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[fe]=c.getUTCMonth(),a._a[ge]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[he]&&0===a._a[ie]&&0===a._a[je]&&0===a._a[ke]&&(a._nextDay=!0,a._a[he]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[he]=24);}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[ee],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[ee],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f;}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ee]=h.year,a._dayOfYear=h.dayOfYear);}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=""+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Jd)||[],c=0;c0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Md[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[he]<=12&&n(b).bigHour===!0&&b._a[he]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[he]=mb(b._locale,b._a[he],b._meridiem),jb(b),db(b);}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0;}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Te.exec(a))?(c="-"===h[1]?-1:1,f={y:0,d:u(h[ge])*c,h:u(h[he])*c,m:u(h[ie])*c,s:u(h[je])*c,ms:u(Cb(1e3*h[ke]))*c}):(h=Ue.exec(a))?(c="-"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:"object"==typeof f&&("from"in f||"to"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,"_locale")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(",","."));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,"M").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,"M"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,"moment()."+b+"(period, number) is deprecated. Please use moment()."+b+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),f=c,c=d,d=f),c="string"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,"Date",P(b,"Date")+g*d),h&&ja(b,P(b,"Month")+h*d),e&&a.updateOffset(b,g||h));}function Yb(a,b){var c=a.diff(b,"days",!0);return c<-6?"sameElse":c<-1?"lastWeek":c<0?"lastDay":c<1?"sameDay":c<2?"nextDay":c<7?"nextWeek":"sameElse"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf("day"),f=a.calendarFormat(this,e)||"sameElse",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?"millisecond":b),"millisecond"===b?this.valueOf()>c.valueOf():c.valueOf()9999?X(a,"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]")}function jc(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var a="moment",b="";this.isLocal()||(a=0===this.utcOffset()?"moment.utc":"moment.parseZone",b="Z");var c="["+a+'("]',d=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",e="-MM-DD[T]HH:mm:ss.SSS",f=b+'[")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0);}return"week"===a&&this.weekday(0),"isoWeek"===a&&this.isoWeekday(1),"quarter"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||"millisecond"===a?this:("date"===a&&(a="day"),this.startOf(a).add(1,"isoWeek"===a?"week":a).subtract(1,"ms"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){ +return k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b);}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==a?b:this.add(a-b,"d")}function Mc(a,b){b[ke]=u(1e3*("0."+a));}function Nc(){return this._isUTC?"UTC":""}function Oc(){return this._isUTC?"Coordinated Universal Time":""}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||"",null!=b)return Sc(a,b,c,"month");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,"month");return e}function Uc(a,b,c,d){"boolean"==typeof a?(g(b)&&(c=b,b=void 0),b=b||""):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||"");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,"day");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,"day");return i}function Vc(a,b){return Tc(a,b,"months")}function Wc(a,b){return Tc(a,b,"monthsShort")}function Xc(a,b,c){return Uc(a,b,c,"weekdays")}function Yc(a,b,c){return Uc(a,b,c,"weekdaysShort")}function Zc(a,b,c){return Uc(a,b,c,"weekdaysMin")}function $c(){var a=this._data;return this._milliseconds=df(this._milliseconds),this._days=df(this._days),this._months=df(this._months),a.milliseconds=df(a.milliseconds),a.seconds=df(a.seconds),a.minutes=df(a.minutes),a.hours=df(a.hours),a.months=df(a.months),a.years=df(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),"month"===a||"year"===a)return b=this._days+d/864e5,c=this._months+ed(b),"month"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case"week":return b/7+d/6048e5;case"day":return b+d/864e5;case"hour":return 24*b+d/36e5;case"minute":return 1440*b+d/6e4;case"second":return 86400*b+d/1e3;case"millisecond":return Math.floor(864e5*b)+d;default:throw new Error("Unknown unit "+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+"s"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=uf(d.as("s")),f=uf(d.as("m")),g=uf(d.as("h")),h=uf(d.as("d")),i=uf(d.as("M")),j=uf(d.as("y")),k=e<=vf.ss&&["s",e]||e0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?uf:"function"==typeof a&&(uf=a,!0)}function pd(a,b){return void 0!==vf[a]&&(void 0===b?vf[a]:(vf[a]=b,"s"===a&&(vf.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=wf(this._milliseconds)/1e3,e=wf(this._days),f=wf(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?"-":"")+"P"+(g?g+"Y":"")+(h?h+"M":"")+(i?i+"D":"")+(j||k||l?"T":"")+(j?j+"H":"")+(k?k+"M":"")+(l?l+"S":""):"P0D"}var sd,td;td=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d68?1900:2e3)};var te=O("FullYear",!0);U("w",["ww",2],"wo","week"),U("W",["WW",2],"Wo","isoWeek"),J("week","w"),J("isoWeek","W"),M("week",5),M("isoWeek",5),Z("w",Sd),Z("ww",Sd,Od),Z("W",Sd),Z("WW",Sd,Od),ca(["w","ww","W","WW"],function(a,b,c,d){b[d.substr(0,1)]=u(a);});var ue={dow:0,doy:6};U("d",0,"do","day"),U("dd",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U("ddd",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U("dddd",0,0,function(a){return this.localeData().weekdays(this,a)}),U("e",0,0,"weekday"),U("E",0,0,"isoWeekday"),J("day","d"),J("weekday","e"),J("isoWeekday","E"),M("day",11),M("weekday",11),M("isoWeekday",11),Z("d",Sd),Z("e",Sd),Z("E",Sd),Z("dd",function(a,b){return b.weekdaysMinRegex(a)}),Z("ddd",function(a,b){return b.weekdaysShortRegex(a)}),Z("dddd",function(a,b){return b.weekdaysRegex(a)}),ca(["dd","ddd","dddd"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a;}),ca(["d","e","E"],function(a,b,c,d){b[d]=u(a);});var ve="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),we="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),xe="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ye=be,ze=be,Ae=be;U("H",["HH",2],0,"hour"),U("h",["hh",2],0,Ra),U("k",["kk",2],0,Sa),U("hmm",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)}),U("hmmss",0,0,function(){return""+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U("Hmm",0,0,function(){return""+this.hours()+T(this.minutes(),2)}),U("Hmmss",0,0,function(){return""+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta("a",!0),Ta("A",!1),J("hour","h"),M("hour",13),Z("a",Ua),Z("A",Ua),Z("H",Sd),Z("h",Sd),Z("k",Sd),Z("HH",Sd,Od),Z("hh",Sd,Od),Z("kk",Sd,Od),Z("hmm",Td),Z("hmmss",Ud),Z("Hmm",Td),Z("Hmmss",Ud),ba(["H","HH"],he),ba(["k","kk"],function(a,b,c){var d=u(a);b[he]=24===d?0:d;}),ba(["a","A"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a;}),ba(["h","hh"],function(a,b,c){b[he]=u(a),n(c).bigHour=!0;}),ba("hmm",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d)),n(c).bigHour=!0;}),ba("hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e)),n(c).bigHour=!0;}),ba("Hmm",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d));}),ba("Hmmss",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e));});var Be,Ce=/[ap]\.?m?\.?/i,De=O("Hours",!0),Ee={calendar:Bd,longDateFormat:Cd,invalidDate:Dd,ordinal:Ed,dayOfMonthOrdinalParse:Fd,relativeTime:Gd,months:pe,monthsShort:qe,week:ue,weekdays:ve,weekdaysMin:xe,weekdaysShort:we,meridiemParse:Ce},Fe={},Ge={},He=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Ie=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Je=/Z|[+-]\d\d(?::?\d\d)?/,Ke=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],Le=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Me=/^\/?Date\((\-?\d+)/i,Ne=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/;a.createFromInputFallback=x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(a){a._d=new Date(a._i+(a._useUTC?" UTC":""));}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Oe=x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?athis?this:a:p()}),Qe=function(){return Date.now?Date.now():+new Date},Re=["year","quarter","month","week","day","hour","minute","second","millisecond"];Db("Z",":"),Db("ZZ",""),Z("Z",_d),Z("ZZ",_d),ba(["Z","ZZ"],function(a,b,c){c._useUTC=!0,c._tzm=Eb(_d,a);});var Se=/([\+\-]|\d\d)/gi;a.updateOffset=function(){};var Te=/^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,Ue=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Ve=Wb(1,"add"),We=Wb(-1,"subtract");a.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",a.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xe=x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,["gg",2],0,function(){return this.weekYear()%100}),U(0,["GG",2],0,function(){return this.isoWeekYear()%100}),Dc("gggg","weekYear"),Dc("ggggg","weekYear"),Dc("GGGG","isoWeekYear"),Dc("GGGGG","isoWeekYear"),J("weekYear","gg"),J("isoWeekYear","GG"),M("weekYear",1),M("isoWeekYear",1),Z("G",Zd),Z("g",Zd),Z("GG",Sd,Od),Z("gg",Sd,Od),Z("GGGG",Wd,Qd),Z("gggg",Wd,Qd),Z("GGGGG",Xd,Rd),Z("ggggg",Xd,Rd),ca(["gggg","ggggg","GGGG","GGGGG"],function(a,b,c,d){b[d.substr(0,2)]=u(a);}),ca(["gg","GG"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b);}),U("Q",0,"Qo","quarter"),J("quarter","Q"),M("quarter",7),Z("Q",Nd),ba("Q",function(a,b){b[fe]=3*(u(a)-1);}),U("D",["DD",2],"Do","date"),J("date","D"),M("date",9),Z("D",Sd),Z("DD",Sd,Od),Z("Do",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba(["D","DD"],ge),ba("Do",function(a,b){b[ge]=u(a.match(Sd)[0],10);});var Ye=O("Date",!0);U("DDD",["DDDD",3],"DDDo","dayOfYear"),J("dayOfYear","DDD"),M("dayOfYear",4),Z("DDD",Vd),Z("DDDD",Pd),ba(["DDD","DDDD"],function(a,b,c){c._dayOfYear=u(a);}),U("m",["mm",2],0,"minute"),J("minute","m"),M("minute",14),Z("m",Sd),Z("mm",Sd,Od),ba(["m","mm"],ie);var Ze=O("Minutes",!1);U("s",["ss",2],0,"second"),J("second","s"),M("second",15),Z("s",Sd),Z("ss",Sd,Od),ba(["s","ss"],je);var $e=O("Seconds",!1);U("S",0,0,function(){return~~(this.millisecond()/100)}),U(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),U(0,["SSS",3],0,"millisecond"),U(0,["SSSS",4],0,function(){return 10*this.millisecond()}),U(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),U(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),U(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),U(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),U(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),J("millisecond","ms"),M("millisecond",16),Z("S",Vd,Nd),Z("SS",Vd,Od),Z("SSS",Vd,Pd);var _e;for(_e="SSSS";_e.length<=9;_e+="S")Z(_e,Yd);for(_e="S";_e.length<=9;_e+="S")ba(_e,Mc);var af=O("Milliseconds",!1);U("z",0,0,"zoneAbbr"),U("zz",0,0,"zoneName");var bf=r.prototype;bf.add=Ve,bf.calendar=Zb,bf.clone=$b,bf.diff=fc,bf.endOf=sc,bf.format=kc,bf.from=lc,bf.fromNow=mc,bf.to=nc,bf.toNow=oc,bf.get=R,bf.invalidAt=Bc,bf.isAfter=_b,bf.isBefore=ac,bf.isBetween=bc,bf.isSame=cc,bf.isSameOrAfter=dc,bf.isSameOrBefore=ec,bf.isValid=zc,bf.lang=Xe,bf.locale=pc,bf.localeData=qc,bf.max=Pe,bf.min=Oe,bf.parsingFlags=Ac,bf.set=S,bf.startOf=rc,bf.subtract=We,bf.toArray=wc,bf.toObject=xc,bf.toDate=vc,bf.toISOString=ic,bf.inspect=jc,bf.toJSON=yc,bf.toString=hc,bf.unix=uc,bf.valueOf=tc,bf.creationData=Cc,bf.year=te,bf.isLeapYear=ra,bf.weekYear=Ec,bf.isoWeekYear=Fc,bf.quarter=bf.quarters=Kc,bf.month=ka,bf.daysInMonth=la,bf.week=bf.weeks=Ba,bf.isoWeek=bf.isoWeeks=Ca,bf.weeksInYear=Hc,bf.isoWeeksInYear=Gc,bf.date=Ye,bf.day=bf.days=Ka,bf.weekday=La,bf.isoWeekday=Ma,bf.dayOfYear=Lc,bf.hour=bf.hours=De,bf.minute=bf.minutes=Ze,bf.second=bf.seconds=$e,bf.millisecond=bf.milliseconds=af,bf.utcOffset=Hb,bf.utc=Jb,bf.local=Kb,bf.parseZone=Lb,bf.hasAlignedHourOffset=Mb,bf.isDST=Nb,bf.isLocal=Pb,bf.isUtcOffset=Qb,bf.isUtc=Rb,bf.isUTC=Rb,bf.zoneAbbr=Nc,bf.zoneName=Oc,bf.dates=x("dates accessor is deprecated. Use date instead.",Ye),bf.months=x("months accessor is deprecated. Use month instead",ka),bf.years=x("years accessor is deprecated. Use year instead",te),bf.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",Ib),bf.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",Ob);var cf=C.prototype;cf.calendar=D,cf.longDateFormat=E,cf.invalidDate=F,cf.ordinal=G,cf.preparse=Rc,cf.postformat=Rc,cf.relativeTime=H,cf.pastFuture=I,cf.set=A,cf.months=fa,cf.monthsShort=ga,cf.monthsParse=ia,cf.monthsRegex=na,cf.monthsShortRegex=ma,cf.week=ya,cf.firstDayOfYear=Aa,cf.firstDayOfWeek=za,cf.weekdays=Fa,cf.weekdaysMin=Ha,cf.weekdaysShort=Ga,cf.weekdaysParse=Ja,cf.weekdaysRegex=Na,cf.weekdaysShortRegex=Oa,cf.weekdaysMinRegex=Pa,cf.isPM=Va,cf.meridiem=Wa,$a("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th";return a+c}}),a.lang=x("moment.lang is deprecated. Use moment.locale instead.",$a),a.langData=x("moment.langData is deprecated. Use moment.localeData instead.",bb);var df=Math.abs,ef=id("ms"),ff=id("s"),gf=id("m"),hf=id("h"),jf=id("d"),kf=id("w"),lf=id("M"),mf=id("y"),nf=kd("milliseconds"),of=kd("seconds"),pf=kd("minutes"),qf=kd("hours"),rf=kd("days"),sf=kd("months"),tf=kd("years"),uf=Math.round,vf={ss:44,s:45,m:45,h:22,d:26,M:11},wf=Math.abs,xf=Ab.prototype;return xf.isValid=yb,xf.abs=$c,xf.add=ad,xf.subtract=bd,xf.as=gd,xf.asMilliseconds=ef,xf.asSeconds=ff,xf.asMinutes=gf,xf.asHours=hf,xf.asDays=jf,xf.asWeeks=kf,xf.asMonths=lf,xf.asYears=mf,xf.valueOf=hd,xf._bubble=dd,xf.get=jd,xf.milliseconds=nf,xf.seconds=of,xf.minutes=pf,xf.hours=qf,xf.days=rf,xf.weeks=ld,xf.months=sf,xf.years=tf,xf.humanize=qd,xf.toISOString=rd,xf.toString=rd,xf.toJSON=rd,xf.locale=pc,xf.localeData=qc,xf.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",rd),xf.lang=Xe,U("X",0,0,"unix"),U("x",0,0,"valueOf"),Z("x",Zd),Z("X",ae),ba("X",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10));}),ba("x",function(a,b,c){c._d=new Date(u(a));}),a.version="2.18.1",b(tb),a.fn=bf,a.min=vb,a.max=wb,a.now=Qe,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bf,a}); +}); + + + +var moment_ = Object.freeze({ + default: moment_min, + __moduleExports: moment_min +}); + +const moment = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateUtcFilterCondition = (options) => { + if (!options.filterSearchType) { + throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }'); + } + const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType); + if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) { + return true; + } + const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true); + const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; + +const moment$1 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const DATE_FORMAT = 'YYYY-MM-DD'; +const dateIsoFilterCondition = (options) => { + if (!moment$1(options.cellValue, DATE_FORMAT, true).isValid() || !moment$1(options.searchTerm, DATE_FORMAT, true).isValid()) { + return true; + } + const /** @type {?} */ dateCell = moment$1(options.cellValue, DATE_FORMAT, true); + const /** @type {?} */ dateSearch = moment$1(options.searchTerm, DATE_FORMAT, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; + +const moment$2 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const DATE_FORMAT$1 = 'M/D/YY'; +const dateUsShortFilterCondition = (options) => { + if (!moment$2(options.cellValue, DATE_FORMAT$1, true).isValid() || !moment$2(options.searchTerm, DATE_FORMAT$1, true).isValid()) { + return true; + } + const /** @type {?} */ dateCell = moment$2(options.cellValue, DATE_FORMAT$1, true); + const /** @type {?} */ dateSearch = moment$2(options.searchTerm, DATE_FORMAT$1, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; + +const moment$3 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const DATE_FORMAT$2 = 'M/D/YYYY'; +const dateUsFilterCondition = (options) => { + if (!moment$3(options.cellValue, DATE_FORMAT$2, true).isValid() || !moment$3(options.searchTerm, DATE_FORMAT$2, true).isValid()) { + return true; + } + const /** @type {?} */ dateCell = moment$3(options.cellValue, DATE_FORMAT$2, true); + const /** @type {?} */ dateSearch = moment$3(options.searchTerm, DATE_FORMAT$2, true); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; + +const moment$4 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateFilterCondition = (options) => { + const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso; + const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType); + if (!moment$4(options.cellValue, moment$4.ISO_8601).isValid() || !moment$4(options.searchTerm, searchDateFormat, true).isValid()) { + return true; + } + const /** @type {?} */ dateCell = moment$4(options.cellValue); + const /** @type {?} */ dateSearch = moment$4(options.searchTerm); + // run the filter condition with date in Unix Timestamp format + return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); +}; + +const numberFilterCondition = (options) => { + return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm)); +}; + +const stringFilterCondition = (options) => { + // make sure the cell value is a string by casting it + options.cellValue = options.cellValue.toString(); + if (options.operator === '*') { + return options.cellValue.startsWith(options.searchTerm); + } + else if (options.operator === '' && options.cellValueLastChar === '*') { + return options.cellValue.endsWith(options.searchTerm); + } + else if (options.operator === '') { + return options.cellValue.includes(options.searchTerm); + } + return testFilterCondition(options.operator || '==', options.cellValue.toLowerCase(), options.searchTerm.toLowerCase()); +}; + +const executeMappedCondition = (options) => { + // execute the mapped type, or default to String condition check + switch (options.fieldType) { + case FieldType.boolean: + return booleanFilterCondition(options); + case FieldType.date: + return dateFilterCondition(options); + case FieldType.dateUtc: + return dateUtcFilterCondition(options); + case FieldType.dateIso: + return dateIsoFilterCondition(options); + case FieldType.dateUs: + case FieldType.dateTimeUs: + return dateUsFilterCondition(options); + case FieldType.dateUsShort: + case FieldType.dateTimeUsShort: + return dateUsShortFilterCondition(options); + case FieldType.number: + return numberFilterCondition(options); + case FieldType.string: + default: + return stringFilterCondition(options); + } +}; + +const FilterConditions = { + executeMappedCondition: executeMappedCondition, + booleanFilter: booleanFilterCondition, + dateFilter: dateFilterCondition, + dateIsoFilter: dateIsoFilterCondition, + dateUtcFilter: dateUtcFilterCondition, + dateUsFilter: dateUsFilterCondition, + dateUsShortFilter: dateUsShortFilterCondition, + numberFilter: numberFilterCondition, + stringFilter: stringFilterCondition, + testFilter: testFilterCondition +}; + +const inputFilterTemplate = (searchTerm, columnDef) => { + return ``; +}; + +const selectFilterTemplate = (searchTerm, columnDef) => { + if (!columnDef.filter.selectOptions) { + throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`); + } + let /** @type {?} */ options = ''; + columnDef.filter.selectOptions.forEach((option) => { + options += ``; + }); + return ``; +}; + +const FilterTemplates = { + input: inputFilterTemplate, + select: selectFilterTemplate +}; + +const checkboxFormatter = (row, cell, value, columnDef, dataContext) => value ? '☑' : ''; + +const checkmarkFormatter = (row, cell, value, columnDef, dataContext) => value ? `` : ''; + +const moment$5 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateIsoFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$5(value).format('YYYY-MM-DD') : ''; + +const moment$6 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateTimeIsoAmPmFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$6(value).format('YYYY-MM-DD h:mm:ss a') : ''; + +const moment$7 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateTimeUsAmPmFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$7(value).format('MM/DD/YYYY h:mm:ss a') : ''; + +const moment$8 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateTimeUsFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$8(value).format('MM/DD/YYYY hh:mm:ss') : ''; + +const moment$9 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateUsFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$9(value).format('MM/DD/YYYY') : ''; + +const percentCompleteFormatter = (row, cell, value, columnDef, dataContext) => { + if (value === null || value === '') { + return '-'; + } + else if (value < 50) { + return `${value}%`; + } + else { + return `${value}%`; + } +}; + +const percentCompleteBarFormatter = (row, cell, value, columnDef, dataContext) => { + if (value === null || value === '') { + return ''; + } + let /** @type {?} */ color; + if (value < 30) { + color = 'red'; + } + else if (value < 70) { + color = 'silver'; + } + else { + color = 'green'; + } + return ``; +}; + +const progressBarFormatter = (row, cell, value, columnDef, dataContext) => { + if (value === null || value === '') { + return ''; + } + let /** @type {?} */ color; + if (value < 30) { + color = 'danger'; + } + else if (value < 70) { + color = 'warning'; + } + else { + color = 'success'; + } + return `
+
+ ${value}% +
+
`; +}; + +const yesNoFormatter = (row, cell, value, columnDef, dataContext) => value ? 'Yes' : 'No'; + +// import { Group, GroupTotals } from '../core' +// import { Item } from '../dataview' +/* +export interface GroupFormatter { + (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string +} + +export interface GroupTotalsFormatter { + (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string +} +*/ +const Formatters = { + checkbox: checkboxFormatter, + checkmark: checkmarkFormatter, + dateIso: dateIsoFormatter, + dateTimeIso: dateIsoFormatter, + dateTimeIsoAmPm: dateTimeIsoAmPmFormatter, + dateUs: dateUsFormatter, + dateTimeUs: dateTimeUsFormatter, + dateTimeUsAmPm: dateTimeUsAmPmFormatter, + percentComplete: percentCompleteFormatter, + percentCompleteBar: percentCompleteBarFormatter, + progressBar: progressBarFormatter, + yesNoFormatter: yesNoFormatter +}; + +const moment$10 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const DATE_FORMAT$3 = 'M/D/YY'; +const dateUsShortSorter = (value1, value2, sortDirection) => { + if (!moment$10(value1, DATE_FORMAT$3, true).isValid() || !moment$10(value2, DATE_FORMAT$3, true).isValid()) { + return 0; + } + const /** @type {?} */ date1 = moment$10(value1, DATE_FORMAT$3, true); + const /** @type {?} */ date2 = moment$10(value2, DATE_FORMAT$3, true); + const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; + +const moment$11 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const dateSorter = (value1, value2, sortDirection) => { + if (!moment$11(value1, moment$11.ISO_8601).isValid() || !moment$11(value2, moment$11.ISO_8601, true).isValid()) { + return 0; + } + const /** @type {?} */ date1 = moment$11(value1); + const /** @type {?} */ date2 = moment$11(value2); + const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; + +const moment$12 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const DATE_FORMAT$4 = 'YYYY-MM-DD'; +const dateIsoSorter = (value1, value2, sortDirection) => { + if (!moment$12(value1, DATE_FORMAT$4, true).isValid() || !moment$12(value2, DATE_FORMAT$4, true).isValid()) { + return 0; + } + const /** @type {?} */ date1 = moment$12(value1, DATE_FORMAT$4, true); + const /** @type {?} */ date2 = moment$12(value2, DATE_FORMAT$4, true); + const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; + +const moment$13 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +const DATE_FORMAT$5 = 'M/D/YYYY'; +const dateUsSorter = (value1, value2, sortDirection) => { + if (!moment$13(value1, DATE_FORMAT$5, true).isValid() || !moment$13(value2, DATE_FORMAT$5, true).isValid()) { + return 0; + } + const /** @type {?} */ date1 = moment$13(value1, DATE_FORMAT$5, true); + const /** @type {?} */ date2 = moment$13(value2, DATE_FORMAT$5, true); + const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); + return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); +}; + +const numericSorter = (value1, value2, sortDirection) => { + const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1); + const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2); + return sortDirection * (x === y ? 0 : (x > y ? 1 : -1)); +}; + +const stringSorter = (value1, value2, sortDirection) => { + return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1)); +}; + +const Sorters = { + date: dateSorter, + dateIso: dateIsoSorter, + dateUs: dateUsSorter, + dateUsShort: dateUsShortSorter, + numeric: numericSorter, + string: stringSorter +}; + +class FilterService { + constructor() { } + /** + * @param {?} grid + * @param {?} gridOptions + * @param {?} columnDefinitions + * @param {?} columnFilters + * @return {?} + */ + init(grid, gridOptions, columnDefinitions, columnFilters) { + this._columnDefinitions = columnDefinitions; + this._columnFilters = columnFilters; + this._gridOptions = gridOptions; + this._grid = grid; + } + /** + * Attach a backend filter hook to the grid + * @return {?} + */ + attachBackendOnFilter() { + this.subscriber = new Slick.Event(); + this.subscriber.subscribe(this._gridOptions.onFilterChanged); + this.addFilterTemplateToHeaderRow(); + } + /** + * @param {?} operator + * @param {?} value1 + * @param {?} value2 + * @return {?} + */ + testFilterCondition(operator, value1, value2) { + switch (operator) { + case '<': return (value1 < value2) ? true : false; + case '<=': return (value1 <= value2) ? true : false; + case '>': return (value1 > value2) ? true : false; + case '>=': return (value1 >= value2) ? true : false; + case '!=': + case '<>': return (value1 !== value2) ? true : false; + case '=': + case '==': return (value1 === value2) ? true : false; + } + } + /** + * Attach a local filter hook to the grid + * @param {?} dataView + * @return {?} + */ + attachLocalOnFilter(dataView) { + this._dataView = dataView; + this.subscriber = new Slick.Event(); + dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid }); + dataView.setFilter(this.customFilter); + this.subscriber.subscribe((e, args) => { + const /** @type {?} */ columnId = args.columnId; + if (columnId != null) { + dataView.refresh(); + } + }); + this.addFilterTemplateToHeaderRow(); + } + /** + * @param {?} item + * @param {?} args + * @return {?} + */ + customFilter(item, args) { + for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) { + const /** @type {?} */ columnFilter = args.columnFilters[columnId]; + const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId); + const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex]; + const /** @type {?} */ fieldType = columnDef.type || FieldType.string; + const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null; + const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null; + let /** @type {?} */ cellValue = item[columnDef.field]; + let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; + if (typeof fieldSearchValue === 'undefined') { + fieldSearchValue = ''; + } + fieldSearchValue = '' + fieldSearchValue; // make sure it's a string + const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) + const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); + const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : ''; + const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; + // no need to query if search value is empty + if (searchTerm === '') { + return true; + } + if (typeof cellValue === 'number') { + cellValue = cellValue.toString(); + } + const /** @type {?} */ conditionOptions = { + fieldType: fieldType, + searchTerm: searchTerm, + cellValue: cellValue, + operator: operator, + cellValueLastChar: lastValueChar, + filterSearchType: filterSearchType + }; + if (conditionalFilterFn && typeof conditionalFilterFn === 'function') { + conditionalFilterFn(conditionOptions); + } + if (!FilterConditions.executeMappedCondition(conditionOptions)) { + return false; + } + } + return true; + } + /** + * @return {?} + */ + destroy() { + this.subscriber.unsubscribe(); + } + /** + * @param {?} e + * @param {?} args + * @return {?} + */ + callbackSearchEvent(e, args) { + this._columnFilters[args.columnDef.id] = { + columnId: args.columnDef.id, + columnDef: args.columnDef, + searchTerm: e.target.value + }; + this.triggerEvent(this.subscriber, { + columnId: args.columnDef.id, + columnDef: args.columnDef, + columnFilters: this._columnFilters, + searchTerm: e.target.value, + grid: this._grid + }, e); + } + /** + * @return {?} + */ + addFilterTemplateToHeaderRow() { + for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) { + if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) { + let /** @type {?} */ filterTemplate = ''; + let /** @type {?} */ elm = null; + let /** @type {?} */ header; + const /** @type {?} */ columnDef = this._columnDefinitions[i]; + const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null; + let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : ''; + // keep the filter in a columnFilters for later reference + this.keepColumnFilters(searchTerm, listTerm, columnDef); + if (!columnDef.filter) { + searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null; + filterTemplate = FilterTemplates.input(searchTerm, columnDef); + } + else { + // custom Select template + if (columnDef.filter.type === FormElementType.select) { + filterTemplate = FilterTemplates.select(searchTerm, columnDef); + } + } + // create the DOM Element + header = this._grid.getHeaderRowColumn(columnDef.id); + $(header).empty(); + elm = $(filterTemplate); + elm.val(searchTerm); + elm.data('columnId', columnDef.id); + if (elm && typeof elm.appendTo === 'function') { + elm.appendTo(header); + } + // depending on the DOM Element type, we will watch the corrent event + const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input; + switch (filterType) { + case FormElementType.select: + case FormElementType.multiSelect: + elm.change((e) => this.callbackSearchEvent(e, { columnDef: columnDef })); + break; + case FormElementType.input: + default: + elm.keyup((e) => this.callbackSearchEvent(e, { columnDef: columnDef })); + break; + } + } + } + } + /** + * @param {?} searchTerm + * @param {?} listTerm + * @param {?} columnDef + * @return {?} + */ + keepColumnFilters(searchTerm, listTerm, columnDef) { + if (searchTerm) { + this._columnFilters[columnDef.id] = { + columnId: columnDef.id, + columnDef: columnDef, + searchTerm: searchTerm + }; + if (listTerm) { + this._columnFilters.listTerm = listTerm; + } + } + } + /** + * @param {?} evt + * @param {?} args + * @param {?} e + * @return {?} + */ + triggerEvent(evt, args, e) { + e = e || new Slick.EventData(); + return evt.notify(args, e, args.grid); + } +} +FilterService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +FilterService.ctorParameters = () => []; + +class MouseService { + /** + * @param {?} grid + * @return {?} + */ + attachOnMouseHover(grid) { + grid.onMouseEnter.subscribe(function (e) { + const /** @type {?} */ cell = grid.getCellFromEvent(e); + if (cell && cell.row >= 0) { + grid.setSelectedRows([cell.row]); + e.preventDefault(); + } + }); + grid.onMouseLeave.subscribe(function (e) { + grid.setSelectedRows([]); + e.preventDefault(); + }); + } +} + +// global constants, height/width are in pixels +const DATAGRID_MIN_HEIGHT = 180; +const DATAGRID_MIN_WIDTH = 300; +const DATAGRID_BOTTOM_PADDING = 20; +const DATAGRID_PAGINATION_HEIGHT = 35; +class ResizerService { + /** + * @param {?} router + */ + constructor(router$$1) { + this.router = router$$1; + } + /** + * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space + * Options: we could also provide a % factor to resize on each height/width independently + * @param {?} grid + * @param {?} gridOptions + * @return {?} + */ + attachAutoResizeDataGrid(grid, gridOptions) { + // if we can't find the grid to resize, return without attaching anything + const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`); + if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') { + return null; + } + // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load) + this.resizeGrid(grid, gridOptions); + // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load + // -- attach auto-resize to Window object only if it exist + $(window).on('resize.grid', () => { + this.resizeGrid(grid, gridOptions); + }); + // destroy the resizer on route change + this.router.events.subscribe((event) => { + this.destroy(); + }); + } + /** + * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation + * object gridOptions + * @param {?} gridOptions + * @return {?} + */ + calculateGridNewDimensions(gridOptions) { + let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING; + if (bottomPadding && gridOptions.enablePagination) { + bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding + } + if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') { + return; + } + const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding; + const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width(); + const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT; + const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH; + let /** @type {?} */ newHeight = availableHeight; + let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth; + if (newHeight < minHeight) { + newHeight = minHeight; + } + if (newWidth < minWidth) { + newWidth = minWidth; + } + return { + height: newHeight, + width: newWidth + }; + } + /** + * Destroy function when element is destroyed + * @return {?} + */ + destroy() { + $(window).trigger('resize.grid').off('resize'); + } + /** + * Resize the datagrid to fit the browser height & width + * @param {?} grid + * @param {?} gridOptions + * @param {?=} newSizes + * @return {?} + */ + resizeGrid(grid, gridOptions, newSizes) { + // calculate new available sizes but with minimum height of 220px + newSizes = newSizes || this.calculateGridNewDimensions(gridOptions); + if (newSizes) { + // apply these new height/width to the datagrid + $(`#${gridOptions.gridId}`).height(newSizes.height); + $(`#${gridOptions.gridId}`).width(newSizes.width); + $(`#${gridOptions.gridContainerId}`).height(newSizes.height); + $(`#${gridOptions.gridContainerId}`).width(newSizes.width); + // resize the slickgrid canvas on all browser except some IE versions + // exclude all IE below IE11 + // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape' + if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) { + grid.resizeCanvas(); + } + // also call the grid auto-size columns so that it takes available when going bigger + grid.autosizeColumns(); + } + } +} +ResizerService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +ResizerService.ctorParameters = () => [ + { type: Router, }, +]; + +class SortService { + constructor() { } + /** + * Attach a backend sort (single/multi) hook to the grid + * @param {?} grid SlickGrid Grid object + * @param {?} gridOptions Grid Options object + * @return {?} + */ + attachBackendOnSort(grid, gridOptions) { + this.subscriber = grid.onSort; + this.subscriber.subscribe(gridOptions.onSortChanged); + } + /** + * Attach a local sort (single/multi) hook to the grid + * @param {?} grid SlickGrid Grid object + * @param {?} gridOptions Grid Options object + * @param {?} dataView + * @return {?} + */ + attachLocalOnSort(grid, gridOptions, dataView) { + this.subscriber = grid.onSort; + this.subscriber.subscribe((e, args) => { + // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after + // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object + const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortAsc: args.sortAsc, sortCol: args.sortCol }); + dataView.sort(function (dataRow1, dataRow2) { + for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) { + const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1; + const /** @type {?} */ sortField = sortColumns[i].sortCol.field; + const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string'; + const /** @type {?} */ value1 = dataRow1[sortField]; + const /** @type {?} */ value2 = dataRow2[sortField]; + let /** @type {?} */ result = 0; + switch (fieldType) { + case FieldType.number: + result = Sorters.numeric(value1, value2, sortDirection); + break; + case FieldType.date: + result = Sorters.date(value1, value2, sortDirection); + break; + case FieldType.dateIso: + result = Sorters.dateIso(value1, value2, sortDirection); + break; + case FieldType.dateUs: + result = Sorters.dateUs(value1, value2, sortDirection); + break; + case FieldType.dateUsShort: + result = Sorters.dateUsShort(value1, value2, sortDirection); + break; + default: + result = Sorters.string(value1, value2, sortDirection); + break; + } + if (result !== 0) { + return result; + } + } + return 0; + }); + grid.invalidate(); + grid.render(); + }); + } + /** + * @return {?} + */ + destroy() { + this.subscriber.unsubscribe(); + } +} +SortService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +SortService.ctorParameters = () => []; + +"use strict"; + +//===================================================== +//============================ parce properties to find +//===================================================== + +function parceFind(_levelA) { + +//+++++++++++++++++++++++++++++++++++ work over Array +//++++++++++++++++++++++++++++++++++++++++++++++++++++ + + let propsA = _levelA.map(function(currentValue, index) { + + let itemX = _levelA[index]; + + if( itemX instanceof Query){ + return itemX.toString(); + } else if ( ! Array.isArray(itemX) && "object" === typeof itemX ) { + let propsA = Object.keys(itemX); + if ( 1 !== propsA.length) { + throw new RangeError("Alias objects should only have one value. was passed: "+JSON.stringify(itemX)); + } + let propS = propsA[0]; + let item = itemX[propS]; + // contributor: https://github.com/charlierudolph/graphql-query-builder/commit/878328e857e92d140f5ba6f7cfe07837620ec490 + if (Array.isArray(item)) { + return new Query(propS).find(item) + } + return `${propS} : ${item} `; + } else if ( "string" === typeof itemX ) { + return itemX; + } else { + throw new RangeError("cannot handle Find value of "+itemX); + } + }); + + return propsA.join(","); +} + +//===================================================== +//=================================== get GraphQL Value +//===================================================== + +function getGraphQLValue(value) { + if ("string" === typeof value) { + value = JSON.stringify(value); + } else if (Array.isArray(value)) { + value = value.map(item => { + return getGraphQLValue(item); + }).join(); + value = `[${value}]`; + } else if ("object" === typeof value) { + /*if (value.toSource) + value = value.toSource().slice(2,-2); + else*/ + value = objectToString(value); + //console.error("No toSource!!",value); + } + return value; +} + +function objectToString(obj) { + + let sourceA = []; + + for(let prop in obj){ + if ("function" === typeof obj[prop]) { + continue; + } + // if ("object" === typeof obj[prop]) { + sourceA.push(`${prop}:${getGraphQLValue(obj[prop])}`); + // } else { + // sourceA.push(`${prop}:${obj[prop]}`); + // } + } + return `{${sourceA.join()}}`; +} + + + + +//===================================================== +//========================================= Query Class +//===================================================== + +function Query(_fnNameS, _aliasS_OR_Filter){ + + this.fnNameS = _fnNameS; + this.headA = []; + + this.filter = (filtersO) => { + + for(let propS in filtersO){ + if ("function" === typeof filtersO[propS]) { + continue; + } + let val = getGraphQLValue(filtersO[propS]); + if ("{}" === val) { + continue; + } + this.headA.push( `${propS}:${val}` ); + } + return this; + }; + + if ("string" === typeof _aliasS_OR_Filter) { + this.aliasS = _aliasS_OR_Filter; + } else if ("object" === typeof _aliasS_OR_Filter) { + this.filter(_aliasS_OR_Filter); + } else if (undefined === _aliasS_OR_Filter && 2 === arguments.length){ + throw new TypeError("You have passed undefined as Second argument to 'Query'"); + } else if (undefined !== _aliasS_OR_Filter){ + throw new TypeError("Second argument to 'Query' should be an alias name(String) or filter arguments(Object). was passed "+_aliasS_OR_Filter); + } + + this.setAlias = (_aliasS) =>{ + this.aliasS = _aliasS; + return this; + }; + + this.find = function(findA) { // THIS NEED TO BE A "FUNCTION" to scope 'arguments' + if( ! findA){ + throw new TypeError("find value can not be >>falsy<<"); + } + // if its a string.. it may have other values + // else it sould be an Object or Array of maped values + this.bodyS = parceFind((Array.isArray(findA)) ? findA : Array.from(arguments)); + return this; + }; +} + +//===================================================== +//===================================== Query prototype +//===================================================== + +Query.prototype = { + + toString : function(){ + if (undefined === this.bodyS) { + throw new ReferenceError("return properties are not defined. use the 'find' function to defined them"); + } + + return `${ (this.aliasS) ? (this.aliasS + ":") : "" } ${this.fnNameS } ${ (0 < this.headA.length)?"("+this.headA.join(",")+")":"" } { ${ this.bodyS } }`; + } +}; + +var graphqlQueryBuilder = Query; + +class GraphqlService { + constructor() { + this.serviceOptions = {}; + } + /** + * Build the GraphQL query, since the service include/exclude cursor, the output query will be different. + * @param {?=} serviceOptions GraphqlServiceOption + * @return {?} + */ + buildQuery(serviceOptions) { + if (!this.serviceOptions.datasetName || !this.serviceOptions.dataFilters) { + throw new Error('GraphQL Service requires "datasetName" & "dataFilters" properties for it to work'); + } + const /** @type {?} */ pageFilterQb = new graphqlQueryBuilder(this.serviceOptions.datasetName); + const /** @type {?} */ pageInfoQb = new graphqlQueryBuilder('pageInfo'); + const /** @type {?} */ dataQb = (this.serviceOptions.isWithCursor) ? new graphqlQueryBuilder('edges') : new graphqlQueryBuilder('nodes'); + if (this.serviceOptions.isWithCursor) { + pageInfoQb.find('hasNextPage', 'endCursor'); + dataQb.find(['cursor', { 'node': this.serviceOptions.dataFilters }]); + } + else { + pageInfoQb.find('hasNextPage'); + dataQb.find(this.serviceOptions.dataFilters); + } + pageFilterQb.find(['totalCount', pageInfoQb, dataQb]); + pageFilterQb.filter(this.serviceOptions.paginationOptions); + return pageFilterQb.toString(); + } + /** + * @param {?=} serviceOptions + * @return {?} + */ + initOptions(serviceOptions) { + this.serviceOptions = serviceOptions || {}; + } + /** + * @param {?} fieldName + * @return {?} + */ + removeColumnFilter(fieldName) { + } + /** + * @return {?} + */ + resetPaginationOptions() { + let /** @type {?} */ paginationOptions; + if (this.serviceOptions.isWithCursor) { + // first, last, after, before + paginationOptions = { + after: '', + before: undefined, + last: undefined + }; + } + else { + // first, last, offset + paginationOptions = { + offset: 0 + }; + } + this.updateOptions({ paginationOptions: paginationOptions }); + } + /** + * @param {?=} serviceOptions + * @return {?} + */ + updateOptions(serviceOptions) { + this.serviceOptions = Object.assign({}, this.serviceOptions, serviceOptions); + } + /** + * @param {?} fieldName + * @param {?} value + * @param {?=} terms + * @return {?} + */ + saveColumnFilter(fieldName, value, terms) { + } + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + onFilterChanged(event, args) { + } + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + onPaginationChanged(event, args) { + let /** @type {?} */ paginationOptions; + if (this.serviceOptions.isWithCursor) { + paginationOptions = { + first: args.pageSize + }; + } + else { + paginationOptions = { + first: args.pageSize, + offset: (args.newPage - 1) * args.pageSize + }; + } + this.updateOptions({ paginationOptions: paginationOptions }); + // build the OData query which we will use in the WebAPI callback + return this.buildQuery(); + } + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + onSortChanged(event, args) { + // will use sorting as per a FB suggestion + // https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222 + } +} + +String.format = function (format, args) { + // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1); + return format.replace(/{(\d+)}/g, function (match, number) { + return (typeof args[number] !== 'undefined') ? args[number] : match; + }); +}; +String.padZero = function (length) { + let /** @type {?} */ s = this; + while (s.length < length) { + s = '0' + s; + } + return s; +}; +/** + * Trim any extra white space from the string + * @param string inputStr + * @returns string outputStr + */ +String.trim = function (inputStr) { + return inputStr ? inputStr.replace(/\s+/g, ' ') : inputStr; +}; +/** + * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) + * @param string inputStr + * @returns string outputStr + */ +String.allTitleCase = function (inputStr) { + return inputStr.replace(/\w\S*/g, function (outputStr) { + return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase(); + }); +}; +/** + * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) + * @param string inputStr + * @returns string outputStr +*/ +String.titleCase = function (inputStr) { + return inputStr.charAt(0).toUpperCase() + inputStr.slice(1); +}; + +class OdataService { + constructor() { + this._odataOptions = { + filterQueue: [], + orderBy: '' + }; + this._defaultSortBy = ''; + this._columnFilters = {}; + } + /** + * @return {?} + */ + buildQuery() { + this._odataOptions.filterQueue = []; + let /** @type {?} */ queryTmpArray = []; + if (this._odataOptions.top) { + queryTmpArray.push(`$top=${this._odataOptions.top}`); + } + if (this._odataOptions.skip) { + queryTmpArray.push(`$skip=${this._odataOptions.skip}`); + } + if (this._odataOptions.orderBy) { + let /** @type {?} */ argument = ''; + if (Array.isArray(this._odataOptions.orderBy)) { + argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc + } + else { + argument = this._odataOptions.orderBy; + } + queryTmpArray.push(`$orderby=${argument}`); + } + if (this._odataOptions.filterBy || this._odataOptions.filter) { + if (this._odataOptions.filter) { + this._odataOptions.filterQueue = []; + let /** @type {?} */ filterStr = this._odataOptions.filter; + if (Array.isArray(this._odataOptions.filter)) { + const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; + const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `; + filterStr = this._odataOptions.filter.join(separatorSpacedOut); + } + this._odataOptions.filterQueue.push(`(${filterStr})`); + } + // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered + if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) { + if (this._odataOptions.filterBy.searchTerm !== '') { + this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm); + this.updateFilterFromListTerms(this._odataOptions.filterBy); + } + } + } + if (this._odataOptions.filterQueue.length > 0) { + const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; + const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `; + const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut); + this._odataOptions.filter = query; // overwrite with + queryTmpArray.push(`$filter=${query}`); + } + // join all the odata functions by a '&' + return queryTmpArray.join('&'); + } + /** + * @param {?} columnName + * @return {?} + */ + getFilterByColumn(columnName) { + return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null; + } + /** + * @return {?} + */ + getFilterCount() { + return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0; + } + /** + * @return {?} + */ + get columnFilters() { + return this._columnFilters; + } + /** + * @return {?} + */ + get options() { + return this._odataOptions; + } + /** + * @param {?} options + * @return {?} + */ + set options(options) { + this._odataOptions = options; + } + /** + * @param {?} fieldName + * @return {?} + */ + removeColumnFilter(fieldName) { + delete this._columnFilters[fieldName]; + } + /** + * @param {?} fieldName + * @param {?} value + * @param {?=} searchTerms + * @return {?} + */ + saveColumnFilter(fieldName, value, searchTerms) { + this._columnFilters[fieldName] = { + search: searchTerms, + value: value + }; + } + /** + * Update the filter by a list of terms usually passed manually by the user as default filters + * @param {?} filterOptions + * @return {?} + */ + updateFilterFromListTerms(filterOptions) { + // build the filter query + if (Array.isArray(filterOptions)) { + filterOptions.forEach((filterOptionObject) => { + this.updateFilterFromTerm(filterOptionObject); + }); + } + else { + this.updateFilterFromTerm(filterOptions); + } + } + /** + * @param {?} filterOptions + * @return {?} + */ + updateFilterFromTerm(filterOptions) { + let /** @type {?} */ searchBy = ''; + const /** @type {?} */ tmpSearchByArray = []; + const /** @type {?} */ fieldName = filterOptions.fieldName; + const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm; + const /** @type {?} */ operator = filterOptions.operator; + // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) + if (!!fieldSearchTerms && fieldSearchTerms.length > 0) { + let /** @type {?} */ tmpSearchTerms = []; + if (operator === 'IN') { + // example:: (Stage eq "Expired" or Stage eq "Renewal") + for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) { + tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`); + } + searchBy = tmpSearchTerms.join(' or '); + searchBy = `$(${searchBy})`; + } + else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { + // example:: (Stage ne "Expired" and Stage ne "Renewal") + for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) { + tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`); + } + searchBy = tmpSearchTerms.join(' and '); + searchBy = `$(${searchBy})`; + } + } + // push to our temp array and also trim white spaces + tmpSearchByArray.push(String.trim(searchBy)); + // add to the filter queue only if it doesn't exist in the queue + const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : ''; + if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) { + this._odataOptions.filterQueue.push(filter); + } + } + /** + * Change any OData options that will be used to build the query + * @param {?} options + * @return {?} + */ + updateOptions(options) { + for (const /** @type {?} */ property of Object.keys(options)) { + if (options.hasOwnProperty(property)) { + this._odataOptions[property] = options[property]; // replace of the property + } + // we need to keep the defaultSortBy for references whenever the user removes his Sorting + // then we would revert to the defaultSortBy and the only way is to keep a hard copy here + if (property === 'orderBy' || property === 'sortBy') { + let /** @type {?} */ sortBy = options[property]; + // make sure first char of each orderBy field is capitalize + if (this._odataOptions.caseType === CaseType.pascalCase) { + if (Array.isArray(sortBy)) { + sortBy.forEach((field, index, inputArray) => { + inputArray[index] = String.titleCase(field); + }); + } + else { + sortBy = String.titleCase(options[property]); + } + } + this._odataOptions.orderBy = sortBy; + this._defaultSortBy = sortBy; + } + } + } +} +OdataService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +OdataService.ctorParameters = () => []; + +const moment$14 = moment_min || moment_; +class GridOdataService { + /** + * @param {?} odataService + */ + constructor(odataService) { + this.odataService = odataService; + this.defaultSortBy = ''; + this.minUserInactivityOnFilter = 700; + } + /** + * @return {?} + */ + buildQuery() { + return this.odataService.buildQuery(); + } + /** + * @param {?} options + * @return {?} + */ + initOptions(options) { + this.odataService.options = options; + } + /** + * @param {?} fieldName + * @return {?} + */ + removeColumnFilter(fieldName) { + this.odataService.removeColumnFilter(fieldName); + } + /** + * @return {?} + */ + resetPaginationOptions() { + this.odataService.updateOptions({ + skip: 0 + }); + } + /** + * @param {?} fieldName + * @param {?} value + * @param {?=} terms + * @return {?} + */ + saveColumnFilter(fieldName, value, terms) { + this.odataService.saveColumnFilter(fieldName, value, terms); + } + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + onFilterChanged(event, args) { + const /** @type {?} */ searchByArray = []; + // loop through all columns to inspect filters + for (const /** @type {?} */ columnId in args.columnFilters) { + if (args.columnFilters.hasOwnProperty(columnId)) { + const /** @type {?} */ columnFilter = args.columnFilters[columnId]; + const /** @type {?} */ columnDef = columnFilter.columnDef; + const /** @type {?} */ fieldName = columnDef.field || columnDef.name; + const /** @type {?} */ fieldType = columnDef.type || 'string'; + let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; + if (typeof fieldSearchValue === 'undefined') { + fieldSearchValue = ''; + } + if (typeof fieldSearchValue !== 'string') { + throw new Error(`OData filter term property must be provided type "string", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: "0", value: "0" }, { id: "1", value: "1" }]`); + } + const /** @type {?} */ searchTerms = columnFilter.listTerm || []; + fieldSearchValue = '' + fieldSearchValue; // make sure it's a string + const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) + const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); + let /** @type {?} */ searchValue = (!!matches) ? matches[2] : ''; + const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; + const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false; + // no need to query if search value is empty + if (fieldName && searchValue === '') { + this.removeColumnFilter(fieldName); + continue; + } + // escaping the search value + searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them + searchValue = encodeURIComponent(searchValue); // encode URI of the final search value + // extra query arguments + if (bypassOdataQuery) { + // push to our temp array and also trim white spaces + if (fieldName) { + this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms); + } + } + else { + let /** @type {?} */ searchBy = ''; + // titleCase the fieldName so that it matches the WebApi names + const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || ''); + // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) + if (searchTerms && searchTerms.length > 0) { + let /** @type {?} */ tmpSearchTerms = []; + if (operator === 'IN') { + // example:: (Stage eq "Expired" or Stage eq "Renewal") + for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) { + tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`); + } + searchBy = tmpSearchTerms.join(' or '); + searchBy = `(${searchBy})`; + } + else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { + // example:: (Stage ne "Expired" and Stage ne "Renewal") + for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) { + tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`); + } + searchBy = tmpSearchTerms.join(' and '); + searchBy = `(${searchBy})`; + } + } + else if (operator === '*' || lastValueChar !== '') { + // first/last character is a '*' will be a startsWith or endsWith + searchBy = operator === '*' + ? `endswith(${fieldNameTitleCase}, '${searchValue}')` + : `startswith(${fieldNameTitleCase}, '${searchValue}')`; + } + else if (fieldType === FieldType.date) { + // date field needs to be UTC and within DateTime function + const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true); + if (dateFormatted) { + searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`; + } + } + else if (fieldType === FieldType.string) { + // string field needs to be in single quotes + searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`; + } + else { + // any other field type (or undefined type) + searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`; + searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`; + } + // push to our temp array and also trim white spaces + if (searchBy !== '') { + searchByArray.push(String.trim(searchBy)); + this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms); + } + } + } + } + // build the filter query + this.odataService.updateOptions({ + filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '', + skip: undefined + }); + // reset Pagination, then build the OData query which we will use in the WebAPI callback + this.resetPaginationOptions(); + return this.odataService.buildQuery(); + } + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + onPaginationChanged(event, args) { + this.odataService.updateOptions({ + top: args.pageSize, + skip: (args.newPage - 1) * args.pageSize + }); + // build the OData query which we will use in the WebAPI callback + return this.odataService.buildQuery(); + } + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + onSortChanged(event, args) { + let /** @type {?} */ sortByArray = []; + const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc }); + // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc + if (sortColumns && sortColumns.length === 0) { + sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort + } + else { + if (sortColumns) { + for (let /** @type {?} */ column of sortColumns) { + let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id; + if (this.odataService.options.caseType === CaseType.pascalCase) { + fieldName = String.titleCase(fieldName); + } + const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc'; + const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`; + sortByArray.push(sortByColumnString); + } + } + } + // transform the sortby array into a CSV string + const /** @type {?} */ csvArray = sortByArray.join(','); + this.odataService.updateOptions({ + orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray + }); + // build the OData query which we will use in the WebAPI callback + return this.odataService.buildQuery(); + } + /** + * Mapper for mathematical operators (ex.: <= is "le", > is "gt") + * @param {?} operator + * @return {?} string map + */ + mapOperator(operator) { + let /** @type {?} */ map = ''; + switch (operator) { + case '<': + map = 'lt'; + break; + case '<=': + map = 'le'; + break; + case '>': + map = 'gt'; + break; + case '>=': + map = 'ge'; + break; + case '<>': + case '!=': + map = 'ne'; + break; + case '=': + case '==': + default: + map = 'eq'; + break; + } + return map; + } + /** + * Parse a date passed as a string and return a Date object (if valid) + * @param {?} inputDateString + * @param {?} useUtc + * @return {?} object Date + */ + parseUtcDate(inputDateString, useUtc) { + let /** @type {?} */ date = null; + if (/^[0-9\-\/]*$/.test(inputDateString)) { + // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text + const /** @type {?} */ dateString = decodeURIComponent(inputDateString); + const /** @type {?} */ dateMoment = moment$14(new Date(dateString)); + if (dateMoment.isValid() && dateMoment.year().toString().length === 4) { + date = (useUtc) ? dateMoment.utc().format() : dateMoment.format(); + } + } + return date; + } +} +GridOdataService.decorators = [ + { type: Injectable }, +]; +/** + * @nocollapse + */ +GridOdataService.ctorParameters = () => [ + { type: OdataService, }, +]; + +class SlickPaginationComponent { + constructor() { + this.dataFrom = 1; + this.dataTo = 1; + this.itemsPerPage = 25; + this.pageCount = 0; + this.pageNumber = 1; + this.totalItems = 0; + this.paginationPageSizes = [25, 75, 100]; + } + /** + * @param {?} gridPaginationOptions + * @return {?} + */ + set gridPaginationOptions(gridPaginationOptions) { + this._gridPaginationOptions = gridPaginationOptions; + if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) { + this.refreshPagination(); + } + } + /** + * @return {?} + */ + get gridPaginationOptions() { + return this._gridPaginationOptions; + } + /** + * @return {?} + */ + ngOnInit() { + } + /** + * @return {?} + */ + ngAfterViewInit() { + this._gridPaginationOptions = this._gridPaginationOptions; + if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) { + this.refreshPagination(); + } + } + /** + * @param {?} number + * @return {?} + */ + ceil(number) { + return Math.ceil(number); + } + /** + * @param {?} event + * @return {?} + */ + onChangeItemPerPage(event) { + const /** @type {?} */ itemsPerPage = (event.target.value); + this.pageCount = Math.ceil(this.totalItems / itemsPerPage); + this.pageNumber = 1; + this.itemsPerPage = itemsPerPage; + this.onPageChanged(event, this.pageNumber); + } + /** + * @param {?} event + * @return {?} + */ + changeToFirstPage(event) { + this.pageNumber = 1; + this.onPageChanged(event, this.pageNumber); + } + /** + * @param {?} event + * @return {?} + */ + changeToLastPage(event) { + this.pageNumber = this.pageCount; + this.onPageChanged(event, this.pageNumber); + } + /** + * @param {?} event + * @return {?} + */ + changeToNextPage(event) { + if (this.pageNumber < this.pageCount) { + this.pageNumber++; + this.onPageChanged(event, this.pageNumber); + } + } + /** + * @param {?} event + * @return {?} + */ + changeToPreviousPage(event) { + if (this.pageNumber > 0) { + this.pageNumber--; + this.onPageChanged(event, this.pageNumber); + } + } + /** + * @return {?} + */ + gotoFirstPage() { + this.pageNumber = 1; + this.onPageChanged(undefined, this.pageNumber); + } + /** + * @return {?} + */ + refreshPagination() { + if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) { + // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes + if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) { + this.pageNumber = 1; + this.recalculateFromToIndexes(); + } + // calculate and refresh the multiple properties of the pagination UI + this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes; + this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize; + if (this._gridPaginationOptions.onPaginationChanged) { + this.paginationCallback = this._gridPaginationOptions.onPaginationChanged; + } + this.totalItems = this._gridPaginationOptions.pagination.totalItems; + this.dataTo = this.itemsPerPage; + } + this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage); + } + /** + * @param {?=} event + * @param {?=} pageNumber + * @return {?} + */ + onPageChanged(event, pageNumber) { + this.recalculateFromToIndexes(); + if (this.dataTo > this.totalItems) { + this.dataTo = this.totalItems; + } + if (typeof this.paginationCallback === 'function') { + const /** @type {?} */ itemsPerPage = this.itemsPerPage; + this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage }); + } + } + /** + * @return {?} + */ + recalculateFromToIndexes() { + this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1; + this.dataTo = (this.pageNumber * this.itemsPerPage); + } +} +SlickPaginationComponent.decorators = [ + { type: Component, args: [{ + selector: 'slick-pagination', + template: ` +
+
+ + +
+ page {{pageNumber}} of {{pageCount}} +
+ + +
+ + + items per page, + + {{dataFrom}}-{{dataTo}} of {{totalItems}} items + + +
+ `, + styles: [` + @charset "UTF-8"; + /* pagination/pagination variables */ + /*! + * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid) + * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE) + * @author: Ghislain B. (ghiscoding) + */ + /*! + + /* SlickGrid Bootstrap variables */ + /* Used by slick-bootstrap.scss */ + /* Slickgrid container, including headers but excluding pagination */ + /* grid */ + /* cell */ + /* cell default slickgrid values */ + /* header */ + /* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */ + /* Column picker */ + /* pagination variables */ + /* Pagination styling */ + .slick-pagination { + border-top: 0 none; + border-right: 0 none; + border-bottom: 0 none; + border-left: 0 none; + width: 100%; + height: 34px; + padding-top: 4px; + vertical-align: middle; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + font-size: 13px; + font-weight: 400; + color: #808080; } + .slick-pagination .slick-pagination-status { + display: inline-block; + padding: 6px; } + .slick-pagination .ui-icon-container { + display: inline-block; + border-color: #ddd; } + .slick-pagination .slick-pagination-nav { + display: inline-block; + padding: 2px; + height: 34px; } + .slick-pagination .slick-pagination-nav nav { + display: inline-block; } + .slick-pagination .slick-pagination-nav .slick-page-number { + vertical-align: top; + margin-top: 6px; + display: inline-block; + padding: 0 5px; } + .slick-pagination .slick-pagination-nav .pagination { + margin: 0; } + .slick-pagination .slick-pagination-nav .pagination .page-link { + font-size: 13px; + border: 1px solid #ccc; } + .slick-pagination .slick-pagination-nav .pagination .page-item { + cursor: pointer; } + .slick-pagination .slick-pagination-nav .pagination .page-item a[class*="icon-seek-"] { + text-decoration: none; + font-family: "FontAwesome"; + font-size: 14px; + /*color: inherit;*/ + border-color: #c4c4c4; } + .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-first:before { + content: ""; } + .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-prev:before { + content: ""; } + .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-next:before { + content: ""; } + .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-end:before { + content: ""; } + .slick-pagination .slick-pagination-nav .pagination .page-item.disabled { + cursor: not-allowed; + font-weight: normal; } + .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*="icon-seek-"] { + color: #b8b8b8; + background-color: #f9f9f9; + border-color: #dedede; } + .slick-pagination .slick-pagination-settings { + display: block; + float: right; + padding: 2px; + vertical-align: middle; } + .slick-pagination .slick-pagination-settings select { + font-size: 12px; + line-height: 1.5; + height: 32px; + width: 62px; + padding: 5px; + border: 1px solid #ccc; + border-radius: 3px; } + .slick-pagination .slick-pagination-settings .slick-pagination-count { + padding-left: 10px; } + `] + },] }, +]; +/** + * @nocollapse + */ +SlickPaginationComponent.ctorParameters = () => []; +SlickPaginationComponent.propDecorators = { + 'gridPaginationOptions': [{ type: Input },], + 'grid': [{ type: Input },], +}; + +/** + * Options that can be passed to the Bootstrap-Datetimepicker directly + */ +const GlobalGridOptions = { + autoEdit: false, + asyncEditorLoading: false, + autoFitColumnsOnFirstLoad: true, + autoResize: { + bottomPadding: 20, + minHeight: 180, + minWidth: 300, + sidePadding: 0 + }, + enableAutoResize: true, + cellHighlightCssClass: 'slick-cell-modified', + editable: false, + enableCellNavigation: false, + enableColumnReorder: true, + enableMouseOverRow: true, + enablePagination: false, + enableSorting: true, + enableTextSelectionOnCells: true, + explicitInitialization: false, + forceFitColumns: false, + headerRowHeight: 35, + multiColumnSort: true, + pagination: { + pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100], + pageSize: 25, + totalItems: 0 + }, + rowHeight: 35, + showHeaderRow: false, + topPanelHeight: 25 +}; + +class AngularSlickgridComponent { + /** + * @param {?} resizer + * @param {?} mouseService + * @param {?} filterService + * @param {?} sortService + */ + constructor(resizer, mouseService, filterService, sortService) { + this.resizer = resizer; + this.mouseService = mouseService; + this.filterService = filterService; + this.sortService = sortService; + this._columnFilters = {}; + this.showPagination = false; + this.onFilter = new Slick.Event(); + this.gridHeight = 100; + this.gridWidth = 600; + } + /** + * @param {?} dataset + * @return {?} + */ + set dataset(dataset) { + this._dataset = dataset; + this.refreshGridData(dataset); + } + /** + * @return {?} + */ + get dataset() { + return this._dataView.getItems(); + } + /** + * @return {?} + */ + ngOnInit() { + this.gridHeightString = `${this.gridHeight}px`; + this.gridWidthString = `${this.gridWidth}px`; + } + /** + * @return {?} + */ + ngAfterViewInit() { + // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null) + this._dataset = this._dataset || []; + this._gridOptions = this.mergeGridOptions(); + this._dataView = new Slick.Data.DataView(); + this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions); + this.grid.setSelectionModel(new Slick.RowSelectionModel()); + const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); + this.grid.init(); + this._dataView.beginUpdate(); + this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView); + this._dataView.setItems(this._dataset); + this._dataView.endUpdate(); + // attach resize ONLY after the dataView is ready + this.attachResizeHook(this.grid, this._gridOptions); + } + /** + * @param {?} grid + * @param {?} options + * @param {?} dataView + * @return {?} + */ + attachDifferentHooks(grid, options, dataView) { + // attach external sorting (backend) when available or default onSort (dataView) + if (options.enableSorting) { + (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView); + } + // attach external filter (backend) when available or default onSort (dataView) + if (options.enableFiltering) { + this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters); + (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView); + } + // if enable, change background color on mouse over + if (options.enableMouseOverRow) { + this.mouseService.attachOnMouseHover(grid); + } + dataView.onRowCountChanged.subscribe((e, args) => { + grid.updateRowCount(); + grid.render(); + }); + dataView.onRowsChanged.subscribe((e, args) => { + grid.invalidateRows(args.rows); + grid.render(); + }); + } + /** + * @param {?} grid + * @param {?} options + * @return {?} + */ + attachResizeHook(grid, options) { + // expand/autofit columns on first page load + if (this._gridOptions.autoFitColumnsOnFirstLoad) { + this.grid.autosizeColumns(); + } + // auto-resize grid on browser resize + if (options.enableAutoResize) { + this.resizer.attachAutoResizeDataGrid(grid, options); + if (options.autoFitColumnsOnFirstLoad) { + grid.autosizeColumns(); + } + } + else { + this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth }); + } + } + /** + * @return {?} + */ + mergeGridOptions() { + this.gridOptions.gridId = this.gridId; + this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`; + if (this.gridOptions.enableFiltering) { + this.gridOptions.showHeaderRow = true; + } + const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions); + return options; + } + /** + * Toggle the filter row displayed on first row + * @param {?} isShowing + * @return {?} + */ + showHeaderRow(isShowing) { + this.grid.setHeaderRowVisibility(isShowing); + return isShowing; + } + /** + * Toggle the filter row displayed on first row + * @return {?} + */ + toggleHeaderRow() { + const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow; + this.grid.setHeaderRowVisibility(isShowing); + return isShowing; + } + /** + * @param {?} dataset + * @return {?} + */ + refreshGridData(dataset) { + if (dataset && this.grid) { + this._dataView.setItems(dataset); + // this.grid.setData(dataset); + this.grid.invalidate(); + this.grid.render(); + if (this._gridOptions.enablePagination) { + this.showPagination = true; + this.gridPaginationOptions = this.mergeGridOptions(); + } + if (this._gridOptions.enableAutoResize) { + // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed) + setTimeout(() => { + this.resizer.resizeGrid(this.grid, this._gridOptions); + this.grid.autosizeColumns(); + }); + } + } + } +} +AngularSlickgridComponent.decorators = [ + { type: Injectable }, + { type: Component, args: [{ + selector: 'angular-slickgrid', + template: ` +
+
+
+ + +
+ ` + },] }, +]; +/** + * @nocollapse + */ +AngularSlickgridComponent.ctorParameters = () => [ + { type: ResizerService, }, + { type: MouseService, }, + { type: FilterService, }, + { type: SortService, }, +]; +AngularSlickgridComponent.propDecorators = { + 'gridId': [{ type: Input },], + 'columnDefinitions': [{ type: Input },], + 'gridOptions': [{ type: Input },], + 'gridHeight': [{ type: Input },], + 'gridWidth': [{ type: Input },], + 'dataset': [{ type: Input },], +}; + +class AngularSlickgridModule { +} +AngularSlickgridModule.decorators = [ + { type: NgModule, args: [{ + imports: [ + CommonModule + ], + declarations: [ + AngularSlickgridComponent, + SlickPaginationComponent + ], + exports: [ + AngularSlickgridComponent, + SlickPaginationComponent + ], + providers: [ + GraphqlService, + MouseService, + OdataService, + FilterService, + SortService, + ResizerService + ] + },] }, +]; +/** + * @nocollapse + */ +AngularSlickgridModule.ctorParameters = () => []; + +// Public classes. + +/** + * Generated bundle index. Do not edit. + */ + +export { CaseType, FormElementType, FieldType, FilterConditions, FilterTemplates, Formatters, Sorters, FilterService, MouseService, ResizerService, SortService, GraphqlService, GridOdataService, SlickPaginationComponent, AngularSlickgridComponent, AngularSlickgridModule, FilterService as ɵd, MouseService as ɵc, ResizerService as ɵb, SortService as ɵe, OdataService as ɵa }; +//# sourceMappingURL=angular-slickgrid.js.map diff --git a/dist/angular-slickgrid/angular-slickgrid.js.map b/dist/angular-slickgrid/angular-slickgrid.js.map new file mode 100644 index 000000000..c01252f90 --- /dev/null +++ b/dist/angular-slickgrid/angular-slickgrid.js.map @@ -0,0 +1 @@ +{"version":3,"file":"angular-slickgrid.js","sources":["~/angular-slickgrid/angular-slickgrid/angular-slickgrid.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/global-grid-options.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/components/slick-pagination.component.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/grid-odata.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/odata.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/global-utilities.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/graphql.service.ts","../../node_modules/graphql-query-builder/index.js","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/sort.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/resizer.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/mouse.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/filter.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/stringSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/numericSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateUsSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/yesNoFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/ProgressBarFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/percentCompleteBarFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/percentCompleteFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateUsFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/CheckmarkFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/CheckboxFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.ts","../../node_modules/moment-mini/moment.min.js","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/fieldType.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/formElementType.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/caseType.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {CaseType,Column,Formatter,GridOption,FormElementType,FieldType,FilterConditions,FilterTemplates,Formatters,Sorters,FilterService,MouseService,ResizerService,SortService,GraphqlService,GridOdataService,SlickPaginationComponent,AngularSlickgridComponent,AngularSlickgridModule} from './public_api';\n\nexport {FilterService as ɵd,MouseService as ɵc,ResizerService as ɵb,SortService as ɵe} from './src/app/modules/angular-slickgrid/services/index';\nexport {OdataService as ɵa} from './src/app/modules/angular-slickgrid/services/odata.service';","// Public classes.\nexport { CaseType } from './models/caseType';\nexport { Column } from './models/column.interface';\nexport { Formatter } from './models/formatter.interface';\nexport { GridOption } from './models/gridOption.interface';\nexport { FormElementType } from './models/formElementType';\nexport { FieldType } from './models/fieldType';\n\nexport { FilterConditions } from './filter-conditions/index';\nexport { FilterTemplates } from './filter-templates/index';\nexport { Formatters } from './formatters/index';\nexport { Sorters } from './sorters/index';\n\nexport { FilterService } from './services/filter.service';\nexport { MouseService } from './services/mouse.service';\nexport { ResizerService } from './services/resizer.service';\nexport { SortService } from './services/sort.service';\nexport { GraphqlService } from './services/graphql.service';\nexport { GridOdataService } from './services/grid-odata.service';\n\nexport { SlickPaginationComponent } from './components/slick-pagination.component';\nexport { AngularSlickgridComponent } from './components/angular-slickgrid.component';\nexport { AngularSlickgridModule } from './modules/angular-slickgrid.module';\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Formatters } from './../formatters/index';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { GraphqlService } from './../services/graphql.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\nexport class AngularSlickgridModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n providers: [\n GraphqlService,\n MouseService,\n OdataService,\n FilterService,\n SortService,\n ResizerService\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction AngularSlickgridModule_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { Column, ColumnFilters, FormElementType, GridOption } from './../models/index';\nimport { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core';\nimport { FilterService, MouseService, SortService, ResizerService } from './../services/index';\nimport { GlobalGridOptions } from './../global-grid-options';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class AngularSlickgridComponent implements AfterViewInit, OnInit {\nprivate _dataset: any[];\nprivate _dataView: any;\nprivate _gridOptions: GridOption;\nprivate _columnFilters: ColumnFilters = {};\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n showPagination = false;\n onFilter = new Slick.Event();\n\n gridId: string;\n columnDefinitions: Column[];\n gridOptions: GridOption;\n gridHeight = 100;\n gridWidth = 600;\n/**\n * @param {?} dataset\n * @return {?}\n */\nset dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n/**\n * @return {?}\n */\nget dataset(): any[] {\n return this._dataView.getItems();\n }\n/**\n * @param {?} resizer\n * @param {?} mouseService\n * @param {?} filterService\n * @param {?} sortService\n */\nconstructor(private resizer: ResizerService,\nprivate mouseService: MouseService,\nprivate filterService: FilterService,\nprivate sortService: SortService) {\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this._gridOptions = this.mergeGridOptions();\n\n this._dataView = new Slick.Data.DataView();\n\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions);\n this.grid.setSelectionModel(new Slick.RowSelectionModel());\n const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions);\n\n this.grid.init();\n this._dataView.beginUpdate();\n this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView);\n\n this._dataView.setItems(this._dataset);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this._gridOptions);\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @param {?} dataView\n * @return {?}\n */\nattachDifferentHooks(grid: any, options: GridOption, dataView: any) {\n // attach external sorting (backend) when available or default onSort (dataView)\n if (options.enableSorting) {\n (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView);\n }\n\n // attach external filter (backend) when available or default onSort (dataView)\n if (options.enableFiltering) {\n this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters);\n (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView);\n }\n\n // if enable, change background color on mouse over\n if (options.enableMouseOverRow) {\n this.mouseService.attachOnMouseHover(grid);\n }\n\n dataView.onRowCountChanged.subscribe((e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n dataView.onRowsChanged.subscribe((e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\nattachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (this._gridOptions.autoFitColumnsOnFirstLoad) {\n this.grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid(grid, options);\n if (options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n } else {\n this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth });\n }\n }\n/**\n * @return {?}\n */\nmergeGridOptions(): GridOption {\n this.gridOptions.gridId = this.gridId;\n this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (this.gridOptions.enableFiltering) {\n this.gridOptions.showHeaderRow = true;\n }\n const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions);\n return options;\n }\n/**\n * Toggle the filter row displayed on first row\n * @param {?} isShowing\n * @return {?}\n */\nshowHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * Toggle the filter row displayed on first row\n * @return {?}\n */\ntoggleHeaderRow() {\n const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * @param {?} dataset\n * @return {?}\n */\nrefreshGridData(dataset: any) {\n if (dataset && this.grid) {\n this._dataView.setItems(dataset);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this._gridOptions.enablePagination) {\n this.showPagination = true;\n this.gridPaginationOptions = this.mergeGridOptions();\n }\n if (this._gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n setTimeout(() => {\n this.resizer.resizeGrid(this.grid, this._gridOptions);\n this.grid.autosizeColumns();\n });\n }\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n{ type: Component, args: [{\n selector: 'angular-slickgrid',\n template: `\n
\n
\n
\n\n \n
\n `\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ResizerService, },\n{type: MouseService, },\n{type: FilterService, },\n{type: SortService, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridId': [{ type: Input },],\n'columnDefinitions': [{ type: Input },],\n'gridOptions': [{ type: Input },],\n'gridHeight': [{ type: Input },],\n'gridWidth': [{ type: Input },],\n'dataset': [{ type: Input },],\n};\n}\n\nfunction AngularSlickgridComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridComponent.ctorParameters;\n/** @type {?} */\nAngularSlickgridComponent.propDecorators;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataset;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataView;\n/** @type {?} */\nAngularSlickgridComponent.prototype._gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype._columnFilters;\n/** @type {?} */\nAngularSlickgridComponent.prototype.grid;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridPaginationOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeightString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidthString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.showPagination;\n/** @type {?} */\nAngularSlickgridComponent.prototype.onFilter;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridId;\n/** @type {?} */\nAngularSlickgridComponent.prototype.columnDefinitions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeight;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidth;\n/** @type {?} */\nAngularSlickgridComponent.prototype.resizer;\n/** @type {?} */\nAngularSlickgridComponent.prototype.mouseService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.filterService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.sortService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './models/index';\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n enableAutoResize: true,\n cellHighlightCssClass: 'slick-cell-modified',\n editable: false,\n enableCellNavigation: false,\n enableColumnReorder: true,\n enableMouseOverRow: true,\n enablePagination: false,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: false,\n forceFitColumns: false,\n headerRowHeight: 35,\n multiColumnSort: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 25\n};\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { Column, GridOption } from './../models/index';\nexport class SlickPaginationComponent implements AfterViewInit, OnInit {\nprivate _gridPaginationOptions: GridOption;\n/**\n * @param {?} gridPaginationOptions\n * @return {?}\n */\nset gridPaginationOptions(gridPaginationOptions: GridOption) {\n this._gridPaginationOptions = gridPaginationOptions;\n if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @return {?}\n */\nget gridPaginationOptions(): GridOption {\n return this._gridPaginationOptions;\n }\n grid: any;\n dataFrom = 1;\n dataTo = 1;\n itemsPerPage = 25;\n pageCount = 0;\n pageNumber = 1;\n totalItems = 0;\n paginationCallback: Function;\n paginationPageSizes = [25, 75, 100];\nconstructor() { }\n/**\n * @return {?}\n */\nngOnInit() {\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n this._gridPaginationOptions = this._gridPaginationOptions;\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @param {?} number\n * @return {?}\n */\nceil(number: number) {\n return Math.ceil(number);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nonChangeItemPerPage(event: any) {\n const /** @type {?} */ itemsPerPage = /** @type {?} */(( event.target.value));\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\n this.pageNumber = 1;\n this.itemsPerPage = itemsPerPage;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToFirstPage(event: any) {\n this.pageNumber = 1;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToLastPage(event: any) {\n this.pageNumber = this.pageCount;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToNextPage(event: any) {\n if (this.pageNumber < this.pageCount) {\n this.pageNumber++;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToPreviousPage(event: any) {\n if (this.pageNumber > 0) {\n this.pageNumber--;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @return {?}\n */\ngotoFirstPage() {\n this.pageNumber = 1;\n this.onPageChanged(undefined, this.pageNumber);\n }\n/**\n * @return {?}\n */\nrefreshPagination() {\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\n if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) {\n this.pageNumber = 1;\n this.recalculateFromToIndexes();\n }\n\n // calculate and refresh the multiple properties of the pagination UI\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\n this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize;\n if (this._gridPaginationOptions.onPaginationChanged) {\n this.paginationCallback = this._gridPaginationOptions.onPaginationChanged;\n }\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\n this.dataTo = this.itemsPerPage;\n }\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n/**\n * @param {?=} event\n * @param {?=} pageNumber\n * @return {?}\n */\nonPageChanged(event?: Event, pageNumber?: number) {\n this.recalculateFromToIndexes();\n\n if (this.dataTo > this.totalItems) {\n this.dataTo = this.totalItems;\n }\n if (typeof this.paginationCallback === 'function') {\n const /** @type {?} */ itemsPerPage = this.itemsPerPage;\n this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage });\n }\n }\n/**\n * @return {?}\n */\nrecalculateFromToIndexes() {\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\n this.dataTo = (this.pageNumber * this.itemsPerPage);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n selector: 'slick-pagination',\n template: `\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n `,\n styles: [`\n @charset \"UTF-8\";\n /* pagination/pagination variables */\n /*!\r\n * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid)\r\n * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE)\r\n * @author: Ghislain B. (ghiscoding)\r\n */\n /*!\r\n\r\n /* SlickGrid Bootstrap variables */\n /* Used by slick-bootstrap.scss */\n /* Slickgrid container, including headers but excluding pagination */\n /* grid */\n /* cell */\n /* cell default slickgrid values */\n /* header */\n /* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */\n /* Column picker */\n /* pagination variables */\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080; }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px; }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd; }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px; }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block; }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px; }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0; }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n border: 1px solid #ccc; }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer; }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-family: \"FontAwesome\";\n font-size: 14px;\n /*color: inherit;*/\n border-color: #c4c4c4; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-first:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-prev:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-next:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-end:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n color: #b8b8b8;\n background-color: #f9f9f9;\n border-color: #dedede; }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle; }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px; }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px; }\n `]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridPaginationOptions': [{ type: Input },],\n'grid': [{ type: Input },],\n};\n}\n\nfunction SlickPaginationComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nSlickPaginationComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSlickPaginationComponent.ctorParameters;\n/** @type {?} */\nSlickPaginationComponent.propDecorators;\n/** @type {?} */\nSlickPaginationComponent.prototype._gridPaginationOptions;\n/** @type {?} */\nSlickPaginationComponent.prototype.grid;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataFrom;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataTo;\n/** @type {?} */\nSlickPaginationComponent.prototype.itemsPerPage;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageCount;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageNumber;\n/** @type {?} */\nSlickPaginationComponent.prototype.totalItems;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationCallback;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationPageSizes;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType, FilterChangedArgs, FieldType, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models/index';\nimport { OdataService } from './odata.service';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_;\nexport class GridOdataService {\n defaultSortBy = '';\n minUserInactivityOnFilter = 700;\n/**\n * @param {?} odataService\n */\nconstructor(private odataService: OdataService) { }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} options\n * @return {?}\n */\ninitOptions(options: OdataOption): void {\n this.odataService.options = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n this.odataService.removeColumnFilter(fieldName);\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n this.odataService.updateOptions({\n skip: 0\n });\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n this.odataService.saveColumnFilter(fieldName, value, terms);\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n let /** @type {?} */ searchBy: string = '';\n let /** @type {?} */ timer: any = 0;\n const /** @type {?} */ searchByArray = [];\n\n // loop through all columns to inspect filters\n for (const /** @type {?} */ columnId in args.columnFilters) {\n if (args.columnFilters.hasOwnProperty(columnId)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnDef = columnFilter.columnDef;\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || 'string';\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n if (typeof fieldSearchValue !== 'string') {\n throw new Error(`OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n const /** @type {?} */ searchTerms = columnFilter.listTerm || [];\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n let /** @type {?} */ searchValue = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false;\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '') {\n this.removeColumnFilter(fieldName);\n continue;\n }\n\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n searchValue = encodeURIComponent(searchValue); // encode URI of the final search value\n\n // extra query arguments\n if (bypassOdataQuery) {\n // push to our temp array and also trim white spaces\n if (fieldName) {\n this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms);\n }\n } else {\n let /** @type {?} */ searchBy = '';\n\n // titleCase the fieldName so that it matches the WebApi names\n const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || '');\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `(${searchBy})`;\n }\n } else if (operator === '*' || lastValueChar !== '') {\n // first/last character is a '*' will be a startsWith or endsWith\n searchBy = operator === '*'\n ? `endswith(${fieldNameTitleCase}, '${searchValue}')`\n : `startswith(${fieldNameTitleCase}, '${searchValue}')`;\n } else if (fieldType === FieldType.date) {\n // date field needs to be UTC and within DateTime function\n const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true);\n if (dateFormatted) {\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`;\n }\n } else if (fieldType === FieldType.string) {\n // string field needs to be in single quotes\n searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`;\n } else {\n // any other field type (or undefined type)\n searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`;\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`;\n }\n\n // push to our temp array and also trim white spaces\n if (searchBy !== '') {\n searchByArray.push(String.trim(searchBy));\n this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms);\n }\n }\n }\n }\n\n // build the filter query\n this.odataService.updateOptions({\n filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '',\n skip: undefined\n });\n\n // reset Pagination, then build the OData query which we will use in the WebAPI callback\n this.resetPaginationOptions();\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n this.odataService.updateOptions({\n top: args.pageSize,\n skip: (args.newPage - 1) * args.pageSize\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n let /** @type {?} */ sortByArray = [];\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc\n if (sortColumns && sortColumns.length === 0) {\n sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort\n } else {\n if (sortColumns) {\n for (let /** @type {?} */ column of sortColumns) {\n let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id;\n if (this.odataService.options.caseType === CaseType.pascalCase) {\n fieldName = String.titleCase(fieldName);\n }\n const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc';\n const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`;\n sortByArray.push(sortByColumnString);\n }\n }\n }\n\n // transform the sortby array into a CSV string\n const /** @type {?} */ csvArray = sortByArray.join(',');\n this.odataService.updateOptions({\n orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * Mapper for mathematical operators (ex.: <= is \"le\", > is \"gt\")\n * @param {?} operator\n * @return {?} string map\n */\nprivate mapOperator(operator: string) {\n let /** @type {?} */ map = '';\n switch (operator) {\n case '<':\n map = 'lt';\n break;\n case '<=':\n map = 'le';\n break;\n case '>':\n map = 'gt';\n break;\n case '>=':\n map = 'ge';\n break;\n case '<>':\n case '!=':\n map = 'ne';\n break;\n case '=':\n case '==':\n default:\n map = 'eq';\n break;\n }\n\n return map;\n }\n/**\n * Parse a date passed as a string and return a Date object (if valid)\n * @param {?} inputDateString\n * @param {?} useUtc\n * @return {?} object Date\n */\nprivate parseUtcDate(inputDateString: string, useUtc: boolean) {\n let /** @type {?} */ date = null;\n\n if (/^[0-9\\-\\/]*$/.test(inputDateString)) {\n // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text\n const /** @type {?} */ dateString = decodeURIComponent(inputDateString);\n const /** @type {?} */ dateMoment = moment(new Date(dateString));\n if (dateMoment.isValid() && dateMoment.year().toString().length === 4) {\n date = (useUtc) ? dateMoment.utc().format() : dateMoment.format();\n }\n }\n\n return date;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: OdataService, },\n];\n}\n\nfunction GridOdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nGridOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGridOdataService.ctorParameters;\n/** @type {?} */\nGridOdataService.prototype.defaultSortBy;\n/** @type {?} */\nGridOdataService.prototype.minUserInactivityOnFilter;\n/** @type {?} */\nGridOdataService.prototype.odataService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { CaseType } from '../models/caseType';\nimport'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { OdataOption } from './../models/index';\nexport class OdataService {\n _columnFilters: any;\n _defaultSortBy: string;\n _odataOptions: OdataOption;\nconstructor() {\n this._odataOptions = {\n filterQueue: [],\n orderBy: ''\n };\n this._defaultSortBy = '';\n this._columnFilters = {};\n }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ queryTmpArray = [];\n\n if (this._odataOptions.top) {\n queryTmpArray.push(`$top=${this._odataOptions.top}`);\n }\n if (this._odataOptions.skip) {\n queryTmpArray.push(`$skip=${this._odataOptions.skip}`);\n }\n if (this._odataOptions.orderBy) {\n let /** @type {?} */ argument = '';\n if (Array.isArray(this._odataOptions.orderBy)) {\n argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc\n } else {\n argument = this._odataOptions.orderBy;\n }\n queryTmpArray.push(`$orderby=${argument}`);\n }\n if (this._odataOptions.filterBy || this._odataOptions.filter) {\n if (this._odataOptions.filter) {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ filterStr = this._odataOptions.filter;\n if (Array.isArray(this._odataOptions.filter)) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n filterStr = this._odataOptions.filter.join(separatorSpacedOut);\n }\n this._odataOptions.filterQueue.push(`(${filterStr})`);\n }\n // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered\n if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) {\n if (this._odataOptions.filterBy.searchTerm !== '') {\n this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm);\n this.updateFilterFromListTerms(this._odataOptions.filterBy);\n }\n }\n }\n if (this._odataOptions.filterQueue.length > 0) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut);\n this._odataOptions.filter = query; // overwrite with\n queryTmpArray.push(`$filter=${query}`);\n }\n\n // join all the odata functions by a '&'\n return queryTmpArray.join('&');\n }\n/**\n * @param {?} columnName\n * @return {?}\n */\ngetFilterByColumn(columnName: string): string {\n return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null;\n }\n/**\n * @return {?}\n */\ngetFilterCount(): number {\n return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0;\n }\n/**\n * @return {?}\n */\nget columnFilters(): any[] {\n return this._columnFilters;\n }\n/**\n * @return {?}\n */\nget options(): OdataOption {\n return this._odataOptions;\n }\n/**\n * @param {?} options\n * @return {?}\n */\nset options(options: OdataOption) {\n this._odataOptions = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string) {\n delete this._columnFilters[fieldName];\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} searchTerms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: any, searchTerms?: any[]) {\n this._columnFilters[fieldName] = {\n search: searchTerms,\n value: value\n };\n }\n/**\n * Update the filter by a list of terms usually passed manually by the user as default filters\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromListTerms(filterOptions: any) {\n // build the filter query\n if (Array.isArray(filterOptions)) {\n filterOptions.forEach((filterOptionObject) => {\n this.updateFilterFromTerm(filterOptionObject);\n });\n } else {\n this.updateFilterFromTerm(filterOptions);\n }\n }\n/**\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromTerm(filterOptions: any) {\n let /** @type {?} */ searchBy = '';\n const /** @type {?} */ tmpSearchByArray = [];\n const /** @type {?} */ fieldName = filterOptions.fieldName;\n const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm;\n const /** @type {?} */ operator = filterOptions.operator;\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (!!fieldSearchTerms && fieldSearchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `$(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `$(${searchBy})`;\n }\n }\n\n // push to our temp array and also trim white spaces\n tmpSearchByArray.push(String.trim(searchBy));\n\n // add to the filter queue only if it doesn't exist in the queue\n const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : '';\n if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) {\n this._odataOptions.filterQueue.push(filter);\n }\n }\n/**\n * Change any OData options that will be used to build the query\n * @param {?} options\n * @return {?}\n */\nupdateOptions(options: OdataOption) {\n for (const /** @type {?} */ property of Object.keys(options)) {\n if (options.hasOwnProperty(property)) {\n this._odataOptions[property] = options[property]; // replace of the property\n }\n\n // we need to keep the defaultSortBy for references whenever the user removes his Sorting\n // then we would revert to the defaultSortBy and the only way is to keep a hard copy here\n if (property === 'orderBy' || property === 'sortBy') {\n let /** @type {?} */ sortBy = options[property];\n\n // make sure first char of each orderBy field is capitalize\n if (this._odataOptions.caseType === CaseType.pascalCase) {\n if (Array.isArray(sortBy)) {\n sortBy.forEach((field, index, inputArray) => {\n inputArray[index] = String.titleCase(field);\n });\n } else {\n sortBy = String.titleCase(options[property]);\n }\n }\n this._odataOptions.orderBy = sortBy;\n this._defaultSortBy = sortBy;\n }\n }\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOdataService.ctorParameters;\n/** @type {?} */\nOdataService.prototype._columnFilters;\n/** @type {?} */\nOdataService.prototype._defaultSortBy;\n/** @type {?} */\nOdataService.prototype._odataOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","declare interface StringConstructor {\n allTitleCase(inputStr: string): string;\n format(inputStr: string, args: any): string;\n padZero(length: number): string;\n trim(inputStr: string): string;\n titleCase(inputStr: string): string;\n}\n\n\nString.format = function(format: string, args): string {\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] !== 'undefined') ? args[number] : match;\n });\n};\n\nString.padZero = function (this: string, length: number) {\n let /** @type {?} */ s = this;\n while (s.length < length) {\n s = '0' + s;\n }\n return s;\n};\n\n/**\n * Trim any extra white space from the string\n * @param string inputStr\n * @returns string outputStr\n */\nString.trim = function(inputStr: string): string {\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n */\nString.allTitleCase = function(inputStr: string): string {\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\n });\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n*/\nString.titleCase = function(inputStr: string): string {\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\n};\n","import { CaseType, FilterChangedArgs, FieldType, GraphqlServiceOption, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models/index';\nimport QueryBuilder from 'graphql-query-builder';\nexport class GraphqlService {\n serviceOptions: GraphqlServiceOption = {};\n/**\n * Build the GraphQL query, since the service include/exclude cursor, the output query will be different.\n * @param {?=} serviceOptions GraphqlServiceOption\n * @return {?}\n */\nbuildQuery(serviceOptions?: GraphqlServiceOption) {\n if (!this.serviceOptions.datasetName || !this.serviceOptions.dataFilters) {\n throw new Error('GraphQL Service requires \"datasetName\" & \"dataFilters\" properties for it to work');\n }\n const /** @type {?} */ pageFilterQb = new QueryBuilder(this.serviceOptions.datasetName);\n const /** @type {?} */ pageInfoQb = new QueryBuilder('pageInfo');\n const /** @type {?} */ dataQb = (this.serviceOptions.isWithCursor) ? new QueryBuilder('edges') : new QueryBuilder('nodes');\n\n if (this.serviceOptions.isWithCursor) {\n pageInfoQb.find('hasNextPage', 'endCursor');\n dataQb.find(['cursor', {'node': this.serviceOptions.dataFilters}]);\n } else {\n pageInfoQb.find('hasNextPage');\n dataQb.find(this.serviceOptions.dataFilters);\n }\n pageFilterQb.find(['totalCount', pageInfoQb, dataQb]);\n pageFilterQb.filter(this.serviceOptions.paginationOptions);\n\n return pageFilterQb.toString();\n }\n/**\n * @param {?=} serviceOptions\n * @return {?}\n */\ninitOptions(serviceOptions?: GraphqlServiceOption): void {\n this.serviceOptions = serviceOptions || {};\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n let /** @type {?} */ paginationOptions;\n if (this.serviceOptions.isWithCursor) {\n // first, last, after, before\n paginationOptions = {\n after: '',\n before: undefined,\n last: undefined\n };\n } else {\n // first, last, offset\n paginationOptions = {\n offset: 0\n };\n }\n this.updateOptions({ paginationOptions: paginationOptions });\n }\n/**\n * @param {?=} serviceOptions\n * @return {?}\n */\nupdateOptions(serviceOptions?: GraphqlServiceOption) {\n this.serviceOptions = { ...this.serviceOptions, ...serviceOptions };\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n let /** @type {?} */ paginationOptions;\n if (this.serviceOptions.isWithCursor) {\n paginationOptions = {\n first: args.pageSize\n };\n } else {\n paginationOptions = {\n first: args.pageSize,\n offset: (args.newPage - 1) * args.pageSize\n };\n }\n\n this.updateOptions({ paginationOptions: paginationOptions });\n\n // build the OData query which we will use in the WebAPI callback\n return this.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n // will use sorting as per a FB suggestion\n // https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222\n }\n}\n\nfunction GraphqlService_tsickle_Closure_declarations() {\n/** @type {?} */\nGraphqlService.prototype.serviceOptions;\n}\n\n","\"use strict\";\n\n//=====================================================\n//============================ parce properties to find\n//=====================================================\n\nfunction parceFind(_levelA) {\n \n//+++++++++++++++++++++++++++++++++++ work over Array\n//++++++++++++++++++++++++++++++++++++++++++++++++++++\n \n let propsA = _levelA.map(function(currentValue, index) {\n \n let itemX = _levelA[index];\n \n if( itemX instanceof Query){\n return itemX.toString();\n } else if ( ! Array.isArray(itemX) && \"object\" === typeof itemX ) {\n let propsA = Object.keys(itemX);\n if ( 1 !== propsA.length) {\n throw new RangeError(\"Alias objects should only have one value. was passed: \"+JSON.stringify(itemX));\n }\n let propS = propsA[0];\n let item = itemX[propS];\n // contributor: https://github.com/charlierudolph/graphql-query-builder/commit/878328e857e92d140f5ba6f7cfe07837620ec490\n if (Array.isArray(item)) {\n return new Query(propS).find(item)\n }\n return `${propS} : ${item} `;\n } else if ( \"string\" === typeof itemX ) {\n return itemX;\n } else {\n throw new RangeError(\"cannot handle Find value of \"+itemX);\n }\n });\n \n return propsA.join(\",\");\n}\n\n//=====================================================\n//=================================== get GraphQL Value\n//=====================================================\n\nfunction getGraphQLValue(value) {\n if (\"string\" === typeof value) {\n value = JSON.stringify(value);\n } else if (Array.isArray(value)) {\n value = value.map(item => {\n return getGraphQLValue(item);\n }).join();\n value = `[${value}]`;\n } else if (\"object\" === typeof value) {\n /*if (value.toSource)\n value = value.toSource().slice(2,-2);\n else*/\n value = objectToString(value);\n //console.error(\"No toSource!!\",value);\n }\n return value;\n}\n\nfunction objectToString(obj) {\n \n let sourceA = [];\n \n for(let prop in obj){\n if (\"function\" === typeof obj[prop]) {\n continue;\n }\n // if (\"object\" === typeof obj[prop]) {\n sourceA.push(`${prop}:${getGraphQLValue(obj[prop])}`);\n // } else {\n // sourceA.push(`${prop}:${obj[prop]}`);\n // }\n }\n return `{${sourceA.join()}}`;\n}\n\n\n\n\n//=====================================================\n//========================================= Query Class\n//=====================================================\n\nfunction Query(_fnNameS, _aliasS_OR_Filter){\n \n this.fnNameS = _fnNameS;\n this.headA = [];\n \n this.filter = (filtersO) => {\n \n for(let propS in filtersO){\n if (\"function\" === typeof filtersO[propS]) {\n continue;\n }\n let val = getGraphQLValue(filtersO[propS]);\n if (\"{}\" === val) {\n continue;\n }\n this.headA.push( `${propS}:${val}` );\n } \n return this;\n };\n \n if (\"string\" === typeof _aliasS_OR_Filter) {\n this.aliasS = _aliasS_OR_Filter;\n } else if (\"object\" === typeof _aliasS_OR_Filter) {\n this.filter(_aliasS_OR_Filter);\n } else if (undefined === _aliasS_OR_Filter && 2 === arguments.length){\n throw new TypeError(\"You have passed undefined as Second argument to 'Query'\");\n } else if (undefined !== _aliasS_OR_Filter){\n throw new TypeError(\"Second argument to 'Query' should be an alias name(String) or filter arguments(Object). was passed \"+_aliasS_OR_Filter);\n }\n\n this.setAlias = (_aliasS) =>{\n this.aliasS = _aliasS;\n return this;\n };\n \n this.find = function(findA) { // THIS NEED TO BE A \"FUNCTION\" to scope 'arguments'\n if( ! findA){\n throw new TypeError(\"find value can not be >>falsy<<\");\n }\n // if its a string.. it may have other values\n // else it sould be an Object or Array of maped values\n this.bodyS = parceFind((Array.isArray(findA)) ? findA : Array.from(arguments));\n return this;\n };\n}\n\n//=====================================================\n//===================================== Query prototype\n//=====================================================\n\nQuery.prototype = {\n \n toString : function(){\n if (undefined === this.bodyS) {\n throw new ReferenceError(\"return properties are not defined. use the 'find' function to defined them\");\n }\n \n return `${ (this.aliasS) ? (this.aliasS + \":\") : \"\" } ${this.fnNameS } ${ (0 < this.headA.length)?\"(\"+this.headA.join(\",\")+\")\":\"\" } { ${ this.bodyS } }`;\n }\n};\n\nmodule.exports = Query;\n","import { GridOption } from './../models/gridOption.interface';\nimport { FieldType } from './../models/fieldType';\nimport { Sorter } from './../models/sorter.interface';\nimport { Sorters } from './../sorters/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\nexport class SortService {\n subscriber: any;\nconstructor() { }\n/**\n * Attach a backend sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @return {?}\n */\nattachBackendOnSort(grid: any, gridOptions: GridOption) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe(gridOptions.onSortChanged);\n }\n/**\n * Attach a local sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n dataView.sort(function (dataRow1: any, dataRow2: any) {\n for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) {\n const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1;\n const /** @type {?} */ sortField = sortColumns[i].sortCol.field;\n const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string';\n const /** @type {?} */ value1 = dataRow1[sortField];\n const /** @type {?} */ value2 = dataRow2[sortField];\n let /** @type {?} */ result = 0;\n\n switch (fieldType) {\n case FieldType.number:\n result = Sorters.numeric(value1, value2, sortDirection);\n break;\n case FieldType.date:\n result = Sorters.date(value1, value2, sortDirection);\n break;\n case FieldType.dateIso:\n result = Sorters.dateIso(value1, value2, sortDirection);\n break;\n case FieldType.dateUs:\n result = Sorters.dateUs(value1, value2, sortDirection);\n break;\n case FieldType.dateUsShort:\n result = Sorters.dateUsShort(value1, value2, sortDirection);\n break;\n default:\n result = Sorters.string(value1, value2, sortDirection);\n break;\n }\n\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n });\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction SortService_tsickle_Closure_declarations() {\n/** @type {?} */\nSortService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSortService.ctorParameters;\n/** @type {?} */\nSortService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './../models/index';\nimport { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\n\ndeclare var $: any;\n\n// global constants, height/width are in pixels\nconst /** @type {?} */ DATAGRID_MIN_HEIGHT = 180;\nconst /** @type {?} */ DATAGRID_MIN_WIDTH = 300;\nconst /** @type {?} */ DATAGRID_BOTTOM_PADDING = 20;\nconst /** @type {?} */ DATAGRID_PAGINATION_HEIGHT = 35;\nexport class ResizerService {\n/**\n * @param {?} router\n */\nconstructor(private router: Router) {\n }\n/**\n * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\n * Options: we could also provide a % factor to resize on each height/width independently\n * @param {?} grid\n * @param {?} gridOptions\n * @return {?}\n */\nattachAutoResizeDataGrid(grid: any, gridOptions: GridOption) {\n // if we can't find the grid to resize, return without attaching anything\n const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`);\n if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') {\n return null;\n }\n\n // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load)\n this.resizeGrid(grid, gridOptions);\n\n // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load\n // -- attach auto-resize to Window object only if it exist\n $(window).on('resize.grid', () => {\n this.resizeGrid(grid, gridOptions);\n });\n\n // destroy the resizer on route change\n this.router.events.subscribe((event: NavigationEnd) => {\n this.destroy();\n });\n }\n/**\n * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation\n * object gridOptions\n * @param {?} gridOptions\n * @return {?}\n */\ncalculateGridNewDimensions(gridOptions: GridOption) {\n let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING;\n if (bottomPadding && gridOptions.enablePagination) {\n bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding\n }\n if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') {\n return;\n }\n const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding;\n const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width();\n const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT;\n const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH;\n\n let /** @type {?} */ newHeight = availableHeight;\n let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth;\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n return {\n height: newHeight,\n width: newWidth\n };\n }\n/**\n * Destroy function when element is destroyed\n * @return {?}\n */\ndestroy() {\n $(window).trigger('resize.grid').off('resize');\n }\n/**\n * Resize the datagrid to fit the browser height & width\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?=} newSizes\n * @return {?}\n */\nresizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}) {\n // calculate new available sizes but with minimum height of 220px\n newSizes = newSizes || this.calculateGridNewDimensions(gridOptions);\n\n if (newSizes) {\n // apply these new height/width to the datagrid\n $(`#${gridOptions.gridId}`).height(newSizes.height);\n $(`#${gridOptions.gridId}`).width(newSizes.width);\n $(`#${gridOptions.gridContainerId}`).height(newSizes.height);\n $(`#${gridOptions.gridContainerId}`).width(newSizes.width);\n\n // resize the slickgrid canvas on all browser except some IE versions\n // exclude all IE below IE11\n // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape'\n if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) {\n grid.resizeCanvas();\n }\n\n // also call the grid auto-size columns so that it takes available when going bigger\n grid.autosizeColumns();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Router, },\n];\n}\n\nfunction ResizerService_tsickle_Closure_declarations() {\n/** @type {?} */\nResizerService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nResizerService.ctorParameters;\n/** @type {?} */\nResizerService.prototype.router;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\nexport class MouseService {\n/**\n * @param {?} grid\n * @return {?}\n */\nattachOnMouseHover(grid: any) {\n grid.onMouseEnter.subscribe(function (e: any) {\n const /** @type {?} */ cell = grid.getCellFromEvent(e);\n if (cell && cell.row >= 0) {\n grid.setSelectedRows([cell.row]);\n e.preventDefault();\n }\n });\n grid.onMouseLeave.subscribe(function (e: any) {\n grid.setSelectedRows([]);\n e.preventDefault();\n });\n }\n}\n","import { FilterConditions } from '../filter-conditions/index';\nimport { Column, ColumnFilters, FieldType, FilterChangedArgs, FormElementType, GridOption } from '../models/index';\nimport { FilterTemplates } from './../filter-templates/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class FilterService {\n _columnDefinitions: Column[];\n _columnFilters: ColumnFilters;\n _dataView: any;\n _grid: any;\n _gridOptions: GridOption;\n subscriber: any;\nconstructor() { }\n/**\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?} columnDefinitions\n * @param {?} columnFilters\n * @return {?}\n */\ninit(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any) {\n this._columnDefinitions = columnDefinitions;\n this._columnFilters = columnFilters;\n this._gridOptions = gridOptions;\n this._grid = grid;\n }\n/**\n * Attach a backend filter hook to the grid\n * @return {?}\n */\nattachBackendOnFilter() {\n this.subscriber = new Slick.Event();\n this.subscriber.subscribe(this._gridOptions.onFilterChanged);\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} operator\n * @param {?} value1\n * @param {?} value2\n * @return {?}\n */\ntestFilterCondition(operator: string, value1: any, value2: any) {\n switch (operator) {\n case '<': return (value1 < value2) ? true : false;\n case '<=': return (value1 <= value2) ? true : false;\n case '>': return (value1 > value2) ? true : false;\n case '>=': return (value1 >= value2) ? true : false;\n case '!=':\n case '<>': return (value1 !== value2) ? true : false;\n case '=':\n case '==': return (value1 === value2) ? true : false;\n }\n }\n/**\n * Attach a local filter hook to the grid\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnFilter(dataView: any) {\n this._dataView = dataView;\n this.subscriber = new Slick.Event();\n\n dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid });\n dataView.setFilter(this.customFilter);\n\n this.subscriber.subscribe((e: any, args: any) => {\n const /** @type {?} */ columnId = args.columnId;\n if (columnId != null) {\n dataView.refresh();\n }\n });\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} item\n * @param {?} args\n * @return {?}\n */\ncustomFilter(item: any, args: any) {\n for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId);\n const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex];\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || FieldType.string;\n const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null;\n const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null;\n\n let /** @type {?} */ cellValue = item[columnDef.field];\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n\n // no need to query if search value is empty\n if (searchTerm === '') {\n return true;\n }\n\n if (typeof cellValue === 'number') {\n cellValue = cellValue.toString();\n }\n\n const /** @type {?} */ conditionOptions = {\n fieldType: fieldType,\n searchTerm: searchTerm,\n cellValue: cellValue,\n operator: operator,\n cellValueLastChar: lastValueChar,\n filterSearchType: filterSearchType\n };\n if (conditionalFilterFn && typeof conditionalFilterFn === 'function') {\n conditionalFilterFn(conditionOptions);\n }\n if (!FilterConditions.executeMappedCondition(conditionOptions)) {\n return false;\n }\n }\n return true;\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\n/**\n * @param {?} e\n * @param {?} args\n * @return {?}\n */\ncallbackSearchEvent(e: any, args: any) {\n this._columnFilters[args.columnDef.id] = {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n searchTerm: e.target.value\n };\n\n this.triggerEvent(this.subscriber, {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n columnFilters: this._columnFilters,\n searchTerm: e.target.value,\n grid: this._grid\n }, e);\n }\n/**\n * @return {?}\n */\naddFilterTemplateToHeaderRow() {\n for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) {\n if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) {\n let /** @type {?} */ filterTemplate = '';\n let /** @type {?} */ elm = null;\n let /** @type {?} */ header;\n const /** @type {?} */ columnDef = this._columnDefinitions[i];\n const /** @type {?} */ columnId = columnDef.id;\n const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null;\n let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : '';\n\n // keep the filter in a columnFilters for later reference\n this.keepColumnFilters(searchTerm, listTerm, columnDef);\n\n if (!columnDef.filter) {\n searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null;\n filterTemplate = FilterTemplates.input(searchTerm, columnDef);\n } else {\n // custom Select template\n if (columnDef.filter.type === FormElementType.select) {\n filterTemplate = FilterTemplates.select(searchTerm, columnDef);\n }\n }\n\n // create the DOM Element\n header = this._grid.getHeaderRowColumn(columnDef.id);\n $(header).empty();\n elm = $(filterTemplate);\n elm.val(searchTerm);\n elm.data('columnId', columnDef.id);\n if (elm && typeof elm.appendTo === 'function') {\n elm.appendTo(header);\n }\n\n // depending on the DOM Element type, we will watch the corrent event\n const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input;\n switch (filterType) {\n case FormElementType.select:\n case FormElementType.multiSelect:\n elm.change((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n case FormElementType.input:\n default:\n elm.keyup((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n }\n }\n }\n }\n/**\n * @param {?} searchTerm\n * @param {?} listTerm\n * @param {?} columnDef\n * @return {?}\n */\nprivate keepColumnFilters(searchTerm: string, listTerm: any, columnDef: any) {\n if (searchTerm) {\n this._columnFilters[columnDef.id] = {\n columnId: columnDef.id,\n columnDef: columnDef,\n searchTerm: searchTerm\n };\n if (listTerm) {\n this._columnFilters.listTerm = listTerm;\n }\n }\n }\n/**\n * @param {?} evt\n * @param {?} args\n * @param {?} e\n * @return {?}\n */\nprivate triggerEvent(evt: any, args: any, e: any) {\n e = e || new Slick.EventData();\n return evt.notify(args, e, args.grid);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FilterService_tsickle_Closure_declarations() {\n/** @type {?} */\nFilterService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFilterService.ctorParameters;\n/** @type {?} */\nFilterService.prototype._columnDefinitions;\n/** @type {?} */\nFilterService.prototype._columnFilters;\n/** @type {?} */\nFilterService.prototype._dataView;\n/** @type {?} */\nFilterService.prototype._grid;\n/** @type {?} */\nFilterService.prototype._gridOptions;\n/** @type {?} */\nFilterService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { dateUsShortSorter } from './dateUsShortSorter';\nimport { dateSorter } from './dateSorter';\nimport { dateIsoSorter } from './dateIsoSorter';\nimport { dateUsSorter } from './dateUsSorter';\nimport { numericSorter } from './numericSorter';\nimport { stringSorter } from './stringSorter';\n\nexport const /** @type {?} */ Sorters = {\n date: dateSorter,\n dateIso: dateIsoSorter,\n dateUs: dateUsSorter,\n dateUsShort: dateUsShortSorter,\n numeric: numericSorter,\n string: stringSorter\n};\n","import { Sorter } from './../models/index';\n\nexport const /** @type {?} */ stringSorter: Sorter = (value1, value2, sortDirection) => {\n return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\n\nexport const /** @type {?} */ numericSorter: Sorter = (value1, value2, sortDirection) => {\n const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1);\n const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2);\n return sortDirection * (x === y ? 0 : (x > y ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, moment.ISO_8601).isValid() || !moment(value2, moment.ISO_8601, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1);\n const /** @type {?} */ date2 = moment(value2);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Column } from './../models/index';\n// import { Group, GroupTotals } from '../core'\n// import { Item } from '../dataview'\n\nimport { checkboxFormatter } from './CheckboxFormatter';\nimport { checkmarkFormatter } from './CheckmarkFormatter';\nimport { dateIsoFormatter } from './dateIsoFormatter';\nimport { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter';\nimport { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter';\nimport { dateTimeUsFormatter } from './dateTimeUsFormatter';\nimport { dateUsFormatter } from './dateUsFormatter';\nimport { percentCompleteFormatter } from './percentCompleteFormatter';\nimport { percentCompleteBarFormatter } from './percentCompleteBarFormatter';\nimport { progressBarFormatter } from './ProgressBarFormatter';\nimport { yesNoFormatter } from './yesNoFormatter';\n\n\n/*\nexport interface GroupFormatter {\n (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string\n}\n\nexport interface GroupTotalsFormatter {\n (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string\n}\n*/\nexport const /** @type {?} */ Formatters = {\n checkbox: checkboxFormatter,\n checkmark: checkmarkFormatter,\n dateIso: dateIsoFormatter,\n dateTimeIso: dateIsoFormatter,\n dateTimeIsoAmPm: dateTimeIsoAmPmFormatter,\n dateUs: dateUsFormatter,\n dateTimeUs: dateTimeUsFormatter,\n dateTimeUsAmPm: dateTimeUsAmPmFormatter,\n percentComplete: percentCompleteFormatter,\n percentCompleteBar: percentCompleteBarFormatter,\n progressBar: progressBarFormatter,\n yesNoFormatter: yesNoFormatter\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ yesNoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string =>\n value ? 'Yes' : 'No';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ progressBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '';\n }\n\n let /** @type {?} */ color;\n\n if (value < 30) {\n color = 'danger';\n } else if (value < 70) {\n color = 'warning';\n } else {\n color = 'success';\n }\n\n return `
\n
\n ${value}%\n
\n
`;\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ percentCompleteBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '';\n }\n\n let /** @type {?} */ color;\n\n if (value < 30) {\n color = 'red';\n } else if (value < 70) {\n color = 'silver';\n } else {\n color = 'green';\n }\n\n return ``;\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ percentCompleteFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '-';\n } else if (value < 50) {\n return `${value}%`;\n } else {\n return `${value}%`;\n }\n};\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY hh:mm:ss') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY h:mm:ss a') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('YYYY-MM-DD h:mm:ss a') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('YYYY-MM-DD') : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkmarkFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? `` : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkboxFormatter: Formatter = (row, cell, value, columnDef, dataContext) =>\n value ? '☑' : '';\n","import { Column, Filter } from './../models/index';\nimport { inputFilterTemplate } from './inputFilterTemplate';\nimport { selectFilterTemplate } from './selectFilterTemplate';\n\nexport const /** @type {?} */ FilterTemplates = {\n input: inputFilterTemplate,\n select: selectFilterTemplate\n};\n","import { Column, Filter } from './../models/index';\n\nexport const /** @type {?} */ selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n if (!columnDef.filter.selectOptions) {\n throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`);\n }\n let /** @type {?} */ options = '';\n columnDef.filter.selectOptions.forEach((option: any) => {\n options += ``;\n });\n return ``;\n};\n","import { Column, Filter } from './../models/index';\n\nexport const /** @type {?} */ inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n return ``;\n};\n","import { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { executeMappedCondition } from './executeMappedCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ FilterConditions = {\n executeMappedCondition: executeMappedCondition,\n booleanFilter: booleanFilterCondition,\n dateFilter: dateFilterCondition,\n dateIsoFilter: dateIsoFilterCondition,\n dateUtcFilter: dateUtcFilterCondition,\n dateUsFilter: dateUsFilterCondition,\n dateUsShortFilter: dateUsShortFilterCondition,\n numberFilter: numberFilterCondition,\n stringFilter: stringFilterCondition,\n testFilter: testFilterCondition\n};\n","import { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { FilterCondition } from '../models/filterCondition.interface';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { FieldType } from '../models/index';\n\nexport const /** @type {?} */ executeMappedCondition: FilterCondition = (options: FilterConditionOption) => {\n // execute the mapped type, or default to String condition check\n switch (options.fieldType) {\n case FieldType.boolean:\n return booleanFilterCondition(options);\n case FieldType.date:\n return dateFilterCondition(options);\n case FieldType.dateUtc:\n return dateUtcFilterCondition(options);\n case FieldType.dateIso:\n return dateIsoFilterCondition(options);\n case FieldType.dateUs:\n case FieldType.dateTimeUs:\n return dateUsFilterCondition(options);\n case FieldType.dateUsShort:\n case FieldType.dateTimeUsShort:\n return dateUsShortFilterCondition(options);\n case FieldType.number:\n return numberFilterCondition(options);\n case FieldType.string:\n default:\n return stringFilterCondition(options);\n }\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ stringFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n // make sure the cell value is a string by casting it\n options.cellValue = options.cellValue.toString();\n\n if (options.operator === '*') {\n return options.cellValue.startsWith(options.searchTerm);\n } else if (options.operator === '' && options.cellValueLastChar === '*') {\n return options.cellValue.endsWith(options.searchTerm);\n } else if (options.operator === '') {\n return options.cellValue.includes(options.searchTerm);\n }\n return testFilterCondition(options.operator || '==', options.cellValue.toLowerCase(), options.searchTerm.toLowerCase());\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ numberFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm));\n};\n","import { FieldType } from '../models/fieldType';\nimport { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso;\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue);\n const /** @type {?} */ dateSearch = moment(options.searchTerm);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!options.filterSearchType) {\n throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }');\n }\n\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","//! moment.js\n//! version : 2.18.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){\"use strict\";function a(){return sd.apply(null,arguments)}function b(a){sd=a}function c(a){return a instanceof Array||\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){return null!=a&&\"[object Object]\"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return\"number\"==typeof a||\"[object Number]\"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c0)for(c=0;c0?\"future\":\"past\"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Hd[c]=Hd[c+\"s\"]=Hd[b]=a}function K(a){return\"string\"==typeof a?Hd[a]||Hd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Id[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Id[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if(\"object\"==typeof a){a=L(a);for(var c=N(a),d=0;d=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&(Md[a]=e),b&&(Md[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Md[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\")}function W(a){var b,c,d=a.match(Jd);for(b=0,c=d.length;b=0&&Kd.test(a);)a=a.replace(Kd,c),Kd.lastIndex=0,d-=1;return a}function Z(a,b,c){ce[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(ce,a)?ce[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function ba(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}function Da(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return\"string\"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,\"\").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,\"\").toLocaleLowerCase();return c?\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:null):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null):\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,\"d\")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,\"_weekdaysRegex\")||(this._weekdaysRegex=ye),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Ae),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,\"\"),e=this.weekdaysShort(c,\"\"),f=this.weekdays(c,\"\"),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp(\"^(\"+j.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+g.join(\"|\")+\")\",\"i\")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return\"p\"===(a+\"\").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function Xa(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}function Ya(a){for(var b,c,d,e,f=0;f0;){if(d=Za(e.slice(0,b).join(\"-\")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Fe[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=Be._abbr,require(\"./locale/\"+a),$a(b)}catch(a){}return Fe[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Be=c)),Be._abbr}function _a(a,b){if(null!==b){var c=Ee;if(b.abbr=a,null!=Fe[a])y(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),c=Fe[a]._config;else if(null!=b.parentLocale){if(null==Fe[b.parentLocale])return Ge[b.parentLocale]||(Ge[b.parentLocale]=[]),Ge[b.parentLocale].push({name:a,config:b}),null;c=Fe[b.parentLocale]._config}return Fe[a]=new C(B(c,b)),Ge[a]&&Ge[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Fe[a]}return delete Fe[a],null}function ab(a,b){if(null!=b){var c,d=Ee;null!=Fe[a]&&(d=Fe[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Fe[a],Fe[a]=c,$a(a)}else null!=Fe[a]&&(null!=Fe[a].parentLocale?Fe[a]=Fe[a].parentLocale:null!=Fe[a]&&delete Fe[a]);return Fe[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Be;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return Ad(Fe)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[fe]<0||c[fe]>11?fe:c[ge]<1||c[ge]>ea(c[ee],c[fe])?ge:c[he]<0||c[he]>24||24===c[he]&&(0!==c[ie]||0!==c[je]||0!==c[ke])?he:c[ie]<0||c[ie]>59?ie:c[je]<0||c[je]>59?je:c[ke]<0||c[ke]>999?ke:-1,n(a)._overflowDayOfYear&&(bge)&&(b=ge),n(a)._overflowWeeks&&b===-1&&(b=le),n(a)._overflowWeekday&&b===-1&&(b=me),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=He.exec(h)||Ie.exec(h);if(i){for(n(a).iso=!0,b=0,c=Ke.length;b10?\"YYYY \":\"YY \"),f=\"HH:mm\"+(c[4]?\":ss\":\"\"),c[1]){var l=new Date(c[2]),m=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=\" +0000\":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?\" -\":\" +\")+(\"\"+i).replace(/^-?/,\"0\").match(/..$/)[0]+\"00\");break;case 4:h=j[c[5]];break;default:h=j[\" GMT\"]}c[5]=h,a._i=c.splice(1).join(\"\"),g=\" ZZ\",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Me.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ge]&&null==a._a[fe]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[ee],d[ee]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[fe]=c.getUTCMonth(),a._a[ge]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[he]&&0===a._a[ie]&&0===a._a[je]&&0===a._a[ke]&&(a._nextDay=!0,a._a[he]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[he]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[ee],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[ee],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ee]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=\"\"+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Jd)||[],c=0;c0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Md[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[he]<=12&&n(b).bigHour===!0&&b._a[he]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[he]=mb(b._locale,b._a[he],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Te.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:0,d:u(h[ge])*c,h:u(h[he])*c,m:u(h[ie])*c,s:u(h[je])*c,ms:u(Cb(1e3*h[ke]))*c}):(h=Ue.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:\"object\"==typeof f&&(\"from\"in f||\"to\"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,\"_locale\")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(\",\",\".\"));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,\"Date\",P(b,\"Date\")+g*d),h&&ja(b,P(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,\"days\",!0);return c<-6?\"sameElse\":c<-1?\"lastWeek\":c<0?\"lastDay\":c<1?\"sameDay\":c<2?\"nextDay\":c<7?\"nextWeek\":\"sameElse\"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf(\"day\"),f=a.calendarFormat(this,e)||\"sameElse\",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()>c.valueOf():c.valueOf()9999?X(a,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function jc(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var a=\"moment\",b=\"\";this.isLocal()||(a=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",b=\"Z\");var c=\"[\"+a+'(\"]',d=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",e=\"-MM-DD[T]HH:mm:ss.SSS\",f=b+'[\")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===a&&this.weekday(0),\"isoWeek\"===a&&this.isoWeekday(1),\"quarter\"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||\"millisecond\"===a?this:(\"date\"===a&&(a=\"day\"),this.startOf(a).add(1,\"isoWeek\"===a?\"week\":a).subtract(1,\"ms\"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){\nreturn k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==a?b:this.add(a-b,\"d\")}function Mc(a,b){b[ke]=u(1e3*(\"0.\"+a))}function Nc(){return this._isUTC?\"UTC\":\"\"}function Oc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||\"\",null!=b)return Sc(a,b,c,\"month\");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,\"month\");return e}function Uc(a,b,c,d){\"boolean\"==typeof a?(g(b)&&(c=b,b=void 0),b=b||\"\"):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||\"\");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,\"day\");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,\"day\");return i}function Vc(a,b){return Tc(a,b,\"months\")}function Wc(a,b){return Tc(a,b,\"monthsShort\")}function Xc(a,b,c){return Uc(a,b,c,\"weekdays\")}function Yc(a,b,c){return Uc(a,b,c,\"weekdaysShort\")}function Zc(a,b,c){return Uc(a,b,c,\"weekdaysMin\")}function $c(){var a=this._data;return this._milliseconds=df(this._milliseconds),this._days=df(this._days),this._months=df(this._months),a.milliseconds=df(a.milliseconds),a.seconds=df(a.seconds),a.minutes=df(a.minutes),a.hours=df(a.hours),a.months=df(a.months),a.years=df(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),\"month\"===a||\"year\"===a)return b=this._days+d/864e5,c=this._months+ed(b),\"month\"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case\"week\":return b/7+d/6048e5;case\"day\":return b+d/864e5;case\"hour\":return 24*b+d/36e5;case\"minute\":return 1440*b+d/6e4;case\"second\":return 86400*b+d/1e3;case\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+\"s\"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=uf(d.as(\"s\")),f=uf(d.as(\"m\")),g=uf(d.as(\"h\")),h=uf(d.as(\"d\")),i=uf(d.as(\"M\")),j=uf(d.as(\"y\")),k=e<=vf.ss&&[\"s\",e]||e0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?uf:\"function\"==typeof a&&(uf=a,!0)}function pd(a,b){return void 0!==vf[a]&&(void 0===b?vf[a]:(vf[a]=b,\"s\"===a&&(vf.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=wf(this._milliseconds)/1e3,e=wf(this._days),f=wf(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}var sd,td;td=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d68?1900:2e3)};var te=O(\"FullYear\",!0);U(\"w\",[\"ww\",2],\"wo\",\"week\"),U(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),J(\"week\",\"w\"),J(\"isoWeek\",\"W\"),M(\"week\",5),M(\"isoWeek\",5),Z(\"w\",Sd),Z(\"ww\",Sd,Od),Z(\"W\",Sd),Z(\"WW\",Sd,Od),ca([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var ue={dow:0,doy:6};U(\"d\",0,\"do\",\"day\"),U(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),U(\"e\",0,0,\"weekday\"),U(\"E\",0,0,\"isoWeekday\"),J(\"day\",\"d\"),J(\"weekday\",\"e\"),J(\"isoWeekday\",\"E\"),M(\"day\",11),M(\"weekday\",11),M(\"isoWeekday\",11),Z(\"d\",Sd),Z(\"e\",Sd),Z(\"E\",Sd),Z(\"dd\",function(a,b){return b.weekdaysMinRegex(a)}),Z(\"ddd\",function(a,b){return b.weekdaysShortRegex(a)}),Z(\"dddd\",function(a,b){return b.weekdaysRegex(a)}),ca([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=u(a)});var ve=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),we=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),xe=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ye=be,ze=be,Ae=be;U(\"H\",[\"HH\",2],0,\"hour\"),U(\"h\",[\"hh\",2],0,Ra),U(\"k\",[\"kk\",2],0,Sa),U(\"hmm\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)}),U(\"hmmss\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U(\"Hmm\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)}),U(\"Hmmss\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta(\"a\",!0),Ta(\"A\",!1),J(\"hour\",\"h\"),M(\"hour\",13),Z(\"a\",Ua),Z(\"A\",Ua),Z(\"H\",Sd),Z(\"h\",Sd),Z(\"k\",Sd),Z(\"HH\",Sd,Od),Z(\"hh\",Sd,Od),Z(\"kk\",Sd,Od),Z(\"hmm\",Td),Z(\"hmmss\",Ud),Z(\"Hmm\",Td),Z(\"Hmmss\",Ud),ba([\"H\",\"HH\"],he),ba([\"k\",\"kk\"],function(a,b,c){var d=u(a);b[he]=24===d?0:d}),ba([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba([\"h\",\"hh\"],function(a,b,c){b[he]=u(a),n(c).bigHour=!0}),ba(\"hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d)),n(c).bigHour=!0}),ba(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e)),n(c).bigHour=!0}),ba(\"Hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d))}),ba(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e))});var Be,Ce=/[ap]\\.?m?\\.?/i,De=O(\"Hours\",!0),Ee={calendar:Bd,longDateFormat:Cd,invalidDate:Dd,ordinal:Ed,dayOfMonthOrdinalParse:Fd,relativeTime:Gd,months:pe,monthsShort:qe,week:ue,weekdays:ve,weekdaysMin:xe,weekdaysShort:we,meridiemParse:Ce},Fe={},Ge={},He=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Ie=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Je=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Ke=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Le=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Me=/^\\/?Date\\((\\-?\\d+)/i,Ne=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d?\\d\\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(?:\\d\\d)?\\d\\d\\s)(\\d\\d:\\d\\d)(\\:\\d\\d)?(\\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\\d{4}))$/;a.createFromInputFallback=x(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Oe=x(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?athis?this:a:p()}),Qe=function(){return Date.now?Date.now():+new Date},Re=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];Db(\"Z\",\":\"),Db(\"ZZ\",\"\"),Z(\"Z\",_d),Z(\"ZZ\",_d),ba([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=Eb(_d,a)});var Se=/([\\+\\-]|\\d\\d)/gi;a.updateOffset=function(){};var Te=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Ue=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Ve=Wb(1,\"add\"),We=Wb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",a.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Xe=x(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,[\"gg\",2],0,function(){return this.weekYear()%100}),U(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),Dc(\"gggg\",\"weekYear\"),Dc(\"ggggg\",\"weekYear\"),Dc(\"GGGG\",\"isoWeekYear\"),Dc(\"GGGGG\",\"isoWeekYear\"),J(\"weekYear\",\"gg\"),J(\"isoWeekYear\",\"GG\"),M(\"weekYear\",1),M(\"isoWeekYear\",1),Z(\"G\",Zd),Z(\"g\",Zd),Z(\"GG\",Sd,Od),Z(\"gg\",Sd,Od),Z(\"GGGG\",Wd,Qd),Z(\"gggg\",Wd,Qd),Z(\"GGGGG\",Xd,Rd),Z(\"ggggg\",Xd,Rd),ca([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U(\"Q\",0,\"Qo\",\"quarter\"),J(\"quarter\",\"Q\"),M(\"quarter\",7),Z(\"Q\",Nd),ba(\"Q\",function(a,b){b[fe]=3*(u(a)-1)}),U(\"D\",[\"DD\",2],\"Do\",\"date\"),J(\"date\",\"D\"),M(\"date\",9),Z(\"D\",Sd),Z(\"DD\",Sd,Od),Z(\"Do\",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba([\"D\",\"DD\"],ge),ba(\"Do\",function(a,b){b[ge]=u(a.match(Sd)[0],10)});var Ye=O(\"Date\",!0);U(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),J(\"dayOfYear\",\"DDD\"),M(\"dayOfYear\",4),Z(\"DDD\",Vd),Z(\"DDDD\",Pd),ba([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=u(a)}),U(\"m\",[\"mm\",2],0,\"minute\"),J(\"minute\",\"m\"),M(\"minute\",14),Z(\"m\",Sd),Z(\"mm\",Sd,Od),ba([\"m\",\"mm\"],ie);var Ze=O(\"Minutes\",!1);U(\"s\",[\"ss\",2],0,\"second\"),J(\"second\",\"s\"),M(\"second\",15),Z(\"s\",Sd),Z(\"ss\",Sd,Od),ba([\"s\",\"ss\"],je);var $e=O(\"Seconds\",!1);U(\"S\",0,0,function(){return~~(this.millisecond()/100)}),U(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),U(0,[\"SSS\",3],0,\"millisecond\"),U(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),U(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),U(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),U(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),U(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),U(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),J(\"millisecond\",\"ms\"),M(\"millisecond\",16),Z(\"S\",Vd,Nd),Z(\"SS\",Vd,Od),Z(\"SSS\",Vd,Pd);var _e;for(_e=\"SSSS\";_e.length<=9;_e+=\"S\")Z(_e,Yd);for(_e=\"S\";_e.length<=9;_e+=\"S\")ba(_e,Mc);var af=O(\"Milliseconds\",!1);U(\"z\",0,0,\"zoneAbbr\"),U(\"zz\",0,0,\"zoneName\");var bf=r.prototype;bf.add=Ve,bf.calendar=Zb,bf.clone=$b,bf.diff=fc,bf.endOf=sc,bf.format=kc,bf.from=lc,bf.fromNow=mc,bf.to=nc,bf.toNow=oc,bf.get=R,bf.invalidAt=Bc,bf.isAfter=_b,bf.isBefore=ac,bf.isBetween=bc,bf.isSame=cc,bf.isSameOrAfter=dc,bf.isSameOrBefore=ec,bf.isValid=zc,bf.lang=Xe,bf.locale=pc,bf.localeData=qc,bf.max=Pe,bf.min=Oe,bf.parsingFlags=Ac,bf.set=S,bf.startOf=rc,bf.subtract=We,bf.toArray=wc,bf.toObject=xc,bf.toDate=vc,bf.toISOString=ic,bf.inspect=jc,bf.toJSON=yc,bf.toString=hc,bf.unix=uc,bf.valueOf=tc,bf.creationData=Cc,bf.year=te,bf.isLeapYear=ra,bf.weekYear=Ec,bf.isoWeekYear=Fc,bf.quarter=bf.quarters=Kc,bf.month=ka,bf.daysInMonth=la,bf.week=bf.weeks=Ba,bf.isoWeek=bf.isoWeeks=Ca,bf.weeksInYear=Hc,bf.isoWeeksInYear=Gc,bf.date=Ye,bf.day=bf.days=Ka,bf.weekday=La,bf.isoWeekday=Ma,bf.dayOfYear=Lc,bf.hour=bf.hours=De,bf.minute=bf.minutes=Ze,bf.second=bf.seconds=$e,bf.millisecond=bf.milliseconds=af,bf.utcOffset=Hb,bf.utc=Jb,bf.local=Kb,bf.parseZone=Lb,bf.hasAlignedHourOffset=Mb,bf.isDST=Nb,bf.isLocal=Pb,bf.isUtcOffset=Qb,bf.isUtc=Rb,bf.isUTC=Rb,bf.zoneAbbr=Nc,bf.zoneName=Oc,bf.dates=x(\"dates accessor is deprecated. Use date instead.\",Ye),bf.months=x(\"months accessor is deprecated. Use month instead\",ka),bf.years=x(\"years accessor is deprecated. Use year instead\",te),bf.zone=x(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",Ib),bf.isDSTShifted=x(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",Ob);var cf=C.prototype;cf.calendar=D,cf.longDateFormat=E,cf.invalidDate=F,cf.ordinal=G,cf.preparse=Rc,cf.postformat=Rc,cf.relativeTime=H,cf.pastFuture=I,cf.set=A,cf.months=fa,cf.monthsShort=ga,cf.monthsParse=ia,cf.monthsRegex=na,cf.monthsShortRegex=ma,cf.week=ya,cf.firstDayOfYear=Aa,cf.firstDayOfWeek=za,cf.weekdays=Fa,cf.weekdaysMin=Ha,cf.weekdaysShort=Ga,cf.weekdaysParse=Ja,cf.weekdaysRegex=Na,cf.weekdaysShortRegex=Oa,cf.weekdaysMinRegex=Pa,cf.isPM=Va,cf.meridiem=Wa,$a(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.lang=x(\"moment.lang is deprecated. Use moment.locale instead.\",$a),a.langData=x(\"moment.langData is deprecated. Use moment.localeData instead.\",bb);var df=Math.abs,ef=id(\"ms\"),ff=id(\"s\"),gf=id(\"m\"),hf=id(\"h\"),jf=id(\"d\"),kf=id(\"w\"),lf=id(\"M\"),mf=id(\"y\"),nf=kd(\"milliseconds\"),of=kd(\"seconds\"),pf=kd(\"minutes\"),qf=kd(\"hours\"),rf=kd(\"days\"),sf=kd(\"months\"),tf=kd(\"years\"),uf=Math.round,vf={ss:44,s:45,m:45,h:22,d:26,M:11},wf=Math.abs,xf=Ab.prototype;return xf.isValid=yb,xf.abs=$c,xf.add=ad,xf.subtract=bd,xf.as=gd,xf.asMilliseconds=ef,xf.asSeconds=ff,xf.asMinutes=gf,xf.asHours=hf,xf.asDays=jf,xf.asWeeks=kf,xf.asMonths=lf,xf.asYears=mf,xf.valueOf=hd,xf._bubble=dd,xf.get=jd,xf.milliseconds=nf,xf.seconds=of,xf.minutes=pf,xf.hours=qf,xf.days=rf,xf.weeks=ld,xf.months=sf,xf.years=tf,xf.humanize=qd,xf.toISOString=rd,xf.toString=rd,xf.toJSON=rd,xf.locale=pc,xf.localeData=qc,xf.toIsoString=x(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",rd),xf.lang=Xe,U(\"X\",0,0,\"unix\"),U(\"x\",0,0,\"valueOf\"),Z(\"x\",Zd),Z(\"X\",ae),ba(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba(\"x\",function(a,b,c){c._d=new Date(u(a))}),a.version=\"2.18.1\",b(tb),a.fn=bf,a.min=vb,a.max=wb,a.now=Qe,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bf,a});\n","import { FieldType } from '../models/index';\n\nexport const /** @type {?} */ mapDateFormatByFieldType: Function = (fieldType: FieldType) => {\n switch (fieldType) {\n case FieldType.dateUs:\n return 'M/D/YYYY';\n case FieldType.dateTimeUs:\n return 'M/D/YYYY h:m:s';\n case FieldType.dateUsShort:\n return 'M/D/YY';\n case FieldType.dateTimeUsShort:\n return 'M/D/YY h:m:s';\n case FieldType.dateTimeIso:\n return 'YYYY-MM-DD h:m:s';\n case FieldType.dateIso:\n default:\n return 'YYYY-MM-DD';\n }\n};\n\nexport const /** @type {?} */ testFilterCondition: Function = (operator: string, value1: any, value2: any): boolean => {\n switch (operator) {\n case '<': return (value1 < value2);\n case '<=': return (value1 <= value2);\n case '>': return (value1 > value2);\n case '>=': return (value1 >= value2);\n case '!=':\n case '<>': return (value1 !== value2);\n case '=':\n case '==': return (value1 === value2);\n }\n return true;\n};\n","import { FilterCondition, FilterConditionOption } from './../models/index';\nimport { testFilterCondition } from './filterUtilities';\n/**\n * @param {?} str\n * @return {?}\n */\nfunction parseBoolean(str: string) {\n return /(true|1)/i.test(str);\n}\n\nexport const /** @type {?} */ booleanFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm);\n};\n","\nexport type FieldType = number;\nexport let FieldType: any = {};\nFieldType.unknown = 0;\nFieldType.string = 1;\nFieldType.boolean = 2;\nFieldType.number = 3;\nFieldType.date = 4;\nFieldType.dateIso = 5;\nFieldType.dateUtc = 6;\nFieldType.dateTime = 7;\nFieldType.dateTimeIso = 8;\nFieldType.dateUs = 9;\nFieldType.dateUsShort = 10;\nFieldType.dateTimeUs = 11;\nFieldType.dateTimeUsShort = 12;\nFieldType[FieldType.unknown] = \"unknown\";\nFieldType[FieldType.string] = \"string\";\nFieldType[FieldType.boolean] = \"boolean\";\nFieldType[FieldType.number] = \"number\";\nFieldType[FieldType.date] = \"date\";\nFieldType[FieldType.dateIso] = \"dateIso\";\nFieldType[FieldType.dateUtc] = \"dateUtc\";\nFieldType[FieldType.dateTime] = \"dateTime\";\nFieldType[FieldType.dateTimeIso] = \"dateTimeIso\";\nFieldType[FieldType.dateUs] = \"dateUs\";\nFieldType[FieldType.dateUsShort] = \"dateUsShort\";\nFieldType[FieldType.dateTimeUs] = \"dateTimeUs\";\nFieldType[FieldType.dateTimeUsShort] = \"dateTimeUsShort\";\n\n","\nexport type FormElementType = number;\nexport let FormElementType: any = {};\nFormElementType.input = 0;\nFormElementType.multiSelect = 1;\nFormElementType.select = 2;\nFormElementType.textarea = 3;\nFormElementType[FormElementType.input] = \"input\";\nFormElementType[FormElementType.multiSelect] = \"multiSelect\";\nFormElementType[FormElementType.select] = \"select\";\nFormElementType[FormElementType.textarea] = \"textarea\";\n\n","\nexport type CaseType = number;\nexport let CaseType: any = {};\nCaseType.camelCase = 0;\nCaseType.pascalCase = 1;\nCaseType.snakeCase = 2;\nCaseType[CaseType.camelCase] = \"camelCase\";\nCaseType[CaseType.pascalCase] = \"pascalCase\";\nCaseType[CaseType.snakeCase] = \"snakeCase\";\n\n"],"names":["moment","((moment_)).default","QueryBuilder","router","DATE_FORMAT","this","require"],"mappings":"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CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC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AAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,EAAE,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,oBAAoB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,yBAAyB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,GAAE,CAAC,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,QAAa,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAACC,eAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,yOAAyO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,QAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,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CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,EAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,C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AAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,E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C,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,UAAU,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAA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AAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,C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"} \ No newline at end of file diff --git a/dist/bundles/angular-slickgrid.umd.js b/dist/bundles/angular-slickgrid.umd.js index f4eb6aaf5..dbddf49e1 100644 --- a/dist/bundles/angular-slickgrid.umd.js +++ b/dist/bundles/angular-slickgrid.umd.js @@ -1,10 +1,8 @@ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('moment'), require('@angular/core'), require('@angular/router'), require('@angular/common')) : - typeof define === 'function' && define.amd ? define(['exports', 'moment', '@angular/core', '@angular/router', '@angular/common'], factory) : - (factory((global.ng = global.ng || {}, global.ng.angularLibraryStarter = global.ng.angularLibraryStarter || {}),global.moment,global.ng.core,global.ng.router,global.ng.common)); -}(this, (function (exports,moment___default,_angular_core,_angular_router,_angular_common) { 'use strict'; - -var moment___default__default = moment___default['default']; + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('@angular/router'), require('@angular/common')) : + typeof define === 'function' && define.amd ? define(['exports', '@angular/core', '@angular/router', '@angular/common'], factory) : + (factory((global['angular-slickgrid'] = {}),global.ng.core,global.ng.router,global.ng.common)); +}(this, (function (exports,core,router,common) { 'use strict'; var CaseType = {}; CaseType.camelCase = 0; @@ -89,8 +87,552 @@ var testFilterCondition = function (operator, value1, value2) { } return true; }; -var moment = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}; +function commonjsRequire() { + throw new Error('Dynamic requires are not currently supported by rollup-plugin-commonjs'); +} +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} +var moment_min = createCommonjsModule(function (module, exports) { + //! moment.js + //! version : 2.18.1 + //! authors : Tim Wood, Iskren Chernev, Moment.js contributors + //! license : MIT + //! momentjs.com + !function (a, b) { module.exports = b(); }(commonjsGlobal, function () { + "use strict"; + function a() { return sd.apply(null, arguments); } + function b(a) { sd = a; } + function c(a) { return a instanceof Array || "[object Array]" === Object.prototype.toString.call(a); } + function d(a) { return null != a && "[object Object]" === Object.prototype.toString.call(a); } + function e(a) { var b; for (b in a) + return !1; return !0; } + function f(a) { return void 0 === a; } + function g(a) { return "number" == typeof a || "[object Number]" === Object.prototype.toString.call(a); } + function h(a) { return a instanceof Date || "[object Date]" === Object.prototype.toString.call(a); } + function i(a, b) { var c, d = []; for (c = 0; c < a.length; ++c) + d.push(b(a[c], c)); return d; } + function j(a, b) { return Object.prototype.hasOwnProperty.call(a, b); } + function k(a, b) { for (var c in b) + j(b, c) && (a[c] = b[c]); return j(b, "toString") && (a.toString = b.toString), j(b, "valueOf") && (a.valueOf = b.valueOf), a; } + function l(a, b, c, d) { return sb(a, b, c, d, !0).utc(); } + function m() { return { empty: !1, unusedTokens: [], unusedInput: [], overflow: -2, charsLeftOver: 0, nullInput: !1, invalidMonth: null, invalidFormat: !1, userInvalidated: !1, iso: !1, parsedDateParts: [], meridiem: null, rfc2822: !1, weekdayMismatch: !1 }; } + function n(a) { return null == a._pf && (a._pf = m()), a._pf; } + function o(a) { if (null == a._isValid) { + var b = n(a), c = ud.call(b.parsedDateParts, function (a) { return null != a; }), d = !isNaN(a._d.getTime()) && b.overflow < 0 && !b.empty && !b.invalidMonth && !b.invalidWeekday && !b.nullInput && !b.invalidFormat && !b.userInvalidated && (!b.meridiem || b.meridiem && c); + if (a._strict && (d = d && 0 === b.charsLeftOver && 0 === b.unusedTokens.length && void 0 === b.bigHour), null != Object.isFrozen && Object.isFrozen(a)) + return d; + a._isValid = d; + } return a._isValid; } + function p(a) { var b = l(NaN); return null != a ? k(n(b), a) : n(b).userInvalidated = !0, b; } + function q(a, b) { var c, d, e; if (f(b._isAMomentObject) || (a._isAMomentObject = b._isAMomentObject), f(b._i) || (a._i = b._i), f(b._f) || (a._f = b._f), f(b._l) || (a._l = b._l), f(b._strict) || (a._strict = b._strict), f(b._tzm) || (a._tzm = b._tzm), f(b._isUTC) || (a._isUTC = b._isUTC), f(b._offset) || (a._offset = b._offset), f(b._pf) || (a._pf = n(b)), f(b._locale) || (a._locale = b._locale), vd.length > 0) + for (c = 0; c < vd.length; c++) + d = vd[c], e = b[d], f(e) || (a[d] = e); return a; } + function r(b) { q(this, b), this._d = new Date(null != b._d ? b._d.getTime() : NaN), this.isValid() || (this._d = new Date(NaN)), wd === !1 && (wd = !0, a.updateOffset(this), wd = !1); } + function s(a) { return a instanceof r || null != a && null != a._isAMomentObject; } + function t(a) { return a < 0 ? Math.ceil(a) || 0 : Math.floor(a); } + function u(a) { var b = +a, c = 0; return 0 !== b && isFinite(b) && (c = t(b)), c; } + function v(a, b, c) { var d, e = Math.min(a.length, b.length), f = Math.abs(a.length - b.length), g = 0; for (d = 0; d < e; d++) + (c && a[d] !== b[d] || !c && u(a[d]) !== u(b[d])) && g++; return g + f; } + function w(b) { a.suppressDeprecationWarnings === !1 && "undefined" != typeof console && console.warn && console.warn("Deprecation warning: " + b); } + function x(b, c) { var d = !0; return k(function () { if (null != a.deprecationHandler && a.deprecationHandler(null, b), d) { + for (var e, f = [], g = 0; g < arguments.length; g++) { + if (e = "", "object" == typeof arguments[g]) { + e += "\n[" + g + "] "; + for (var h in arguments[0]) + e += h + ": " + arguments[0][h] + ", "; + e = e.slice(0, -2); + } + else + e = arguments[g]; + f.push(e); + } + w(b + "\nArguments: " + Array.prototype.slice.call(f).join("") + "\n" + (new Error).stack), d = !1; + } return c.apply(this, arguments); }, c); } + function y(b, c) { null != a.deprecationHandler && a.deprecationHandler(b, c), xd[b] || (w(c), xd[b] = !0); } + function z(a) { return a instanceof Function || "[object Function]" === Object.prototype.toString.call(a); } + function A(a) { var b, c; for (c in a) + b = a[c], z(b) ? this[c] = b : this["_" + c] = b; this._config = a, this._dayOfMonthOrdinalParseLenient = new RegExp((this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source); } + function B(a, b) { var c, e = k({}, a); for (c in b) + j(b, c) && (d(a[c]) && d(b[c]) ? (e[c] = {}, k(e[c], a[c]), k(e[c], b[c])) : null != b[c] ? e[c] = b[c] : delete e[c]); for (c in a) + j(a, c) && !j(b, c) && d(a[c]) && (e[c] = k({}, e[c])); return e; } + function C(a) { null != a && this.set(a); } + function D(a, b, c) { var d = this._calendar[a] || this._calendar.sameElse; return z(d) ? d.call(b, c) : d; } + function E(a) { var b = this._longDateFormat[a], c = this._longDateFormat[a.toUpperCase()]; return b || !c ? b : (this._longDateFormat[a] = c.replace(/MMMM|MM|DD|dddd/g, function (a) { return a.slice(1); }), this._longDateFormat[a]); } + function F() { return this._invalidDate; } + function G(a) { return this._ordinal.replace("%d", a); } + function H(a, b, c, d) { var e = this._relativeTime[c]; return z(e) ? e(a, b, c, d) : e.replace(/%d/i, a); } + function I(a, b) { var c = this._relativeTime[a > 0 ? "future" : "past"]; return z(c) ? c(b) : c.replace(/%s/i, b); } + function J(a, b) { var c = a.toLowerCase(); Hd[c] = Hd[c + "s"] = Hd[b] = a; } + function K(a) { return "string" == typeof a ? Hd[a] || Hd[a.toLowerCase()] : void 0; } + function L(a) { var b, c, d = {}; for (c in a) + j(a, c) && (b = K(c), b && (d[b] = a[c])); return d; } + function M(a, b) { Id[a] = b; } + function N(a) { var b = []; for (var c in a) + b.push({ unit: c, priority: Id[c] }); return b.sort(function (a, b) { return a.priority - b.priority; }), b; } + function O(b, c) { return function (d) { return null != d ? (Q(this, b, d), a.updateOffset(this, c), this) : P(this, b); }; } + function P(a, b) { return a.isValid() ? a._d["get" + (a._isUTC ? "UTC" : "") + b]() : NaN; } + function Q(a, b, c) { a.isValid() && a._d["set" + (a._isUTC ? "UTC" : "") + b](c); } + function R(a) { return a = K(a), z(this[a]) ? this[a]() : this; } + function S(a, b) { if ("object" == typeof a) { + a = L(a); + for (var c = N(a), d = 0; d < c.length; d++) + this[c[d].unit](a[c[d].unit]); + } + else if (a = K(a), z(this[a])) + return this[a](b); return this; } + function T(a, b, c) { var d = "" + Math.abs(a), e = b - d.length, f = a >= 0; return (f ? c ? "+" : "" : "-") + Math.pow(10, Math.max(0, e)).toString().substr(1) + d; } + function U(a, b, c, d) { var e = d; "string" == typeof d && (e = function () { return this[d](); }), a && (Md[a] = e), b && (Md[b[0]] = function () { return T(e.apply(this, arguments), b[1], b[2]); }), c && (Md[c] = function () { return this.localeData().ordinal(e.apply(this, arguments), a); }); } + function V(a) { return a.match(/\[[\s\S]/) ? a.replace(/^\[|\]$/g, "") : a.replace(/\\/g, ""); } + function W(a) { var b, c, d = a.match(Jd); for (b = 0, c = d.length; b < c; b++) + Md[d[b]] ? d[b] = Md[d[b]] : d[b] = V(d[b]); return function (b) { var e, f = ""; for (e = 0; e < c; e++) + f += z(d[e]) ? d[e].call(b, a) : d[e]; return f; }; } + function X(a, b) { return a.isValid() ? (b = Y(b, a.localeData()), Ld[b] = Ld[b] || W(b), Ld[b](a)) : a.localeData().invalidDate(); } + function Y(a, b) { function c(a) { return b.longDateFormat(a) || a; } var d = 5; for (Kd.lastIndex = 0; d >= 0 && Kd.test(a);) + a = a.replace(Kd, c), Kd.lastIndex = 0, d -= 1; return a; } + function Z(a, b, c) { ce[a] = z(b) ? b : function (a, d) { return a && c ? c : b; }; } + function $(a, b) { return j(ce, a) ? ce[a](b._strict, b._locale) : new RegExp(_(a)); } + function _(a) { return aa(a.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (a, b, c, d, e) { return b || c || d || e; })); } + function aa(a) { return a.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); } + function ba(a, b) { var c, d = b; for ("string" == typeof a && (a = [a]), g(b) && (d = function (a, c) { c[b] = u(a); }), c = 0; c < a.length; c++) + de[a[c]] = d; } + function ca(a, b) { ba(a, function (a, c, d, e) { d._w = d._w || {}, b(a, d._w, d, e); }); } + function da(a, b, c) { null != b && j(de, a) && de[a](b, c._a, c, a); } + function ea(a, b) { return new Date(Date.UTC(a, b + 1, 0)).getUTCDate(); } + function fa(a, b) { return a ? c(this._months) ? this._months[a.month()] : this._months[(this._months.isFormat || oe).test(b) ? "format" : "standalone"][a.month()] : c(this._months) ? this._months : this._months.standalone; } + function ga(a, b) { return a ? c(this._monthsShort) ? this._monthsShort[a.month()] : this._monthsShort[oe.test(b) ? "format" : "standalone"][a.month()] : c(this._monthsShort) ? this._monthsShort : this._monthsShort.standalone; } + function ha(a, b, c) { var d, e, f, g = a.toLocaleLowerCase(); if (!this._monthsParse) + for (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], d = 0; d < 12; ++d) + f = l([2e3, d]), this._shortMonthsParse[d] = this.monthsShort(f, "").toLocaleLowerCase(), this._longMonthsParse[d] = this.months(f, "").toLocaleLowerCase(); return c ? "MMM" === b ? (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : null) : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : null) : "MMM" === b ? (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : null)) : (e = ne.call(this._longMonthsParse, g), e !== -1 ? e : (e = ne.call(this._shortMonthsParse, g), e !== -1 ? e : null)); } + function ia(a, b, c) { var d, e, f; if (this._monthsParseExact) + return ha.call(this, a, b, c); for (this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), d = 0; d < 12; d++) { + if (e = l([2e3, d]), c && !this._longMonthsParse[d] && (this._longMonthsParse[d] = new RegExp("^" + this.months(e, "").replace(".", "") + "$", "i"), this._shortMonthsParse[d] = new RegExp("^" + this.monthsShort(e, "").replace(".", "") + "$", "i")), c || this._monthsParse[d] || (f = "^" + this.months(e, "") + "|^" + this.monthsShort(e, ""), this._monthsParse[d] = new RegExp(f.replace(".", ""), "i")), c && "MMMM" === b && this._longMonthsParse[d].test(a)) + return d; + if (c && "MMM" === b && this._shortMonthsParse[d].test(a)) + return d; + if (!c && this._monthsParse[d].test(a)) + return d; + } } + function ja(a, b) { var c; if (!a.isValid()) + return a; if ("string" == typeof b) + if (/^\d+$/.test(b)) + b = u(b); + else if (b = a.localeData().monthsParse(b), !g(b)) + return a; return c = Math.min(a.date(), ea(a.year(), b)), a._d["set" + (a._isUTC ? "UTC" : "") + "Month"](b, c), a; } + function ka(b) { return null != b ? (ja(this, b), a.updateOffset(this, !0), this) : P(this, "Month"); } + function la() { return ea(this.year(), this.month()); } + function ma(a) { return this._monthsParseExact ? (j(this, "_monthsRegex") || oa.call(this), a ? this._monthsShortStrictRegex : this._monthsShortRegex) : (j(this, "_monthsShortRegex") || (this._monthsShortRegex = re), this._monthsShortStrictRegex && a ? this._monthsShortStrictRegex : this._monthsShortRegex); } + function na(a) { return this._monthsParseExact ? (j(this, "_monthsRegex") || oa.call(this), a ? this._monthsStrictRegex : this._monthsRegex) : (j(this, "_monthsRegex") || (this._monthsRegex = se), this._monthsStrictRegex && a ? this._monthsStrictRegex : this._monthsRegex); } + function oa() { function a(a, b) { return b.length - a.length; } var b, c, d = [], e = [], f = []; for (b = 0; b < 12; b++) + c = l([2e3, b]), d.push(this.monthsShort(c, "")), e.push(this.months(c, "")), f.push(this.months(c, "")), f.push(this.monthsShort(c, "")); for (d.sort(a), e.sort(a), f.sort(a), b = 0; b < 12; b++) + d[b] = aa(d[b]), e[b] = aa(e[b]); for (b = 0; b < 24; b++) + f[b] = aa(f[b]); this._monthsRegex = new RegExp("^(" + f.join("|") + ")", "i"), this._monthsShortRegex = this._monthsRegex, this._monthsStrictRegex = new RegExp("^(" + e.join("|") + ")", "i"), this._monthsShortStrictRegex = new RegExp("^(" + d.join("|") + ")", "i"); } + function pa(a) { return qa(a) ? 366 : 365; } + function qa(a) { return a % 4 === 0 && a % 100 !== 0 || a % 400 === 0; } + function ra() { return qa(this.year()); } + function sa(a, b, c, d, e, f, g) { var h = new Date(a, b, c, d, e, f, g); return a < 100 && a >= 0 && isFinite(h.getFullYear()) && h.setFullYear(a), h; } + function ta(a) { var b = new Date(Date.UTC.apply(null, arguments)); return a < 100 && a >= 0 && isFinite(b.getUTCFullYear()) && b.setUTCFullYear(a), b; } + function ua(a, b, c) { var d = 7 + b - c, e = (7 + ta(a, 0, d).getUTCDay() - b) % 7; return -e + d - 1; } + function va(a, b, c, d, e) { var f, g, h = (7 + c - d) % 7, i = ua(a, d, e), j = 1 + 7 * (b - 1) + h + i; return j <= 0 ? (f = a - 1, g = pa(f) + j) : j > pa(a) ? (f = a + 1, g = j - pa(a)) : (f = a, g = j), { year: f, dayOfYear: g }; } + function wa(a, b, c) { var d, e, f = ua(a.year(), b, c), g = Math.floor((a.dayOfYear() - f - 1) / 7) + 1; return g < 1 ? (e = a.year() - 1, d = g + xa(e, b, c)) : g > xa(a.year(), b, c) ? (d = g - xa(a.year(), b, c), e = a.year() + 1) : (e = a.year(), d = g), { week: d, year: e }; } + function xa(a, b, c) { var d = ua(a, b, c), e = ua(a + 1, b, c); return (pa(a) - d + e) / 7; } + function ya(a) { return wa(a, this._week.dow, this._week.doy).week; } + function za() { return this._week.dow; } + function Aa() { return this._week.doy; } + function Ba(a) { var b = this.localeData().week(this); return null == a ? b : this.add(7 * (a - b), "d"); } + function Ca(a) { var b = wa(this, 1, 4).week; return null == a ? b : this.add(7 * (a - b), "d"); } + function Da(a, b) { return "string" != typeof a ? a : isNaN(a) ? (a = b.weekdaysParse(a), "number" == typeof a ? a : null) : parseInt(a, 10); } + function Ea(a, b) { return "string" == typeof a ? b.weekdaysParse(a) % 7 || 7 : isNaN(a) ? null : a; } + function Fa(a, b) { return a ? c(this._weekdays) ? this._weekdays[a.day()] : this._weekdays[this._weekdays.isFormat.test(b) ? "format" : "standalone"][a.day()] : c(this._weekdays) ? this._weekdays : this._weekdays.standalone; } + function Ga(a) { return a ? this._weekdaysShort[a.day()] : this._weekdaysShort; } + function Ha(a) { return a ? this._weekdaysMin[a.day()] : this._weekdaysMin; } + function Ia(a, b, c) { var d, e, f, g = a.toLocaleLowerCase(); if (!this._weekdaysParse) + for (this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], d = 0; d < 7; ++d) + f = l([2e3, 1]).day(d), this._minWeekdaysParse[d] = this.weekdaysMin(f, "").toLocaleLowerCase(), this._shortWeekdaysParse[d] = this.weekdaysShort(f, "").toLocaleLowerCase(), this._weekdaysParse[d] = this.weekdays(f, "").toLocaleLowerCase(); return c ? "dddd" === b ? (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : null) : "ddd" === b ? (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : null) : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null) : "dddd" === b ? (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null))) : "ddd" === b ? (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : null))) : (e = ne.call(this._minWeekdaysParse, g), e !== -1 ? e : (e = ne.call(this._weekdaysParse, g), e !== -1 ? e : (e = ne.call(this._shortWeekdaysParse, g), e !== -1 ? e : null))); } + function Ja(a, b, c) { var d, e, f; if (this._weekdaysParseExact) + return Ia.call(this, a, b, c); for (this._weekdaysParse || (this._weekdaysParse = [], this._minWeekdaysParse = [], this._shortWeekdaysParse = [], this._fullWeekdaysParse = []), d = 0; d < 7; d++) { + if (e = l([2e3, 1]).day(d), c && !this._fullWeekdaysParse[d] && (this._fullWeekdaysParse[d] = new RegExp("^" + this.weekdays(e, "").replace(".", ".?") + "$", "i"), this._shortWeekdaysParse[d] = new RegExp("^" + this.weekdaysShort(e, "").replace(".", ".?") + "$", "i"), this._minWeekdaysParse[d] = new RegExp("^" + this.weekdaysMin(e, "").replace(".", ".?") + "$", "i")), this._weekdaysParse[d] || (f = "^" + this.weekdays(e, "") + "|^" + this.weekdaysShort(e, "") + "|^" + this.weekdaysMin(e, ""), this._weekdaysParse[d] = new RegExp(f.replace(".", ""), "i")), c && "dddd" === b && this._fullWeekdaysParse[d].test(a)) + return d; + if (c && "ddd" === b && this._shortWeekdaysParse[d].test(a)) + return d; + if (c && "dd" === b && this._minWeekdaysParse[d].test(a)) + return d; + if (!c && this._weekdaysParse[d].test(a)) + return d; + } } + function Ka(a) { if (!this.isValid()) + return null != a ? this : NaN; var b = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); return null != a ? (a = Da(a, this.localeData()), this.add(a - b, "d")) : b; } + function La(a) { if (!this.isValid()) + return null != a ? this : NaN; var b = (this.day() + 7 - this.localeData()._week.dow) % 7; return null == a ? b : this.add(a - b, "d"); } + function Ma(a) { if (!this.isValid()) + return null != a ? this : NaN; if (null != a) { + var b = Ea(a, this.localeData()); + return this.day(this.day() % 7 ? b : b - 7); + } return this.day() || 7; } + function Na(a) { return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysStrictRegex : this._weekdaysRegex) : (j(this, "_weekdaysRegex") || (this._weekdaysRegex = ye), this._weekdaysStrictRegex && a ? this._weekdaysStrictRegex : this._weekdaysRegex); } + function Oa(a) { return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) : (j(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = ze), this._weekdaysShortStrictRegex && a ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex); } + function Pa(a) { return this._weekdaysParseExact ? (j(this, "_weekdaysRegex") || Qa.call(this), a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) : (j(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Ae), this._weekdaysMinStrictRegex && a ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex); } + function Qa() { function a(a, b) { return b.length - a.length; } var b, c, d, e, f, g = [], h = [], i = [], j = []; for (b = 0; b < 7; b++) + c = l([2e3, 1]).day(b), d = this.weekdaysMin(c, ""), e = this.weekdaysShort(c, ""), f = this.weekdays(c, ""), g.push(d), h.push(e), i.push(f), j.push(d), j.push(e), j.push(f); for (g.sort(a), h.sort(a), i.sort(a), j.sort(a), b = 0; b < 7; b++) + h[b] = aa(h[b]), i[b] = aa(i[b]), j[b] = aa(j[b]); this._weekdaysRegex = new RegExp("^(" + j.join("|") + ")", "i"), this._weekdaysShortRegex = this._weekdaysRegex, this._weekdaysMinRegex = this._weekdaysRegex, this._weekdaysStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), this._weekdaysShortStrictRegex = new RegExp("^(" + h.join("|") + ")", "i"), this._weekdaysMinStrictRegex = new RegExp("^(" + g.join("|") + ")", "i"); } + function Ra() { return this.hours() % 12 || 12; } + function Sa() { return this.hours() || 24; } + function Ta(a, b) { U(a, 0, 0, function () { return this.localeData().meridiem(this.hours(), this.minutes(), b); }); } + function Ua(a, b) { return b._meridiemParse; } + function Va(a) { return "p" === (a + "").toLowerCase().charAt(0); } + function Wa(a, b, c) { return a > 11 ? c ? "pm" : "PM" : c ? "am" : "AM"; } + function Xa(a) { return a ? a.toLowerCase().replace("_", "-") : a; } + function Ya(a) { for (var b, c, d, e, f = 0; f < a.length;) { + for (e = Xa(a[f]).split("-"), b = e.length, c = Xa(a[f + 1]), c = c ? c.split("-") : null; b > 0;) { + if (d = Za(e.slice(0, b).join("-"))) + return d; + if (c && c.length >= b && v(e, c, !0) >= b - 1) + break; + b--; + } + f++; + } return null; } + function Za(a) { var b = null; if (!Fe[a] && "undefined" != 'object' && module && module.exports) + try { + b = Be._abbr, commonjsRequire("./locale/" + a), $a(b); + } + catch (a) { } return Fe[a]; } + function $a(a, b) { var c; return a && (c = f(b) ? bb(a) : _a(a, b), c && (Be = c)), Be._abbr; } + function _a(a, b) { if (null !== b) { + var c = Ee; + if (b.abbr = a, null != Fe[a]) + y("defineLocaleOverride", "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."), c = Fe[a]._config; + else if (null != b.parentLocale) { + if (null == Fe[b.parentLocale]) + return Ge[b.parentLocale] || (Ge[b.parentLocale] = []), Ge[b.parentLocale].push({ name: a, config: b }), null; + c = Fe[b.parentLocale]._config; + } + return Fe[a] = new C(B(c, b)), Ge[a] && Ge[a].forEach(function (a) { _a(a.name, a.config); }), $a(a), Fe[a]; + } return delete Fe[a], null; } + function ab(a, b) { if (null != b) { + var c, d = Ee; + null != Fe[a] && (d = Fe[a]._config), b = B(d, b), c = new C(b), c.parentLocale = Fe[a], Fe[a] = c, $a(a); + } + else + null != Fe[a] && (null != Fe[a].parentLocale ? Fe[a] = Fe[a].parentLocale : null != Fe[a] && delete Fe[a]); return Fe[a]; } + function bb(a) { var b; if (a && a._locale && a._locale._abbr && (a = a._locale._abbr), !a) + return Be; if (!c(a)) { + if (b = Za(a)) + return b; + a = [a]; + } return Ya(a); } + function cb() { return Ad(Fe); } + function db(a) { var b, c = a._a; return c && n(a).overflow === -2 && (b = c[fe] < 0 || c[fe] > 11 ? fe : c[ge] < 1 || c[ge] > ea(c[ee], c[fe]) ? ge : c[he] < 0 || c[he] > 24 || 24 === c[he] && (0 !== c[ie] || 0 !== c[je] || 0 !== c[ke]) ? he : c[ie] < 0 || c[ie] > 59 ? ie : c[je] < 0 || c[je] > 59 ? je : c[ke] < 0 || c[ke] > 999 ? ke : -1, n(a)._overflowDayOfYear && (b < ee || b > ge) && (b = ge), n(a)._overflowWeeks && b === -1 && (b = le), n(a)._overflowWeekday && b === -1 && (b = me), n(a).overflow = b), a; } + function eb(a) { var b, c, d, e, f, g, h = a._i, i = He.exec(h) || Ie.exec(h); if (i) { + for (n(a).iso = !0, b = 0, c = Ke.length; b < c; b++) + if (Ke[b][1].exec(i[1])) { + e = Ke[b][0], d = Ke[b][2] !== !1; + break; + } + if (null == e) + return void (a._isValid = !1); + if (i[3]) { + for (b = 0, c = Le.length; b < c; b++) + if (Le[b][1].exec(i[3])) { + f = (i[2] || " ") + Le[b][0]; + break; + } + if (null == f) + return void (a._isValid = !1); + } + if (!d && null != f) + return void (a._isValid = !1); + if (i[4]) { + if (!Je.exec(i[4])) + return void (a._isValid = !1); + g = "Z"; + } + a._f = e + (f || "") + (g || ""), lb(a); + } + else + a._isValid = !1; } + function fb(a) { var b, c, d, e, f, g, h, i, j = { " GMT": " +0000", " EDT": " -0400", " EST": " -0500", " CDT": " -0500", " CST": " -0600", " MDT": " -0600", " MST": " -0700", " PDT": " -0700", " PST": " -0800" }, k = "YXWVUTSRQPONZABCDEFGHIKLM"; if (b = a._i.replace(/\([^\)]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s|\s$/g, ""), c = Ne.exec(b)) { + if (d = c[1] ? "ddd" + (5 === c[1].length ? ", " : " ") : "", e = "D MMM " + (c[2].length > 10 ? "YYYY " : "YY "), f = "HH:mm" + (c[4] ? ":ss" : ""), c[1]) { + var l = new Date(c[2]), m = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"][l.getDay()]; + if (c[1].substr(0, 3) !== m) + return n(a).weekdayMismatch = !0, void (a._isValid = !1); + } + switch (c[5].length) { + case 2: + 0 === i ? h = " +0000" : (i = k.indexOf(c[5][1].toUpperCase()) - 12, h = (i < 0 ? " -" : " +") + ("" + i).replace(/^-?/, "0").match(/..$/)[0] + "00"); + break; + case 4: + h = j[c[5]]; + break; + default: h = j[" GMT"]; + } + c[5] = h, a._i = c.splice(1).join(""), g = " ZZ", a._f = d + e + f + g, lb(a), n(a).rfc2822 = !0; + } + else + a._isValid = !1; } + function gb(b) { var c = Me.exec(b._i); return null !== c ? void (b._d = new Date(+c[1])) : (eb(b), void (b._isValid === !1 && (delete b._isValid, fb(b), b._isValid === !1 && (delete b._isValid, a.createFromInputFallback(b))))); } + function hb(a, b, c) { return null != a ? a : null != b ? b : c; } + function ib(b) { var c = new Date(a.now()); return b._useUTC ? [c.getUTCFullYear(), c.getUTCMonth(), c.getUTCDate()] : [c.getFullYear(), c.getMonth(), c.getDate()]; } + function jb(a) { var b, c, d, e, f = []; if (!a._d) { + for (d = ib(a), a._w && null == a._a[ge] && null == a._a[fe] && kb(a), null != a._dayOfYear && (e = hb(a._a[ee], d[ee]), (a._dayOfYear > pa(e) || 0 === a._dayOfYear) && (n(a)._overflowDayOfYear = !0), c = ta(e, 0, a._dayOfYear), a._a[fe] = c.getUTCMonth(), a._a[ge] = c.getUTCDate()), b = 0; b < 3 && null == a._a[b]; ++b) + a._a[b] = f[b] = d[b]; + for (; b < 7; b++) + a._a[b] = f[b] = null == a._a[b] ? 2 === b ? 1 : 0 : a._a[b]; + 24 === a._a[he] && 0 === a._a[ie] && 0 === a._a[je] && 0 === a._a[ke] && (a._nextDay = !0, a._a[he] = 0), a._d = (a._useUTC ? ta : sa).apply(null, f), null != a._tzm && a._d.setUTCMinutes(a._d.getUTCMinutes() - a._tzm), a._nextDay && (a._a[he] = 24); + } } + function kb(a) { var b, c, d, e, f, g, h, i; if (b = a._w, null != b.GG || null != b.W || null != b.E) + f = 1, g = 4, c = hb(b.GG, a._a[ee], wa(tb(), 1, 4).year), d = hb(b.W, 1), e = hb(b.E, 1), (e < 1 || e > 7) && (i = !0); + else { + f = a._locale._week.dow, g = a._locale._week.doy; + var j = wa(tb(), f, g); + c = hb(b.gg, a._a[ee], j.year), d = hb(b.w, j.week), null != b.d ? (e = b.d, (e < 0 || e > 6) && (i = !0)) : null != b.e ? (e = b.e + f, (b.e < 0 || b.e > 6) && (i = !0)) : e = f; + } d < 1 || d > xa(c, f, g) ? n(a)._overflowWeeks = !0 : null != i ? n(a)._overflowWeekday = !0 : (h = va(c, d, e, f, g), a._a[ee] = h.year, a._dayOfYear = h.dayOfYear); } + function lb(b) { if (b._f === a.ISO_8601) + return void eb(b); if (b._f === a.RFC_2822) + return void fb(b); b._a = [], n(b).empty = !0; var c, d, e, f, g, h = "" + b._i, i = h.length, j = 0; for (e = Y(b._f, b._locale).match(Jd) || [], c = 0; c < e.length; c++) + f = e[c], d = (h.match($(f, b)) || [])[0], d && (g = h.substr(0, h.indexOf(d)), g.length > 0 && n(b).unusedInput.push(g), h = h.slice(h.indexOf(d) + d.length), j += d.length), Md[f] ? (d ? n(b).empty = !1 : n(b).unusedTokens.push(f), da(f, d, b)) : b._strict && !d && n(b).unusedTokens.push(f); n(b).charsLeftOver = i - j, h.length > 0 && n(b).unusedInput.push(h), b._a[he] <= 12 && n(b).bigHour === !0 && b._a[he] > 0 && (n(b).bigHour = void 0), n(b).parsedDateParts = b._a.slice(0), n(b).meridiem = b._meridiem, b._a[he] = mb(b._locale, b._a[he], b._meridiem), jb(b), db(b); } + function mb(a, b, c) { var d; return null == c ? b : null != a.meridiemHour ? a.meridiemHour(b, c) : null != a.isPM ? (d = a.isPM(c), d && b < 12 && (b += 12), d || 12 !== b || (b = 0), b) : b; } + function nb(a) { var b, c, d, e, f; if (0 === a._f.length) + return n(a).invalidFormat = !0, void (a._d = new Date(NaN)); for (e = 0; e < a._f.length; e++) + f = 0, b = q({}, a), null != a._useUTC && (b._useUTC = a._useUTC), b._f = a._f[e], lb(b), o(b) && (f += n(b).charsLeftOver, f += 10 * n(b).unusedTokens.length, n(b).score = f, (null == d || f < d) && (d = f, c = b)); k(a, c || b); } + function ob(a) { if (!a._d) { + var b = L(a._i); + a._a = i([b.year, b.month, b.day || b.date, b.hour, b.minute, b.second, b.millisecond], function (a) { return a && parseInt(a, 10); }), jb(a); + } } + function pb(a) { var b = new r(db(qb(a))); return b._nextDay && (b.add(1, "d"), b._nextDay = void 0), b; } + function qb(a) { var b = a._i, d = a._f; return a._locale = a._locale || bb(a._l), null === b || void 0 === d && "" === b ? p({ nullInput: !0 }) : ("string" == typeof b && (a._i = b = a._locale.preparse(b)), s(b) ? new r(db(b)) : (h(b) ? a._d = b : c(d) ? nb(a) : d ? lb(a) : rb(a), o(a) || (a._d = null), a)); } + function rb(b) { var e = b._i; f(e) ? b._d = new Date(a.now()) : h(e) ? b._d = new Date(e.valueOf()) : "string" == typeof e ? gb(b) : c(e) ? (b._a = i(e.slice(0), function (a) { return parseInt(a, 10); }), jb(b)) : d(e) ? ob(b) : g(e) ? b._d = new Date(e) : a.createFromInputFallback(b); } + function sb(a, b, f, g, h) { var i = {}; return f !== !0 && f !== !1 || (g = f, f = void 0), (d(a) && e(a) || c(a) && 0 === a.length) && (a = void 0), i._isAMomentObject = !0, i._useUTC = i._isUTC = h, i._l = f, i._i = a, i._f = b, i._strict = g, pb(i); } + function tb(a, b, c, d) { return sb(a, b, c, d, !1); } + function ub(a, b) { var d, e; if (1 === b.length && c(b[0]) && (b = b[0]), !b.length) + return tb(); for (d = b[0], e = 1; e < b.length; ++e) + b[e].isValid() && !b[e][a](d) || (d = b[e]); return d; } + function vb() { var a = [].slice.call(arguments, 0); return ub("isBefore", a); } + function wb() { var a = [].slice.call(arguments, 0); return ub("isAfter", a); } + function xb(a) { for (var b in a) + if (Re.indexOf(b) === -1 || null != a[b] && isNaN(a[b])) + return !1; for (var c = !1, d = 0; d < Re.length; ++d) + if (a[Re[d]]) { + if (c) + return !1; + parseFloat(a[Re[d]]) !== u(a[Re[d]]) && (c = !0); + } return !0; } + function yb() { return this._isValid; } + function zb() { return Sb(NaN); } + function Ab(a) { var b = L(a), c = b.year || 0, d = b.quarter || 0, e = b.month || 0, f = b.week || 0, g = b.day || 0, h = b.hour || 0, i = b.minute || 0, j = b.second || 0, k = b.millisecond || 0; this._isValid = xb(b), this._milliseconds = +k + 1e3 * j + 6e4 * i + 1e3 * h * 60 * 60, this._days = +g + 7 * f, this._months = +e + 3 * d + 12 * c, this._data = {}, this._locale = bb(), this._bubble(); } + function Bb(a) { return a instanceof Ab; } + function Cb(a) { return a < 0 ? Math.round(-1 * a) * -1 : Math.round(a); } + function Db(a, b) { U(a, 0, 0, function () { var a = this.utcOffset(), c = "+"; return a < 0 && (a = -a, c = "-"), c + T(~~(a / 60), 2) + b + T(~~a % 60, 2); }); } + function Eb(a, b) { var c = (b || "").match(a); if (null === c) + return null; var d = c[c.length - 1] || [], e = (d + "").match(Se) || ["-", 0, 0], f = +(60 * e[1]) + u(e[2]); return 0 === f ? 0 : "+" === e[0] ? f : -f; } + function Fb(b, c) { var d, e; return c._isUTC ? (d = c.clone(), e = (s(b) || h(b) ? b.valueOf() : tb(b).valueOf()) - d.valueOf(), d._d.setTime(d._d.valueOf() + e), a.updateOffset(d, !1), d) : tb(b).local(); } + function Gb(a) { return 15 * -Math.round(a._d.getTimezoneOffset() / 15); } + function Hb(b, c, d) { var e, f = this._offset || 0; if (!this.isValid()) + return null != b ? this : NaN; if (null != b) { + if ("string" == typeof b) { + if (b = Eb(_d, b), null === b) + return this; + } + else + Math.abs(b) < 16 && !d && (b = 60 * b); + return !this._isUTC && c && (e = Gb(this)), this._offset = b, this._isUTC = !0, null != e && this.add(e, "m"), f !== b && (!c || this._changeInProgress ? Xb(this, Sb(b - f, "m"), 1, !1) : this._changeInProgress || (this._changeInProgress = !0, a.updateOffset(this, !0), this._changeInProgress = null)), this; + } return this._isUTC ? f : Gb(this); } + function Ib(a, b) { return null != a ? ("string" != typeof a && (a = -a), this.utcOffset(a, b), this) : -this.utcOffset(); } + function Jb(a) { return this.utcOffset(0, a); } + function Kb(a) { return this._isUTC && (this.utcOffset(0, a), this._isUTC = !1, a && this.subtract(Gb(this), "m")), this; } + function Lb() { if (null != this._tzm) + this.utcOffset(this._tzm, !1, !0); + else if ("string" == typeof this._i) { + var a = Eb($d, this._i); + null != a ? this.utcOffset(a) : this.utcOffset(0, !0); + } return this; } + function Mb(a) { return !!this.isValid() && (a = a ? tb(a).utcOffset() : 0, (this.utcOffset() - a) % 60 === 0); } + function Nb() { return this.utcOffset() > this.clone().month(0).utcOffset() || this.utcOffset() > this.clone().month(5).utcOffset(); } + function Ob() { if (!f(this._isDSTShifted)) + return this._isDSTShifted; var a = {}; if (q(a, this), a = qb(a), a._a) { + var b = a._isUTC ? l(a._a) : tb(a._a); + this._isDSTShifted = this.isValid() && v(a._a, b.toArray()) > 0; + } + else + this._isDSTShifted = !1; return this._isDSTShifted; } + function Pb() { return !!this.isValid() && !this._isUTC; } + function Qb() { return !!this.isValid() && this._isUTC; } + function Rb() { return !!this.isValid() && (this._isUTC && 0 === this._offset); } + function Sb(a, b) { var c, d, e, f = a, h = null; return Bb(a) ? f = { ms: a._milliseconds, d: a._days, M: a._months } : g(a) ? (f = {}, b ? f[b] = a : f.milliseconds = a) : (h = Te.exec(a)) ? (c = "-" === h[1] ? -1 : 1, f = { y: 0, d: u(h[ge]) * c, h: u(h[he]) * c, m: u(h[ie]) * c, s: u(h[je]) * c, ms: u(Cb(1e3 * h[ke])) * c }) : (h = Ue.exec(a)) ? (c = "-" === h[1] ? -1 : 1, f = { y: Tb(h[2], c), M: Tb(h[3], c), w: Tb(h[4], c), d: Tb(h[5], c), h: Tb(h[6], c), m: Tb(h[7], c), s: Tb(h[8], c) }) : null == f ? f = {} : "object" == typeof f && ("from" in f || "to" in f) && (e = Vb(tb(f.from), tb(f.to)), f = {}, f.ms = e.milliseconds, f.M = e.months), d = new Ab(f), Bb(a) && j(a, "_locale") && (d._locale = a._locale), d; } + function Tb(a, b) { var c = a && parseFloat(a.replace(",", ".")); return (isNaN(c) ? 0 : c) * b; } + function Ub(a, b) { var c = { milliseconds: 0, months: 0 }; return c.months = b.month() - a.month() + 12 * (b.year() - a.year()), a.clone().add(c.months, "M").isAfter(b) && --c.months, c.milliseconds = +b - +a.clone().add(c.months, "M"), c; } + function Vb(a, b) { var c; return a.isValid() && b.isValid() ? (b = Fb(b, a), a.isBefore(b) ? c = Ub(a, b) : (c = Ub(b, a), c.milliseconds = -c.milliseconds, c.months = -c.months), c) : { milliseconds: 0, months: 0 }; } + function Wb(a, b) { return function (c, d) { var e, f; return null === d || isNaN(+d) || (y(b, "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."), f = c, c = d, d = f), c = "string" == typeof c ? +c : c, e = Sb(c, d), Xb(this, e, a), this; }; } + function Xb(b, c, d, e) { var f = c._milliseconds, g = Cb(c._days), h = Cb(c._months); b.isValid() && (e = null == e || e, f && b._d.setTime(b._d.valueOf() + f * d), g && Q(b, "Date", P(b, "Date") + g * d), h && ja(b, P(b, "Month") + h * d), e && a.updateOffset(b, g || h)); } + function Yb(a, b) { var c = a.diff(b, "days", !0); return c < -6 ? "sameElse" : c < -1 ? "lastWeek" : c < 0 ? "lastDay" : c < 1 ? "sameDay" : c < 2 ? "nextDay" : c < 7 ? "nextWeek" : "sameElse"; } + function Zb(b, c) { var d = b || tb(), e = Fb(d, this).startOf("day"), f = a.calendarFormat(this, e) || "sameElse", g = c && (z(c[f]) ? c[f].call(this, d) : c[f]); return this.format(g || this.localeData().calendar(f, this, tb(d))); } + function $b() { return new r(this); } + function _b(a, b) { var c = s(a) ? a : tb(a); return !(!this.isValid() || !c.isValid()) && (b = K(f(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() > c.valueOf() : c.valueOf() < this.clone().startOf(b).valueOf()); } + function ac(a, b) { var c = s(a) ? a : tb(a); return !(!this.isValid() || !c.isValid()) && (b = K(f(b) ? "millisecond" : b), "millisecond" === b ? this.valueOf() < c.valueOf() : this.clone().endOf(b).valueOf() < c.valueOf()); } + function bc(a, b, c, d) { return d = d || "()", ("(" === d[0] ? this.isAfter(a, c) : !this.isBefore(a, c)) && (")" === d[1] ? this.isBefore(b, c) : !this.isAfter(b, c)); } + function cc(a, b) { var c, d = s(a) ? a : tb(a); return !(!this.isValid() || !d.isValid()) && (b = K(b || "millisecond"), "millisecond" === b ? this.valueOf() === d.valueOf() : (c = d.valueOf(), this.clone().startOf(b).valueOf() <= c && c <= this.clone().endOf(b).valueOf())); } + function dc(a, b) { return this.isSame(a, b) || this.isAfter(a, b); } + function ec(a, b) { return this.isSame(a, b) || this.isBefore(a, b); } + function fc(a, b, c) { var d, e, f, g; return this.isValid() ? (d = Fb(a, this), d.isValid() ? (e = 6e4 * (d.utcOffset() - this.utcOffset()), b = K(b), "year" === b || "month" === b || "quarter" === b ? (g = gc(this, d), "quarter" === b ? g /= 3 : "year" === b && (g /= 12)) : (f = this - d, g = "second" === b ? f / 1e3 : "minute" === b ? f / 6e4 : "hour" === b ? f / 36e5 : "day" === b ? (f - e) / 864e5 : "week" === b ? (f - e) / 6048e5 : f), c ? g : t(g)) : NaN) : NaN; } + function gc(a, b) { var c, d, e = 12 * (b.year() - a.year()) + (b.month() - a.month()), f = a.clone().add(e, "months"); return b - f < 0 ? (c = a.clone().add(e - 1, "months"), d = (b - f) / (f - c)) : (c = a.clone().add(e + 1, "months"), d = (b - f) / (c - f)), -(e + d) || 0; } + function hc() { return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); } + function ic() { if (!this.isValid()) + return null; var a = this.clone().utc(); return a.year() < 0 || a.year() > 9999 ? X(a, "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]") : z(Date.prototype.toISOString) ? this.toDate().toISOString() : X(a, "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]"); } + function jc() { if (!this.isValid()) + return "moment.invalid(/* " + this._i + " */)"; var a = "moment", b = ""; this.isLocal() || (a = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", b = "Z"); var c = "[" + a + '("]', d = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", e = "-MM-DD[T]HH:mm:ss.SSS", f = b + '[")]'; return this.format(c + d + e + f); } + function kc(b) { b || (b = this.isUtc() ? a.defaultFormatUtc : a.defaultFormat); var c = X(this, b); return this.localeData().postformat(c); } + function lc(a, b) { return this.isValid() && (s(a) && a.isValid() || tb(a).isValid()) ? Sb({ to: this, from: a }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); } + function mc(a) { return this.from(tb(), a); } + function nc(a, b) { return this.isValid() && (s(a) && a.isValid() || tb(a).isValid()) ? Sb({ from: this, to: a }).locale(this.locale()).humanize(!b) : this.localeData().invalidDate(); } + function oc(a) { return this.to(tb(), a); } + function pc(a) { var b; return void 0 === a ? this._locale._abbr : (b = bb(a), null != b && (this._locale = b), this); } + function qc() { return this._locale; } + function rc(a) { switch (a = K(a)) { + case "year": this.month(0); + case "quarter": + case "month": this.date(1); + case "week": + case "isoWeek": + case "day": + case "date": this.hours(0); + case "hour": this.minutes(0); + case "minute": this.seconds(0); + case "second": this.milliseconds(0); + } return "week" === a && this.weekday(0), "isoWeek" === a && this.isoWeekday(1), "quarter" === a && this.month(3 * Math.floor(this.month() / 3)), this; } + function sc(a) { return a = K(a), void 0 === a || "millisecond" === a ? this : ("date" === a && (a = "day"), this.startOf(a).add(1, "isoWeek" === a ? "week" : a).subtract(1, "ms")); } + function tc() { return this._d.valueOf() - 6e4 * (this._offset || 0); } + function uc() { return Math.floor(this.valueOf() / 1e3); } + function vc() { return new Date(this.valueOf()); } + function wc() { var a = this; return [a.year(), a.month(), a.date(), a.hour(), a.minute(), a.second(), a.millisecond()]; } + function xc() { var a = this; return { years: a.year(), months: a.month(), date: a.date(), hours: a.hours(), minutes: a.minutes(), seconds: a.seconds(), milliseconds: a.milliseconds() }; } + function yc() { return this.isValid() ? this.toISOString() : null; } + function zc() { return o(this); } + function Ac() { + return k({}, n(this)); + } + function Bc() { return n(this).overflow; } + function Cc() { return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; } + function Dc(a, b) { U(0, [a, a.length], 0, b); } + function Ec(a) { return Ic.call(this, a, this.week(), this.weekday(), this.localeData()._week.dow, this.localeData()._week.doy); } + function Fc(a) { return Ic.call(this, a, this.isoWeek(), this.isoWeekday(), 1, 4); } + function Gc() { return xa(this.year(), 1, 4); } + function Hc() { var a = this.localeData()._week; return xa(this.year(), a.dow, a.doy); } + function Ic(a, b, c, d, e) { var f; return null == a ? wa(this, d, e).year : (f = xa(a, d, e), b > f && (b = f), Jc.call(this, a, b, c, d, e)); } + function Jc(a, b, c, d, e) { var f = va(a, b, c, d, e), g = ta(f.year, 0, f.dayOfYear); return this.year(g.getUTCFullYear()), this.month(g.getUTCMonth()), this.date(g.getUTCDate()), this; } + function Kc(a) { return null == a ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (a - 1) + this.month() % 3); } + function Lc(a) { var b = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; return null == a ? b : this.add(a - b, "d"); } + function Mc(a, b) { b[ke] = u(1e3 * ("0." + a)); } + function Nc() { return this._isUTC ? "UTC" : ""; } + function Oc() { return this._isUTC ? "Coordinated Universal Time" : ""; } + function Pc(a) { return tb(1e3 * a); } + function Qc() { return tb.apply(null, arguments).parseZone(); } + function Rc(a) { return a; } + function Sc(a, b, c, d) { var e = bb(), f = l().set(d, b); return e[c](f, a); } + function Tc(a, b, c) { if (g(a) && (b = a, a = void 0), a = a || "", null != b) + return Sc(a, b, c, "month"); var d, e = []; for (d = 0; d < 12; d++) + e[d] = Sc(a, d, c, "month"); return e; } + function Uc(a, b, c, d) { "boolean" == typeof a ? (g(b) && (c = b, b = void 0), b = b || "") : (b = a, c = b, a = !1, g(b) && (c = b, b = void 0), b = b || ""); var e = bb(), f = a ? e._week.dow : 0; if (null != c) + return Sc(b, (c + f) % 7, d, "day"); var h, i = []; for (h = 0; h < 7; h++) + i[h] = Sc(b, (h + f) % 7, d, "day"); return i; } + function Vc(a, b) { return Tc(a, b, "months"); } + function Wc(a, b) { return Tc(a, b, "monthsShort"); } + function Xc(a, b, c) { return Uc(a, b, c, "weekdays"); } + function Yc(a, b, c) { return Uc(a, b, c, "weekdaysShort"); } + function Zc(a, b, c) { return Uc(a, b, c, "weekdaysMin"); } + function $c() { var a = this._data; return this._milliseconds = df(this._milliseconds), this._days = df(this._days), this._months = df(this._months), a.milliseconds = df(a.milliseconds), a.seconds = df(a.seconds), a.minutes = df(a.minutes), a.hours = df(a.hours), a.months = df(a.months), a.years = df(a.years), this; } + function _c(a, b, c, d) { var e = Sb(b, c); return a._milliseconds += d * e._milliseconds, a._days += d * e._days, a._months += d * e._months, a._bubble(); } + function ad(a, b) { return _c(this, a, b, 1); } + function bd(a, b) { return _c(this, a, b, -1); } + function cd(a) { return a < 0 ? Math.floor(a) : Math.ceil(a); } + function dd() { var a, b, c, d, e, f = this._milliseconds, g = this._days, h = this._months, i = this._data; return f >= 0 && g >= 0 && h >= 0 || f <= 0 && g <= 0 && h <= 0 || (f += 864e5 * cd(fd(h) + g), g = 0, h = 0), i.milliseconds = f % 1e3, a = t(f / 1e3), i.seconds = a % 60, b = t(a / 60), i.minutes = b % 60, c = t(b / 60), i.hours = c % 24, g += t(c / 24), e = t(ed(g)), h += e, g -= cd(fd(e)), d = t(h / 12), h %= 12, i.days = g, i.months = h, i.years = d, this; } + function ed(a) { return 4800 * a / 146097; } + function fd(a) { return 146097 * a / 4800; } + function gd(a) { if (!this.isValid()) + return NaN; var b, c, d = this._milliseconds; if (a = K(a), "month" === a || "year" === a) + return b = this._days + d / 864e5, c = this._months + ed(b), "month" === a ? c : c / 12; switch (b = this._days + Math.round(fd(this._months)), a) { + case "week": return b / 7 + d / 6048e5; + case "day": return b + d / 864e5; + case "hour": return 24 * b + d / 36e5; + case "minute": return 1440 * b + d / 6e4; + case "second": return 86400 * b + d / 1e3; + case "millisecond": return Math.floor(864e5 * b) + d; + default: throw new Error("Unknown unit " + a); + } } + function hd() { return this.isValid() ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * u(this._months / 12) : NaN; } + function id(a) { return function () { return this.as(a); }; } + function jd(a) { return a = K(a), this.isValid() ? this[a + "s"]() : NaN; } + function kd(a) { return function () { return this.isValid() ? this._data[a] : NaN; }; } + function ld() { return t(this.days() / 7); } + function md(a, b, c, d, e) { return e.relativeTime(b || 1, !!c, a, d); } + function nd(a, b, c) { var d = Sb(a).abs(), e = uf(d.as("s")), f = uf(d.as("m")), g = uf(d.as("h")), h = uf(d.as("d")), i = uf(d.as("M")), j = uf(d.as("y")), k = e <= vf.ss && ["s", e] || e < vf.s && ["ss", e] || f <= 1 && ["m"] || f < vf.m && ["mm", f] || g <= 1 && ["h"] || g < vf.h && ["hh", g] || h <= 1 && ["d"] || h < vf.d && ["dd", h] || i <= 1 && ["M"] || i < vf.M && ["MM", i] || j <= 1 && ["y"] || ["yy", j]; return k[2] = b, k[3] = +a > 0, k[4] = c, md.apply(null, k); } + function od(a) { return void 0 === a ? uf : "function" == typeof a && (uf = a, !0); } + function pd(a, b) { return void 0 !== vf[a] && (void 0 === b ? vf[a] : (vf[a] = b, "s" === a && (vf.ss = b - 1), !0)); } + function qd(a) { if (!this.isValid()) + return this.localeData().invalidDate(); var b = this.localeData(), c = nd(this, !a, b); return a && (c = b.pastFuture(+this, c)), b.postformat(c); } + function rd() { if (!this.isValid()) + return this.localeData().invalidDate(); var a, b, c, d = wf(this._milliseconds) / 1e3, e = wf(this._days), f = wf(this._months); a = t(d / 60), b = t(a / 60), d %= 60, a %= 60, c = t(f / 12), f %= 12; var g = c, h = f, i = e, j = b, k = a, l = d, m = this.asSeconds(); return m ? (m < 0 ? "-" : "") + "P" + (g ? g + "Y" : "") + (h ? h + "M" : "") + (i ? i + "D" : "") + (j || k || l ? "T" : "") + (j ? j + "H" : "") + (k ? k + "M" : "") + (l ? l + "S" : "") : "P0D"; } + var sd, td; + td = Array.prototype.some ? Array.prototype.some : function (a) { for (var b = Object(this), c = b.length >>> 0, d = 0; d < c; d++) + if (d in b && a.call(this, b[d], d, b)) + return !0; return !1; }; + var ud = td, vd = a.momentProperties = [], wd = !1, xd = {}; + a.suppressDeprecationWarnings = !1, a.deprecationHandler = null; + var yd; + yd = Object.keys ? Object.keys : function (a) { var b, c = []; for (b in a) + j(a, b) && c.push(b); return c; }; + var zd, Ad = yd, Bd = { sameDay: "[Today at] LT", nextDay: "[Tomorrow at] LT", nextWeek: "dddd [at] LT", lastDay: "[Yesterday at] LT", lastWeek: "[Last] dddd [at] LT", sameElse: "L" }, Cd = { LTS: "h:mm:ss A", LT: "h:mm A", L: "MM/DD/YYYY", LL: "MMMM D, YYYY", LLL: "MMMM D, YYYY h:mm A", LLLL: "dddd, MMMM D, YYYY h:mm A" }, Dd = "Invalid date", Ed = "%d", Fd = /\d{1,2}/, Gd = { future: "in %s", past: "%s ago", s: "a few seconds", ss: "%d seconds", m: "a minute", mm: "%d minutes", h: "an hour", hh: "%d hours", d: "a day", dd: "%d days", M: "a month", MM: "%d months", y: "a year", yy: "%d years" }, Hd = {}, Id = {}, Jd = /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, Kd = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, Ld = {}, Md = {}, Nd = /\d/, Od = /\d\d/, Pd = /\d{3}/, Qd = /\d{4}/, Rd = /[+-]?\d{6}/, Sd = /\d\d?/, Td = /\d\d\d\d?/, Ud = /\d\d\d\d\d\d?/, Vd = /\d{1,3}/, Wd = /\d{1,4}/, Xd = /[+-]?\d{1,6}/, Yd = /\d+/, Zd = /[+-]?\d+/, $d = /Z|[+-]\d\d:?\d\d/gi, _d = /Z|[+-]\d\d(?::?\d\d)?/gi, ae = /[+-]?\d+(\.\d{1,3})?/, be = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, ce = {}, de = {}, ee = 0, fe = 1, ge = 2, he = 3, ie = 4, je = 5, ke = 6, le = 7, me = 8; + zd = Array.prototype.indexOf ? Array.prototype.indexOf : function (a) { var b; for (b = 0; b < this.length; ++b) + if (this[b] === a) + return b; return -1; }; + var ne = zd; + U("M", ["MM", 2], "Mo", function () { return this.month() + 1; }), U("MMM", 0, 0, function (a) { return this.localeData().monthsShort(this, a); }), U("MMMM", 0, 0, function (a) { return this.localeData().months(this, a); }), J("month", "M"), M("month", 8), Z("M", Sd), Z("MM", Sd, Od), Z("MMM", function (a, b) { return b.monthsShortRegex(a); }), Z("MMMM", function (a, b) { return b.monthsRegex(a); }), ba(["M", "MM"], function (a, b) { b[fe] = u(a) - 1; }), ba(["MMM", "MMMM"], function (a, b, c, d) { var e = c._locale.monthsParse(a, d, c._strict); null != e ? b[fe] = e : n(c).invalidMonth = a; }); + var oe = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, pe = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), qe = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), re = be, se = be; + U("Y", 0, 0, function () { var a = this.year(); return a <= 9999 ? "" + a : "+" + a; }), U(0, ["YY", 2], 0, function () { return this.year() % 100; }), U(0, ["YYYY", 4], 0, "year"), U(0, ["YYYYY", 5], 0, "year"), U(0, ["YYYYYY", 6, !0], 0, "year"), J("year", "y"), M("year", 1), Z("Y", Zd), Z("YY", Sd, Od), Z("YYYY", Wd, Qd), Z("YYYYY", Xd, Rd), Z("YYYYYY", Xd, Rd), ba(["YYYYY", "YYYYYY"], ee), ba("YYYY", function (b, c) { c[ee] = 2 === b.length ? a.parseTwoDigitYear(b) : u(b); }), ba("YY", function (b, c) { c[ee] = a.parseTwoDigitYear(b); }), ba("Y", function (a, b) { b[ee] = parseInt(a, 10); }), a.parseTwoDigitYear = function (a) { return u(a) + (u(a) > 68 ? 1900 : 2e3); }; + var te = O("FullYear", !0); + U("w", ["ww", 2], "wo", "week"), U("W", ["WW", 2], "Wo", "isoWeek"), J("week", "w"), J("isoWeek", "W"), M("week", 5), M("isoWeek", 5), Z("w", Sd), Z("ww", Sd, Od), Z("W", Sd), Z("WW", Sd, Od), ca(["w", "ww", "W", "WW"], function (a, b, c, d) { b[d.substr(0, 1)] = u(a); }); + var ue = { dow: 0, doy: 6 }; + U("d", 0, "do", "day"), U("dd", 0, 0, function (a) { return this.localeData().weekdaysMin(this, a); }), U("ddd", 0, 0, function (a) { return this.localeData().weekdaysShort(this, a); }), U("dddd", 0, 0, function (a) { return this.localeData().weekdays(this, a); }), U("e", 0, 0, "weekday"), U("E", 0, 0, "isoWeekday"), J("day", "d"), J("weekday", "e"), J("isoWeekday", "E"), M("day", 11), M("weekday", 11), M("isoWeekday", 11), Z("d", Sd), Z("e", Sd), Z("E", Sd), Z("dd", function (a, b) { return b.weekdaysMinRegex(a); }), Z("ddd", function (a, b) { return b.weekdaysShortRegex(a); }), Z("dddd", function (a, b) { return b.weekdaysRegex(a); }), ca(["dd", "ddd", "dddd"], function (a, b, c, d) { var e = c._locale.weekdaysParse(a, d, c._strict); null != e ? b.d = e : n(c).invalidWeekday = a; }), ca(["d", "e", "E"], function (a, b, c, d) { b[d] = u(a); }); + var ve = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), we = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), xe = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), ye = be, ze = be, Ae = be; + U("H", ["HH", 2], 0, "hour"), U("h", ["hh", 2], 0, Ra), U("k", ["kk", 2], 0, Sa), U("hmm", 0, 0, function () { return "" + Ra.apply(this) + T(this.minutes(), 2); }), U("hmmss", 0, 0, function () { return "" + Ra.apply(this) + T(this.minutes(), 2) + T(this.seconds(), 2); }), U("Hmm", 0, 0, function () { return "" + this.hours() + T(this.minutes(), 2); }), U("Hmmss", 0, 0, function () { return "" + this.hours() + T(this.minutes(), 2) + T(this.seconds(), 2); }), Ta("a", !0), Ta("A", !1), J("hour", "h"), M("hour", 13), Z("a", Ua), Z("A", Ua), Z("H", Sd), Z("h", Sd), Z("k", Sd), Z("HH", Sd, Od), Z("hh", Sd, Od), Z("kk", Sd, Od), Z("hmm", Td), Z("hmmss", Ud), Z("Hmm", Td), Z("Hmmss", Ud), ba(["H", "HH"], he), ba(["k", "kk"], function (a, b, c) { var d = u(a); b[he] = 24 === d ? 0 : d; }), ba(["a", "A"], function (a, b, c) { c._isPm = c._locale.isPM(a), c._meridiem = a; }), ba(["h", "hh"], function (a, b, c) { b[he] = u(a), n(c).bigHour = !0; }), ba("hmm", function (a, b, c) { var d = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d)), n(c).bigHour = !0; }), ba("hmmss", function (a, b, c) { var d = a.length - 4, e = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d, 2)), b[je] = u(a.substr(e)), n(c).bigHour = !0; }), ba("Hmm", function (a, b, c) { var d = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d)); }), ba("Hmmss", function (a, b, c) { var d = a.length - 4, e = a.length - 2; b[he] = u(a.substr(0, d)), b[ie] = u(a.substr(d, 2)), b[je] = u(a.substr(e)); }); + var Be, Ce = /[ap]\.?m?\.?/i, De = O("Hours", !0), Ee = { calendar: Bd, longDateFormat: Cd, invalidDate: Dd, ordinal: Ed, dayOfMonthOrdinalParse: Fd, relativeTime: Gd, months: pe, monthsShort: qe, week: ue, weekdays: ve, weekdaysMin: xe, weekdaysShort: we, meridiemParse: Ce }, Fe = {}, Ge = {}, He = /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Ie = /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/, Je = /Z|[+-]\d\d(?::?\d\d)?/, Ke = [["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], ["YYYY-DDD", /\d{4}-\d{3}/], ["YYYY-MM", /\d{4}-\d\d/, !1], ["YYYYYYMMDD", /[+-]\d{10}/], ["YYYYMMDD", /\d{8}/], ["GGGG[W]WWE", /\d{4}W\d{3}/], ["GGGG[W]WW", /\d{4}W\d{2}/, !1], ["YYYYDDD", /\d{7}/]], Le = [["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], ["HH:mm:ss", /\d\d:\d\d:\d\d/], ["HH:mm", /\d\d:\d\d/], ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], ["HHmmss", /\d\d\d\d\d\d/], ["HHmm", /\d\d\d\d/], ["HH", /\d\d/]], Me = /^\/?Date\((\-?\d+)/i, Ne = /^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d?\d\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(?:\d\d)?\d\d\s)(\d\d:\d\d)(\:\d\d)?(\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\d{4}))$/; + a.createFromInputFallback = x("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", function (a) { a._d = new Date(a._i + (a._useUTC ? " UTC" : "")); }), a.ISO_8601 = function () { }, a.RFC_2822 = function () { }; + var Oe = x("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var a = tb.apply(null, arguments); return this.isValid() && a.isValid() ? a < this ? this : a : p(); }), Pe = x("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", function () { var a = tb.apply(null, arguments); return this.isValid() && a.isValid() ? a > this ? this : a : p(); }), Qe = function () { return Date.now ? Date.now() : +new Date; }, Re = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; + Db("Z", ":"), Db("ZZ", ""), Z("Z", _d), Z("ZZ", _d), ba(["Z", "ZZ"], function (a, b, c) { c._useUTC = !0, c._tzm = Eb(_d, a); }); + var Se = /([\+\-]|\d\d)/gi; + a.updateOffset = function () { }; + var Te = /^(\-)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/, Ue = /^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/; + Sb.fn = Ab.prototype, Sb.invalid = zb; + var Ve = Wb(1, "add"), We = Wb(-1, "subtract"); + a.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", a.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]"; + var Xe = x("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", function (a) { return void 0 === a ? this.localeData() : this.locale(a); }); + U(0, ["gg", 2], 0, function () { return this.weekYear() % 100; }), U(0, ["GG", 2], 0, function () { return this.isoWeekYear() % 100; }), Dc("gggg", "weekYear"), Dc("ggggg", "weekYear"), Dc("GGGG", "isoWeekYear"), Dc("GGGGG", "isoWeekYear"), J("weekYear", "gg"), J("isoWeekYear", "GG"), M("weekYear", 1), M("isoWeekYear", 1), Z("G", Zd), Z("g", Zd), Z("GG", Sd, Od), Z("gg", Sd, Od), Z("GGGG", Wd, Qd), Z("gggg", Wd, Qd), Z("GGGGG", Xd, Rd), Z("ggggg", Xd, Rd), ca(["gggg", "ggggg", "GGGG", "GGGGG"], function (a, b, c, d) { b[d.substr(0, 2)] = u(a); }), ca(["gg", "GG"], function (b, c, d, e) { c[e] = a.parseTwoDigitYear(b); }), U("Q", 0, "Qo", "quarter"), J("quarter", "Q"), M("quarter", 7), Z("Q", Nd), ba("Q", function (a, b) { b[fe] = 3 * (u(a) - 1); }), U("D", ["DD", 2], "Do", "date"), J("date", "D"), M("date", 9), Z("D", Sd), Z("DD", Sd, Od), Z("Do", function (a, b) { return a ? b._dayOfMonthOrdinalParse || b._ordinalParse : b._dayOfMonthOrdinalParseLenient; }), ba(["D", "DD"], ge), ba("Do", function (a, b) { b[ge] = u(a.match(Sd)[0], 10); }); + var Ye = O("Date", !0); + U("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), J("dayOfYear", "DDD"), M("dayOfYear", 4), Z("DDD", Vd), Z("DDDD", Pd), ba(["DDD", "DDDD"], function (a, b, c) { c._dayOfYear = u(a); }), U("m", ["mm", 2], 0, "minute"), J("minute", "m"), M("minute", 14), Z("m", Sd), Z("mm", Sd, Od), ba(["m", "mm"], ie); + var Ze = O("Minutes", !1); + U("s", ["ss", 2], 0, "second"), J("second", "s"), M("second", 15), Z("s", Sd), Z("ss", Sd, Od), ba(["s", "ss"], je); + var $e = O("Seconds", !1); + U("S", 0, 0, function () { return ~~(this.millisecond() / 100); }), U(0, ["SS", 2], 0, function () { return ~~(this.millisecond() / 10); }), U(0, ["SSS", 3], 0, "millisecond"), U(0, ["SSSS", 4], 0, function () { return 10 * this.millisecond(); }), U(0, ["SSSSS", 5], 0, function () { return 100 * this.millisecond(); }), U(0, ["SSSSSS", 6], 0, function () { return 1e3 * this.millisecond(); }), U(0, ["SSSSSSS", 7], 0, function () { return 1e4 * this.millisecond(); }), U(0, ["SSSSSSSS", 8], 0, function () { return 1e5 * this.millisecond(); }), U(0, ["SSSSSSSSS", 9], 0, function () { return 1e6 * this.millisecond(); }), J("millisecond", "ms"), M("millisecond", 16), Z("S", Vd, Nd), Z("SS", Vd, Od), Z("SSS", Vd, Pd); + var _e; + for (_e = "SSSS"; _e.length <= 9; _e += "S") + Z(_e, Yd); + for (_e = "S"; _e.length <= 9; _e += "S") + ba(_e, Mc); + var af = O("Milliseconds", !1); + U("z", 0, 0, "zoneAbbr"), U("zz", 0, 0, "zoneName"); + var bf = r.prototype; + bf.add = Ve, bf.calendar = Zb, bf.clone = $b, bf.diff = fc, bf.endOf = sc, bf.format = kc, bf.from = lc, bf.fromNow = mc, bf.to = nc, bf.toNow = oc, bf.get = R, bf.invalidAt = Bc, bf.isAfter = _b, bf.isBefore = ac, bf.isBetween = bc, bf.isSame = cc, bf.isSameOrAfter = dc, bf.isSameOrBefore = ec, bf.isValid = zc, bf.lang = Xe, bf.locale = pc, bf.localeData = qc, bf.max = Pe, bf.min = Oe, bf.parsingFlags = Ac, bf.set = S, bf.startOf = rc, bf.subtract = We, bf.toArray = wc, bf.toObject = xc, bf.toDate = vc, bf.toISOString = ic, bf.inspect = jc, bf.toJSON = yc, bf.toString = hc, bf.unix = uc, bf.valueOf = tc, bf.creationData = Cc, bf.year = te, bf.isLeapYear = ra, bf.weekYear = Ec, bf.isoWeekYear = Fc, bf.quarter = bf.quarters = Kc, bf.month = ka, bf.daysInMonth = la, bf.week = bf.weeks = Ba, bf.isoWeek = bf.isoWeeks = Ca, bf.weeksInYear = Hc, bf.isoWeeksInYear = Gc, bf.date = Ye, bf.day = bf.days = Ka, bf.weekday = La, bf.isoWeekday = Ma, bf.dayOfYear = Lc, bf.hour = bf.hours = De, bf.minute = bf.minutes = Ze, bf.second = bf.seconds = $e, bf.millisecond = bf.milliseconds = af, bf.utcOffset = Hb, bf.utc = Jb, bf.local = Kb, bf.parseZone = Lb, bf.hasAlignedHourOffset = Mb, bf.isDST = Nb, bf.isLocal = Pb, bf.isUtcOffset = Qb, bf.isUtc = Rb, bf.isUTC = Rb, bf.zoneAbbr = Nc, bf.zoneName = Oc, bf.dates = x("dates accessor is deprecated. Use date instead.", Ye), bf.months = x("months accessor is deprecated. Use month instead", ka), bf.years = x("years accessor is deprecated. Use year instead", te), bf.zone = x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", Ib), bf.isDSTShifted = x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", Ob); + var cf = C.prototype; + cf.calendar = D, cf.longDateFormat = E, cf.invalidDate = F, cf.ordinal = G, cf.preparse = Rc, cf.postformat = Rc, cf.relativeTime = H, cf.pastFuture = I, cf.set = A, cf.months = fa, cf.monthsShort = ga, cf.monthsParse = ia, cf.monthsRegex = na, cf.monthsShortRegex = ma, cf.week = ya, cf.firstDayOfYear = Aa, cf.firstDayOfWeek = za, cf.weekdays = Fa, cf.weekdaysMin = Ha, cf.weekdaysShort = Ga, cf.weekdaysParse = Ja, cf.weekdaysRegex = Na, cf.weekdaysShortRegex = Oa, cf.weekdaysMinRegex = Pa, cf.isPM = Va, cf.meridiem = Wa, $a("en", { dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, ordinal: function (a) { var b = a % 10, c = 1 === u(a % 100 / 10) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th"; return a + c; } }), a.lang = x("moment.lang is deprecated. Use moment.locale instead.", $a), a.langData = x("moment.langData is deprecated. Use moment.localeData instead.", bb); + var df = Math.abs, ef = id("ms"), ff = id("s"), gf = id("m"), hf = id("h"), jf = id("d"), kf = id("w"), lf = id("M"), mf = id("y"), nf = kd("milliseconds"), of = kd("seconds"), pf = kd("minutes"), qf = kd("hours"), rf = kd("days"), sf = kd("months"), tf = kd("years"), uf = Math.round, vf = { ss: 44, s: 45, m: 45, h: 22, d: 26, M: 11 }, wf = Math.abs, xf = Ab.prototype; + return xf.isValid = yb, xf.abs = $c, xf.add = ad, xf.subtract = bd, xf.as = gd, xf.asMilliseconds = ef, xf.asSeconds = ff, xf.asMinutes = gf, xf.asHours = hf, xf.asDays = jf, xf.asWeeks = kf, xf.asMonths = lf, xf.asYears = mf, xf.valueOf = hd, xf._bubble = dd, xf.get = jd, xf.milliseconds = nf, xf.seconds = of, xf.minutes = pf, xf.hours = qf, xf.days = rf, xf.weeks = ld, xf.months = sf, xf.years = tf, xf.humanize = qd, xf.toISOString = rd, xf.toString = rd, xf.toJSON = rd, xf.locale = pc, xf.localeData = qc, xf.toIsoString = x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", rd), xf.lang = Xe, U("X", 0, 0, "unix"), U("x", 0, 0, "valueOf"), Z("x", Zd), Z("X", ae), ba("X", function (a, b, c) { c._d = new Date(1e3 * parseFloat(a, 10)); }), ba("x", function (a, b, c) { c._d = new Date(u(a)); }), a.version = "2.18.1", b(tb), a.fn = bf, a.min = vb, a.max = wb, a.now = Qe, a.utc = l, a.unix = Pc, a.months = Vc, a.isDate = h, a.locale = $a, a.invalid = p, a.duration = Sb, a.isMoment = s, a.weekdays = Xc, a.parseZone = Qc, a.localeData = bb, a.isDuration = Bb, a.monthsShort = Wc, a.weekdaysMin = Zc, a.defineLocale = _a, a.updateLocale = ab, a.locales = cb, a.weekdaysShort = Yc, a.normalizeUnits = K, a.relativeTimeRounding = od, a.relativeTimeThreshold = pd, a.calendarFormat = Yb, a.prototype = bf, a; + }); +}); +var moment_ = Object.freeze({ + default: moment_min, + __moduleExports: moment_min +}); +var moment = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateUtcFilterCondition = function (options) { if (!options.filterSearchType) { throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }'); @@ -104,7 +646,7 @@ var dateUtcFilterCondition = function (options) { // run the filter condition with date in Unix Timestamp format return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); }; -var moment$1 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$1 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var DATE_FORMAT = 'YYYY-MM-DD'; var dateIsoFilterCondition = function (options) { if (!moment$1(options.cellValue, DATE_FORMAT, true).isValid() || !moment$1(options.searchTerm, DATE_FORMAT, true).isValid()) { @@ -115,7 +657,7 @@ var dateIsoFilterCondition = function (options) { // run the filter condition with date in Unix Timestamp format return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); }; -var moment$2 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$2 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var DATE_FORMAT$1 = 'M/D/YY'; var dateUsShortFilterCondition = function (options) { if (!moment$2(options.cellValue, DATE_FORMAT$1, true).isValid() || !moment$2(options.searchTerm, DATE_FORMAT$1, true).isValid()) { @@ -126,7 +668,7 @@ var dateUsShortFilterCondition = function (options) { // run the filter condition with date in Unix Timestamp format return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); }; -var moment$3 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$3 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var DATE_FORMAT$2 = 'M/D/YYYY'; var dateUsFilterCondition = function (options) { if (!moment$3(options.cellValue, DATE_FORMAT$2, true).isValid() || !moment$3(options.searchTerm, DATE_FORMAT$2, true).isValid()) { @@ -137,8 +679,7 @@ var dateUsFilterCondition = function (options) { // run the filter condition with date in Unix Timestamp format return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); }; -var moment$4 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$4 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateFilterCondition = function (options) { var /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso; var /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType); @@ -154,20 +695,18 @@ var numberFilterCondition = function (options) { return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm)); }; var stringFilterCondition = function (options) { - // make sure the both search & cell value are string - // and make them lower case for case insensitive filtering - var /** @type {?} */ cellValue = options.cellValue.toString().toLowerCase(); - var /** @type {?} */ searchTerm = options.searchTerm.toString().toLowerCase(); + // make sure the cell value is a string by casting it + options.cellValue = options.cellValue.toString(); if (options.operator === '*') { - return cellValue.endsWith(searchTerm); + return options.cellValue.startsWith(options.searchTerm); } else if (options.operator === '' && options.cellValueLastChar === '*') { - return cellValue.startsWith(searchTerm); + return options.cellValue.endsWith(options.searchTerm); } else if (options.operator === '') { - return cellValue.includes(searchTerm); + return options.cellValue.includes(options.searchTerm); } - return testFilterCondition(options.operator || '==', cellValue, searchTerm); + return testFilterCondition(options.operator || '==', options.cellValue.toLowerCase(), options.searchTerm.toLowerCase()); }; var executeMappedCondition = function (options) { // execute the mapped type, or default to String condition check @@ -224,20 +763,15 @@ var FilterTemplates = { }; var checkboxFormatter = function (row, cell, value, columnDef, dataContext) { return value ? '☑' : ''; }; var checkmarkFormatter = function (row, cell, value, columnDef, dataContext) { return value ? "" : ''; }; -var moment$5 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$5 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateIsoFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$5(value).format('YYYY-MM-DD') : ''; }; -var moment$6 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$6 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateTimeIsoAmPmFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$6(value).format('YYYY-MM-DD h:mm:ss a') : ''; }; -var moment$7 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$7 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateTimeUsAmPmFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$7(value).format('MM/DD/YYYY h:mm:ss a') : ''; }; -var moment$8 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$8 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateTimeUsFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$8(value).format('MM/DD/YYYY hh:mm:ss') : ''; }; -var moment$9 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$9 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateUsFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$9(value).format('MM/DD/YYYY') : ''; }; var percentCompleteFormatter = function (row, cell, value, columnDef, dataContext) { if (value === null || value === '') { @@ -306,9 +840,9 @@ var Formatters = { percentComplete: percentCompleteFormatter, percentCompleteBar: percentCompleteBarFormatter, progressBar: progressBarFormatter, - yesNo: yesNoFormatter + yesNoFormatter: yesNoFormatter }; -var moment$10 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$10 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var DATE_FORMAT$3 = 'M/D/YY'; var dateUsShortSorter = function (value1, value2, sortDirection) { if (!moment$10(value1, DATE_FORMAT$3, true).isValid() || !moment$10(value2, DATE_FORMAT$3, true).isValid()) { @@ -319,8 +853,7 @@ var dateUsShortSorter = function (value1, value2, sortDirection) { var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); }; -var moment$11 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$11 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var dateSorter = function (value1, value2, sortDirection) { if (!moment$11(value1, moment$11.ISO_8601).isValid() || !moment$11(value2, moment$11.ISO_8601, true).isValid()) { return 0; @@ -330,7 +863,7 @@ var dateSorter = function (value1, value2, sortDirection) { var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); }; -var moment$12 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$12 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var DATE_FORMAT$4 = 'YYYY-MM-DD'; var dateIsoSorter = function (value1, value2, sortDirection) { if (!moment$12(value1, DATE_FORMAT$4, true).isValid() || !moment$12(value2, DATE_FORMAT$4, true).isValid()) { @@ -341,7 +874,7 @@ var dateIsoSorter = function (value1, value2, sortDirection) { var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); }; -var moment$13 = moment___default__default || moment___default; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 +var moment$13 = moment_min || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 var DATE_FORMAT$5 = 'M/D/YYYY'; var dateUsSorter = function (value1, value2, sortDirection) { if (!moment$13(value1, DATE_FORMAT$5, true).isValid() || !moment$13(value2, DATE_FORMAT$5, true).isValid()) { @@ -368,7 +901,7 @@ var Sorters = { numeric: numericSorter, string: stringSorter }; -var FilterService = (function () { +var FilterService = /** @class */ (function () { function FilterService() { } /** @@ -435,12 +968,11 @@ var FilterService = (function () { * @return {?} */ FilterService.prototype.customFilter = function (item, args) { - for (var _i = 0, _a = Object.keys(args.columnFilters); _i < _a.length; _i++) { - var columnId = _a[_i]; + for (var _g = 0, _h = Object.keys(args.columnFilters); _g < _h.length; _g++) { + var columnId = _h[_g]; var /** @type {?} */ columnFilter = args.columnFilters[columnId]; var /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId); var /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex]; - var /** @type {?} */ fieldName = columnDef.field || columnDef.name; var /** @type {?} */ fieldType = columnDef.type || FieldType.string; var /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null; var /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null; @@ -514,7 +1046,6 @@ var FilterService = (function () { var /** @type {?} */ elm = null; var /** @type {?} */ header = void 0; var /** @type {?} */ columnDef_1 = this_1._columnDefinitions[i]; - var /** @type {?} */ columnId = columnDef_1.id; var /** @type {?} */ listTerm = (columnDef_1.filter && columnDef_1.filter.listTerm) ? columnDef_1.filter.listTerm : null; var /** @type {?} */ searchTerm = (columnDef_1.filter && columnDef_1.filter.searchTerm) ? columnDef_1.filter.searchTerm : ''; // keep the filter in a columnFilters for later reference @@ -588,13 +1119,13 @@ var FilterService = (function () { return FilterService; }()); FilterService.decorators = [ - { type: _angular_core.Injectable }, + { type: core.Injectable }, ]; /** * @nocollapse */ FilterService.ctorParameters = function () { return []; }; -var MouseService = (function () { +var MouseService = /** @class */ (function () { function MouseService() { } /** @@ -621,12 +1152,12 @@ var DATAGRID_MIN_HEIGHT = 180; var DATAGRID_MIN_WIDTH = 300; var DATAGRID_BOTTOM_PADDING = 20; var DATAGRID_PAGINATION_HEIGHT = 35; -var ResizerService = (function () { +var ResizerService = /** @class */ (function () { /** * @param {?} router */ - function ResizerService(router) { - this.router = router; + function ResizerService(router$$1) { + this.router = router$$1; } /** * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space @@ -646,12 +1177,12 @@ var ResizerService = (function () { this.resizeGrid(grid, gridOptions); // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load // -- attach auto-resize to Window object only if it exist - $(window).on('resize', function () { + $(window).on('resize.grid', function () { _this.resizeGrid(grid, gridOptions); }); // destroy the resizer on route change this.router.events.subscribe(function (event) { - $(window).trigger('resize').off('resize'); + _this.destroy(); }); }; /** @@ -685,6 +1216,13 @@ var ResizerService = (function () { width: newWidth }; }; + /** + * Destroy function when element is destroyed + * @return {?} + */ + ResizerService.prototype.destroy = function () { + $(window).trigger('resize.grid').off('resize'); + }; /** * Resize the datagrid to fit the browser height & width * @param {?} grid @@ -714,15 +1252,15 @@ var ResizerService = (function () { return ResizerService; }()); ResizerService.decorators = [ - { type: _angular_core.Injectable }, + { type: core.Injectable }, ]; /** * @nocollapse */ ResizerService.ctorParameters = function () { return [ - { type: _angular_router.Router, }, + { type: router.Router, }, ]; }; -var SortService = (function () { +var SortService = /** @class */ (function () { function SortService() { } /** @@ -795,12 +1333,257 @@ var SortService = (function () { return SortService; }()); SortService.decorators = [ - { type: _angular_core.Injectable }, + { type: core.Injectable }, ]; /** * @nocollapse */ SortService.ctorParameters = function () { return []; }; +"use strict"; +//===================================================== +//============================ parce properties to find +//===================================================== +function parceFind(_levelA) { + //+++++++++++++++++++++++++++++++++++ work over Array + //++++++++++++++++++++++++++++++++++++++++++++++++++++ + var propsA = _levelA.map(function (currentValue, index) { + var itemX = _levelA[index]; + if (itemX instanceof Query) { + return itemX.toString(); + } + else if (!Array.isArray(itemX) && "object" === typeof itemX) { + var propsA_1 = Object.keys(itemX); + if (1 !== propsA_1.length) { + throw new RangeError("Alias objects should only have one value. was passed: " + JSON.stringify(itemX)); + } + var propS = propsA_1[0]; + var item = itemX[propS]; + // contributor: https://github.com/charlierudolph/graphql-query-builder/commit/878328e857e92d140f5ba6f7cfe07837620ec490 + if (Array.isArray(item)) { + return new Query(propS).find(item); + } + return propS + " : " + item + " "; + } + else if ("string" === typeof itemX) { + return itemX; + } + else { + throw new RangeError("cannot handle Find value of " + itemX); + } + }); + return propsA.join(","); +} +//===================================================== +//=================================== get GraphQL Value +//===================================================== +function getGraphQLValue(value) { + if ("string" === typeof value) { + value = JSON.stringify(value); + } + else if (Array.isArray(value)) { + value = value.map(function (item) { + return getGraphQLValue(item); + }).join(); + value = "[" + value + "]"; + } + else if ("object" === typeof value) { + /*if (value.toSource) + value = value.toSource().slice(2,-2); + else*/ + value = objectToString(value); + //console.error("No toSource!!",value); + } + return value; +} +function objectToString(obj) { + var sourceA = []; + for (var prop in obj) { + if ("function" === typeof obj[prop]) { + continue; + } + // if ("object" === typeof obj[prop]) { + sourceA.push(prop + ":" + getGraphQLValue(obj[prop])); + // } else { + // sourceA.push(`${prop}:${obj[prop]}`); + // } + } + return "{" + sourceA.join() + "}"; +} +//===================================================== +//========================================= Query Class +//===================================================== +function Query(_fnNameS, _aliasS_OR_Filter) { + var _this = this; + this.fnNameS = _fnNameS; + this.headA = []; + this.filter = function (filtersO) { + for (var propS in filtersO) { + if ("function" === typeof filtersO[propS]) { + continue; + } + var val = getGraphQLValue(filtersO[propS]); + if ("{}" === val) { + continue; + } + _this.headA.push(propS + ":" + val); + } + return _this; + }; + if ("string" === typeof _aliasS_OR_Filter) { + this.aliasS = _aliasS_OR_Filter; + } + else if ("object" === typeof _aliasS_OR_Filter) { + this.filter(_aliasS_OR_Filter); + } + else if (undefined === _aliasS_OR_Filter && 2 === arguments.length) { + throw new TypeError("You have passed undefined as Second argument to 'Query'"); + } + else if (undefined !== _aliasS_OR_Filter) { + throw new TypeError("Second argument to 'Query' should be an alias name(String) or filter arguments(Object). was passed " + _aliasS_OR_Filter); + } + this.setAlias = function (_aliasS) { + _this.aliasS = _aliasS; + return _this; + }; + this.find = function (findA) { + if (!findA) { + throw new TypeError("find value can not be >>falsy<<"); + } + // if its a string.. it may have other values + // else it sould be an Object or Array of maped values + this.bodyS = parceFind((Array.isArray(findA)) ? findA : Array.from(arguments)); + return this; + }; +} +//===================================================== +//===================================== Query prototype +//===================================================== +Query.prototype = { + toString: function () { + if (undefined === this.bodyS) { + throw new ReferenceError("return properties are not defined. use the 'find' function to defined them"); + } + return ((this.aliasS) ? (this.aliasS + ":") : "") + " " + this.fnNameS + " " + ((0 < this.headA.length) ? "(" + this.headA.join(",") + ")" : "") + " { " + this.bodyS + " }"; + } +}; +var graphqlQueryBuilder = Query; +var GraphqlService = /** @class */ (function () { + function GraphqlService() { + this.serviceOptions = {}; + } + /** + * Build the GraphQL query, since the service include/exclude cursor, the output query will be different. + * @param {?=} serviceOptions GraphqlServiceOption + * @return {?} + */ + GraphqlService.prototype.buildQuery = function (serviceOptions) { + if (!this.serviceOptions.datasetName || !this.serviceOptions.dataFilters) { + throw new Error('GraphQL Service requires "datasetName" & "dataFilters" properties for it to work'); + } + var /** @type {?} */ pageFilterQb = new graphqlQueryBuilder(this.serviceOptions.datasetName); + var /** @type {?} */ pageInfoQb = new graphqlQueryBuilder('pageInfo'); + var /** @type {?} */ dataQb = (this.serviceOptions.isWithCursor) ? new graphqlQueryBuilder('edges') : new graphqlQueryBuilder('nodes'); + if (this.serviceOptions.isWithCursor) { + pageInfoQb.find('hasNextPage', 'endCursor'); + dataQb.find(['cursor', { 'node': this.serviceOptions.dataFilters }]); + } + else { + pageInfoQb.find('hasNextPage'); + dataQb.find(this.serviceOptions.dataFilters); + } + pageFilterQb.find(['totalCount', pageInfoQb, dataQb]); + pageFilterQb.filter(this.serviceOptions.paginationOptions); + return pageFilterQb.toString(); + }; + /** + * @param {?=} serviceOptions + * @return {?} + */ + GraphqlService.prototype.initOptions = function (serviceOptions) { + this.serviceOptions = serviceOptions || {}; + }; + /** + * @param {?} fieldName + * @return {?} + */ + GraphqlService.prototype.removeColumnFilter = function (fieldName) { + }; + /** + * @return {?} + */ + GraphqlService.prototype.resetPaginationOptions = function () { + var /** @type {?} */ paginationOptions; + if (this.serviceOptions.isWithCursor) { + // first, last, after, before + paginationOptions = { + after: '', + before: undefined, + last: undefined + }; + } + else { + // first, last, offset + paginationOptions = { + offset: 0 + }; + } + this.updateOptions({ paginationOptions: paginationOptions }); + }; + /** + * @param {?=} serviceOptions + * @return {?} + */ + GraphqlService.prototype.updateOptions = function (serviceOptions) { + this.serviceOptions = Object.assign({}, this.serviceOptions, serviceOptions); + }; + /** + * @param {?} fieldName + * @param {?} value + * @param {?=} terms + * @return {?} + */ + GraphqlService.prototype.saveColumnFilter = function (fieldName, value, terms) { + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GraphqlService.prototype.onFilterChanged = function (event, args) { + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GraphqlService.prototype.onPaginationChanged = function (event, args) { + var /** @type {?} */ paginationOptions; + if (this.serviceOptions.isWithCursor) { + paginationOptions = { + first: args.pageSize + }; + } + else { + paginationOptions = { + first: args.pageSize, + offset: (args.newPage - 1) * args.pageSize + }; + } + this.updateOptions({ paginationOptions: paginationOptions }); + // build the OData query which we will use in the WebAPI callback + return this.buildQuery(); + }; + /** + * @param {?} event + * @param {?} args + * @return {?} + */ + GraphqlService.prototype.onSortChanged = function (event, args) { + // will use sorting as per a FB suggestion + // https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222 + }; + return GraphqlService; +}()); String.format = function (format, args) { // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { @@ -840,7 +1623,7 @@ String.allTitleCase = function (inputStr) { String.titleCase = function (inputStr) { return inputStr.charAt(0).toUpperCase() + inputStr.slice(1); }; -var OdataService = (function () { +var OdataService = /** @class */ (function () { function OdataService() { this._odataOptions = { filterQueue: [], @@ -1020,8 +1803,8 @@ var OdataService = (function () { * @return {?} */ OdataService.prototype.updateOptions = function (options) { - for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) { - var property = _a[_i]; + for (var _g = 0, _h = Object.keys(options); _g < _h.length; _g++) { + var property = _h[_g]; if (options.hasOwnProperty(property)) { this._odataOptions[property] = options[property]; // replace of the property } @@ -1048,14 +1831,14 @@ var OdataService = (function () { return OdataService; }()); OdataService.decorators = [ - { type: _angular_core.Injectable }, + { type: core.Injectable }, ]; /** * @nocollapse */ OdataService.ctorParameters = function () { return []; }; -var moment$14 = moment___default__default || moment___default; -var GridOdataService = (function () { +var moment$14 = moment_min || moment_; +var GridOdataService = /** @class */ (function () { /** * @param {?} odataService */ @@ -1107,8 +1890,6 @@ var GridOdataService = (function () { * @return {?} */ GridOdataService.prototype.onFilterChanged = function (event, args) { - var /** @type {?} */ searchBy = ''; - var /** @type {?} */ timer = 0; var /** @type {?} */ searchByArray = []; // loop through all columns to inspect filters for (var /** @type {?} */ columnId in args.columnFilters) { @@ -1128,7 +1909,7 @@ var GridOdataService = (function () { fieldSearchValue = '' + fieldSearchValue; // make sure it's a string var /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) var /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); - var /** @type {?} */ searchValue = (!!matches) ? matches[2] : fieldSearchValue; + var /** @type {?} */ searchValue = (!!matches) ? matches[2] : ''; var /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; var /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false; // no need to query if search value is empty @@ -1147,7 +1928,7 @@ var GridOdataService = (function () { } } else { - var /** @type {?} */ searchBy_1 = ''; + var /** @type {?} */ searchBy = ''; // titleCase the fieldName so that it matches the WebApi names var /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || ''); // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) @@ -1158,21 +1939,21 @@ var GridOdataService = (function () { for (var /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) { tmpSearchTerms.push(fieldNameTitleCase + " eq '" + searchTerms[j] + "'"); } - searchBy_1 = tmpSearchTerms.join(' or '); - searchBy_1 = "(" + searchBy_1 + ")"; + searchBy = tmpSearchTerms.join(' or '); + searchBy = "(" + searchBy + ")"; } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { // example:: (Stage ne "Expired" and Stage ne "Renewal") for (var /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) { tmpSearchTerms.push(fieldNameTitleCase + " ne '" + searchTerms[k] + "'"); } - searchBy_1 = tmpSearchTerms.join(' and '); - searchBy_1 = "(" + searchBy_1 + ")"; + searchBy = tmpSearchTerms.join(' and '); + searchBy = "(" + searchBy + ")"; } } else if (operator === '*' || lastValueChar !== '') { // first/last character is a '*' will be a startsWith or endsWith - searchBy_1 = operator === '*' + searchBy = operator === '*' ? "endswith(" + fieldNameTitleCase + ", '" + searchValue + "')" : "startswith(" + fieldNameTitleCase + ", '" + searchValue + "')"; } @@ -1180,21 +1961,21 @@ var GridOdataService = (function () { // date field needs to be UTC and within DateTime function var /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true); if (dateFormatted) { - searchBy_1 = fieldNameTitleCase + " " + this.mapOperator(operator) + " DateTime'" + dateFormatted + "'"; + searchBy = fieldNameTitleCase + " " + this.mapOperator(operator) + " DateTime'" + dateFormatted + "'"; } } else if (fieldType === FieldType.string) { // string field needs to be in single quotes - searchBy_1 = "substringof('" + searchValue + "', " + fieldNameTitleCase + ")"; + searchBy = "substringof('" + searchValue + "', " + fieldNameTitleCase + ")"; } else { // any other field type (or undefined type) searchValue = fieldType === FieldType.number ? searchValue : "'" + searchValue + "'"; - searchBy_1 = fieldNameTitleCase + " " + this.mapOperator(operator) + " " + searchValue; + searchBy = fieldNameTitleCase + " " + this.mapOperator(operator) + " " + searchValue; } // push to our temp array and also trim white spaces - if (searchBy_1 !== '') { - searchByArray.push(String.trim(searchBy_1)); + if (searchBy !== '') { + searchByArray.push(String.trim(searchBy)); this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms); } } @@ -1236,8 +2017,8 @@ var GridOdataService = (function () { } else { if (sortColumns) { - for (var _i = 0, sortColumns_1 = sortColumns; _i < sortColumns_1.length; _i++) { - var column = sortColumns_1[_i]; + for (var _g = 0, sortColumns_1 = sortColumns; _g < sortColumns_1.length; _g++) { + var column = sortColumns_1[_g]; var /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id; if (this.odataService.options.caseType === CaseType.pascalCase) { fieldName = String.titleCase(fieldName); @@ -1309,7 +2090,7 @@ var GridOdataService = (function () { return GridOdataService; }()); GridOdataService.decorators = [ - { type: _angular_core.Injectable }, + { type: core.Injectable }, ]; /** * @nocollapse @@ -1317,7 +2098,7 @@ GridOdataService.decorators = [ GridOdataService.ctorParameters = function () { return [ { type: OdataService, }, ]; }; -var SlickPaginationComponent = (function () { +var SlickPaginationComponent = /** @class */ (function () { function SlickPaginationComponent() { this.dataFrom = 1; this.dataTo = 1; @@ -1468,12 +2249,10 @@ var SlickPaginationComponent = (function () { return SlickPaginationComponent; }()); SlickPaginationComponent.decorators = [ - { type: _angular_core.Component, args: [{ + { type: core.Component, args: [{ selector: 'slick-pagination', - template: "\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n ", - styles: [ - "\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n " - ] + template: "\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n ", + styles: ["\n @charset \"UTF-8\";\n /* pagination/pagination variables */\n /*!\n * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid)\n * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE)\n * @author: Ghislain B. (ghiscoding)\n */\n /*!\n\n /* SlickGrid Bootstrap variables */\n /* Used by slick-bootstrap.scss */\n /* Slickgrid container, including headers but excluding pagination */\n /* grid */\n /* cell */\n /* cell default slickgrid values */\n /* header */\n /* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */\n /* Column picker */\n /* pagination variables */\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080; }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px; }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd; }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px; }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block; }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px; }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0; }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n border: 1px solid #ccc; }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer; }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-family: \"FontAwesome\";\n font-size: 14px;\n /*color: inherit;*/\n border-color: #c4c4c4; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-first:before {\n content: \"\uF100\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-prev:before {\n content: \"\uF104\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-next:before {\n content: \"\uF105\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-end:before {\n content: \"\uF101\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n color: #b8b8b8;\n background-color: #f9f9f9;\n border-color: #dedede; }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle; }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px; }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px; }\n "] },] }, ]; /** @@ -1481,8 +2260,8 @@ SlickPaginationComponent.decorators = [ */ SlickPaginationComponent.ctorParameters = function () { return []; }; SlickPaginationComponent.propDecorators = { - 'gridPaginationOptions': [{ type: _angular_core.Input },], - 'grid': [{ type: _angular_core.Input },], + 'gridPaginationOptions': [{ type: core.Input },], + 'grid': [{ type: core.Input },], }; /** * Options that can be passed to the Bootstrap-Datetimepicker directly @@ -1501,7 +2280,6 @@ var GlobalGridOptions = { cellHighlightCssClass: 'slick-cell-modified', editable: false, enableCellNavigation: false, - enableColumnPicker: true, enableColumnReorder: true, enableMouseOverRow: true, enablePagination: false, @@ -1520,7 +2298,7 @@ var GlobalGridOptions = { showHeaderRow: false, topPanelHeight: 25 }; -var AngularSlickgridComponent = (function () { +var AngularSlickgridComponent = /** @class */ (function () { /** * @param {?} resizer * @param {?} mouseService @@ -1573,9 +2351,7 @@ var AngularSlickgridComponent = (function () { this._dataView = new Slick.Data.DataView(); this.grid = new Slick.Grid("#" + this.gridId, this._dataView, this.columnDefinitions, this._gridOptions); this.grid.setSelectionModel(new Slick.RowSelectionModel()); - if (this._gridOptions.enableColumnPicker) { - var /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); - } + var /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); this.grid.init(); this._dataView.beginUpdate(); this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView); @@ -1691,8 +2467,8 @@ var AngularSlickgridComponent = (function () { return AngularSlickgridComponent; }()); AngularSlickgridComponent.decorators = [ - { type: _angular_core.Injectable }, - { type: _angular_core.Component, args: [{ + { type: core.Injectable }, + { type: core.Component, args: [{ selector: 'angular-slickgrid', template: "\n
\n
\n
\n\n \n
\n " },] }, @@ -1707,22 +2483,22 @@ AngularSlickgridComponent.ctorParameters = function () { return [ { type: SortService, }, ]; }; AngularSlickgridComponent.propDecorators = { - 'gridId': [{ type: _angular_core.Input },], - 'columnDefinitions': [{ type: _angular_core.Input },], - 'gridOptions': [{ type: _angular_core.Input },], - 'gridHeight': [{ type: _angular_core.Input },], - 'gridWidth': [{ type: _angular_core.Input },], - 'dataset': [{ type: _angular_core.Input },], + 'gridId': [{ type: core.Input },], + 'columnDefinitions': [{ type: core.Input },], + 'gridOptions': [{ type: core.Input },], + 'gridHeight': [{ type: core.Input },], + 'gridWidth': [{ type: core.Input },], + 'dataset': [{ type: core.Input },], }; -var AngularSlickgridModule = (function () { +var AngularSlickgridModule = /** @class */ (function () { function AngularSlickgridModule() { } return AngularSlickgridModule; }()); AngularSlickgridModule.decorators = [ - { type: _angular_core.NgModule, args: [{ + { type: core.NgModule, args: [{ imports: [ - _angular_common.CommonModule + common.CommonModule ], declarations: [ AngularSlickgridComponent, @@ -1733,6 +2509,7 @@ AngularSlickgridModule.decorators = [ SlickPaginationComponent ], providers: [ + GraphqlService, MouseService, OdataService, FilterService, @@ -1757,10 +2534,15 @@ exports.FilterService = FilterService; exports.MouseService = MouseService; exports.ResizerService = ResizerService; exports.SortService = SortService; +exports.GraphqlService = GraphqlService; exports.GridOdataService = GridOdataService; exports.SlickPaginationComponent = SlickPaginationComponent; exports.AngularSlickgridComponent = AngularSlickgridComponent; exports.AngularSlickgridModule = AngularSlickgridModule; +exports.ɵd = FilterService; +exports.ɵc = MouseService; +exports.ɵb = ResizerService; +exports.ɵe = SortService; exports.ɵa = OdataService; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/dist/bundles/angular-slickgrid.umd.js.map b/dist/bundles/angular-slickgrid.umd.js.map index 6811b09b9..a98ba4602 100644 --- a/dist/bundles/angular-slickgrid.umd.js.map +++ b/dist/bundles/angular-slickgrid.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"angular-slickgrid.umd.js","sources":["../../src/modules/angular-slickgrid.module.ts","../../src/components/angular-slickgrid.component.ts","../../src/global-grid-options.ts","../../src/components/slick-pagination.component.ts","../../src/services/grid-odata.service.ts","../../src/services/odata.service.ts","../../src/services/global-utilities.ts","../../src/services/sort.service.ts","../../src/services/resizer.service.ts","../../src/services/mouse.service.ts","../../src/services/filter.service.ts","../../src/sorters/index.ts","../../src/sorters/stringSorter.ts","../../src/sorters/numericSorter.ts","../../src/sorters/dateUsSorter.ts","../../src/sorters/dateIsoSorter.ts","../../src/sorters/dateSorter.ts","../../src/sorters/dateUsShortSorter.ts","../../src/formatters/index.ts","../../src/formatters/yesNoFormatter.ts","../../src/formatters/progressBarFormatter.ts","../../src/formatters/percentCompleteBarFormatter.ts","../../src/formatters/percentCompleteFormatter.ts","../../src/formatters/dateUsFormatter.ts","../../src/formatters/dateTimeUsFormatter.ts","../../src/formatters/dateTimeUsAmPmFormatter.ts","../../src/formatters/dateTimeIsoAmPmFormatter.ts","../../src/formatters/dateIsoFormatter.ts","../../src/formatters/checkmarkFormatter.ts","../../src/formatters/checkboxFormatter.ts","../../src/filter-templates/index.ts","../../src/filter-templates/selectFilterTemplate.ts","../../src/filter-templates/inputFilterTemplate.ts","../../src/filter-conditions/index.ts","../../src/filter-conditions/executeMappedCondition.ts","../../src/filter-conditions/stringFilterCondition.ts","../../src/filter-conditions/numberFilterCondition.ts","../../src/filter-conditions/dateFilterCondition.ts","../../src/filter-conditions/dateUsFilterCondition.ts","../../src/filter-conditions/dateUsShortFilterCondition.ts","../../src/filter-conditions/dateIsoFilterCondition.ts","../../src/filter-conditions/dateUtcFilterCondition.ts","../../src/filter-conditions/filterUtilities.ts","../../src/filter-conditions/booleanFilterCondition.ts","../../src/models/fieldType.ts","../../src/models/formElementType.ts","../../src/models/caseType.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Formatters } from './../formatters/index';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\nexport class AngularSlickgridModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n providers: [\n MouseService,\n OdataService,\n FilterService,\n SortService,\n ResizerService\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction AngularSlickgridModule_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { ColumnFilters } from './../models/columnFilters.interface';\nimport { FormElementType } from './../models/formElementType';\nimport { GridOption } from './../models/gridOption.interface';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { SortService } from './../services/sort.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { GlobalGridOptions } from './../global-grid-options';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class AngularSlickgridComponent implements AfterViewInit, OnInit {\nprivate _dataset: any[];\nprivate _dataView: any;\nprivate _gridOptions: GridOption;\nprivate _columnFilters: ColumnFilters = {};\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n showPagination = false;\n onFilter = new Slick.Event();\n\n gridId: string;\n columnDefinitions: Column[];\n gridOptions: GridOption;\n gridHeight = 100;\n gridWidth = 600;\n/**\n * @param {?} dataset\n * @return {?}\n */\nset dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n/**\n * @return {?}\n */\nget dataset(): any[] {\n return this._dataView.getItems();\n }\n/**\n * @param {?} resizer\n * @param {?} mouseService\n * @param {?} filterService\n * @param {?} sortService\n */\nconstructor(private resizer: ResizerService,\nprivate mouseService: MouseService,\nprivate filterService: FilterService,\nprivate sortService: SortService) {\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this._gridOptions = this.mergeGridOptions();\n\n this._dataView = new Slick.Data.DataView();\n\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions);\n this.grid.setSelectionModel(new Slick.RowSelectionModel());\n\n if (this._gridOptions.enableColumnPicker) {\n const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions);\n }\n\n this.grid.init();\n this._dataView.beginUpdate();\n this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView);\n\n this._dataView.setItems(this._dataset);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this._gridOptions);\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @param {?} dataView\n * @return {?}\n */\nattachDifferentHooks(grid: any, options: GridOption, dataView: any) {\n // attach external sorting (backend) when available or default onSort (dataView)\n if (options.enableSorting) {\n (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView);\n }\n\n // attach external filter (backend) when available or default onSort (dataView)\n if (options.enableFiltering) {\n this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters);\n (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView);\n }\n\n // if enable, change background color on mouse over\n if (options.enableMouseOverRow) {\n this.mouseService.attachOnMouseHover(grid);\n }\n\n dataView.onRowCountChanged.subscribe((e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n dataView.onRowsChanged.subscribe((e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\nattachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (this._gridOptions.autoFitColumnsOnFirstLoad) {\n this.grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid(grid, options);\n if (options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n } else {\n this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth });\n }\n }\n/**\n * @return {?}\n */\nmergeGridOptions(): GridOption {\n this.gridOptions.gridId = this.gridId;\n this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (this.gridOptions.enableFiltering) {\n this.gridOptions.showHeaderRow = true;\n }\n const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions);\n return options;\n }\n/**\n * Toggle the filter row displayed on first row\n * @param {?} isShowing\n * @return {?}\n */\nshowHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * Toggle the filter row displayed on first row\n * @return {?}\n */\ntoggleHeaderRow() {\n const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * @param {?} dataset\n * @return {?}\n */\nrefreshGridData(dataset: any) {\n if (dataset && this.grid) {\n this._dataView.setItems(dataset);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this._gridOptions.enablePagination) {\n this.showPagination = true;\n this.gridPaginationOptions = this.mergeGridOptions();\n }\n if (this._gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n setTimeout(() => {\n this.resizer.resizeGrid(this.grid, this._gridOptions);\n this.grid.autosizeColumns();\n });\n }\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n{ type: Component, args: [{\n selector: 'angular-slickgrid',\n template: `\n
\n
\n
\n\n \n
\n `\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ResizerService, },\n{type: MouseService, },\n{type: FilterService, },\n{type: SortService, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridId': [{ type: Input },],\n'columnDefinitions': [{ type: Input },],\n'gridOptions': [{ type: Input },],\n'gridHeight': [{ type: Input },],\n'gridWidth': [{ type: Input },],\n'dataset': [{ type: Input },],\n};\n}\n\nfunction AngularSlickgridComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridComponent.ctorParameters;\n/** @type {?} */\nAngularSlickgridComponent.propDecorators;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataset;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataView;\n/** @type {?} */\nAngularSlickgridComponent.prototype._gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype._columnFilters;\n/** @type {?} */\nAngularSlickgridComponent.prototype.grid;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridPaginationOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeightString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidthString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.showPagination;\n/** @type {?} */\nAngularSlickgridComponent.prototype.onFilter;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridId;\n/** @type {?} */\nAngularSlickgridComponent.prototype.columnDefinitions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeight;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidth;\n/** @type {?} */\nAngularSlickgridComponent.prototype.resizer;\n/** @type {?} */\nAngularSlickgridComponent.prototype.mouseService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.filterService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.sortService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './models/gridOption.interface';\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n enableAutoResize: true,\n cellHighlightCssClass: 'slick-cell-modified',\n editable: false,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableMouseOverRow: true,\n enablePagination: false,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: false,\n forceFitColumns: false,\n headerRowHeight: 35,\n multiColumnSort: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 25\n};\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { GridOption } from './../models/gridOption.interface';\nexport class SlickPaginationComponent implements AfterViewInit, OnInit {\nprivate _gridPaginationOptions: GridOption;\n/**\n * @param {?} gridPaginationOptions\n * @return {?}\n */\nset gridPaginationOptions(gridPaginationOptions: GridOption) {\n this._gridPaginationOptions = gridPaginationOptions;\n if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @return {?}\n */\nget gridPaginationOptions(): GridOption {\n return this._gridPaginationOptions;\n }\n grid: any;\n dataFrom = 1;\n dataTo = 1;\n itemsPerPage = 25;\n pageCount = 0;\n pageNumber = 1;\n totalItems = 0;\n paginationCallback: Function;\n paginationPageSizes = [25, 75, 100];\nconstructor() { }\n/**\n * @return {?}\n */\nngOnInit() {\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n this._gridPaginationOptions = this._gridPaginationOptions;\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @param {?} number\n * @return {?}\n */\nceil(number: number) {\n return Math.ceil(number);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nonChangeItemPerPage(event: any) {\n const /** @type {?} */ itemsPerPage = /** @type {?} */(( event.target.value));\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\n this.pageNumber = 1;\n this.itemsPerPage = itemsPerPage;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToFirstPage(event: any) {\n this.pageNumber = 1;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToLastPage(event: any) {\n this.pageNumber = this.pageCount;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToNextPage(event: any) {\n if (this.pageNumber < this.pageCount) {\n this.pageNumber++;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToPreviousPage(event: any) {\n if (this.pageNumber > 0) {\n this.pageNumber--;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @return {?}\n */\ngotoFirstPage() {\n this.pageNumber = 1;\n this.onPageChanged(undefined, this.pageNumber);\n }\n/**\n * @return {?}\n */\nrefreshPagination() {\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\n if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) {\n this.pageNumber = 1;\n this.recalculateFromToIndexes();\n }\n\n // calculate and refresh the multiple properties of the pagination UI\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\n this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize;\n if (this._gridPaginationOptions.onPaginationChanged) {\n this.paginationCallback = this._gridPaginationOptions.onPaginationChanged;\n }\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\n this.dataTo = this.itemsPerPage;\n }\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n/**\n * @param {?=} event\n * @param {?=} pageNumber\n * @return {?}\n */\nonPageChanged(event?: Event, pageNumber?: number) {\n this.recalculateFromToIndexes();\n\n if (this.dataTo > this.totalItems) {\n this.dataTo = this.totalItems;\n }\n if (typeof this.paginationCallback === 'function') {\n const /** @type {?} */ itemsPerPage = this.itemsPerPage;\n this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage });\n }\n }\n/**\n * @return {?}\n */\nrecalculateFromToIndexes() {\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\n this.dataTo = (this.pageNumber * this.itemsPerPage);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n selector: 'slick-pagination',\n template: `\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n `,\n styles: [\n `\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n `\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridPaginationOptions': [{ type: Input },],\n'grid': [{ type: Input },],\n};\n}\n\nfunction SlickPaginationComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nSlickPaginationComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSlickPaginationComponent.ctorParameters;\n/** @type {?} */\nSlickPaginationComponent.propDecorators;\n/** @type {?} */\nSlickPaginationComponent.prototype._gridPaginationOptions;\n/** @type {?} */\nSlickPaginationComponent.prototype.grid;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataFrom;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataTo;\n/** @type {?} */\nSlickPaginationComponent.prototype.itemsPerPage;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageCount;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageNumber;\n/** @type {?} */\nSlickPaginationComponent.prototype.totalItems;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationCallback;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationPageSizes;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from './../models/caseType';\nimport { FilterChangedArgs } from './../models/filterChangedArgs.interface';\nimport { FieldType } from './../models/fieldType';\nimport { OdataOption } from './../models/odataOption.interface';\nimport { PaginationChangedArgs } from './../models/paginationChangedArgs.interface';\nimport { SortChangedArgs } from './../models/sortChangedArgs.interface';\nimport { OdataService } from './odata.service';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_;\nexport class GridOdataService {\n defaultSortBy = '';\n minUserInactivityOnFilter = 700;\n/**\n * @param {?} odataService\n */\nconstructor(private odataService: OdataService) { }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} options\n * @return {?}\n */\ninitOptions(options: OdataOption): void {\n this.odataService.options = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n this.odataService.removeColumnFilter(fieldName);\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n this.odataService.updateOptions({\n skip: 0\n });\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n this.odataService.saveColumnFilter(fieldName, value, terms);\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n let /** @type {?} */ searchBy: string = '';\n let /** @type {?} */ timer: any = 0;\n const /** @type {?} */ searchByArray = [];\n\n // loop through all columns to inspect filters\n for (const /** @type {?} */ columnId in args.columnFilters) {\n if (args.columnFilters.hasOwnProperty(columnId)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnDef = columnFilter.columnDef;\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || 'string';\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n if (typeof fieldSearchValue !== 'string') {\n throw new Error(`OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n const /** @type {?} */ searchTerms = columnFilter.listTerm || [];\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n let /** @type {?} */ searchValue = (!!matches) ? matches[2] : fieldSearchValue;\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false;\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '') {\n this.removeColumnFilter(fieldName);\n continue;\n }\n\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n searchValue = encodeURIComponent(searchValue); // encode URI of the final search value\n\n // extra query arguments\n if (bypassOdataQuery) {\n // push to our temp array and also trim white spaces\n if (fieldName) {\n this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms);\n }\n } else {\n let /** @type {?} */ searchBy = '';\n\n // titleCase the fieldName so that it matches the WebApi names\n const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || '');\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `(${searchBy})`;\n }\n } else if (operator === '*' || lastValueChar !== '') {\n // first/last character is a '*' will be a startsWith or endsWith\n searchBy = operator === '*'\n ? `endswith(${fieldNameTitleCase}, '${searchValue}')`\n : `startswith(${fieldNameTitleCase}, '${searchValue}')`;\n } else if (fieldType === FieldType.date) {\n // date field needs to be UTC and within DateTime function\n const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true);\n if (dateFormatted) {\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`;\n }\n } else if (fieldType === FieldType.string) {\n // string field needs to be in single quotes\n searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`;\n } else {\n // any other field type (or undefined type)\n searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`;\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`;\n }\n\n // push to our temp array and also trim white spaces\n if (searchBy !== '') {\n searchByArray.push(String.trim(searchBy));\n this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms);\n }\n }\n }\n }\n\n // build the filter query\n this.odataService.updateOptions({\n filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '',\n skip: undefined\n });\n\n // reset Pagination, then build the OData query which we will use in the WebAPI callback\n this.resetPaginationOptions();\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n this.odataService.updateOptions({\n top: args.pageSize,\n skip: (args.newPage - 1) * args.pageSize\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n let /** @type {?} */ sortByArray = [];\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc\n if (sortColumns && sortColumns.length === 0) {\n sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort\n } else {\n if (sortColumns) {\n for (let /** @type {?} */ column of sortColumns) {\n let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id;\n if (this.odataService.options.caseType === CaseType.pascalCase) {\n fieldName = String.titleCase(fieldName);\n }\n const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc';\n const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`;\n sortByArray.push(sortByColumnString);\n }\n }\n }\n\n // transform the sortby array into a CSV string\n const /** @type {?} */ csvArray = sortByArray.join(',');\n this.odataService.updateOptions({\n orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * Mapper for mathematical operators (ex.: <= is \"le\", > is \"gt\")\n * @param {?} operator\n * @return {?} string map\n */\nprivate mapOperator(operator: string) {\n let /** @type {?} */ map = '';\n switch (operator) {\n case '<':\n map = 'lt';\n break;\n case '<=':\n map = 'le';\n break;\n case '>':\n map = 'gt';\n break;\n case '>=':\n map = 'ge';\n break;\n case '<>':\n case '!=':\n map = 'ne';\n break;\n case '=':\n case '==':\n default:\n map = 'eq';\n break;\n }\n\n return map;\n }\n/**\n * Parse a date passed as a string and return a Date object (if valid)\n * @param {?} inputDateString\n * @param {?} useUtc\n * @return {?} object Date\n */\nprivate parseUtcDate(inputDateString: string, useUtc: boolean) {\n let /** @type {?} */ date = null;\n\n if (/^[0-9\\-\\/]*$/.test(inputDateString)) {\n // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text\n const /** @type {?} */ dateString = decodeURIComponent(inputDateString);\n const /** @type {?} */ dateMoment = moment(new Date(dateString));\n if (dateMoment.isValid() && dateMoment.year().toString().length === 4) {\n date = (useUtc) ? dateMoment.utc().format() : dateMoment.format();\n }\n }\n\n return date;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: OdataService, },\n];\n}\n\nfunction GridOdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nGridOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGridOdataService.ctorParameters;\n/** @type {?} */\nGridOdataService.prototype.defaultSortBy;\n/** @type {?} */\nGridOdataService.prototype.minUserInactivityOnFilter;\n/** @type {?} */\nGridOdataService.prototype.odataService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from '../models/caseType';\nimport { OdataOption } from './../models/odataOption.interface';\nexport class OdataService {\n _columnFilters: any;\n _defaultSortBy: string;\n _odataOptions: OdataOption;\nconstructor() {\n this._odataOptions = {\n filterQueue: [],\n orderBy: ''\n };\n this._defaultSortBy = '';\n this._columnFilters = {};\n }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ queryTmpArray = [];\n\n if (this._odataOptions.top) {\n queryTmpArray.push(`$top=${this._odataOptions.top}`);\n }\n if (this._odataOptions.skip) {\n queryTmpArray.push(`$skip=${this._odataOptions.skip}`);\n }\n if (this._odataOptions.orderBy) {\n let /** @type {?} */ argument = '';\n if (Array.isArray(this._odataOptions.orderBy)) {\n argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc\n } else {\n argument = this._odataOptions.orderBy;\n }\n queryTmpArray.push(`$orderby=${argument}`);\n }\n if (this._odataOptions.filterBy || this._odataOptions.filter) {\n if (this._odataOptions.filter) {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ filterStr = this._odataOptions.filter;\n if (Array.isArray(this._odataOptions.filter)) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n filterStr = this._odataOptions.filter.join(separatorSpacedOut);\n }\n this._odataOptions.filterQueue.push(`(${filterStr})`);\n }\n // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered\n if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) {\n if (this._odataOptions.filterBy.searchTerm !== '') {\n this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm);\n this.updateFilterFromListTerms(this._odataOptions.filterBy);\n }\n }\n }\n if (this._odataOptions.filterQueue.length > 0) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut);\n this._odataOptions.filter = query; // overwrite with\n queryTmpArray.push(`$filter=${query}`);\n }\n\n // join all the odata functions by a '&'\n return queryTmpArray.join('&');\n }\n/**\n * @param {?} columnName\n * @return {?}\n */\ngetFilterByColumn(columnName: string): string {\n return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null;\n }\n/**\n * @return {?}\n */\ngetFilterCount(): number {\n return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0;\n }\n/**\n * @return {?}\n */\nget columnFilters(): any[] {\n return this._columnFilters;\n }\n/**\n * @return {?}\n */\nget options(): OdataOption {\n return this._odataOptions;\n }\n/**\n * @param {?} options\n * @return {?}\n */\nset options(options: OdataOption) {\n this._odataOptions = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string) {\n delete this._columnFilters[fieldName];\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} searchTerms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: any, searchTerms?: any[]) {\n this._columnFilters[fieldName] = {\n search: searchTerms,\n value: value\n };\n }\n/**\n * Update the filter by a list of terms usually passed manually by the user as default filters\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromListTerms(filterOptions: any) {\n // build the filter query\n if (Array.isArray(filterOptions)) {\n filterOptions.forEach((filterOptionObject) => {\n this.updateFilterFromTerm(filterOptionObject);\n });\n } else {\n this.updateFilterFromTerm(filterOptions);\n }\n }\n/**\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromTerm(filterOptions: any) {\n let /** @type {?} */ searchBy = '';\n const /** @type {?} */ tmpSearchByArray = [];\n const /** @type {?} */ fieldName = filterOptions.fieldName;\n const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm;\n const /** @type {?} */ operator = filterOptions.operator;\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (!!fieldSearchTerms && fieldSearchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `$(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `$(${searchBy})`;\n }\n }\n\n // push to our temp array and also trim white spaces\n tmpSearchByArray.push(String.trim(searchBy));\n\n // add to the filter queue only if it doesn't exist in the queue\n const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : '';\n if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) {\n this._odataOptions.filterQueue.push(filter);\n }\n }\n/**\n * Change any OData options that will be used to build the query\n * @param {?} options\n * @return {?}\n */\nupdateOptions(options: OdataOption) {\n for (const /** @type {?} */ property of Object.keys(options)) {\n if (options.hasOwnProperty(property)) {\n this._odataOptions[property] = options[property]; // replace of the property\n }\n\n // we need to keep the defaultSortBy for references whenever the user removes his Sorting\n // then we would revert to the defaultSortBy and the only way is to keep a hard copy here\n if (property === 'orderBy' || property === 'sortBy') {\n let /** @type {?} */ sortBy = options[property];\n\n // make sure first char of each orderBy field is capitalize\n if (this._odataOptions.caseType === CaseType.pascalCase) {\n if (Array.isArray(sortBy)) {\n sortBy.forEach((field, index, inputArray) => {\n inputArray[index] = String.titleCase(field);\n });\n } else {\n sortBy = String.titleCase(options[property]);\n }\n }\n this._odataOptions.orderBy = sortBy;\n this._defaultSortBy = sortBy;\n }\n }\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOdataService.ctorParameters;\n/** @type {?} */\nOdataService.prototype._columnFilters;\n/** @type {?} */\nOdataService.prototype._defaultSortBy;\n/** @type {?} */\nOdataService.prototype._odataOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","declare interface StringConstructor {\n allTitleCase(inputStr: string): string;\n format(inputStr: string, args: any): string;\n padZero(length: number): string;\n trim(inputStr: string): string;\n titleCase(inputStr: string): string;\n}\n\n\nString.format = function(format: string, args: any): string {\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] !== 'undefined') ? args[number] : match;\n });\n};\n\nString.padZero = function (this: string, length: number) {\n let /** @type {?} */ s = this;\n while (s.length < length) {\n s = '0' + s;\n }\n return s;\n};\n\n/**\n * Trim any extra white space from the string\n * @param string inputStr\n * @returns string outputStr\n */\nString.trim = function(inputStr: string): string {\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n */\nString.allTitleCase = function(inputStr: string): string {\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\n });\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n*/\nString.titleCase = function(inputStr: string): string {\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\n};\n","import { GridOption } from './../models/gridOption.interface';\nimport { FieldType } from './../models/fieldType';\nimport { Sorter } from './../models/sorter.interface';\nimport { Sorters } from './../sorters/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\nexport class SortService {\n subscriber: any;\nconstructor() { }\n/**\n * Attach a backend sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @return {?}\n */\nattachBackendOnSort(grid: any, gridOptions: GridOption) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe(gridOptions.onSortChanged);\n }\n/**\n * Attach a local sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n dataView.sort(function (dataRow1: any, dataRow2: any) {\n for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) {\n const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1;\n const /** @type {?} */ sortField = sortColumns[i].sortCol.field;\n const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string';\n const /** @type {?} */ value1 = dataRow1[sortField];\n const /** @type {?} */ value2 = dataRow2[sortField];\n let /** @type {?} */ result = 0;\n\n switch (fieldType) {\n case FieldType.number:\n result = Sorters.numeric(value1, value2, sortDirection);\n break;\n case FieldType.date:\n result = Sorters.date(value1, value2, sortDirection);\n break;\n case FieldType.dateIso:\n result = Sorters.dateIso(value1, value2, sortDirection);\n break;\n case FieldType.dateUs:\n result = Sorters.dateUs(value1, value2, sortDirection);\n break;\n case FieldType.dateUsShort:\n result = Sorters.dateUsShort(value1, value2, sortDirection);\n break;\n default:\n result = Sorters.string(value1, value2, sortDirection);\n break;\n }\n\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n });\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction SortService_tsickle_Closure_declarations() {\n/** @type {?} */\nSortService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSortService.ctorParameters;\n/** @type {?} */\nSortService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\nimport { GridOption } from './../models/gridOption.interface';\n\ndeclare var $: any;\n\n// global constants, height/width are in pixels\nconst /** @type {?} */ DATAGRID_MIN_HEIGHT = 180;\nconst /** @type {?} */ DATAGRID_MIN_WIDTH = 300;\nconst /** @type {?} */ DATAGRID_BOTTOM_PADDING = 20;\nconst /** @type {?} */ DATAGRID_PAGINATION_HEIGHT = 35;\nexport class ResizerService {\n/**\n * @param {?} router\n */\nconstructor(private router: Router) {\n }\n/**\n * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\n * Options: we could also provide a % factor to resize on each height/width independently\n * @param {?} grid\n * @param {?} gridOptions\n * @return {?}\n */\nattachAutoResizeDataGrid(grid: any, gridOptions: GridOption): any|void {\n // if we can't find the grid to resize, return without attaching anything\n const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`);\n if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') {\n return null;\n }\n\n // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load)\n this.resizeGrid(grid, gridOptions);\n\n // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load\n // -- attach auto-resize to Window object only if it exist\n $(window).on('resize', () => {\n this.resizeGrid(grid, gridOptions);\n });\n\n // destroy the resizer on route change\n this.router.events.subscribe((event: NavigationEnd) => {\n $(window).trigger('resize').off('resize');\n });\n }\n/**\n * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation\n * object gridOptions\n * @param {?} gridOptions\n * @return {?}\n */\ncalculateGridNewDimensions(gridOptions: GridOption): any {\n let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING;\n if (bottomPadding && gridOptions.enablePagination) {\n bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding\n }\n if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') {\n return;\n }\n const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding;\n const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width();\n const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT;\n const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH;\n\n let /** @type {?} */ newHeight = availableHeight;\n let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth;\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n return {\n height: newHeight,\n width: newWidth\n };\n }\n/**\n * Resize the datagrid to fit the browser height & width\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?=} newSizes\n * @return {?}\n */\nresizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}): void {\n // calculate new available sizes but with minimum height of 220px\n newSizes = newSizes || this.calculateGridNewDimensions(gridOptions);\n\n if (newSizes) {\n // apply these new height/width to the datagrid\n $(`#${gridOptions.gridId}`).height(newSizes.height);\n $(`#${gridOptions.gridId}`).width(newSizes.width);\n $(`#${gridOptions.gridContainerId}`).height(newSizes.height);\n $(`#${gridOptions.gridContainerId}`).width(newSizes.width);\n\n // resize the slickgrid canvas on all browser except some IE versions\n // exclude all IE below IE11\n // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape'\n if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) {\n grid.resizeCanvas();\n }\n\n // also call the grid auto-size columns so that it takes available when going bigger\n grid.autosizeColumns();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Router, },\n];\n}\n\nfunction ResizerService_tsickle_Closure_declarations() {\n/** @type {?} */\nResizerService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nResizerService.ctorParameters;\n/** @type {?} */\nResizerService.prototype.router;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\nexport class MouseService {\n/**\n * @param {?} grid\n * @return {?}\n */\nattachOnMouseHover(grid: any) {\r\n grid.onMouseEnter.subscribe((e: any) => {\r\n const /** @type {?} */ cell = grid.getCellFromEvent(e);\r\n if (cell && cell.row >= 0) {\r\n grid.setSelectedRows([cell.row]);\r\n e.preventDefault();\r\n }\r\n });\r\n grid.onMouseLeave.subscribe((e: any) => {\r\n grid.setSelectedRows([]);\r\n e.preventDefault();\r\n });\r\n }\r\n}\r\n","import { FilterConditions } from '../filter-conditions/index';\nimport { Column } from '../models/column.interface';\nimport { ColumnFilters } from '../models/columnFilters.interface';\nimport { FieldType } from '../models/fieldType';\nimport { FilterChangedArgs } from '../models/filterChangedArgs.interface';\nimport { FormElementType } from '../models/formElementType';\nimport { GridOption } from '../models/gridOption.interface';\nimport { FilterTemplates } from './../filter-templates/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class FilterService {\n _columnDefinitions: Column[];\n _columnFilters: ColumnFilters;\n _dataView: any;\n _grid: any;\n _gridOptions: GridOption;\n subscriber: any;\nconstructor() { }\n/**\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?} columnDefinitions\n * @param {?} columnFilters\n * @return {?}\n */\ninit(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any) {\n this._columnDefinitions = columnDefinitions;\n this._columnFilters = columnFilters;\n this._gridOptions = gridOptions;\n this._grid = grid;\n }\n/**\n * Attach a backend filter hook to the grid\n * @return {?}\n */\nattachBackendOnFilter() {\n this.subscriber = new Slick.Event();\n this.subscriber.subscribe(this._gridOptions.onFilterChanged);\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} operator\n * @param {?} value1\n * @param {?} value2\n * @return {?}\n */\ntestFilterCondition(operator: string, value1: any, value2: any) {\n switch (operator) {\n case '<': return (value1 < value2) ? true : false;\n case '<=': return (value1 <= value2) ? true : false;\n case '>': return (value1 > value2) ? true : false;\n case '>=': return (value1 >= value2) ? true : false;\n case '!=':\n case '<>': return (value1 !== value2) ? true : false;\n case '=':\n case '==': return (value1 === value2) ? true : false;\n }\n }\n/**\n * Attach a local filter hook to the grid\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnFilter(dataView: any) {\n this._dataView = dataView;\n this.subscriber = new Slick.Event();\n\n dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid });\n dataView.setFilter(this.customFilter);\n\n this.subscriber.subscribe((e: any, args: any) => {\n const /** @type {?} */ columnId = args.columnId;\n if (columnId != null) {\n dataView.refresh();\n }\n });\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} item\n * @param {?} args\n * @return {?}\n */\ncustomFilter(item: any, args: any) {\n for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId);\n const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex];\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || FieldType.string;\n const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null;\n const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null;\n\n let /** @type {?} */ cellValue = item[columnDef.field];\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n\n // no need to query if search value is empty\n if (searchTerm === '') {\n return true;\n }\n\n if (typeof cellValue === 'number') {\n cellValue = cellValue.toString();\n }\n\n const /** @type {?} */ conditionOptions = {\n fieldType: fieldType,\n searchTerm: searchTerm,\n cellValue: cellValue,\n operator: operator,\n cellValueLastChar: lastValueChar,\n filterSearchType: filterSearchType\n };\n if (conditionalFilterFn && typeof conditionalFilterFn === 'function') {\n conditionalFilterFn(conditionOptions);\n }\n if (!FilterConditions.executeMappedCondition(conditionOptions)) {\n return false;\n }\n }\n return true;\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\n/**\n * @param {?} e\n * @param {?} args\n * @return {?}\n */\ncallbackSearchEvent(e: any, args: any) {\n this._columnFilters[args.columnDef.id] = {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n searchTerm: e.target.value\n };\n\n this.triggerEvent(this.subscriber, {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n columnFilters: this._columnFilters,\n searchTerm: e.target.value,\n grid: this._grid\n }, e);\n }\n/**\n * @return {?}\n */\naddFilterTemplateToHeaderRow() {\n for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) {\n if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) {\n let /** @type {?} */ filterTemplate = '';\n let /** @type {?} */ elm = null;\n let /** @type {?} */ header;\n const /** @type {?} */ columnDef = this._columnDefinitions[i];\n const /** @type {?} */ columnId = columnDef.id;\n const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null;\n let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : '';\n\n // keep the filter in a columnFilters for later reference\n this.keepColumnFilters(searchTerm, listTerm, columnDef);\n\n if (!columnDef.filter) {\n searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null;\n filterTemplate = FilterTemplates.input(searchTerm, columnDef);\n } else {\n // custom Select template\n if (columnDef.filter.type === FormElementType.select) {\n filterTemplate = FilterTemplates.select(searchTerm, columnDef);\n }\n }\n\n // create the DOM Element\n header = this._grid.getHeaderRowColumn(columnDef.id);\n $(header).empty();\n elm = $(filterTemplate);\n elm.val(searchTerm);\n elm.data('columnId', columnDef.id);\n if (elm && typeof elm.appendTo === 'function') {\n elm.appendTo(header);\n }\n\n // depending on the DOM Element type, we will watch the corrent event\n const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input;\n switch (filterType) {\n case FormElementType.select:\n case FormElementType.multiSelect:\n elm.change((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n case FormElementType.input:\n default:\n elm.keyup((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n }\n }\n }\n }\n/**\n * @param {?} searchTerm\n * @param {?} listTerm\n * @param {?} columnDef\n * @return {?}\n */\nprivate keepColumnFilters(searchTerm: string, listTerm: any, columnDef: any) {\n if (searchTerm) {\n this._columnFilters[columnDef.id] = {\n columnId: columnDef.id,\n columnDef: columnDef,\n searchTerm: searchTerm\n };\n if (listTerm) {\n this._columnFilters.listTerm = listTerm;\n }\n }\n }\n/**\n * @param {?} evt\n * @param {?} args\n * @param {?} e\n * @return {?}\n */\nprivate triggerEvent(evt: any, args: any, e: any) {\n e = e || new Slick.EventData();\n return evt.notify(args, e, args.grid);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FilterService_tsickle_Closure_declarations() {\n/** @type {?} */\nFilterService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFilterService.ctorParameters;\n/** @type {?} */\nFilterService.prototype._columnDefinitions;\n/** @type {?} */\nFilterService.prototype._columnFilters;\n/** @type {?} */\nFilterService.prototype._dataView;\n/** @type {?} */\nFilterService.prototype._grid;\n/** @type {?} */\nFilterService.prototype._gridOptions;\n/** @type {?} */\nFilterService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { dateUsShortSorter } from './dateUsShortSorter';\r\nimport { dateSorter } from './dateSorter';\r\nimport { dateIsoSorter } from './dateIsoSorter';\r\nimport { dateUsSorter } from './dateUsSorter';\r\nimport { numericSorter } from './numericSorter';\r\nimport { stringSorter } from './stringSorter';\r\n\r\nexport const /** @type {?} */ Sorters = {\r\n date: dateSorter,\r\n dateIso: dateIsoSorter,\r\n dateUs: dateUsSorter,\r\n dateUsShort: dateUsShortSorter,\r\n numeric: numericSorter,\r\n string: stringSorter\r\n};\r\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ stringSorter: Sorter = (value1, value2, sortDirection) => {\n return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ numericSorter: Sorter = (value1, value2, sortDirection) => {\n const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1);\n const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2);\n return sortDirection * (x === y ? 0 : (x > y ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, moment.ISO_8601).isValid() || !moment(value2, moment.ISO_8601, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1);\n const /** @type {?} */ date2 = moment(value2);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Column } from './../models/column.interface';\r\nimport { checkboxFormatter } from './checkboxFormatter';\r\nimport { checkmarkFormatter } from './checkmarkFormatter';\r\nimport { dateIsoFormatter } from './dateIsoFormatter';\r\nimport { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter';\r\nimport { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter';\r\nimport { dateTimeUsFormatter } from './dateTimeUsFormatter';\r\nimport { dateUsFormatter } from './dateUsFormatter';\r\nimport { percentCompleteFormatter } from './percentCompleteFormatter';\r\nimport { percentCompleteBarFormatter } from './percentCompleteBarFormatter';\r\nimport { progressBarFormatter } from './progressBarFormatter';\r\nimport { yesNoFormatter } from './yesNoFormatter';\r\n// import { Group, GroupTotals } from '../core'\r\n// import { Item } from '../dataview'\r\n\r\n\r\n/*\r\nexport interface GroupFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string\r\n}\r\n\r\nexport interface GroupTotalsFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string\r\n}\r\n*/\r\nexport const /** @type {?} */ Formatters = {\r\n checkbox: checkboxFormatter,\r\n checkmark: checkmarkFormatter,\r\n dateIso: dateIsoFormatter,\r\n dateTimeIso: dateIsoFormatter,\r\n dateTimeIsoAmPm: dateTimeIsoAmPmFormatter,\r\n dateUs: dateUsFormatter,\r\n dateTimeUs: dateTimeUsFormatter,\r\n dateTimeUsAmPm: dateTimeUsAmPmFormatter,\r\n percentComplete: percentCompleteFormatter,\r\n percentCompleteBar: percentCompleteBarFormatter,\r\n progressBar: progressBarFormatter,\r\n yesNo: yesNoFormatter\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ yesNoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string =>\r\n value ? 'Yes' : 'No';\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ progressBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'danger';\r\n } else if (value < 70) {\r\n color = 'warning';\r\n } else {\r\n color = 'success';\r\n }\r\n\r\n return `
\r\n
\r\n ${value}%\r\n
\r\n
`;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'red';\r\n } else if (value < 70) {\r\n color = 'silver';\r\n } else {\r\n color = 'green';\r\n }\r\n\r\n return ``;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '-';\r\n } else if (value < 50) {\r\n return `${value}%`;\r\n } else {\r\n return `${value}%`;\r\n }\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY hh:mm:ss') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD') : '';\r\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkmarkFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? `` : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkboxFormatter: Formatter = (row, cell, value, columnDef, dataContext) =>\n value ? '☑' : '';\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\nimport { inputFilterTemplate } from './inputFilterTemplate';\nimport { selectFilterTemplate } from './selectFilterTemplate';\n\nexport const /** @type {?} */ FilterTemplates = {\n input: inputFilterTemplate,\n select: selectFilterTemplate\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n if (!columnDef.filter.selectOptions) {\n throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`);\n }\n let /** @type {?} */ options = '';\n columnDef.filter.selectOptions.forEach((option: any) => {\n options += ``;\n });\n return ``;\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n return ``;\n};\n","import { FilterConditionOption } from './../models/filterConditionOption.interface';\r\nimport { booleanFilterCondition } from './booleanFilterCondition';\r\nimport { dateUtcFilterCondition } from './dateUtcFilterCondition';\r\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\r\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\r\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\r\nimport { dateFilterCondition } from './dateFilterCondition';\r\nimport { executeMappedCondition } from './executeMappedCondition';\r\nimport { numberFilterCondition } from './numberFilterCondition';\r\nimport { stringFilterCondition } from './stringFilterCondition';\r\nimport { testFilterCondition } from './filterUtilities';\r\n\r\nexport const /** @type {?} */ FilterConditions = {\r\n executeMappedCondition: executeMappedCondition,\r\n booleanFilter: booleanFilterCondition,\r\n dateFilter: dateFilterCondition,\r\n dateIsoFilter: dateIsoFilterCondition,\r\n dateUtcFilter: dateUtcFilterCondition,\r\n dateUsFilter: dateUsFilterCondition,\r\n dateUsShortFilter: dateUsShortFilterCondition,\r\n numberFilter: numberFilterCondition,\r\n stringFilter: stringFilterCondition,\r\n testFilter: testFilterCondition\r\n};\r\n","import { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { FilterCondition } from '../models/filterCondition.interface';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ executeMappedCondition: FilterCondition = (options: FilterConditionOption) => {\n // execute the mapped type, or default to String condition check\n switch (options.fieldType) {\n case FieldType.boolean:\n return booleanFilterCondition(options);\n case FieldType.date:\n return dateFilterCondition(options);\n case FieldType.dateUtc:\n return dateUtcFilterCondition(options);\n case FieldType.dateIso:\n return dateIsoFilterCondition(options);\n case FieldType.dateUs:\n case FieldType.dateTimeUs:\n return dateUsFilterCondition(options);\n case FieldType.dateUsShort:\n case FieldType.dateTimeUsShort:\n return dateUsShortFilterCondition(options);\n case FieldType.number:\n return numberFilterCondition(options);\n case FieldType.string:\n default:\n return stringFilterCondition(options);\n }\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ stringFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n // make sure the both search & cell value are string\n // and make them lower case for case insensitive filtering\n const /** @type {?} */ cellValue = options.cellValue.toString().toLowerCase();\n const /** @type {?} */ searchTerm = options.searchTerm.toString().toLowerCase();\n\n if (options.operator === '*') {\n return cellValue.endsWith(searchTerm);\n } else if (options.operator === '' && options.cellValueLastChar === '*') {\n return cellValue.startsWith(searchTerm);\n } else if (options.operator === '') {\n return cellValue.includes(searchTerm);\n }\n return testFilterCondition(options.operator || '==', cellValue, searchTerm);\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ numberFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm));\n};\n","import { FieldType } from '../models/fieldType';\nimport { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso;\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue);\n const /** @type {?} */ dateSearch = moment(options.searchTerm);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!options.filterSearchType) {\n throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }');\n }\n\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ mapDateFormatByFieldType: Function = (fieldType: FieldType) => {\n switch (fieldType) {\n case FieldType.dateUs:\n return 'M/D/YYYY';\n case FieldType.dateTimeUs:\n return 'M/D/YYYY h:m:s';\n case FieldType.dateUsShort:\n return 'M/D/YY';\n case FieldType.dateTimeUsShort:\n return 'M/D/YY h:m:s';\n case FieldType.dateTimeIso:\n return 'YYYY-MM-DD h:m:s';\n case FieldType.dateIso:\n default:\n return 'YYYY-MM-DD';\n }\n};\n\nexport const /** @type {?} */ testFilterCondition: Function = (operator: string, value1: any, value2: any): boolean => {\n switch (operator) {\n case '<': return (value1 < value2);\n case '<=': return (value1 <= value2);\n case '>': return (value1 > value2);\n case '>=': return (value1 >= value2);\n case '!=':\n case '<>': return (value1 !== value2);\n case '=':\n case '==': return (value1 === value2);\n }\n return true;\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\r\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\n/**\n * @param {?} str\n * @return {?}\n */\nfunction parseBoolean(str: string) {\r\n return /(true|1)/i.test(str);\r\n}\r\n\r\nexport const /** @type {?} */ booleanFilterCondition: FilterCondition = (options: FilterConditionOption) => {\r\n return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm);\r\n};\r\n","\nexport type FieldType = number;\nexport let FieldType: any = {};\nFieldType.unknown = 0;\nFieldType.string = 1;\nFieldType.boolean = 2;\nFieldType.number = 3;\nFieldType.date = 4;\nFieldType.dateIso = 5;\nFieldType.dateUtc = 6;\nFieldType.dateTime = 7;\nFieldType.dateTimeIso = 8;\nFieldType.dateUs = 9;\nFieldType.dateUsShort = 10;\nFieldType.dateTimeUs = 11;\nFieldType.dateTimeUsShort = 12;\nFieldType[FieldType.unknown] = \"unknown\";\nFieldType[FieldType.string] = \"string\";\nFieldType[FieldType.boolean] = \"boolean\";\nFieldType[FieldType.number] = \"number\";\nFieldType[FieldType.date] = \"date\";\nFieldType[FieldType.dateIso] = \"dateIso\";\nFieldType[FieldType.dateUtc] = \"dateUtc\";\nFieldType[FieldType.dateTime] = \"dateTime\";\nFieldType[FieldType.dateTimeIso] = \"dateTimeIso\";\nFieldType[FieldType.dateUs] = \"dateUs\";\nFieldType[FieldType.dateUsShort] = \"dateUsShort\";\nFieldType[FieldType.dateTimeUs] = \"dateTimeUs\";\nFieldType[FieldType.dateTimeUsShort] = \"dateTimeUsShort\";\n\r\n","\nexport type FormElementType = number;\nexport let FormElementType: any = {};\nFormElementType.input = 0;\nFormElementType.multiSelect = 1;\nFormElementType.select = 2;\nFormElementType.textarea = 3;\nFormElementType[FormElementType.input] = \"input\";\nFormElementType[FormElementType.multiSelect] = \"multiSelect\";\nFormElementType[FormElementType.select] = \"select\";\nFormElementType[FormElementType.textarea] = \"textarea\";\n\r\n","\nexport type CaseType = number;\nexport let CaseType: any = {};\nCaseType.camelCase = 0;\nCaseType.pascalCase = 1;\nCaseType.snakeCase = 2;\nCaseType[CaseType.camelCase] = \"camelCase\";\nCaseType[CaseType.pascalCase] = \"pascalCase\";\nCaseType[CaseType.snakeCase] = \"snakeCase\";\n\r\n"],"names":["CommonModule","NgModule","Input","Component","Injectable","moment","((moment_)).default","moment_","Router","DATE_FORMAT"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"angular-slickgrid.umd.js","sources":["~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/global-grid-options.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/components/slick-pagination.component.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/grid-odata.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/odata.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/global-utilities.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/graphql.service.ts","../../node_modules/graphql-query-builder/index.js","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/sort.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/resizer.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/mouse.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/services/filter.service.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/stringSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/numericSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateUsSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/yesNoFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/ProgressBarFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/percentCompleteBarFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/percentCompleteFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateUsFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/CheckmarkFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/formatters/CheckboxFormatter.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/index.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.ts","../../node_modules/moment-mini/moment.min.js","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/fieldType.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/formElementType.ts","~/angular-slickgrid/angular-slickgrid/src/app/modules/angular-slickgrid/models/caseType.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Formatters } from './../formatters/index';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { GraphqlService } from './../services/graphql.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\nexport class AngularSlickgridModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n providers: [\n GraphqlService,\n MouseService,\n OdataService,\n FilterService,\n SortService,\n ResizerService\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction AngularSlickgridModule_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { Column, ColumnFilters, FormElementType, GridOption } from './../models/index';\nimport { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core';\nimport { FilterService, MouseService, SortService, ResizerService } from './../services/index';\nimport { GlobalGridOptions } from './../global-grid-options';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class AngularSlickgridComponent implements AfterViewInit, OnInit {\nprivate _dataset: any[];\nprivate _dataView: any;\nprivate _gridOptions: GridOption;\nprivate _columnFilters: ColumnFilters = {};\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n showPagination = false;\n onFilter = new Slick.Event();\n\n gridId: string;\n columnDefinitions: Column[];\n gridOptions: GridOption;\n gridHeight = 100;\n gridWidth = 600;\n/**\n * @param {?} dataset\n * @return {?}\n */\nset dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n/**\n * @return {?}\n */\nget dataset(): any[] {\n return this._dataView.getItems();\n }\n/**\n * @param {?} resizer\n * @param {?} mouseService\n * @param {?} filterService\n * @param {?} sortService\n */\nconstructor(private resizer: ResizerService,\nprivate mouseService: MouseService,\nprivate filterService: FilterService,\nprivate sortService: SortService) {\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this._gridOptions = this.mergeGridOptions();\n\n this._dataView = new Slick.Data.DataView();\n\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions);\n this.grid.setSelectionModel(new Slick.RowSelectionModel());\n const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions);\n\n this.grid.init();\n this._dataView.beginUpdate();\n this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView);\n\n this._dataView.setItems(this._dataset);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this._gridOptions);\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @param {?} dataView\n * @return {?}\n */\nattachDifferentHooks(grid: any, options: GridOption, dataView: any) {\n // attach external sorting (backend) when available or default onSort (dataView)\n if (options.enableSorting) {\n (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView);\n }\n\n // attach external filter (backend) when available or default onSort (dataView)\n if (options.enableFiltering) {\n this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters);\n (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView);\n }\n\n // if enable, change background color on mouse over\n if (options.enableMouseOverRow) {\n this.mouseService.attachOnMouseHover(grid);\n }\n\n dataView.onRowCountChanged.subscribe((e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n dataView.onRowsChanged.subscribe((e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\nattachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (this._gridOptions.autoFitColumnsOnFirstLoad) {\n this.grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid(grid, options);\n if (options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n } else {\n this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth });\n }\n }\n/**\n * @return {?}\n */\nmergeGridOptions(): GridOption {\n this.gridOptions.gridId = this.gridId;\n this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (this.gridOptions.enableFiltering) {\n this.gridOptions.showHeaderRow = true;\n }\n const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions);\n return options;\n }\n/**\n * Toggle the filter row displayed on first row\n * @param {?} isShowing\n * @return {?}\n */\nshowHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * Toggle the filter row displayed on first row\n * @return {?}\n */\ntoggleHeaderRow() {\n const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * @param {?} dataset\n * @return {?}\n */\nrefreshGridData(dataset: any) {\n if (dataset && this.grid) {\n this._dataView.setItems(dataset);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this._gridOptions.enablePagination) {\n this.showPagination = true;\n this.gridPaginationOptions = this.mergeGridOptions();\n }\n if (this._gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n setTimeout(() => {\n this.resizer.resizeGrid(this.grid, this._gridOptions);\n this.grid.autosizeColumns();\n });\n }\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n{ type: Component, args: [{\n selector: 'angular-slickgrid',\n template: `\n
\n
\n
\n\n \n
\n `\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ResizerService, },\n{type: MouseService, },\n{type: FilterService, },\n{type: SortService, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridId': [{ type: Input },],\n'columnDefinitions': [{ type: Input },],\n'gridOptions': [{ type: Input },],\n'gridHeight': [{ type: Input },],\n'gridWidth': [{ type: Input },],\n'dataset': [{ type: Input },],\n};\n}\n\nfunction AngularSlickgridComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridComponent.ctorParameters;\n/** @type {?} */\nAngularSlickgridComponent.propDecorators;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataset;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataView;\n/** @type {?} */\nAngularSlickgridComponent.prototype._gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype._columnFilters;\n/** @type {?} */\nAngularSlickgridComponent.prototype.grid;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridPaginationOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeightString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidthString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.showPagination;\n/** @type {?} */\nAngularSlickgridComponent.prototype.onFilter;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridId;\n/** @type {?} */\nAngularSlickgridComponent.prototype.columnDefinitions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeight;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidth;\n/** @type {?} */\nAngularSlickgridComponent.prototype.resizer;\n/** @type {?} */\nAngularSlickgridComponent.prototype.mouseService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.filterService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.sortService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './models/index';\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n enableAutoResize: true,\n cellHighlightCssClass: 'slick-cell-modified',\n editable: false,\n enableCellNavigation: false,\n enableColumnReorder: true,\n enableMouseOverRow: true,\n enablePagination: false,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: false,\n forceFitColumns: false,\n headerRowHeight: 35,\n multiColumnSort: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 25\n};\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { Column, GridOption } from './../models/index';\nexport class SlickPaginationComponent implements AfterViewInit, OnInit {\nprivate _gridPaginationOptions: GridOption;\n/**\n * @param {?} gridPaginationOptions\n * @return {?}\n */\nset gridPaginationOptions(gridPaginationOptions: GridOption) {\n this._gridPaginationOptions = gridPaginationOptions;\n if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @return {?}\n */\nget gridPaginationOptions(): GridOption {\n return this._gridPaginationOptions;\n }\n grid: any;\n dataFrom = 1;\n dataTo = 1;\n itemsPerPage = 25;\n pageCount = 0;\n pageNumber = 1;\n totalItems = 0;\n paginationCallback: Function;\n paginationPageSizes = [25, 75, 100];\nconstructor() { }\n/**\n * @return {?}\n */\nngOnInit() {\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n this._gridPaginationOptions = this._gridPaginationOptions;\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @param {?} number\n * @return {?}\n */\nceil(number: number) {\n return Math.ceil(number);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nonChangeItemPerPage(event: any) {\n const /** @type {?} */ itemsPerPage = /** @type {?} */(( event.target.value));\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\n this.pageNumber = 1;\n this.itemsPerPage = itemsPerPage;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToFirstPage(event: any) {\n this.pageNumber = 1;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToLastPage(event: any) {\n this.pageNumber = this.pageCount;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToNextPage(event: any) {\n if (this.pageNumber < this.pageCount) {\n this.pageNumber++;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToPreviousPage(event: any) {\n if (this.pageNumber > 0) {\n this.pageNumber--;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @return {?}\n */\ngotoFirstPage() {\n this.pageNumber = 1;\n this.onPageChanged(undefined, this.pageNumber);\n }\n/**\n * @return {?}\n */\nrefreshPagination() {\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\n if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) {\n this.pageNumber = 1;\n this.recalculateFromToIndexes();\n }\n\n // calculate and refresh the multiple properties of the pagination UI\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\n this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize;\n if (this._gridPaginationOptions.onPaginationChanged) {\n this.paginationCallback = this._gridPaginationOptions.onPaginationChanged;\n }\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\n this.dataTo = this.itemsPerPage;\n }\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n/**\n * @param {?=} event\n * @param {?=} pageNumber\n * @return {?}\n */\nonPageChanged(event?: Event, pageNumber?: number) {\n this.recalculateFromToIndexes();\n\n if (this.dataTo > this.totalItems) {\n this.dataTo = this.totalItems;\n }\n if (typeof this.paginationCallback === 'function') {\n const /** @type {?} */ itemsPerPage = this.itemsPerPage;\n this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage });\n }\n }\n/**\n * @return {?}\n */\nrecalculateFromToIndexes() {\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\n this.dataTo = (this.pageNumber * this.itemsPerPage);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n selector: 'slick-pagination',\n template: `\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n `,\n styles: [`\n @charset \"UTF-8\";\n /* pagination/pagination variables */\n /*!\r\n * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid)\r\n * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE)\r\n * @author: Ghislain B. (ghiscoding)\r\n */\n /*!\r\n\r\n /* SlickGrid Bootstrap variables */\n /* Used by slick-bootstrap.scss */\n /* Slickgrid container, including headers but excluding pagination */\n /* grid */\n /* cell */\n /* cell default slickgrid values */\n /* header */\n /* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */\n /* Column picker */\n /* pagination variables */\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080; }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px; }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd; }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px; }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block; }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px; }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0; }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n border: 1px solid #ccc; }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer; }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-family: \"FontAwesome\";\n font-size: 14px;\n /*color: inherit;*/\n border-color: #c4c4c4; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-first:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-prev:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-next:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item .icon-seek-end:before {\n content: \"\"; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal; }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n color: #b8b8b8;\n background-color: #f9f9f9;\n border-color: #dedede; }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle; }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px; }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px; }\n `]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridPaginationOptions': [{ type: Input },],\n'grid': [{ type: Input },],\n};\n}\n\nfunction SlickPaginationComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nSlickPaginationComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSlickPaginationComponent.ctorParameters;\n/** @type {?} */\nSlickPaginationComponent.propDecorators;\n/** @type {?} */\nSlickPaginationComponent.prototype._gridPaginationOptions;\n/** @type {?} */\nSlickPaginationComponent.prototype.grid;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataFrom;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataTo;\n/** @type {?} */\nSlickPaginationComponent.prototype.itemsPerPage;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageCount;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageNumber;\n/** @type {?} */\nSlickPaginationComponent.prototype.totalItems;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationCallback;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationPageSizes;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType, FilterChangedArgs, FieldType, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models/index';\nimport { OdataService } from './odata.service';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_;\nexport class GridOdataService {\n defaultSortBy = '';\n minUserInactivityOnFilter = 700;\n/**\n * @param {?} odataService\n */\nconstructor(private odataService: OdataService) { }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} options\n * @return {?}\n */\ninitOptions(options: OdataOption): void {\n this.odataService.options = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n this.odataService.removeColumnFilter(fieldName);\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n this.odataService.updateOptions({\n skip: 0\n });\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n this.odataService.saveColumnFilter(fieldName, value, terms);\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n let /** @type {?} */ searchBy: string = '';\n let /** @type {?} */ timer: any = 0;\n const /** @type {?} */ searchByArray = [];\n\n // loop through all columns to inspect filters\n for (const /** @type {?} */ columnId in args.columnFilters) {\n if (args.columnFilters.hasOwnProperty(columnId)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnDef = columnFilter.columnDef;\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || 'string';\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n if (typeof fieldSearchValue !== 'string') {\n throw new Error(`OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n const /** @type {?} */ searchTerms = columnFilter.listTerm || [];\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n let /** @type {?} */ searchValue = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false;\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '') {\n this.removeColumnFilter(fieldName);\n continue;\n }\n\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n searchValue = encodeURIComponent(searchValue); // encode URI of the final search value\n\n // extra query arguments\n if (bypassOdataQuery) {\n // push to our temp array and also trim white spaces\n if (fieldName) {\n this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms);\n }\n } else {\n let /** @type {?} */ searchBy = '';\n\n // titleCase the fieldName so that it matches the WebApi names\n const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || '');\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `(${searchBy})`;\n }\n } else if (operator === '*' || lastValueChar !== '') {\n // first/last character is a '*' will be a startsWith or endsWith\n searchBy = operator === '*'\n ? `endswith(${fieldNameTitleCase}, '${searchValue}')`\n : `startswith(${fieldNameTitleCase}, '${searchValue}')`;\n } else if (fieldType === FieldType.date) {\n // date field needs to be UTC and within DateTime function\n const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true);\n if (dateFormatted) {\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`;\n }\n } else if (fieldType === FieldType.string) {\n // string field needs to be in single quotes\n searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`;\n } else {\n // any other field type (or undefined type)\n searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`;\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`;\n }\n\n // push to our temp array and also trim white spaces\n if (searchBy !== '') {\n searchByArray.push(String.trim(searchBy));\n this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms);\n }\n }\n }\n }\n\n // build the filter query\n this.odataService.updateOptions({\n filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '',\n skip: undefined\n });\n\n // reset Pagination, then build the OData query which we will use in the WebAPI callback\n this.resetPaginationOptions();\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n this.odataService.updateOptions({\n top: args.pageSize,\n skip: (args.newPage - 1) * args.pageSize\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n let /** @type {?} */ sortByArray = [];\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc\n if (sortColumns && sortColumns.length === 0) {\n sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort\n } else {\n if (sortColumns) {\n for (let /** @type {?} */ column of sortColumns) {\n let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id;\n if (this.odataService.options.caseType === CaseType.pascalCase) {\n fieldName = String.titleCase(fieldName);\n }\n const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc';\n const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`;\n sortByArray.push(sortByColumnString);\n }\n }\n }\n\n // transform the sortby array into a CSV string\n const /** @type {?} */ csvArray = sortByArray.join(',');\n this.odataService.updateOptions({\n orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * Mapper for mathematical operators (ex.: <= is \"le\", > is \"gt\")\n * @param {?} operator\n * @return {?} string map\n */\nprivate mapOperator(operator: string) {\n let /** @type {?} */ map = '';\n switch (operator) {\n case '<':\n map = 'lt';\n break;\n case '<=':\n map = 'le';\n break;\n case '>':\n map = 'gt';\n break;\n case '>=':\n map = 'ge';\n break;\n case '<>':\n case '!=':\n map = 'ne';\n break;\n case '=':\n case '==':\n default:\n map = 'eq';\n break;\n }\n\n return map;\n }\n/**\n * Parse a date passed as a string and return a Date object (if valid)\n * @param {?} inputDateString\n * @param {?} useUtc\n * @return {?} object Date\n */\nprivate parseUtcDate(inputDateString: string, useUtc: boolean) {\n let /** @type {?} */ date = null;\n\n if (/^[0-9\\-\\/]*$/.test(inputDateString)) {\n // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text\n const /** @type {?} */ dateString = decodeURIComponent(inputDateString);\n const /** @type {?} */ dateMoment = moment(new Date(dateString));\n if (dateMoment.isValid() && dateMoment.year().toString().length === 4) {\n date = (useUtc) ? dateMoment.utc().format() : dateMoment.format();\n }\n }\n\n return date;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: OdataService, },\n];\n}\n\nfunction GridOdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nGridOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGridOdataService.ctorParameters;\n/** @type {?} */\nGridOdataService.prototype.defaultSortBy;\n/** @type {?} */\nGridOdataService.prototype.minUserInactivityOnFilter;\n/** @type {?} */\nGridOdataService.prototype.odataService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { CaseType } from '../models/caseType';\nimport'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { OdataOption } from './../models/index';\nexport class OdataService {\n _columnFilters: any;\n _defaultSortBy: string;\n _odataOptions: OdataOption;\nconstructor() {\n this._odataOptions = {\n filterQueue: [],\n orderBy: ''\n };\n this._defaultSortBy = '';\n this._columnFilters = {};\n }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ queryTmpArray = [];\n\n if (this._odataOptions.top) {\n queryTmpArray.push(`$top=${this._odataOptions.top}`);\n }\n if (this._odataOptions.skip) {\n queryTmpArray.push(`$skip=${this._odataOptions.skip}`);\n }\n if (this._odataOptions.orderBy) {\n let /** @type {?} */ argument = '';\n if (Array.isArray(this._odataOptions.orderBy)) {\n argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc\n } else {\n argument = this._odataOptions.orderBy;\n }\n queryTmpArray.push(`$orderby=${argument}`);\n }\n if (this._odataOptions.filterBy || this._odataOptions.filter) {\n if (this._odataOptions.filter) {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ filterStr = this._odataOptions.filter;\n if (Array.isArray(this._odataOptions.filter)) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n filterStr = this._odataOptions.filter.join(separatorSpacedOut);\n }\n this._odataOptions.filterQueue.push(`(${filterStr})`);\n }\n // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered\n if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) {\n if (this._odataOptions.filterBy.searchTerm !== '') {\n this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm);\n this.updateFilterFromListTerms(this._odataOptions.filterBy);\n }\n }\n }\n if (this._odataOptions.filterQueue.length > 0) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut);\n this._odataOptions.filter = query; // overwrite with\n queryTmpArray.push(`$filter=${query}`);\n }\n\n // join all the odata functions by a '&'\n return queryTmpArray.join('&');\n }\n/**\n * @param {?} columnName\n * @return {?}\n */\ngetFilterByColumn(columnName: string): string {\n return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null;\n }\n/**\n * @return {?}\n */\ngetFilterCount(): number {\n return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0;\n }\n/**\n * @return {?}\n */\nget columnFilters(): any[] {\n return this._columnFilters;\n }\n/**\n * @return {?}\n */\nget options(): OdataOption {\n return this._odataOptions;\n }\n/**\n * @param {?} options\n * @return {?}\n */\nset options(options: OdataOption) {\n this._odataOptions = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string) {\n delete this._columnFilters[fieldName];\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} searchTerms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: any, searchTerms?: any[]) {\n this._columnFilters[fieldName] = {\n search: searchTerms,\n value: value\n };\n }\n/**\n * Update the filter by a list of terms usually passed manually by the user as default filters\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromListTerms(filterOptions: any) {\n // build the filter query\n if (Array.isArray(filterOptions)) {\n filterOptions.forEach((filterOptionObject) => {\n this.updateFilterFromTerm(filterOptionObject);\n });\n } else {\n this.updateFilterFromTerm(filterOptions);\n }\n }\n/**\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromTerm(filterOptions: any) {\n let /** @type {?} */ searchBy = '';\n const /** @type {?} */ tmpSearchByArray = [];\n const /** @type {?} */ fieldName = filterOptions.fieldName;\n const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm;\n const /** @type {?} */ operator = filterOptions.operator;\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (!!fieldSearchTerms && fieldSearchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `$(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `$(${searchBy})`;\n }\n }\n\n // push to our temp array and also trim white spaces\n tmpSearchByArray.push(String.trim(searchBy));\n\n // add to the filter queue only if it doesn't exist in the queue\n const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : '';\n if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) {\n this._odataOptions.filterQueue.push(filter);\n }\n }\n/**\n * Change any OData options that will be used to build the query\n * @param {?} options\n * @return {?}\n */\nupdateOptions(options: OdataOption) {\n for (const /** @type {?} */ property of Object.keys(options)) {\n if (options.hasOwnProperty(property)) {\n this._odataOptions[property] = options[property]; // replace of the property\n }\n\n // we need to keep the defaultSortBy for references whenever the user removes his Sorting\n // then we would revert to the defaultSortBy and the only way is to keep a hard copy here\n if (property === 'orderBy' || property === 'sortBy') {\n let /** @type {?} */ sortBy = options[property];\n\n // make sure first char of each orderBy field is capitalize\n if (this._odataOptions.caseType === CaseType.pascalCase) {\n if (Array.isArray(sortBy)) {\n sortBy.forEach((field, index, inputArray) => {\n inputArray[index] = String.titleCase(field);\n });\n } else {\n sortBy = String.titleCase(options[property]);\n }\n }\n this._odataOptions.orderBy = sortBy;\n this._defaultSortBy = sortBy;\n }\n }\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOdataService.ctorParameters;\n/** @type {?} */\nOdataService.prototype._columnFilters;\n/** @type {?} */\nOdataService.prototype._defaultSortBy;\n/** @type {?} */\nOdataService.prototype._odataOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","declare interface StringConstructor {\n allTitleCase(inputStr: string): string;\n format(inputStr: string, args: any): string;\n padZero(length: number): string;\n trim(inputStr: string): string;\n titleCase(inputStr: string): string;\n}\n\n\nString.format = function(format: string, args): string {\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] !== 'undefined') ? args[number] : match;\n });\n};\n\nString.padZero = function (this: string, length: number) {\n let /** @type {?} */ s = this;\n while (s.length < length) {\n s = '0' + s;\n }\n return s;\n};\n\n/**\n * Trim any extra white space from the string\n * @param string inputStr\n * @returns string outputStr\n */\nString.trim = function(inputStr: string): string {\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n */\nString.allTitleCase = function(inputStr: string): string {\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\n });\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n*/\nString.titleCase = function(inputStr: string): string {\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\n};\n","import { CaseType, FilterChangedArgs, FieldType, GraphqlServiceOption, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models/index';\nimport QueryBuilder from 'graphql-query-builder';\nexport class GraphqlService {\n serviceOptions: GraphqlServiceOption = {};\n/**\n * Build the GraphQL query, since the service include/exclude cursor, the output query will be different.\n * @param {?=} serviceOptions GraphqlServiceOption\n * @return {?}\n */\nbuildQuery(serviceOptions?: GraphqlServiceOption) {\n if (!this.serviceOptions.datasetName || !this.serviceOptions.dataFilters) {\n throw new Error('GraphQL Service requires \"datasetName\" & \"dataFilters\" properties for it to work');\n }\n const /** @type {?} */ pageFilterQb = new QueryBuilder(this.serviceOptions.datasetName);\n const /** @type {?} */ pageInfoQb = new QueryBuilder('pageInfo');\n const /** @type {?} */ dataQb = (this.serviceOptions.isWithCursor) ? new QueryBuilder('edges') : new QueryBuilder('nodes');\n\n if (this.serviceOptions.isWithCursor) {\n pageInfoQb.find('hasNextPage', 'endCursor');\n dataQb.find(['cursor', {'node': this.serviceOptions.dataFilters}]);\n } else {\n pageInfoQb.find('hasNextPage');\n dataQb.find(this.serviceOptions.dataFilters);\n }\n pageFilterQb.find(['totalCount', pageInfoQb, dataQb]);\n pageFilterQb.filter(this.serviceOptions.paginationOptions);\n\n return pageFilterQb.toString();\n }\n/**\n * @param {?=} serviceOptions\n * @return {?}\n */\ninitOptions(serviceOptions?: GraphqlServiceOption): void {\n this.serviceOptions = serviceOptions || {};\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n let /** @type {?} */ paginationOptions;\n if (this.serviceOptions.isWithCursor) {\n // first, last, after, before\n paginationOptions = {\n after: '',\n before: undefined,\n last: undefined\n };\n } else {\n // first, last, offset\n paginationOptions = {\n offset: 0\n };\n }\n this.updateOptions({ paginationOptions: paginationOptions });\n }\n/**\n * @param {?=} serviceOptions\n * @return {?}\n */\nupdateOptions(serviceOptions?: GraphqlServiceOption) {\n this.serviceOptions = { ...this.serviceOptions, ...serviceOptions };\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n let /** @type {?} */ paginationOptions;\n if (this.serviceOptions.isWithCursor) {\n paginationOptions = {\n first: args.pageSize\n };\n } else {\n paginationOptions = {\n first: args.pageSize,\n offset: (args.newPage - 1) * args.pageSize\n };\n }\n\n this.updateOptions({ paginationOptions: paginationOptions });\n\n // build the OData query which we will use in the WebAPI callback\n return this.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n // will use sorting as per a FB suggestion\n // https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222\n }\n}\n\nfunction GraphqlService_tsickle_Closure_declarations() {\n/** @type {?} */\nGraphqlService.prototype.serviceOptions;\n}\n\n","\"use strict\";\n\n//=====================================================\n//============================ parce properties to find\n//=====================================================\n\nfunction parceFind(_levelA) {\n \n//+++++++++++++++++++++++++++++++++++ work over Array\n//++++++++++++++++++++++++++++++++++++++++++++++++++++\n \n let propsA = _levelA.map(function(currentValue, index) {\n \n let itemX = _levelA[index];\n \n if( itemX instanceof Query){\n return itemX.toString();\n } else if ( ! Array.isArray(itemX) && \"object\" === typeof itemX ) {\n let propsA = Object.keys(itemX);\n if ( 1 !== propsA.length) {\n throw new RangeError(\"Alias objects should only have one value. was passed: \"+JSON.stringify(itemX));\n }\n let propS = propsA[0];\n let item = itemX[propS];\n // contributor: https://github.com/charlierudolph/graphql-query-builder/commit/878328e857e92d140f5ba6f7cfe07837620ec490\n if (Array.isArray(item)) {\n return new Query(propS).find(item)\n }\n return `${propS} : ${item} `;\n } else if ( \"string\" === typeof itemX ) {\n return itemX;\n } else {\n throw new RangeError(\"cannot handle Find value of \"+itemX);\n }\n });\n \n return propsA.join(\",\");\n}\n\n//=====================================================\n//=================================== get GraphQL Value\n//=====================================================\n\nfunction getGraphQLValue(value) {\n if (\"string\" === typeof value) {\n value = JSON.stringify(value);\n } else if (Array.isArray(value)) {\n value = value.map(item => {\n return getGraphQLValue(item);\n }).join();\n value = `[${value}]`;\n } else if (\"object\" === typeof value) {\n /*if (value.toSource)\n value = value.toSource().slice(2,-2);\n else*/\n value = objectToString(value);\n //console.error(\"No toSource!!\",value);\n }\n return value;\n}\n\nfunction objectToString(obj) {\n \n let sourceA = [];\n \n for(let prop in obj){\n if (\"function\" === typeof obj[prop]) {\n continue;\n }\n // if (\"object\" === typeof obj[prop]) {\n sourceA.push(`${prop}:${getGraphQLValue(obj[prop])}`);\n // } else {\n // sourceA.push(`${prop}:${obj[prop]}`);\n // }\n }\n return `{${sourceA.join()}}`;\n}\n\n\n\n\n//=====================================================\n//========================================= Query Class\n//=====================================================\n\nfunction Query(_fnNameS, _aliasS_OR_Filter){\n \n this.fnNameS = _fnNameS;\n this.headA = [];\n \n this.filter = (filtersO) => {\n \n for(let propS in filtersO){\n if (\"function\" === typeof filtersO[propS]) {\n continue;\n }\n let val = getGraphQLValue(filtersO[propS]);\n if (\"{}\" === val) {\n continue;\n }\n this.headA.push( `${propS}:${val}` );\n } \n return this;\n };\n \n if (\"string\" === typeof _aliasS_OR_Filter) {\n this.aliasS = _aliasS_OR_Filter;\n } else if (\"object\" === typeof _aliasS_OR_Filter) {\n this.filter(_aliasS_OR_Filter);\n } else if (undefined === _aliasS_OR_Filter && 2 === arguments.length){\n throw new TypeError(\"You have passed undefined as Second argument to 'Query'\");\n } else if (undefined !== _aliasS_OR_Filter){\n throw new TypeError(\"Second argument to 'Query' should be an alias name(String) or filter arguments(Object). was passed \"+_aliasS_OR_Filter);\n }\n\n this.setAlias = (_aliasS) =>{\n this.aliasS = _aliasS;\n return this;\n };\n \n this.find = function(findA) { // THIS NEED TO BE A \"FUNCTION\" to scope 'arguments'\n if( ! findA){\n throw new TypeError(\"find value can not be >>falsy<<\");\n }\n // if its a string.. it may have other values\n // else it sould be an Object or Array of maped values\n this.bodyS = parceFind((Array.isArray(findA)) ? findA : Array.from(arguments));\n return this;\n };\n}\n\n//=====================================================\n//===================================== Query prototype\n//=====================================================\n\nQuery.prototype = {\n \n toString : function(){\n if (undefined === this.bodyS) {\n throw new ReferenceError(\"return properties are not defined. use the 'find' function to defined them\");\n }\n \n return `${ (this.aliasS) ? (this.aliasS + \":\") : \"\" } ${this.fnNameS } ${ (0 < this.headA.length)?\"(\"+this.headA.join(\",\")+\")\":\"\" } { ${ this.bodyS } }`;\n }\n};\n\nmodule.exports = Query;\n","import { GridOption } from './../models/gridOption.interface';\nimport { FieldType } from './../models/fieldType';\nimport { Sorter } from './../models/sorter.interface';\nimport { Sorters } from './../sorters/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\nexport class SortService {\n subscriber: any;\nconstructor() { }\n/**\n * Attach a backend sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @return {?}\n */\nattachBackendOnSort(grid: any, gridOptions: GridOption) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe(gridOptions.onSortChanged);\n }\n/**\n * Attach a local sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n dataView.sort(function (dataRow1: any, dataRow2: any) {\n for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) {\n const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1;\n const /** @type {?} */ sortField = sortColumns[i].sortCol.field;\n const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string';\n const /** @type {?} */ value1 = dataRow1[sortField];\n const /** @type {?} */ value2 = dataRow2[sortField];\n let /** @type {?} */ result = 0;\n\n switch (fieldType) {\n case FieldType.number:\n result = Sorters.numeric(value1, value2, sortDirection);\n break;\n case FieldType.date:\n result = Sorters.date(value1, value2, sortDirection);\n break;\n case FieldType.dateIso:\n result = Sorters.dateIso(value1, value2, sortDirection);\n break;\n case FieldType.dateUs:\n result = Sorters.dateUs(value1, value2, sortDirection);\n break;\n case FieldType.dateUsShort:\n result = Sorters.dateUsShort(value1, value2, sortDirection);\n break;\n default:\n result = Sorters.string(value1, value2, sortDirection);\n break;\n }\n\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n });\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction SortService_tsickle_Closure_declarations() {\n/** @type {?} */\nSortService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSortService.ctorParameters;\n/** @type {?} */\nSortService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './../models/index';\nimport { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\n\ndeclare var $: any;\n\n// global constants, height/width are in pixels\nconst /** @type {?} */ DATAGRID_MIN_HEIGHT = 180;\nconst /** @type {?} */ DATAGRID_MIN_WIDTH = 300;\nconst /** @type {?} */ DATAGRID_BOTTOM_PADDING = 20;\nconst /** @type {?} */ DATAGRID_PAGINATION_HEIGHT = 35;\nexport class ResizerService {\n/**\n * @param {?} router\n */\nconstructor(private router: Router) {\n }\n/**\n * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\n * Options: we could also provide a % factor to resize on each height/width independently\n * @param {?} grid\n * @param {?} gridOptions\n * @return {?}\n */\nattachAutoResizeDataGrid(grid: any, gridOptions: GridOption) {\n // if we can't find the grid to resize, return without attaching anything\n const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`);\n if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') {\n return null;\n }\n\n // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load)\n this.resizeGrid(grid, gridOptions);\n\n // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load\n // -- attach auto-resize to Window object only if it exist\n $(window).on('resize.grid', () => {\n this.resizeGrid(grid, gridOptions);\n });\n\n // destroy the resizer on route change\n this.router.events.subscribe((event: NavigationEnd) => {\n this.destroy();\n });\n }\n/**\n * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation\n * object gridOptions\n * @param {?} gridOptions\n * @return {?}\n */\ncalculateGridNewDimensions(gridOptions: GridOption) {\n let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING;\n if (bottomPadding && gridOptions.enablePagination) {\n bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding\n }\n if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') {\n return;\n }\n const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding;\n const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width();\n const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT;\n const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH;\n\n let /** @type {?} */ newHeight = availableHeight;\n let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth;\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n return {\n height: newHeight,\n width: newWidth\n };\n }\n/**\n * Destroy function when element is destroyed\n * @return {?}\n */\ndestroy() {\n $(window).trigger('resize.grid').off('resize');\n }\n/**\n * Resize the datagrid to fit the browser height & width\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?=} newSizes\n * @return {?}\n */\nresizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}) {\n // calculate new available sizes but with minimum height of 220px\n newSizes = newSizes || this.calculateGridNewDimensions(gridOptions);\n\n if (newSizes) {\n // apply these new height/width to the datagrid\n $(`#${gridOptions.gridId}`).height(newSizes.height);\n $(`#${gridOptions.gridId}`).width(newSizes.width);\n $(`#${gridOptions.gridContainerId}`).height(newSizes.height);\n $(`#${gridOptions.gridContainerId}`).width(newSizes.width);\n\n // resize the slickgrid canvas on all browser except some IE versions\n // exclude all IE below IE11\n // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape'\n if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) {\n grid.resizeCanvas();\n }\n\n // also call the grid auto-size columns so that it takes available when going bigger\n grid.autosizeColumns();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Router, },\n];\n}\n\nfunction ResizerService_tsickle_Closure_declarations() {\n/** @type {?} */\nResizerService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nResizerService.ctorParameters;\n/** @type {?} */\nResizerService.prototype.router;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\nexport class MouseService {\n/**\n * @param {?} grid\n * @return {?}\n */\nattachOnMouseHover(grid: any) {\n grid.onMouseEnter.subscribe(function (e: any) {\n const /** @type {?} */ cell = grid.getCellFromEvent(e);\n if (cell && cell.row >= 0) {\n grid.setSelectedRows([cell.row]);\n e.preventDefault();\n }\n });\n grid.onMouseLeave.subscribe(function (e: any) {\n grid.setSelectedRows([]);\n e.preventDefault();\n });\n }\n}\n","import { FilterConditions } from '../filter-conditions/index';\nimport { Column, ColumnFilters, FieldType, FilterChangedArgs, FormElementType, GridOption } from '../models/index';\nimport { FilterTemplates } from './../filter-templates/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class FilterService {\n _columnDefinitions: Column[];\n _columnFilters: ColumnFilters;\n _dataView: any;\n _grid: any;\n _gridOptions: GridOption;\n subscriber: any;\nconstructor() { }\n/**\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?} columnDefinitions\n * @param {?} columnFilters\n * @return {?}\n */\ninit(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any) {\n this._columnDefinitions = columnDefinitions;\n this._columnFilters = columnFilters;\n this._gridOptions = gridOptions;\n this._grid = grid;\n }\n/**\n * Attach a backend filter hook to the grid\n * @return {?}\n */\nattachBackendOnFilter() {\n this.subscriber = new Slick.Event();\n this.subscriber.subscribe(this._gridOptions.onFilterChanged);\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} operator\n * @param {?} value1\n * @param {?} value2\n * @return {?}\n */\ntestFilterCondition(operator: string, value1: any, value2: any) {\n switch (operator) {\n case '<': return (value1 < value2) ? true : false;\n case '<=': return (value1 <= value2) ? true : false;\n case '>': return (value1 > value2) ? true : false;\n case '>=': return (value1 >= value2) ? true : false;\n case '!=':\n case '<>': return (value1 !== value2) ? true : false;\n case '=':\n case '==': return (value1 === value2) ? true : false;\n }\n }\n/**\n * Attach a local filter hook to the grid\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnFilter(dataView: any) {\n this._dataView = dataView;\n this.subscriber = new Slick.Event();\n\n dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid });\n dataView.setFilter(this.customFilter);\n\n this.subscriber.subscribe((e: any, args: any) => {\n const /** @type {?} */ columnId = args.columnId;\n if (columnId != null) {\n dataView.refresh();\n }\n });\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} item\n * @param {?} args\n * @return {?}\n */\ncustomFilter(item: any, args: any) {\n for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId);\n const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex];\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || FieldType.string;\n const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null;\n const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null;\n\n let /** @type {?} */ cellValue = item[columnDef.field];\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n\n // no need to query if search value is empty\n if (searchTerm === '') {\n return true;\n }\n\n if (typeof cellValue === 'number') {\n cellValue = cellValue.toString();\n }\n\n const /** @type {?} */ conditionOptions = {\n fieldType: fieldType,\n searchTerm: searchTerm,\n cellValue: cellValue,\n operator: operator,\n cellValueLastChar: lastValueChar,\n filterSearchType: filterSearchType\n };\n if (conditionalFilterFn && typeof conditionalFilterFn === 'function') {\n conditionalFilterFn(conditionOptions);\n }\n if (!FilterConditions.executeMappedCondition(conditionOptions)) {\n return false;\n }\n }\n return true;\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\n/**\n * @param {?} e\n * @param {?} args\n * @return {?}\n */\ncallbackSearchEvent(e: any, args: any) {\n this._columnFilters[args.columnDef.id] = {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n searchTerm: e.target.value\n };\n\n this.triggerEvent(this.subscriber, {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n columnFilters: this._columnFilters,\n searchTerm: e.target.value,\n grid: this._grid\n }, e);\n }\n/**\n * @return {?}\n */\naddFilterTemplateToHeaderRow() {\n for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) {\n if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) {\n let /** @type {?} */ filterTemplate = '';\n let /** @type {?} */ elm = null;\n let /** @type {?} */ header;\n const /** @type {?} */ columnDef = this._columnDefinitions[i];\n const /** @type {?} */ columnId = columnDef.id;\n const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null;\n let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : '';\n\n // keep the filter in a columnFilters for later reference\n this.keepColumnFilters(searchTerm, listTerm, columnDef);\n\n if (!columnDef.filter) {\n searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null;\n filterTemplate = FilterTemplates.input(searchTerm, columnDef);\n } else {\n // custom Select template\n if (columnDef.filter.type === FormElementType.select) {\n filterTemplate = FilterTemplates.select(searchTerm, columnDef);\n }\n }\n\n // create the DOM Element\n header = this._grid.getHeaderRowColumn(columnDef.id);\n $(header).empty();\n elm = $(filterTemplate);\n elm.val(searchTerm);\n elm.data('columnId', columnDef.id);\n if (elm && typeof elm.appendTo === 'function') {\n elm.appendTo(header);\n }\n\n // depending on the DOM Element type, we will watch the corrent event\n const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input;\n switch (filterType) {\n case FormElementType.select:\n case FormElementType.multiSelect:\n elm.change((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n case FormElementType.input:\n default:\n elm.keyup((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n }\n }\n }\n }\n/**\n * @param {?} searchTerm\n * @param {?} listTerm\n * @param {?} columnDef\n * @return {?}\n */\nprivate keepColumnFilters(searchTerm: string, listTerm: any, columnDef: any) {\n if (searchTerm) {\n this._columnFilters[columnDef.id] = {\n columnId: columnDef.id,\n columnDef: columnDef,\n searchTerm: searchTerm\n };\n if (listTerm) {\n this._columnFilters.listTerm = listTerm;\n }\n }\n }\n/**\n * @param {?} evt\n * @param {?} args\n * @param {?} e\n * @return {?}\n */\nprivate triggerEvent(evt: any, args: any, e: any) {\n e = e || new Slick.EventData();\n return evt.notify(args, e, args.grid);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FilterService_tsickle_Closure_declarations() {\n/** @type {?} */\nFilterService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFilterService.ctorParameters;\n/** @type {?} */\nFilterService.prototype._columnDefinitions;\n/** @type {?} */\nFilterService.prototype._columnFilters;\n/** @type {?} */\nFilterService.prototype._dataView;\n/** @type {?} */\nFilterService.prototype._grid;\n/** @type {?} */\nFilterService.prototype._gridOptions;\n/** @type {?} */\nFilterService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { dateUsShortSorter } from './dateUsShortSorter';\nimport { dateSorter } from './dateSorter';\nimport { dateIsoSorter } from './dateIsoSorter';\nimport { dateUsSorter } from './dateUsSorter';\nimport { numericSorter } from './numericSorter';\nimport { stringSorter } from './stringSorter';\n\nexport const /** @type {?} */ Sorters = {\n date: dateSorter,\n dateIso: dateIsoSorter,\n dateUs: dateUsSorter,\n dateUsShort: dateUsShortSorter,\n numeric: numericSorter,\n string: stringSorter\n};\n","import { Sorter } from './../models/index';\n\nexport const /** @type {?} */ stringSorter: Sorter = (value1, value2, sortDirection) => {\n return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\n\nexport const /** @type {?} */ numericSorter: Sorter = (value1, value2, sortDirection) => {\n const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1);\n const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2);\n return sortDirection * (x === y ? 0 : (x > y ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, moment.ISO_8601).isValid() || !moment(value2, moment.ISO_8601, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1);\n const /** @type {?} */ date2 = moment(value2);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/index';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Column } from './../models/index';\n// import { Group, GroupTotals } from '../core'\n// import { Item } from '../dataview'\n\nimport { checkboxFormatter } from './CheckboxFormatter';\nimport { checkmarkFormatter } from './CheckmarkFormatter';\nimport { dateIsoFormatter } from './dateIsoFormatter';\nimport { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter';\nimport { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter';\nimport { dateTimeUsFormatter } from './dateTimeUsFormatter';\nimport { dateUsFormatter } from './dateUsFormatter';\nimport { percentCompleteFormatter } from './percentCompleteFormatter';\nimport { percentCompleteBarFormatter } from './percentCompleteBarFormatter';\nimport { progressBarFormatter } from './ProgressBarFormatter';\nimport { yesNoFormatter } from './yesNoFormatter';\n\n\n/*\nexport interface GroupFormatter {\n (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string\n}\n\nexport interface GroupTotalsFormatter {\n (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string\n}\n*/\nexport const /** @type {?} */ Formatters = {\n checkbox: checkboxFormatter,\n checkmark: checkmarkFormatter,\n dateIso: dateIsoFormatter,\n dateTimeIso: dateIsoFormatter,\n dateTimeIsoAmPm: dateTimeIsoAmPmFormatter,\n dateUs: dateUsFormatter,\n dateTimeUs: dateTimeUsFormatter,\n dateTimeUsAmPm: dateTimeUsAmPmFormatter,\n percentComplete: percentCompleteFormatter,\n percentCompleteBar: percentCompleteBarFormatter,\n progressBar: progressBarFormatter,\n yesNoFormatter: yesNoFormatter\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ yesNoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string =>\n value ? 'Yes' : 'No';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ progressBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '';\n }\n\n let /** @type {?} */ color;\n\n if (value < 30) {\n color = 'danger';\n } else if (value < 70) {\n color = 'warning';\n } else {\n color = 'success';\n }\n\n return `
\n
\n ${value}%\n
\n
`;\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ percentCompleteBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '';\n }\n\n let /** @type {?} */ color;\n\n if (value < 30) {\n color = 'red';\n } else if (value < 70) {\n color = 'silver';\n } else {\n color = 'green';\n }\n\n return ``;\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ percentCompleteFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\n if (value === null || value === '') {\n return '-';\n } else if (value < 50) {\n return `${value}%`;\n } else {\n return `${value}%`;\n }\n};\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY hh:mm:ss') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('MM/DD/YYYY h:mm:ss a') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('YYYY-MM-DD h:mm:ss a') : '';\n","import { Formatter } from './../models/formatter.interface';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? moment(value).format('YYYY-MM-DD') : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkmarkFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? `` : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkboxFormatter: Formatter = (row, cell, value, columnDef, dataContext) =>\n value ? '☑' : '';\n","import { Column, Filter } from './../models/index';\nimport { inputFilterTemplate } from './inputFilterTemplate';\nimport { selectFilterTemplate } from './selectFilterTemplate';\n\nexport const /** @type {?} */ FilterTemplates = {\n input: inputFilterTemplate,\n select: selectFilterTemplate\n};\n","import { Column, Filter } from './../models/index';\n\nexport const /** @type {?} */ selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n if (!columnDef.filter.selectOptions) {\n throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`);\n }\n let /** @type {?} */ options = '';\n columnDef.filter.selectOptions.forEach((option: any) => {\n options += ``;\n });\n return ``;\n};\n","import { Column, Filter } from './../models/index';\n\nexport const /** @type {?} */ inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n return ``;\n};\n","import { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { executeMappedCondition } from './executeMappedCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ FilterConditions = {\n executeMappedCondition: executeMappedCondition,\n booleanFilter: booleanFilterCondition,\n dateFilter: dateFilterCondition,\n dateIsoFilter: dateIsoFilterCondition,\n dateUtcFilter: dateUtcFilterCondition,\n dateUsFilter: dateUsFilterCondition,\n dateUsShortFilter: dateUsShortFilterCondition,\n numberFilter: numberFilterCondition,\n stringFilter: stringFilterCondition,\n testFilter: testFilterCondition\n};\n","import { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { FilterCondition } from '../models/filterCondition.interface';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { FieldType } from '../models/index';\n\nexport const /** @type {?} */ executeMappedCondition: FilterCondition = (options: FilterConditionOption) => {\n // execute the mapped type, or default to String condition check\n switch (options.fieldType) {\n case FieldType.boolean:\n return booleanFilterCondition(options);\n case FieldType.date:\n return dateFilterCondition(options);\n case FieldType.dateUtc:\n return dateUtcFilterCondition(options);\n case FieldType.dateIso:\n return dateIsoFilterCondition(options);\n case FieldType.dateUs:\n case FieldType.dateTimeUs:\n return dateUsFilterCondition(options);\n case FieldType.dateUsShort:\n case FieldType.dateTimeUsShort:\n return dateUsShortFilterCondition(options);\n case FieldType.number:\n return numberFilterCondition(options);\n case FieldType.string:\n default:\n return stringFilterCondition(options);\n }\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ stringFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n // make sure the cell value is a string by casting it\n options.cellValue = options.cellValue.toString();\n\n if (options.operator === '*') {\n return options.cellValue.startsWith(options.searchTerm);\n } else if (options.operator === '' && options.cellValueLastChar === '*') {\n return options.cellValue.endsWith(options.searchTerm);\n } else if (options.operator === '') {\n return options.cellValue.includes(options.searchTerm);\n }\n return testFilterCondition(options.operator || '==', options.cellValue.toLowerCase(), options.searchTerm.toLowerCase());\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ numberFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm));\n};\n","import { FieldType } from '../models/fieldType';\nimport { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso;\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue);\n const /** @type {?} */ dateSearch = moment(options.searchTerm);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition, FilterConditionOption } from '../models/index';\nimport { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment-mini';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!options.filterSearchType) {\n throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }');\n }\n\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","//! moment.js\n//! version : 2.18.1\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n!function(a,b){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=b():\"function\"==typeof define&&define.amd?define(b):a.moment=b()}(this,function(){\"use strict\";function a(){return sd.apply(null,arguments)}function b(a){sd=a}function c(a){return a instanceof Array||\"[object Array]\"===Object.prototype.toString.call(a)}function d(a){return null!=a&&\"[object Object]\"===Object.prototype.toString.call(a)}function e(a){var b;for(b in a)return!1;return!0}function f(a){return void 0===a}function g(a){return\"number\"==typeof a||\"[object Number]\"===Object.prototype.toString.call(a)}function h(a){return a instanceof Date||\"[object Date]\"===Object.prototype.toString.call(a)}function i(a,b){var c,d=[];for(c=0;c0)for(c=0;c0?\"future\":\"past\"];return z(c)?c(b):c.replace(/%s/i,b)}function J(a,b){var c=a.toLowerCase();Hd[c]=Hd[c+\"s\"]=Hd[b]=a}function K(a){return\"string\"==typeof a?Hd[a]||Hd[a.toLowerCase()]:void 0}function L(a){var b,c,d={};for(c in a)j(a,c)&&(b=K(c),b&&(d[b]=a[c]));return d}function M(a,b){Id[a]=b}function N(a){var b=[];for(var c in a)b.push({unit:c,priority:Id[c]});return b.sort(function(a,b){return a.priority-b.priority}),b}function O(b,c){return function(d){return null!=d?(Q(this,b,d),a.updateOffset(this,c),this):P(this,b)}}function P(a,b){return a.isValid()?a._d[\"get\"+(a._isUTC?\"UTC\":\"\")+b]():NaN}function Q(a,b,c){a.isValid()&&a._d[\"set\"+(a._isUTC?\"UTC\":\"\")+b](c)}function R(a){return a=K(a),z(this[a])?this[a]():this}function S(a,b){if(\"object\"==typeof a){a=L(a);for(var c=N(a),d=0;d=0;return(f?c?\"+\":\"\":\"-\")+Math.pow(10,Math.max(0,e)).toString().substr(1)+d}function U(a,b,c,d){var e=d;\"string\"==typeof d&&(e=function(){return this[d]()}),a&&(Md[a]=e),b&&(Md[b[0]]=function(){return T(e.apply(this,arguments),b[1],b[2])}),c&&(Md[c]=function(){return this.localeData().ordinal(e.apply(this,arguments),a)})}function V(a){return a.match(/\\[[\\s\\S]/)?a.replace(/^\\[|\\]$/g,\"\"):a.replace(/\\\\/g,\"\")}function W(a){var b,c,d=a.match(Jd);for(b=0,c=d.length;b=0&&Kd.test(a);)a=a.replace(Kd,c),Kd.lastIndex=0,d-=1;return a}function Z(a,b,c){ce[a]=z(b)?b:function(a,d){return a&&c?c:b}}function $(a,b){return j(ce,a)?ce[a](b._strict,b._locale):new RegExp(_(a))}function _(a){return aa(a.replace(\"\\\\\",\"\").replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,function(a,b,c,d,e){return b||c||d||e}))}function aa(a){return a.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\")}function ba(a,b){var c,d=b;for(\"string\"==typeof a&&(a=[a]),g(b)&&(d=function(a,c){c[b]=u(a)}),c=0;c=0&&isFinite(h.getFullYear())&&h.setFullYear(a),h}function ta(a){var b=new Date(Date.UTC.apply(null,arguments));return a<100&&a>=0&&isFinite(b.getUTCFullYear())&&b.setUTCFullYear(a),b}function ua(a,b,c){var d=7+b-c,e=(7+ta(a,0,d).getUTCDay()-b)%7;return-e+d-1}function va(a,b,c,d,e){var f,g,h=(7+c-d)%7,i=ua(a,d,e),j=1+7*(b-1)+h+i;return j<=0?(f=a-1,g=pa(f)+j):j>pa(a)?(f=a+1,g=j-pa(a)):(f=a,g=j),{year:f,dayOfYear:g}}function wa(a,b,c){var d,e,f=ua(a.year(),b,c),g=Math.floor((a.dayOfYear()-f-1)/7)+1;return g<1?(e=a.year()-1,d=g+xa(e,b,c)):g>xa(a.year(),b,c)?(d=g-xa(a.year(),b,c),e=a.year()+1):(e=a.year(),d=g),{week:d,year:e}}function xa(a,b,c){var d=ua(a,b,c),e=ua(a+1,b,c);return(pa(a)-d+e)/7}function ya(a){return wa(a,this._week.dow,this._week.doy).week}function za(){return this._week.dow}function Aa(){return this._week.doy}function Ba(a){var b=this.localeData().week(this);return null==a?b:this.add(7*(a-b),\"d\")}function Ca(a){var b=wa(this,1,4).week;return null==a?b:this.add(7*(a-b),\"d\")}function Da(a,b){return\"string\"!=typeof a?a:isNaN(a)?(a=b.weekdaysParse(a),\"number\"==typeof a?a:null):parseInt(a,10)}function Ea(a,b){return\"string\"==typeof a?b.weekdaysParse(a)%7||7:isNaN(a)?null:a}function Fa(a,b){return a?c(this._weekdays)?this._weekdays[a.day()]:this._weekdays[this._weekdays.isFormat.test(b)?\"format\":\"standalone\"][a.day()]:c(this._weekdays)?this._weekdays:this._weekdays.standalone}function Ga(a){return a?this._weekdaysShort[a.day()]:this._weekdaysShort}function Ha(a){return a?this._weekdaysMin[a.day()]:this._weekdaysMin}function Ia(a,b,c){var d,e,f,g=a.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],d=0;d<7;++d)f=l([2e3,1]).day(d),this._minWeekdaysParse[d]=this.weekdaysMin(f,\"\").toLocaleLowerCase(),this._shortWeekdaysParse[d]=this.weekdaysShort(f,\"\").toLocaleLowerCase(),this._weekdaysParse[d]=this.weekdays(f,\"\").toLocaleLowerCase();return c?\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:null):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null):\"dddd\"===b?(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):\"ddd\"===b?(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:null))):(e=ne.call(this._minWeekdaysParse,g),e!==-1?e:(e=ne.call(this._weekdaysParse,g),e!==-1?e:(e=ne.call(this._shortWeekdaysParse,g),e!==-1?e:null)))}function Ja(a,b,c){var d,e,f;if(this._weekdaysParseExact)return Ia.call(this,a,b,c);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),d=0;d<7;d++){if(e=l([2e3,1]).day(d),c&&!this._fullWeekdaysParse[d]&&(this._fullWeekdaysParse[d]=new RegExp(\"^\"+this.weekdays(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._shortWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysShort(e,\"\").replace(\".\",\".?\")+\"$\",\"i\"),this._minWeekdaysParse[d]=new RegExp(\"^\"+this.weekdaysMin(e,\"\").replace(\".\",\".?\")+\"$\",\"i\")),this._weekdaysParse[d]||(f=\"^\"+this.weekdays(e,\"\")+\"|^\"+this.weekdaysShort(e,\"\")+\"|^\"+this.weekdaysMin(e,\"\"),this._weekdaysParse[d]=new RegExp(f.replace(\".\",\"\"),\"i\")),c&&\"dddd\"===b&&this._fullWeekdaysParse[d].test(a))return d;if(c&&\"ddd\"===b&&this._shortWeekdaysParse[d].test(a))return d;if(c&&\"dd\"===b&&this._minWeekdaysParse[d].test(a))return d;if(!c&&this._weekdaysParse[d].test(a))return d}}function Ka(a){if(!this.isValid())return null!=a?this:NaN;var b=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=a?(a=Da(a,this.localeData()),this.add(a-b,\"d\")):b}function La(a){if(!this.isValid())return null!=a?this:NaN;var b=(this.day()+7-this.localeData()._week.dow)%7;return null==a?b:this.add(a-b,\"d\")}function Ma(a){if(!this.isValid())return null!=a?this:NaN;if(null!=a){var b=Ea(a,this.localeData());return this.day(this.day()%7?b:b-7)}return this.day()||7}function Na(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysStrictRegex:this._weekdaysRegex):(j(this,\"_weekdaysRegex\")||(this._weekdaysRegex=ye),this._weekdaysStrictRegex&&a?this._weekdaysStrictRegex:this._weekdaysRegex)}function Oa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(j(this,\"_weekdaysShortRegex\")||(this._weekdaysShortRegex=ze),this._weekdaysShortStrictRegex&&a?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Pa(a){return this._weekdaysParseExact?(j(this,\"_weekdaysRegex\")||Qa.call(this),a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(j(this,\"_weekdaysMinRegex\")||(this._weekdaysMinRegex=Ae),this._weekdaysMinStrictRegex&&a?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Qa(){function a(a,b){return b.length-a.length}var b,c,d,e,f,g=[],h=[],i=[],j=[];for(b=0;b<7;b++)c=l([2e3,1]).day(b),d=this.weekdaysMin(c,\"\"),e=this.weekdaysShort(c,\"\"),f=this.weekdays(c,\"\"),g.push(d),h.push(e),i.push(f),j.push(d),j.push(e),j.push(f);for(g.sort(a),h.sort(a),i.sort(a),j.sort(a),b=0;b<7;b++)h[b]=aa(h[b]),i[b]=aa(i[b]),j[b]=aa(j[b]);this._weekdaysRegex=new RegExp(\"^(\"+j.join(\"|\")+\")\",\"i\"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp(\"^(\"+i.join(\"|\")+\")\",\"i\"),this._weekdaysShortStrictRegex=new RegExp(\"^(\"+h.join(\"|\")+\")\",\"i\"),this._weekdaysMinStrictRegex=new RegExp(\"^(\"+g.join(\"|\")+\")\",\"i\")}function Ra(){return this.hours()%12||12}function Sa(){return this.hours()||24}function Ta(a,b){U(a,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),b)})}function Ua(a,b){return b._meridiemParse}function Va(a){return\"p\"===(a+\"\").toLowerCase().charAt(0)}function Wa(a,b,c){return a>11?c?\"pm\":\"PM\":c?\"am\":\"AM\"}function Xa(a){return a?a.toLowerCase().replace(\"_\",\"-\"):a}function Ya(a){for(var b,c,d,e,f=0;f0;){if(d=Za(e.slice(0,b).join(\"-\")))return d;if(c&&c.length>=b&&v(e,c,!0)>=b-1)break;b--}f++}return null}function Za(a){var b=null;if(!Fe[a]&&\"undefined\"!=typeof module&&module&&module.exports)try{b=Be._abbr,require(\"./locale/\"+a),$a(b)}catch(a){}return Fe[a]}function $a(a,b){var c;return a&&(c=f(b)?bb(a):_a(a,b),c&&(Be=c)),Be._abbr}function _a(a,b){if(null!==b){var c=Ee;if(b.abbr=a,null!=Fe[a])y(\"defineLocaleOverride\",\"use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.\"),c=Fe[a]._config;else if(null!=b.parentLocale){if(null==Fe[b.parentLocale])return Ge[b.parentLocale]||(Ge[b.parentLocale]=[]),Ge[b.parentLocale].push({name:a,config:b}),null;c=Fe[b.parentLocale]._config}return Fe[a]=new C(B(c,b)),Ge[a]&&Ge[a].forEach(function(a){_a(a.name,a.config)}),$a(a),Fe[a]}return delete Fe[a],null}function ab(a,b){if(null!=b){var c,d=Ee;null!=Fe[a]&&(d=Fe[a]._config),b=B(d,b),c=new C(b),c.parentLocale=Fe[a],Fe[a]=c,$a(a)}else null!=Fe[a]&&(null!=Fe[a].parentLocale?Fe[a]=Fe[a].parentLocale:null!=Fe[a]&&delete Fe[a]);return Fe[a]}function bb(a){var b;if(a&&a._locale&&a._locale._abbr&&(a=a._locale._abbr),!a)return Be;if(!c(a)){if(b=Za(a))return b;a=[a]}return Ya(a)}function cb(){return Ad(Fe)}function db(a){var b,c=a._a;return c&&n(a).overflow===-2&&(b=c[fe]<0||c[fe]>11?fe:c[ge]<1||c[ge]>ea(c[ee],c[fe])?ge:c[he]<0||c[he]>24||24===c[he]&&(0!==c[ie]||0!==c[je]||0!==c[ke])?he:c[ie]<0||c[ie]>59?ie:c[je]<0||c[je]>59?je:c[ke]<0||c[ke]>999?ke:-1,n(a)._overflowDayOfYear&&(bge)&&(b=ge),n(a)._overflowWeeks&&b===-1&&(b=le),n(a)._overflowWeekday&&b===-1&&(b=me),n(a).overflow=b),a}function eb(a){var b,c,d,e,f,g,h=a._i,i=He.exec(h)||Ie.exec(h);if(i){for(n(a).iso=!0,b=0,c=Ke.length;b10?\"YYYY \":\"YY \"),f=\"HH:mm\"+(c[4]?\":ss\":\"\"),c[1]){var l=new Date(c[2]),m=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"][l.getDay()];if(c[1].substr(0,3)!==m)return n(a).weekdayMismatch=!0,void(a._isValid=!1)}switch(c[5].length){case 2:0===i?h=\" +0000\":(i=k.indexOf(c[5][1].toUpperCase())-12,h=(i<0?\" -\":\" +\")+(\"\"+i).replace(/^-?/,\"0\").match(/..$/)[0]+\"00\");break;case 4:h=j[c[5]];break;default:h=j[\" GMT\"]}c[5]=h,a._i=c.splice(1).join(\"\"),g=\" ZZ\",a._f=d+e+f+g,lb(a),n(a).rfc2822=!0}else a._isValid=!1}function gb(b){var c=Me.exec(b._i);return null!==c?void(b._d=new Date(+c[1])):(eb(b),void(b._isValid===!1&&(delete b._isValid,fb(b),b._isValid===!1&&(delete b._isValid,a.createFromInputFallback(b)))))}function hb(a,b,c){return null!=a?a:null!=b?b:c}function ib(b){var c=new Date(a.now());return b._useUTC?[c.getUTCFullYear(),c.getUTCMonth(),c.getUTCDate()]:[c.getFullYear(),c.getMonth(),c.getDate()]}function jb(a){var b,c,d,e,f=[];if(!a._d){for(d=ib(a),a._w&&null==a._a[ge]&&null==a._a[fe]&&kb(a),null!=a._dayOfYear&&(e=hb(a._a[ee],d[ee]),(a._dayOfYear>pa(e)||0===a._dayOfYear)&&(n(a)._overflowDayOfYear=!0),c=ta(e,0,a._dayOfYear),a._a[fe]=c.getUTCMonth(),a._a[ge]=c.getUTCDate()),b=0;b<3&&null==a._a[b];++b)a._a[b]=f[b]=d[b];for(;b<7;b++)a._a[b]=f[b]=null==a._a[b]?2===b?1:0:a._a[b];24===a._a[he]&&0===a._a[ie]&&0===a._a[je]&&0===a._a[ke]&&(a._nextDay=!0,a._a[he]=0),a._d=(a._useUTC?ta:sa).apply(null,f),null!=a._tzm&&a._d.setUTCMinutes(a._d.getUTCMinutes()-a._tzm),a._nextDay&&(a._a[he]=24)}}function kb(a){var b,c,d,e,f,g,h,i;if(b=a._w,null!=b.GG||null!=b.W||null!=b.E)f=1,g=4,c=hb(b.GG,a._a[ee],wa(tb(),1,4).year),d=hb(b.W,1),e=hb(b.E,1),(e<1||e>7)&&(i=!0);else{f=a._locale._week.dow,g=a._locale._week.doy;var j=wa(tb(),f,g);c=hb(b.gg,a._a[ee],j.year),d=hb(b.w,j.week),null!=b.d?(e=b.d,(e<0||e>6)&&(i=!0)):null!=b.e?(e=b.e+f,(b.e<0||b.e>6)&&(i=!0)):e=f}d<1||d>xa(c,f,g)?n(a)._overflowWeeks=!0:null!=i?n(a)._overflowWeekday=!0:(h=va(c,d,e,f,g),a._a[ee]=h.year,a._dayOfYear=h.dayOfYear)}function lb(b){if(b._f===a.ISO_8601)return void eb(b);if(b._f===a.RFC_2822)return void fb(b);b._a=[],n(b).empty=!0;var c,d,e,f,g,h=\"\"+b._i,i=h.length,j=0;for(e=Y(b._f,b._locale).match(Jd)||[],c=0;c0&&n(b).unusedInput.push(g),h=h.slice(h.indexOf(d)+d.length),j+=d.length),Md[f]?(d?n(b).empty=!1:n(b).unusedTokens.push(f),da(f,d,b)):b._strict&&!d&&n(b).unusedTokens.push(f);n(b).charsLeftOver=i-j,h.length>0&&n(b).unusedInput.push(h),b._a[he]<=12&&n(b).bigHour===!0&&b._a[he]>0&&(n(b).bigHour=void 0),n(b).parsedDateParts=b._a.slice(0),n(b).meridiem=b._meridiem,b._a[he]=mb(b._locale,b._a[he],b._meridiem),jb(b),db(b)}function mb(a,b,c){var d;return null==c?b:null!=a.meridiemHour?a.meridiemHour(b,c):null!=a.isPM?(d=a.isPM(c),d&&b<12&&(b+=12),d||12!==b||(b=0),b):b}function nb(a){var b,c,d,e,f;if(0===a._f.length)return n(a).invalidFormat=!0,void(a._d=new Date(NaN));for(e=0;ethis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function Ob(){if(!f(this._isDSTShifted))return this._isDSTShifted;var a={};if(q(a,this),a=qb(a),a._a){var b=a._isUTC?l(a._a):tb(a._a);this._isDSTShifted=this.isValid()&&v(a._a,b.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}function Pb(){return!!this.isValid()&&!this._isUTC}function Qb(){return!!this.isValid()&&this._isUTC}function Rb(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}function Sb(a,b){var c,d,e,f=a,h=null;return Bb(a)?f={ms:a._milliseconds,d:a._days,M:a._months}:g(a)?(f={},b?f[b]=a:f.milliseconds=a):(h=Te.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:0,d:u(h[ge])*c,h:u(h[he])*c,m:u(h[ie])*c,s:u(h[je])*c,ms:u(Cb(1e3*h[ke]))*c}):(h=Ue.exec(a))?(c=\"-\"===h[1]?-1:1,f={y:Tb(h[2],c),M:Tb(h[3],c),w:Tb(h[4],c),d:Tb(h[5],c),h:Tb(h[6],c),m:Tb(h[7],c),s:Tb(h[8],c)}):null==f?f={}:\"object\"==typeof f&&(\"from\"in f||\"to\"in f)&&(e=Vb(tb(f.from),tb(f.to)),f={},f.ms=e.milliseconds,f.M=e.months),d=new Ab(f),Bb(a)&&j(a,\"_locale\")&&(d._locale=a._locale),d}function Tb(a,b){var c=a&&parseFloat(a.replace(\",\",\".\"));return(isNaN(c)?0:c)*b}function Ub(a,b){var c={milliseconds:0,months:0};return c.months=b.month()-a.month()+12*(b.year()-a.year()),a.clone().add(c.months,\"M\").isAfter(b)&&--c.months,c.milliseconds=+b-+a.clone().add(c.months,\"M\"),c}function Vb(a,b){var c;return a.isValid()&&b.isValid()?(b=Fb(b,a),a.isBefore(b)?c=Ub(a,b):(c=Ub(b,a),c.milliseconds=-c.milliseconds,c.months=-c.months),c):{milliseconds:0,months:0}}function Wb(a,b){return function(c,d){var e,f;return null===d||isNaN(+d)||(y(b,\"moment().\"+b+\"(period, number) is deprecated. Please use moment().\"+b+\"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.\"),f=c,c=d,d=f),c=\"string\"==typeof c?+c:c,e=Sb(c,d),Xb(this,e,a),this}}function Xb(b,c,d,e){var f=c._milliseconds,g=Cb(c._days),h=Cb(c._months);b.isValid()&&(e=null==e||e,f&&b._d.setTime(b._d.valueOf()+f*d),g&&Q(b,\"Date\",P(b,\"Date\")+g*d),h&&ja(b,P(b,\"Month\")+h*d),e&&a.updateOffset(b,g||h))}function Yb(a,b){var c=a.diff(b,\"days\",!0);return c<-6?\"sameElse\":c<-1?\"lastWeek\":c<0?\"lastDay\":c<1?\"sameDay\":c<2?\"nextDay\":c<7?\"nextWeek\":\"sameElse\"}function Zb(b,c){var d=b||tb(),e=Fb(d,this).startOf(\"day\"),f=a.calendarFormat(this,e)||\"sameElse\",g=c&&(z(c[f])?c[f].call(this,d):c[f]);return this.format(g||this.localeData().calendar(f,this,tb(d)))}function $b(){return new r(this)}function _b(a,b){var c=s(a)?a:tb(a);return!(!this.isValid()||!c.isValid())&&(b=K(f(b)?\"millisecond\":b),\"millisecond\"===b?this.valueOf()>c.valueOf():c.valueOf()9999?X(a,\"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]\"):z(Date.prototype.toISOString)?this.toDate().toISOString():X(a,\"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]\")}function jc(){if(!this.isValid())return\"moment.invalid(/* \"+this._i+\" */)\";var a=\"moment\",b=\"\";this.isLocal()||(a=0===this.utcOffset()?\"moment.utc\":\"moment.parseZone\",b=\"Z\");var c=\"[\"+a+'(\"]',d=0<=this.year()&&this.year()<=9999?\"YYYY\":\"YYYYYY\",e=\"-MM-DD[T]HH:mm:ss.SSS\",f=b+'[\")]';return this.format(c+d+e+f)}function kc(b){b||(b=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var c=X(this,b);return this.localeData().postformat(c)}function lc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({to:this,from:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function mc(a){return this.from(tb(),a)}function nc(a,b){return this.isValid()&&(s(a)&&a.isValid()||tb(a).isValid())?Sb({from:this,to:a}).locale(this.locale()).humanize(!b):this.localeData().invalidDate()}function oc(a){return this.to(tb(),a)}function pc(a){var b;return void 0===a?this._locale._abbr:(b=bb(a),null!=b&&(this._locale=b),this)}function qc(){return this._locale}function rc(a){switch(a=K(a)){case\"year\":this.month(0);case\"quarter\":case\"month\":this.date(1);case\"week\":case\"isoWeek\":case\"day\":case\"date\":this.hours(0);case\"hour\":this.minutes(0);case\"minute\":this.seconds(0);case\"second\":this.milliseconds(0)}return\"week\"===a&&this.weekday(0),\"isoWeek\"===a&&this.isoWeekday(1),\"quarter\"===a&&this.month(3*Math.floor(this.month()/3)),this}function sc(a){return a=K(a),void 0===a||\"millisecond\"===a?this:(\"date\"===a&&(a=\"day\"),this.startOf(a).add(1,\"isoWeek\"===a?\"week\":a).subtract(1,\"ms\"))}function tc(){return this._d.valueOf()-6e4*(this._offset||0)}function uc(){return Math.floor(this.valueOf()/1e3)}function vc(){return new Date(this.valueOf())}function wc(){var a=this;return[a.year(),a.month(),a.date(),a.hour(),a.minute(),a.second(),a.millisecond()]}function xc(){var a=this;return{years:a.year(),months:a.month(),date:a.date(),hours:a.hours(),minutes:a.minutes(),seconds:a.seconds(),milliseconds:a.milliseconds()}}function yc(){return this.isValid()?this.toISOString():null}function zc(){return o(this)}function Ac(){\nreturn k({},n(this))}function Bc(){return n(this).overflow}function Cc(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}function Dc(a,b){U(0,[a,a.length],0,b)}function Ec(a){return Ic.call(this,a,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)}function Fc(a){return Ic.call(this,a,this.isoWeek(),this.isoWeekday(),1,4)}function Gc(){return xa(this.year(),1,4)}function Hc(){var a=this.localeData()._week;return xa(this.year(),a.dow,a.doy)}function Ic(a,b,c,d,e){var f;return null==a?wa(this,d,e).year:(f=xa(a,d,e),b>f&&(b=f),Jc.call(this,a,b,c,d,e))}function Jc(a,b,c,d,e){var f=va(a,b,c,d,e),g=ta(f.year,0,f.dayOfYear);return this.year(g.getUTCFullYear()),this.month(g.getUTCMonth()),this.date(g.getUTCDate()),this}function Kc(a){return null==a?Math.ceil((this.month()+1)/3):this.month(3*(a-1)+this.month()%3)}function Lc(a){var b=Math.round((this.clone().startOf(\"day\")-this.clone().startOf(\"year\"))/864e5)+1;return null==a?b:this.add(a-b,\"d\")}function Mc(a,b){b[ke]=u(1e3*(\"0.\"+a))}function Nc(){return this._isUTC?\"UTC\":\"\"}function Oc(){return this._isUTC?\"Coordinated Universal Time\":\"\"}function Pc(a){return tb(1e3*a)}function Qc(){return tb.apply(null,arguments).parseZone()}function Rc(a){return a}function Sc(a,b,c,d){var e=bb(),f=l().set(d,b);return e[c](f,a)}function Tc(a,b,c){if(g(a)&&(b=a,a=void 0),a=a||\"\",null!=b)return Sc(a,b,c,\"month\");var d,e=[];for(d=0;d<12;d++)e[d]=Sc(a,d,c,\"month\");return e}function Uc(a,b,c,d){\"boolean\"==typeof a?(g(b)&&(c=b,b=void 0),b=b||\"\"):(b=a,c=b,a=!1,g(b)&&(c=b,b=void 0),b=b||\"\");var e=bb(),f=a?e._week.dow:0;if(null!=c)return Sc(b,(c+f)%7,d,\"day\");var h,i=[];for(h=0;h<7;h++)i[h]=Sc(b,(h+f)%7,d,\"day\");return i}function Vc(a,b){return Tc(a,b,\"months\")}function Wc(a,b){return Tc(a,b,\"monthsShort\")}function Xc(a,b,c){return Uc(a,b,c,\"weekdays\")}function Yc(a,b,c){return Uc(a,b,c,\"weekdaysShort\")}function Zc(a,b,c){return Uc(a,b,c,\"weekdaysMin\")}function $c(){var a=this._data;return this._milliseconds=df(this._milliseconds),this._days=df(this._days),this._months=df(this._months),a.milliseconds=df(a.milliseconds),a.seconds=df(a.seconds),a.minutes=df(a.minutes),a.hours=df(a.hours),a.months=df(a.months),a.years=df(a.years),this}function _c(a,b,c,d){var e=Sb(b,c);return a._milliseconds+=d*e._milliseconds,a._days+=d*e._days,a._months+=d*e._months,a._bubble()}function ad(a,b){return _c(this,a,b,1)}function bd(a,b){return _c(this,a,b,-1)}function cd(a){return a<0?Math.floor(a):Math.ceil(a)}function dd(){var a,b,c,d,e,f=this._milliseconds,g=this._days,h=this._months,i=this._data;return f>=0&&g>=0&&h>=0||f<=0&&g<=0&&h<=0||(f+=864e5*cd(fd(h)+g),g=0,h=0),i.milliseconds=f%1e3,a=t(f/1e3),i.seconds=a%60,b=t(a/60),i.minutes=b%60,c=t(b/60),i.hours=c%24,g+=t(c/24),e=t(ed(g)),h+=e,g-=cd(fd(e)),d=t(h/12),h%=12,i.days=g,i.months=h,i.years=d,this}function ed(a){return 4800*a/146097}function fd(a){return 146097*a/4800}function gd(a){if(!this.isValid())return NaN;var b,c,d=this._milliseconds;if(a=K(a),\"month\"===a||\"year\"===a)return b=this._days+d/864e5,c=this._months+ed(b),\"month\"===a?c:c/12;switch(b=this._days+Math.round(fd(this._months)),a){case\"week\":return b/7+d/6048e5;case\"day\":return b+d/864e5;case\"hour\":return 24*b+d/36e5;case\"minute\":return 1440*b+d/6e4;case\"second\":return 86400*b+d/1e3;case\"millisecond\":return Math.floor(864e5*b)+d;default:throw new Error(\"Unknown unit \"+a)}}function hd(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*u(this._months/12):NaN}function id(a){return function(){return this.as(a)}}function jd(a){return a=K(a),this.isValid()?this[a+\"s\"]():NaN}function kd(a){return function(){return this.isValid()?this._data[a]:NaN}}function ld(){return t(this.days()/7)}function md(a,b,c,d,e){return e.relativeTime(b||1,!!c,a,d)}function nd(a,b,c){var d=Sb(a).abs(),e=uf(d.as(\"s\")),f=uf(d.as(\"m\")),g=uf(d.as(\"h\")),h=uf(d.as(\"d\")),i=uf(d.as(\"M\")),j=uf(d.as(\"y\")),k=e<=vf.ss&&[\"s\",e]||e0,k[4]=c,md.apply(null,k)}function od(a){return void 0===a?uf:\"function\"==typeof a&&(uf=a,!0)}function pd(a,b){return void 0!==vf[a]&&(void 0===b?vf[a]:(vf[a]=b,\"s\"===a&&(vf.ss=b-1),!0))}function qd(a){if(!this.isValid())return this.localeData().invalidDate();var b=this.localeData(),c=nd(this,!a,b);return a&&(c=b.pastFuture(+this,c)),b.postformat(c)}function rd(){if(!this.isValid())return this.localeData().invalidDate();var a,b,c,d=wf(this._milliseconds)/1e3,e=wf(this._days),f=wf(this._months);a=t(d/60),b=t(a/60),d%=60,a%=60,c=t(f/12),f%=12;var g=c,h=f,i=e,j=b,k=a,l=d,m=this.asSeconds();return m?(m<0?\"-\":\"\")+\"P\"+(g?g+\"Y\":\"\")+(h?h+\"M\":\"\")+(i?i+\"D\":\"\")+(j||k||l?\"T\":\"\")+(j?j+\"H\":\"\")+(k?k+\"M\":\"\")+(l?l+\"S\":\"\"):\"P0D\"}var sd,td;td=Array.prototype.some?Array.prototype.some:function(a){for(var b=Object(this),c=b.length>>>0,d=0;d68?1900:2e3)};var te=O(\"FullYear\",!0);U(\"w\",[\"ww\",2],\"wo\",\"week\"),U(\"W\",[\"WW\",2],\"Wo\",\"isoWeek\"),J(\"week\",\"w\"),J(\"isoWeek\",\"W\"),M(\"week\",5),M(\"isoWeek\",5),Z(\"w\",Sd),Z(\"ww\",Sd,Od),Z(\"W\",Sd),Z(\"WW\",Sd,Od),ca([\"w\",\"ww\",\"W\",\"WW\"],function(a,b,c,d){b[d.substr(0,1)]=u(a)});var ue={dow:0,doy:6};U(\"d\",0,\"do\",\"day\"),U(\"dd\",0,0,function(a){return this.localeData().weekdaysMin(this,a)}),U(\"ddd\",0,0,function(a){return this.localeData().weekdaysShort(this,a)}),U(\"dddd\",0,0,function(a){return this.localeData().weekdays(this,a)}),U(\"e\",0,0,\"weekday\"),U(\"E\",0,0,\"isoWeekday\"),J(\"day\",\"d\"),J(\"weekday\",\"e\"),J(\"isoWeekday\",\"E\"),M(\"day\",11),M(\"weekday\",11),M(\"isoWeekday\",11),Z(\"d\",Sd),Z(\"e\",Sd),Z(\"E\",Sd),Z(\"dd\",function(a,b){return b.weekdaysMinRegex(a)}),Z(\"ddd\",function(a,b){return b.weekdaysShortRegex(a)}),Z(\"dddd\",function(a,b){return b.weekdaysRegex(a)}),ca([\"dd\",\"ddd\",\"dddd\"],function(a,b,c,d){var e=c._locale.weekdaysParse(a,d,c._strict);null!=e?b.d=e:n(c).invalidWeekday=a}),ca([\"d\",\"e\",\"E\"],function(a,b,c,d){b[d]=u(a)});var ve=\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),we=\"Sun_Mon_Tue_Wed_Thu_Fri_Sat\".split(\"_\"),xe=\"Su_Mo_Tu_We_Th_Fr_Sa\".split(\"_\"),ye=be,ze=be,Ae=be;U(\"H\",[\"HH\",2],0,\"hour\"),U(\"h\",[\"hh\",2],0,Ra),U(\"k\",[\"kk\",2],0,Sa),U(\"hmm\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)}),U(\"hmmss\",0,0,function(){return\"\"+Ra.apply(this)+T(this.minutes(),2)+T(this.seconds(),2)}),U(\"Hmm\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)}),U(\"Hmmss\",0,0,function(){return\"\"+this.hours()+T(this.minutes(),2)+T(this.seconds(),2)}),Ta(\"a\",!0),Ta(\"A\",!1),J(\"hour\",\"h\"),M(\"hour\",13),Z(\"a\",Ua),Z(\"A\",Ua),Z(\"H\",Sd),Z(\"h\",Sd),Z(\"k\",Sd),Z(\"HH\",Sd,Od),Z(\"hh\",Sd,Od),Z(\"kk\",Sd,Od),Z(\"hmm\",Td),Z(\"hmmss\",Ud),Z(\"Hmm\",Td),Z(\"Hmmss\",Ud),ba([\"H\",\"HH\"],he),ba([\"k\",\"kk\"],function(a,b,c){var d=u(a);b[he]=24===d?0:d}),ba([\"a\",\"A\"],function(a,b,c){c._isPm=c._locale.isPM(a),c._meridiem=a}),ba([\"h\",\"hh\"],function(a,b,c){b[he]=u(a),n(c).bigHour=!0}),ba(\"hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d)),n(c).bigHour=!0}),ba(\"hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e)),n(c).bigHour=!0}),ba(\"Hmm\",function(a,b,c){var d=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d))}),ba(\"Hmmss\",function(a,b,c){var d=a.length-4,e=a.length-2;b[he]=u(a.substr(0,d)),b[ie]=u(a.substr(d,2)),b[je]=u(a.substr(e))});var Be,Ce=/[ap]\\.?m?\\.?/i,De=O(\"Hours\",!0),Ee={calendar:Bd,longDateFormat:Cd,invalidDate:Dd,ordinal:Ed,dayOfMonthOrdinalParse:Fd,relativeTime:Gd,months:pe,monthsShort:qe,week:ue,weekdays:ve,weekdaysMin:xe,weekdaysShort:we,meridiemParse:Ce},Fe={},Ge={},He=/^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Ie=/^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([\\+\\-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,Je=/Z|[+-]\\d\\d(?::?\\d\\d)?/,Ke=[[\"YYYYYY-MM-DD\",/[+-]\\d{6}-\\d\\d-\\d\\d/],[\"YYYY-MM-DD\",/\\d{4}-\\d\\d-\\d\\d/],[\"GGGG-[W]WW-E\",/\\d{4}-W\\d\\d-\\d/],[\"GGGG-[W]WW\",/\\d{4}-W\\d\\d/,!1],[\"YYYY-DDD\",/\\d{4}-\\d{3}/],[\"YYYY-MM\",/\\d{4}-\\d\\d/,!1],[\"YYYYYYMMDD\",/[+-]\\d{10}/],[\"YYYYMMDD\",/\\d{8}/],[\"GGGG[W]WWE\",/\\d{4}W\\d{3}/],[\"GGGG[W]WW\",/\\d{4}W\\d{2}/,!1],[\"YYYYDDD\",/\\d{7}/]],Le=[[\"HH:mm:ss.SSSS\",/\\d\\d:\\d\\d:\\d\\d\\.\\d+/],[\"HH:mm:ss,SSSS\",/\\d\\d:\\d\\d:\\d\\d,\\d+/],[\"HH:mm:ss\",/\\d\\d:\\d\\d:\\d\\d/],[\"HH:mm\",/\\d\\d:\\d\\d/],[\"HHmmss.SSSS\",/\\d\\d\\d\\d\\d\\d\\.\\d+/],[\"HHmmss,SSSS\",/\\d\\d\\d\\d\\d\\d,\\d+/],[\"HHmmss\",/\\d\\d\\d\\d\\d\\d/],[\"HHmm\",/\\d\\d\\d\\d/],[\"HH\",/\\d\\d/]],Me=/^\\/?Date\\((\\-?\\d+)/i,Ne=/^((?:Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d?\\d\\s(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(?:\\d\\d)?\\d\\d\\s)(\\d\\d:\\d\\d)(\\:\\d\\d)?(\\s(?:UT|GMT|[ECMP][SD]T|[A-IK-Za-ik-z]|[+-]\\d{4}))$/;a.createFromInputFallback=x(\"value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.\",function(a){a._d=new Date(a._i+(a._useUTC?\" UTC\":\"\"))}),a.ISO_8601=function(){},a.RFC_2822=function(){};var Oe=x(\"moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/\",function(){var a=tb.apply(null,arguments);return this.isValid()&&a.isValid()?athis?this:a:p()}),Qe=function(){return Date.now?Date.now():+new Date},Re=[\"year\",\"quarter\",\"month\",\"week\",\"day\",\"hour\",\"minute\",\"second\",\"millisecond\"];Db(\"Z\",\":\"),Db(\"ZZ\",\"\"),Z(\"Z\",_d),Z(\"ZZ\",_d),ba([\"Z\",\"ZZ\"],function(a,b,c){c._useUTC=!0,c._tzm=Eb(_d,a)});var Se=/([\\+\\-]|\\d\\d)/gi;a.updateOffset=function(){};var Te=/^(\\-)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/,Ue=/^(-)?P(?:(-?[0-9,.]*)Y)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)W)?(?:(-?[0-9,.]*)D)?(?:T(?:(-?[0-9,.]*)H)?(?:(-?[0-9,.]*)M)?(?:(-?[0-9,.]*)S)?)?$/;Sb.fn=Ab.prototype,Sb.invalid=zb;var Ve=Wb(1,\"add\"),We=Wb(-1,\"subtract\");a.defaultFormat=\"YYYY-MM-DDTHH:mm:ssZ\",a.defaultFormatUtc=\"YYYY-MM-DDTHH:mm:ss[Z]\";var Xe=x(\"moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.\",function(a){return void 0===a?this.localeData():this.locale(a)});U(0,[\"gg\",2],0,function(){return this.weekYear()%100}),U(0,[\"GG\",2],0,function(){return this.isoWeekYear()%100}),Dc(\"gggg\",\"weekYear\"),Dc(\"ggggg\",\"weekYear\"),Dc(\"GGGG\",\"isoWeekYear\"),Dc(\"GGGGG\",\"isoWeekYear\"),J(\"weekYear\",\"gg\"),J(\"isoWeekYear\",\"GG\"),M(\"weekYear\",1),M(\"isoWeekYear\",1),Z(\"G\",Zd),Z(\"g\",Zd),Z(\"GG\",Sd,Od),Z(\"gg\",Sd,Od),Z(\"GGGG\",Wd,Qd),Z(\"gggg\",Wd,Qd),Z(\"GGGGG\",Xd,Rd),Z(\"ggggg\",Xd,Rd),ca([\"gggg\",\"ggggg\",\"GGGG\",\"GGGGG\"],function(a,b,c,d){b[d.substr(0,2)]=u(a)}),ca([\"gg\",\"GG\"],function(b,c,d,e){c[e]=a.parseTwoDigitYear(b)}),U(\"Q\",0,\"Qo\",\"quarter\"),J(\"quarter\",\"Q\"),M(\"quarter\",7),Z(\"Q\",Nd),ba(\"Q\",function(a,b){b[fe]=3*(u(a)-1)}),U(\"D\",[\"DD\",2],\"Do\",\"date\"),J(\"date\",\"D\"),M(\"date\",9),Z(\"D\",Sd),Z(\"DD\",Sd,Od),Z(\"Do\",function(a,b){return a?b._dayOfMonthOrdinalParse||b._ordinalParse:b._dayOfMonthOrdinalParseLenient}),ba([\"D\",\"DD\"],ge),ba(\"Do\",function(a,b){b[ge]=u(a.match(Sd)[0],10)});var Ye=O(\"Date\",!0);U(\"DDD\",[\"DDDD\",3],\"DDDo\",\"dayOfYear\"),J(\"dayOfYear\",\"DDD\"),M(\"dayOfYear\",4),Z(\"DDD\",Vd),Z(\"DDDD\",Pd),ba([\"DDD\",\"DDDD\"],function(a,b,c){c._dayOfYear=u(a)}),U(\"m\",[\"mm\",2],0,\"minute\"),J(\"minute\",\"m\"),M(\"minute\",14),Z(\"m\",Sd),Z(\"mm\",Sd,Od),ba([\"m\",\"mm\"],ie);var Ze=O(\"Minutes\",!1);U(\"s\",[\"ss\",2],0,\"second\"),J(\"second\",\"s\"),M(\"second\",15),Z(\"s\",Sd),Z(\"ss\",Sd,Od),ba([\"s\",\"ss\"],je);var $e=O(\"Seconds\",!1);U(\"S\",0,0,function(){return~~(this.millisecond()/100)}),U(0,[\"SS\",2],0,function(){return~~(this.millisecond()/10)}),U(0,[\"SSS\",3],0,\"millisecond\"),U(0,[\"SSSS\",4],0,function(){return 10*this.millisecond()}),U(0,[\"SSSSS\",5],0,function(){return 100*this.millisecond()}),U(0,[\"SSSSSS\",6],0,function(){return 1e3*this.millisecond()}),U(0,[\"SSSSSSS\",7],0,function(){return 1e4*this.millisecond()}),U(0,[\"SSSSSSSS\",8],0,function(){return 1e5*this.millisecond()}),U(0,[\"SSSSSSSSS\",9],0,function(){return 1e6*this.millisecond()}),J(\"millisecond\",\"ms\"),M(\"millisecond\",16),Z(\"S\",Vd,Nd),Z(\"SS\",Vd,Od),Z(\"SSS\",Vd,Pd);var _e;for(_e=\"SSSS\";_e.length<=9;_e+=\"S\")Z(_e,Yd);for(_e=\"S\";_e.length<=9;_e+=\"S\")ba(_e,Mc);var af=O(\"Milliseconds\",!1);U(\"z\",0,0,\"zoneAbbr\"),U(\"zz\",0,0,\"zoneName\");var bf=r.prototype;bf.add=Ve,bf.calendar=Zb,bf.clone=$b,bf.diff=fc,bf.endOf=sc,bf.format=kc,bf.from=lc,bf.fromNow=mc,bf.to=nc,bf.toNow=oc,bf.get=R,bf.invalidAt=Bc,bf.isAfter=_b,bf.isBefore=ac,bf.isBetween=bc,bf.isSame=cc,bf.isSameOrAfter=dc,bf.isSameOrBefore=ec,bf.isValid=zc,bf.lang=Xe,bf.locale=pc,bf.localeData=qc,bf.max=Pe,bf.min=Oe,bf.parsingFlags=Ac,bf.set=S,bf.startOf=rc,bf.subtract=We,bf.toArray=wc,bf.toObject=xc,bf.toDate=vc,bf.toISOString=ic,bf.inspect=jc,bf.toJSON=yc,bf.toString=hc,bf.unix=uc,bf.valueOf=tc,bf.creationData=Cc,bf.year=te,bf.isLeapYear=ra,bf.weekYear=Ec,bf.isoWeekYear=Fc,bf.quarter=bf.quarters=Kc,bf.month=ka,bf.daysInMonth=la,bf.week=bf.weeks=Ba,bf.isoWeek=bf.isoWeeks=Ca,bf.weeksInYear=Hc,bf.isoWeeksInYear=Gc,bf.date=Ye,bf.day=bf.days=Ka,bf.weekday=La,bf.isoWeekday=Ma,bf.dayOfYear=Lc,bf.hour=bf.hours=De,bf.minute=bf.minutes=Ze,bf.second=bf.seconds=$e,bf.millisecond=bf.milliseconds=af,bf.utcOffset=Hb,bf.utc=Jb,bf.local=Kb,bf.parseZone=Lb,bf.hasAlignedHourOffset=Mb,bf.isDST=Nb,bf.isLocal=Pb,bf.isUtcOffset=Qb,bf.isUtc=Rb,bf.isUTC=Rb,bf.zoneAbbr=Nc,bf.zoneName=Oc,bf.dates=x(\"dates accessor is deprecated. Use date instead.\",Ye),bf.months=x(\"months accessor is deprecated. Use month instead\",ka),bf.years=x(\"years accessor is deprecated. Use year instead\",te),bf.zone=x(\"moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/\",Ib),bf.isDSTShifted=x(\"isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information\",Ob);var cf=C.prototype;cf.calendar=D,cf.longDateFormat=E,cf.invalidDate=F,cf.ordinal=G,cf.preparse=Rc,cf.postformat=Rc,cf.relativeTime=H,cf.pastFuture=I,cf.set=A,cf.months=fa,cf.monthsShort=ga,cf.monthsParse=ia,cf.monthsRegex=na,cf.monthsShortRegex=ma,cf.week=ya,cf.firstDayOfYear=Aa,cf.firstDayOfWeek=za,cf.weekdays=Fa,cf.weekdaysMin=Ha,cf.weekdaysShort=Ga,cf.weekdaysParse=Ja,cf.weekdaysRegex=Na,cf.weekdaysShortRegex=Oa,cf.weekdaysMinRegex=Pa,cf.isPM=Va,cf.meridiem=Wa,$a(\"en\",{dayOfMonthOrdinalParse:/\\d{1,2}(th|st|nd|rd)/,ordinal:function(a){var b=a%10,c=1===u(a%100/10)?\"th\":1===b?\"st\":2===b?\"nd\":3===b?\"rd\":\"th\";return a+c}}),a.lang=x(\"moment.lang is deprecated. Use moment.locale instead.\",$a),a.langData=x(\"moment.langData is deprecated. Use moment.localeData instead.\",bb);var df=Math.abs,ef=id(\"ms\"),ff=id(\"s\"),gf=id(\"m\"),hf=id(\"h\"),jf=id(\"d\"),kf=id(\"w\"),lf=id(\"M\"),mf=id(\"y\"),nf=kd(\"milliseconds\"),of=kd(\"seconds\"),pf=kd(\"minutes\"),qf=kd(\"hours\"),rf=kd(\"days\"),sf=kd(\"months\"),tf=kd(\"years\"),uf=Math.round,vf={ss:44,s:45,m:45,h:22,d:26,M:11},wf=Math.abs,xf=Ab.prototype;return xf.isValid=yb,xf.abs=$c,xf.add=ad,xf.subtract=bd,xf.as=gd,xf.asMilliseconds=ef,xf.asSeconds=ff,xf.asMinutes=gf,xf.asHours=hf,xf.asDays=jf,xf.asWeeks=kf,xf.asMonths=lf,xf.asYears=mf,xf.valueOf=hd,xf._bubble=dd,xf.get=jd,xf.milliseconds=nf,xf.seconds=of,xf.minutes=pf,xf.hours=qf,xf.days=rf,xf.weeks=ld,xf.months=sf,xf.years=tf,xf.humanize=qd,xf.toISOString=rd,xf.toString=rd,xf.toJSON=rd,xf.locale=pc,xf.localeData=qc,xf.toIsoString=x(\"toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)\",rd),xf.lang=Xe,U(\"X\",0,0,\"unix\"),U(\"x\",0,0,\"valueOf\"),Z(\"x\",Zd),Z(\"X\",ae),ba(\"X\",function(a,b,c){c._d=new Date(1e3*parseFloat(a,10))}),ba(\"x\",function(a,b,c){c._d=new Date(u(a))}),a.version=\"2.18.1\",b(tb),a.fn=bf,a.min=vb,a.max=wb,a.now=Qe,a.utc=l,a.unix=Pc,a.months=Vc,a.isDate=h,a.locale=$a,a.invalid=p,a.duration=Sb,a.isMoment=s,a.weekdays=Xc,a.parseZone=Qc,a.localeData=bb,a.isDuration=Bb,a.monthsShort=Wc,a.weekdaysMin=Zc,a.defineLocale=_a,a.updateLocale=ab,a.locales=cb,a.weekdaysShort=Yc,a.normalizeUnits=K,a.relativeTimeRounding=od,a.relativeTimeThreshold=pd,a.calendarFormat=Yb,a.prototype=bf,a});\n","import { FieldType } from '../models/index';\n\nexport const /** @type {?} */ mapDateFormatByFieldType: Function = (fieldType: FieldType) => {\n switch (fieldType) {\n case FieldType.dateUs:\n return 'M/D/YYYY';\n case FieldType.dateTimeUs:\n return 'M/D/YYYY h:m:s';\n case FieldType.dateUsShort:\n return 'M/D/YY';\n case FieldType.dateTimeUsShort:\n return 'M/D/YY h:m:s';\n case FieldType.dateTimeIso:\n return 'YYYY-MM-DD h:m:s';\n case FieldType.dateIso:\n default:\n return 'YYYY-MM-DD';\n }\n};\n\nexport const /** @type {?} */ testFilterCondition: Function = (operator: string, value1: any, value2: any): boolean => {\n switch (operator) {\n case '<': return (value1 < value2);\n case '<=': return (value1 <= value2);\n case '>': return (value1 > value2);\n case '>=': return (value1 >= value2);\n case '!=':\n case '<>': return (value1 !== value2);\n case '=':\n case '==': return (value1 === value2);\n }\n return true;\n};\n","import { FilterCondition, FilterConditionOption } from './../models/index';\nimport { testFilterCondition } from './filterUtilities';\n/**\n * @param {?} str\n * @return {?}\n */\nfunction parseBoolean(str: string) {\n return /(true|1)/i.test(str);\n}\n\nexport const /** @type {?} */ booleanFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm);\n};\n","\nexport type FieldType = number;\nexport let FieldType: any = {};\nFieldType.unknown = 0;\nFieldType.string = 1;\nFieldType.boolean = 2;\nFieldType.number = 3;\nFieldType.date = 4;\nFieldType.dateIso = 5;\nFieldType.dateUtc = 6;\nFieldType.dateTime = 7;\nFieldType.dateTimeIso = 8;\nFieldType.dateUs = 9;\nFieldType.dateUsShort = 10;\nFieldType.dateTimeUs = 11;\nFieldType.dateTimeUsShort = 12;\nFieldType[FieldType.unknown] = \"unknown\";\nFieldType[FieldType.string] = \"string\";\nFieldType[FieldType.boolean] = \"boolean\";\nFieldType[FieldType.number] = \"number\";\nFieldType[FieldType.date] = \"date\";\nFieldType[FieldType.dateIso] = \"dateIso\";\nFieldType[FieldType.dateUtc] = \"dateUtc\";\nFieldType[FieldType.dateTime] = \"dateTime\";\nFieldType[FieldType.dateTimeIso] = \"dateTimeIso\";\nFieldType[FieldType.dateUs] = \"dateUs\";\nFieldType[FieldType.dateUsShort] = \"dateUsShort\";\nFieldType[FieldType.dateTimeUs] = \"dateTimeUs\";\nFieldType[FieldType.dateTimeUsShort] = \"dateTimeUsShort\";\n\n","\nexport type FormElementType = number;\nexport let FormElementType: any = {};\nFormElementType.input = 0;\nFormElementType.multiSelect = 1;\nFormElementType.select = 2;\nFormElementType.textarea = 3;\nFormElementType[FormElementType.input] = \"input\";\nFormElementType[FormElementType.multiSelect] = \"multiSelect\";\nFormElementType[FormElementType.select] = \"select\";\nFormElementType[FormElementType.textarea] = \"textarea\";\n\n","\nexport type CaseType = number;\nexport let CaseType: any = {};\nCaseType.camelCase = 0;\nCaseType.pascalCase = 1;\nCaseType.snakeCase = 2;\nCaseType[CaseType.camelCase] = \"camelCase\";\nCaseType[CaseType.pascalCase] = \"pascalCase\";\nCaseType[CaseType.snakeCase] = \"snakeCase\";\n\n"],"names":["CommonModule","NgModule","Input","Component","Injectable","moment","((moment_)).default","QueryBuilder","Router","router","DATE_FORMAT","require","this"],"mappings":"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"} \ No newline at end of file diff --git a/dist/bundles/angular-slickgrid.umd.min.js b/dist/bundles/angular-slickgrid.umd.min.js deleted file mode 100644 index d95cbaffb..000000000 --- a/dist/bundles/angular-slickgrid.umd.min.js +++ /dev/null @@ -1,3 +0,0 @@ -!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("moment"),require("@angular/core"),require("@angular/router"),require("@angular/common")):"function"==typeof define&&define.amd?define(["exports","moment","@angular/core","@angular/router","@angular/common"],factory):factory((global.ng=global.ng||{},global.ng.angularLibraryStarter=global.ng.angularLibraryStarter||{}),global.moment,global.ng.core,global.ng.router,global.ng.common)}(this,function(exports,moment___default,_angular_core,_angular_router,_angular_common){"use strict";function parseBoolean(str){return/(true|1)/i.test(str)}var moment___default__default=moment___default.default,CaseType={};CaseType.camelCase=0,CaseType.pascalCase=1,CaseType.snakeCase=2,CaseType[CaseType.camelCase]="camelCase",CaseType[CaseType.pascalCase]="pascalCase",CaseType[CaseType.snakeCase]="snakeCase";var FormElementType={};FormElementType.input=0,FormElementType.multiSelect=1,FormElementType.select=2,FormElementType.textarea=3,FormElementType[FormElementType.input]="input",FormElementType[FormElementType.multiSelect]="multiSelect",FormElementType[FormElementType.select]="select",FormElementType[FormElementType.textarea]="textarea";var FieldType={};FieldType.unknown=0,FieldType.string=1,FieldType.boolean=2,FieldType.number=3,FieldType.date=4,FieldType.dateIso=5,FieldType.dateUtc=6,FieldType.dateTime=7,FieldType.dateTimeIso=8,FieldType.dateUs=9,FieldType.dateUsShort=10,FieldType.dateTimeUs=11,FieldType.dateTimeUsShort=12,FieldType[FieldType.unknown]="unknown",FieldType[FieldType.string]="string",FieldType[FieldType.boolean]="boolean",FieldType[FieldType.number]="number",FieldType[FieldType.date]="date",FieldType[FieldType.dateIso]="dateIso",FieldType[FieldType.dateUtc]="dateUtc",FieldType[FieldType.dateTime]="dateTime",FieldType[FieldType.dateTimeIso]="dateTimeIso",FieldType[FieldType.dateUs]="dateUs",FieldType[FieldType.dateUsShort]="dateUsShort",FieldType[FieldType.dateTimeUs]="dateTimeUs",FieldType[FieldType.dateTimeUsShort]="dateTimeUsShort";var booleanFilterCondition=function(options){return parseBoolean(options.cellValue)===parseBoolean(options.searchTerm)},mapDateFormatByFieldType=function(fieldType){switch(fieldType){case FieldType.dateUs:return"M/D/YYYY";case FieldType.dateTimeUs:return"M/D/YYYY h:m:s";case FieldType.dateUsShort:return"M/D/YY";case FieldType.dateTimeUsShort:return"M/D/YY h:m:s";case FieldType.dateTimeIso:return"YYYY-MM-DD h:m:s";case FieldType.dateIso:default:return"YYYY-MM-DD"}},testFilterCondition=function(operator,value1,value2){switch(operator){case"<":return value1":return value1>value2;case">=":return value1>=value2;case"!=":case"<>":return value1!==value2;case"=":case"==":return value1===value2}return!0},moment=moment___default__default||moment___default,dateUtcFilterCondition=function(options){if(!options.filterSearchType)throw new Error("Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }");var searchDateFormat=mapDateFormatByFieldType(options.filterSearchType);if(!moment(options.cellValue,moment.ISO_8601).isValid()||!moment(options.searchTerm,searchDateFormat,!0).isValid())return!0;var dateCell=moment(options.cellValue,moment.ISO_8601,!0),dateSearch=moment(options.searchTerm,searchDateFormat,!0);return testFilterCondition(options.operator||"==",parseInt(dateCell.format("X"),10),parseInt(dateSearch.format("X"),10))},moment$1=moment___default__default||moment___default,dateIsoFilterCondition=function(options){if(!moment$1(options.cellValue,"YYYY-MM-DD",!0).isValid()||!moment$1(options.searchTerm,"YYYY-MM-DD",!0).isValid())return!0;var dateCell=moment$1(options.cellValue,"YYYY-MM-DD",!0),dateSearch=moment$1(options.searchTerm,"YYYY-MM-DD",!0);return testFilterCondition(options.operator||"==",parseInt(dateCell.format("X"),10),parseInt(dateSearch.format("X"),10))},moment$2=moment___default__default||moment___default,dateUsShortFilterCondition=function(options){if(!moment$2(options.cellValue,"M/D/YY",!0).isValid()||!moment$2(options.searchTerm,"M/D/YY",!0).isValid())return!0;var dateCell=moment$2(options.cellValue,"M/D/YY",!0),dateSearch=moment$2(options.searchTerm,"M/D/YY",!0);return testFilterCondition(options.operator||"==",parseInt(dateCell.format("X"),10),parseInt(dateSearch.format("X"),10))},moment$3=moment___default__default||moment___default,dateUsFilterCondition=function(options){if(!moment$3(options.cellValue,"M/D/YYYY",!0).isValid()||!moment$3(options.searchTerm,"M/D/YYYY",!0).isValid())return!0;var dateCell=moment$3(options.cellValue,"M/D/YYYY",!0),dateSearch=moment$3(options.searchTerm,"M/D/YYYY",!0);return testFilterCondition(options.operator||"==",parseInt(dateCell.format("X"),10),parseInt(dateSearch.format("X"),10))},moment$4=moment___default__default||moment___default,dateFilterCondition=function(options){var filterSearchType=options.filterSearchType||FieldType.dateIso,searchDateFormat=mapDateFormatByFieldType(filterSearchType);if(!moment$4(options.cellValue,moment$4.ISO_8601).isValid()||!moment$4(options.searchTerm,searchDateFormat,!0).isValid())return!0;var dateCell=moment$4(options.cellValue),dateSearch=moment$4(options.searchTerm);return testFilterCondition(options.operator||"==",parseInt(dateCell.format("X"),10),parseInt(dateSearch.format("X"),10))},numberFilterCondition=function(options){return testFilterCondition(options.operator||"==",parseFloat(options.cellValue),parseFloat(options.searchTerm))},stringFilterCondition=function(options){var cellValue=options.cellValue.toString().toLowerCase(),searchTerm=options.searchTerm.toString().toLowerCase();return"*"===options.operator?cellValue.endsWith(searchTerm):""===options.operator&&"*"===options.cellValueLastChar?cellValue.startsWith(searchTerm):""===options.operator?cellValue.includes(searchTerm):testFilterCondition(options.operator||"==",cellValue,searchTerm)},executeMappedCondition=function(options){switch(options.fieldType){case FieldType.boolean:return booleanFilterCondition(options);case FieldType.date:return dateFilterCondition(options);case FieldType.dateUtc:return dateUtcFilterCondition(options);case FieldType.dateIso:return dateIsoFilterCondition(options);case FieldType.dateUs:case FieldType.dateTimeUs:return dateUsFilterCondition(options);case FieldType.dateUsShort:case FieldType.dateTimeUsShort:return dateUsShortFilterCondition(options);case FieldType.number:return numberFilterCondition(options);case FieldType.string:default:return stringFilterCondition(options)}},FilterConditions={executeMappedCondition:executeMappedCondition,booleanFilter:booleanFilterCondition,dateFilter:dateFilterCondition,dateIsoFilter:dateIsoFilterCondition,dateUtcFilter:dateUtcFilterCondition,dateUsFilter:dateUsFilterCondition,dateUsShortFilter:dateUsShortFilterCondition,numberFilter:numberFilterCondition,stringFilter:stringFilterCondition,testFilter:testFilterCondition},inputFilterTemplate=function(searchTerm,columnDef){return''},selectFilterTemplate=function(searchTerm,columnDef){if(!columnDef.filter.selectOptions)throw new Error("SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')");var options="";return columnDef.filter.selectOptions.forEach(function(option){options+='"}),'"},FilterTemplates={input:inputFilterTemplate,select:selectFilterTemplate},checkboxFormatter=function(row,cell,value,columnDef,dataContext){return value?"☑":""},checkmarkFormatter=function(row,cell,value,columnDef,dataContext){return value?'':""},moment$5=moment___default__default||moment___default,dateIsoFormatter=function(row,cell,value,columnDef,dataContext){return value?moment$5(value).format("YYYY-MM-DD"):""},moment$6=moment___default__default||moment___default,dateTimeIsoAmPmFormatter=function(row,cell,value,columnDef,dataContext){return value?moment$6(value).format("YYYY-MM-DD h:mm:ss a"):""},moment$7=moment___default__default||moment___default,dateTimeUsAmPmFormatter=function(row,cell,value,columnDef,dataContext){return value?moment$7(value).format("MM/DD/YYYY h:mm:ss a"):""},moment$8=moment___default__default||moment___default,dateTimeUsFormatter=function(row,cell,value,columnDef,dataContext){return value?moment$8(value).format("MM/DD/YYYY hh:mm:ss"):""},moment$9=moment___default__default||moment___default,dateUsFormatter=function(row,cell,value,columnDef,dataContext){return value?moment$9(value).format("MM/DD/YYYY"):""},percentCompleteFormatter=function(row,cell,value,columnDef,dataContext){return null===value||""===value?"-":value<50?""+value+"%":""+value+"%"},percentCompleteBarFormatter=function(row,cell,value,columnDef,dataContext){if(null===value||""===value)return"";return''},progressBarFormatter=function(row,cell,value,columnDef,dataContext){if(null===value||""===value)return"";return'
\n
\n '+value+"%\n
\n
"},yesNoFormatter=function(row,cell,value,columnDef,dataContext){return value?"Yes":"No"},Formatters={checkbox:checkboxFormatter,checkmark:checkmarkFormatter,dateIso:dateIsoFormatter,dateTimeIso:dateIsoFormatter,dateTimeIsoAmPm:dateTimeIsoAmPmFormatter,dateUs:dateUsFormatter,dateTimeUs:dateTimeUsFormatter,dateTimeUsAmPm:dateTimeUsAmPmFormatter,percentComplete:percentCompleteFormatter,percentCompleteBar:percentCompleteBarFormatter,progressBar:progressBarFormatter,yesNo:yesNoFormatter},moment$10=moment___default__default||moment___default,dateUsShortSorter=function(value1,value2,sortDirection){if(!moment$10(value1,"M/D/YY",!0).isValid()||!moment$10(value2,"M/D/YY",!0).isValid())return 0;var date1=moment$10(value1,"M/D/YY",!0),date2=moment$10(value2,"M/D/YY",!0),diff=parseInt(date1.format("X"),10)-parseInt(date2.format("X"),10);return sortDirection*(0===diff?0:diff>0?1:-1)},moment$11=moment___default__default||moment___default,dateSorter=function(value1,value2,sortDirection){if(!moment$11(value1,moment$11.ISO_8601).isValid()||!moment$11(value2,moment$11.ISO_8601,!0).isValid())return 0;var date1=moment$11(value1),date2=moment$11(value2),diff=parseInt(date1.format("X"),10)-parseInt(date2.format("X"),10);return sortDirection*(0===diff?0:diff>0?1:-1)},moment$12=moment___default__default||moment___default,dateIsoSorter=function(value1,value2,sortDirection){if(!moment$12(value1,"YYYY-MM-DD",!0).isValid()||!moment$12(value2,"YYYY-MM-DD",!0).isValid())return 0;var date1=moment$12(value1,"YYYY-MM-DD",!0),date2=moment$12(value2,"YYYY-MM-DD",!0),diff=parseInt(date1.format("X"),10)-parseInt(date2.format("X"),10);return sortDirection*(0===diff?0:diff>0?1:-1)},moment$13=moment___default__default||moment___default,dateUsSorter=function(value1,value2,sortDirection){if(!moment$13(value1,"M/D/YYYY",!0).isValid()||!moment$13(value2,"M/D/YYYY",!0).isValid())return 0;var date1=moment$13(value1,"M/D/YYYY",!0),date2=moment$13(value2,"M/D/YYYY",!0),diff=parseInt(date1.format("X"),10)-parseInt(date2.format("X"),10);return sortDirection*(0===diff?0:diff>0?1:-1)},numericSorter=function(value1,value2,sortDirection){var x=isNaN(value1)||""===value1||null===value1?-99e10:parseFloat(value1),y=isNaN(value2)||""===value2||null===value2?-99e10:parseFloat(value2);return sortDirection*(x===y?0:x>y?1:-1)},stringSorter=function(value1,value2,sortDirection){return sortDirection*(value1===value2?0:value1>value2?1:-1)},Sorters={date:dateSorter,dateIso:dateIsoSorter,dateUs:dateUsSorter,dateUsShort:dateUsShortSorter,numeric:numericSorter,string:stringSorter},FilterService=function(){function FilterService(){}return FilterService.prototype.init=function(grid,gridOptions,columnDefinitions,columnFilters){this._columnDefinitions=columnDefinitions,this._columnFilters=columnFilters,this._gridOptions=gridOptions,this._grid=grid},FilterService.prototype.attachBackendOnFilter=function(){this.subscriber=new Slick.Event,this.subscriber.subscribe(this._gridOptions.onFilterChanged),this.addFilterTemplateToHeaderRow()},FilterService.prototype.testFilterCondition=function(operator,value1,value2){switch(operator){case"<":return value1":return value1>value2;case">=":return value1>=value2;case"!=":case"<>":return value1!==value2;case"=":case"==":return value1===value2}},FilterService.prototype.attachLocalOnFilter=function(dataView){this._dataView=dataView,this.subscriber=new Slick.Event,dataView.setFilterArgs({columnFilters:this._columnFilters,grid:this._grid}),dataView.setFilter(this.customFilter),this.subscriber.subscribe(function(e,args){null!=args.columnId&&dataView.refresh()}),this.addFilterTemplateToHeaderRow()},FilterService.prototype.customFilter=function(item,args){for(var _i=0,_a=Object.keys(args.columnFilters);_i<_a.length;_i++){var columnId=_a[_i],columnFilter=args.columnFilters[columnId],columnIndex=args.grid.getColumnIndex(columnId),columnDef=args.grid.getColumns()[columnIndex],fieldType=(columnDef.field||columnDef.name,columnDef.type||FieldType.string),conditionalFilterFn=columnDef.filter&&columnDef.filter.conditionalFilter?columnDef.filter.conditionalFilter:null,filterSearchType=columnDef.filterSearchType?columnDef.filterSearchType:null,cellValue=item[columnDef.field],fieldSearchValue=columnFilter.searchTerm;void 0===fieldSearchValue&&(fieldSearchValue=""),fieldSearchValue=""+fieldSearchValue;var matches=fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/),operator=columnFilter.operator||(matches?matches[1]:""),searchTerm=matches?matches[2]:"",lastValueChar=matches?matches[3]:"";if(""===searchTerm)return!0;"number"==typeof cellValue&&(cellValue=cellValue.toString());var conditionOptions={fieldType:fieldType,searchTerm:searchTerm,cellValue:cellValue,operator:operator,cellValueLastChar:lastValueChar,filterSearchType:filterSearchType};if(conditionalFilterFn&&"function"==typeof conditionalFilterFn&&conditionalFilterFn(conditionOptions),!FilterConditions.executeMappedCondition(conditionOptions))return!1}return!0},FilterService.prototype.destroy=function(){this.subscriber.unsubscribe()},FilterService.prototype.callbackSearchEvent=function(e,args){this._columnFilters[args.columnDef.id]={columnId:args.columnDef.id,columnDef:args.columnDef,searchTerm:e.target.value},this.triggerEvent(this.subscriber,{columnId:args.columnDef.id,columnDef:args.columnDef,columnFilters:this._columnFilters,searchTerm:e.target.value,grid:this._grid},e)},FilterService.prototype.addFilterTemplateToHeaderRow=function(){for(var _this=this,this_1=this,i=0;i=0&&(grid.setSelectedRows([cell.row]),e.preventDefault())}),grid.onMouseLeave.subscribe(function(e){grid.setSelectedRows([]),e.preventDefault()})},MouseService}(),ResizerService=function(){function ResizerService(router){this.router=router}return ResizerService.prototype.attachAutoResizeDataGrid=function(grid,gridOptions){var _this=this,gridDomElm=$("#"+gridOptions.gridId);if(!gridDomElm||void 0===gridDomElm.offset())return null;this.resizeGrid(grid,gridOptions),$(window).on("resize",function(){_this.resizeGrid(grid,gridOptions)}),this.router.events.subscribe(function(event){$(window).trigger("resize").off("resize")})},ResizerService.prototype.calculateGridNewDimensions=function(gridOptions){var bottomPadding=gridOptions.autoResize&&gridOptions.autoResize.bottomPadding?gridOptions.autoResize.bottomPadding:20;if(bottomPadding&&gridOptions.enablePagination&&(bottomPadding+=35),"function"==typeof $("#"+gridOptions.gridId).offset){var availableHeight=$(window).height()-$("#"+gridOptions.gridId).offset().top-bottomPadding,availableWidth=gridOptions.autoResize&&gridOptions.autoResize.containerId?$("#"+gridOptions.autoResize.containerId).width():$("#"+gridOptions.gridContainerId).width(),minHeight=gridOptions.autoResize&&gridOptions.autoResize.minHeight<0?gridOptions.autoResize.minHeight:180,minWidth=gridOptions.autoResize&&gridOptions.autoResize.minWidth<0?gridOptions.autoResize.minWidth:300,newHeight=availableHeight,newWidth=gridOptions.autoResize&&gridOptions.autoResize.sidePadding?availableWidth-gridOptions.autoResize.sidePadding:availableWidth;return newHeight0){var filterBySeparator=this._odataOptions.filterBySeparator||"and",separatorSpacedOut=" "+filterBySeparator+" ",query=this._odataOptions.filterQueue.join(separatorSpacedOut);this._odataOptions.filter=query,queryTmpArray.push("$filter="+query)}return queryTmpArray.join("&")},OdataService.prototype.getFilterByColumn=function(columnName){return this._columnFilters[columnName]?this._columnFilters[columnName]:null},OdataService.prototype.getFilterCount=function(){return this._odataOptions.filterQueue?this._odataOptions.filterQueue.length:0},Object.defineProperty(OdataService.prototype,"columnFilters",{get:function(){return this._columnFilters},enumerable:!0,configurable:!0}),Object.defineProperty(OdataService.prototype,"options",{get:function(){return this._odataOptions},set:function(options){this._odataOptions=options},enumerable:!0,configurable:!0}),OdataService.prototype.removeColumnFilter=function(fieldName){delete this._columnFilters[fieldName]},OdataService.prototype.saveColumnFilter=function(fieldName,value,searchTerms){this._columnFilters[fieldName]={search:searchTerms,value:value}},OdataService.prototype.updateFilterFromListTerms=function(filterOptions){var _this=this;Array.isArray(filterOptions)?filterOptions.forEach(function(filterOptionObject){_this.updateFilterFromTerm(filterOptionObject)}):this.updateFilterFromTerm(filterOptions)},OdataService.prototype.updateFilterFromTerm=function(filterOptions){var searchBy="",tmpSearchByArray=[],fieldName=filterOptions.fieldName,fieldSearchTerms=filterOptions.listTerm,operator=filterOptions.operator;if(fieldSearchTerms&&fieldSearchTerms.length>0){var tmpSearchTerms=[];if("IN"===operator){for(var j=0,lnj=fieldSearchTerms.length;j0?tmpSearchByArray.join(" and "):"";this._odataOptions.filterQueue&&-1===this._odataOptions.filterQueue.indexOf(filter)&&this._odataOptions.filterQueue.push(filter)},OdataService.prototype.updateOptions=function(options){for(var _i=0,_a=Object.keys(options);_i<_a.length;_i++){var property=_a[_i];if(options.hasOwnProperty(property)&&(this._odataOptions[property]=options[property]),"orderBy"===property||"sortBy"===property){var sortBy=options[property];this._odataOptions.caseType===CaseType.pascalCase&&(Array.isArray(sortBy)?sortBy.forEach(function(field,index,inputArray){inputArray[index]=String.titleCase(field)}):sortBy=String.titleCase(options[property])),this._odataOptions.orderBy=sortBy,this._defaultSortBy=sortBy}}},OdataService}();OdataService.decorators=[{type:_angular_core.Injectable}],OdataService.ctorParameters=function(){return[]};var moment$14=moment___default__default||moment___default,GridOdataService=function(){function GridOdataService(odataService){this.odataService=odataService,this.defaultSortBy="",this.minUserInactivityOnFilter=700}return GridOdataService.prototype.buildQuery=function(){return this.odataService.buildQuery()},GridOdataService.prototype.initOptions=function(options){this.odataService.options=options},GridOdataService.prototype.removeColumnFilter=function(fieldName){this.odataService.removeColumnFilter(fieldName)},GridOdataService.prototype.resetPaginationOptions=function(){this.odataService.updateOptions({skip:0})},GridOdataService.prototype.saveColumnFilter=function(fieldName,value,terms){this.odataService.saveColumnFilter(fieldName,value,terms)},GridOdataService.prototype.onFilterChanged=function(event,args){var searchByArray=[];for(var columnId in args.columnFilters)if(args.columnFilters.hasOwnProperty(columnId)){var columnFilter=args.columnFilters[columnId],columnDef=columnFilter.columnDef,fieldName=columnDef.field||columnDef.name,fieldType=columnDef.type||"string",fieldSearchValue=columnFilter.searchTerm;if(void 0===fieldSearchValue&&(fieldSearchValue=""),"string"!=typeof fieldSearchValue)throw new Error('OData filter term property must be provided type "string", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: "0", value: "0" }, { id: "1", value: "1" }]');var searchTerms=columnFilter.listTerm||[];fieldSearchValue=""+fieldSearchValue;var matches=fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/),operator=columnFilter.operator||(matches?matches[1]:""),searchValue=matches?matches[2]:fieldSearchValue,lastValueChar=matches?matches[3]:"",bypassOdataQuery=columnFilter.bypassBackendQuery||!1;if(fieldName&&""===searchValue){this.removeColumnFilter(fieldName);continue}if(searchValue=searchValue.replace("'","''"),searchValue=encodeURIComponent(searchValue),bypassOdataQuery)fieldName&&this.saveColumnFilter(fieldName,fieldSearchValue,searchTerms);else{var searchBy_1="",fieldNameTitleCase=String.titleCase(fieldName||"");if(searchTerms&&searchTerms.length>0){var tmpSearchTerms=[];if("IN"===operator){for(var j=0,lnj=searchTerms.length;j0?searchByArray.join(" and "):"",skip:void 0}),this.resetPaginationOptions(),this.odataService.buildQuery()},GridOdataService.prototype.onPaginationChanged=function(event,args){return this.odataService.updateOptions({top:args.pageSize,skip:(args.newPage-1)*args.pageSize}),this.odataService.buildQuery()},GridOdataService.prototype.onSortChanged=function(event,args){var sortByArray=[],sortColumns=args.multiColumnSort?args.sortCols:new Array({sortCol:args.sortCol,sortAsc:args.sortAsc});if(sortColumns&&0===sortColumns.length)sortByArray=new Array(this.defaultSortBy);else if(sortColumns)for(var _i=0,sortColumns_1=sortColumns;_i":map="gt";break;case">=":map="ge";break;case"<>":case"!=":map="ne";break;case"=":case"==":default:map="eq"}return map},GridOdataService.prototype.parseUtcDate=function(inputDateString,useUtc){var date=null;if(/^[0-9\-\/]*$/.test(inputDateString)){var dateString=decodeURIComponent(inputDateString),dateMoment=moment$14(new Date(dateString));dateMoment.isValid()&&4===dateMoment.year().toString().length&&(date=useUtc?dateMoment.utc().format():dateMoment.format())}return date},GridOdataService}();GridOdataService.decorators=[{type:_angular_core.Injectable}],GridOdataService.ctorParameters=function(){return[{type:OdataService}]};var SlickPaginationComponent=function(){function SlickPaginationComponent(){this.dataFrom=1,this.dataTo=1,this.itemsPerPage=25,this.pageCount=0,this.pageNumber=1,this.totalItems=0,this.paginationPageSizes=[25,75,100]} -return Object.defineProperty(SlickPaginationComponent.prototype,"gridPaginationOptions",{get:function(){return this._gridPaginationOptions},set:function(gridPaginationOptions){this._gridPaginationOptions=gridPaginationOptions,gridPaginationOptions&&gridPaginationOptions.pagination&&gridPaginationOptions.pagination.totalItems===this.totalItems||this.refreshPagination()},enumerable:!0,configurable:!0}),SlickPaginationComponent.prototype.ngOnInit=function(){},SlickPaginationComponent.prototype.ngAfterViewInit=function(){this._gridPaginationOptions=this._gridPaginationOptions,this._gridPaginationOptions&&this._gridPaginationOptions.pagination&&this._gridPaginationOptions.pagination.totalItems===this.totalItems||this.refreshPagination()},SlickPaginationComponent.prototype.ceil=function(number){return Math.ceil(number)},SlickPaginationComponent.prototype.onChangeItemPerPage=function(event){var itemsPerPage=event.target.value;this.pageCount=Math.ceil(this.totalItems/itemsPerPage),this.pageNumber=1,this.itemsPerPage=itemsPerPage,this.onPageChanged(event,this.pageNumber)},SlickPaginationComponent.prototype.changeToFirstPage=function(event){this.pageNumber=1,this.onPageChanged(event,this.pageNumber)},SlickPaginationComponent.prototype.changeToLastPage=function(event){this.pageNumber=this.pageCount,this.onPageChanged(event,this.pageNumber)},SlickPaginationComponent.prototype.changeToNextPage=function(event){this.pageNumber0&&(this.pageNumber--,this.onPageChanged(event,this.pageNumber))},SlickPaginationComponent.prototype.gotoFirstPage=function(){this.pageNumber=1,this.onPageChanged(void 0,this.pageNumber)},SlickPaginationComponent.prototype.refreshPagination=function(){this._gridPaginationOptions&&this._gridPaginationOptions.pagination&&(this.totalItems!==this._gridPaginationOptions.pagination.totalItems&&(this.pageNumber=1,this.recalculateFromToIndexes()),this.paginationPageSizes=this._gridPaginationOptions.pagination.pageSizes,this.itemsPerPage=this._gridPaginationOptions.pagination.pageSize,this._gridPaginationOptions.onPaginationChanged&&(this.paginationCallback=this._gridPaginationOptions.onPaginationChanged),this.totalItems=this._gridPaginationOptions.pagination.totalItems,this.dataTo=this.itemsPerPage),this.pageCount=Math.ceil(this.totalItems/this.itemsPerPage)},SlickPaginationComponent.prototype.onPageChanged=function(event,pageNumber){if(this.recalculateFromToIndexes(),this.dataTo>this.totalItems&&(this.dataTo=this.totalItems),"function"==typeof this.paginationCallback){var itemsPerPage=this.itemsPerPage;this.paginationCallback(event,{newPage:pageNumber,pageSize:itemsPerPage})}},SlickPaginationComponent.prototype.recalculateFromToIndexes=function(){this.dataFrom=this.pageNumber*this.itemsPerPage-this.itemsPerPage+1,this.dataTo=this.pageNumber*this.itemsPerPage},SlickPaginationComponent}();SlickPaginationComponent.decorators=[{type:_angular_core.Component,args:[{selector:"slick-pagination",template:'\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n ',styles:['\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*="icon-seek-"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*="icon-seek-"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n ']}]}],SlickPaginationComponent.ctorParameters=function(){return[]},SlickPaginationComponent.propDecorators={gridPaginationOptions:[{type:_angular_core.Input}],grid:[{type:_angular_core.Input}]};var GlobalGridOptions={autoEdit:!1,asyncEditorLoading:!1,autoFitColumnsOnFirstLoad:!0,autoResize:{bottomPadding:20,minHeight:180,minWidth:300,sidePadding:0},enableAutoResize:!0,cellHighlightCssClass:"slick-cell-modified",editable:!1,enableCellNavigation:!1,enableColumnPicker:!0,enableColumnReorder:!0,enableMouseOverRow:!0,enablePagination:!1,enableSorting:!0,enableTextSelectionOnCells:!0,explicitInitialization:!1,forceFitColumns:!1,headerRowHeight:35,multiColumnSort:!0,pagination:{pageSizes:[10,15,20,25,30,40,50,75,100],pageSize:25,totalItems:0},rowHeight:35,showHeaderRow:!1,topPanelHeight:25},AngularSlickgridComponent=function(){function AngularSlickgridComponent(resizer,mouseService,filterService,sortService){this.resizer=resizer,this.mouseService=mouseService,this.filterService=filterService,this.sortService=sortService,this._columnFilters={},this.showPagination=!1,this.onFilter=new Slick.Event,this.gridHeight=100,this.gridWidth=600}return Object.defineProperty(AngularSlickgridComponent.prototype,"dataset",{get:function(){return this._dataView.getItems()},set:function(dataset){this._dataset=dataset,this.refreshGridData(dataset)},enumerable:!0,configurable:!0}),AngularSlickgridComponent.prototype.ngOnInit=function(){this.gridHeightString=this.gridHeight+"px",this.gridWidthString=this.gridWidth+"px"},AngularSlickgridComponent.prototype.ngAfterViewInit=function(){if(this._dataset=this._dataset||[],this._gridOptions=this.mergeGridOptions(),this._dataView=new Slick.Data.DataView,this.grid=new Slick.Grid("#"+this.gridId,this._dataView,this.columnDefinitions,this._gridOptions),this.grid.setSelectionModel(new Slick.RowSelectionModel),this._gridOptions.enableColumnPicker){new Slick.Controls.ColumnPicker(this.columnDefinitions,this.grid,this._gridOptions)}this.grid.init(),this._dataView.beginUpdate(),this.attachDifferentHooks(this.grid,this._gridOptions,this._dataView),this._dataView.setItems(this._dataset),this._dataView.endUpdate(),this.attachResizeHook(this.grid,this._gridOptions)},AngularSlickgridComponent.prototype.attachDifferentHooks=function(grid,options,dataView){options.enableSorting&&("function"==typeof options.onSortChanged?this.sortService.attachBackendOnSort(grid,options):this.sortService.attachLocalOnSort(grid,options,this._dataView)),options.enableFiltering&&(this.filterService.init(grid,options,this.columnDefinitions,this._columnFilters),"function"==typeof options.onFilterChanged?this.filterService.attachBackendOnFilter():this.filterService.attachLocalOnFilter(this._dataView)),options.enableMouseOverRow&&this.mouseService.attachOnMouseHover(grid),dataView.onRowCountChanged.subscribe(function(e,args){grid.updateRowCount(),grid.render()}),dataView.onRowsChanged.subscribe(function(e,args){grid.invalidateRows(args.rows),grid.render()})},AngularSlickgridComponent.prototype.attachResizeHook=function(grid,options){this._gridOptions.autoFitColumnsOnFirstLoad&&this.grid.autosizeColumns(),options.enableAutoResize?(this.resizer.attachAutoResizeDataGrid(grid,options),options.autoFitColumnsOnFirstLoad&&grid.autosizeColumns()):this.resizer.resizeGrid(grid,options,{height:this.gridHeight,width:this.gridWidth})},AngularSlickgridComponent.prototype.mergeGridOptions=function(){return this.gridOptions.gridId=this.gridId,this.gridOptions.gridContainerId="slickGridContainer-"+this.gridId,this.gridOptions.enableFiltering&&(this.gridOptions.showHeaderRow=!0),Object.assign({},GlobalGridOptions,this.gridOptions)},AngularSlickgridComponent.prototype.showHeaderRow=function(isShowing){return this.grid.setHeaderRowVisibility(isShowing),isShowing},AngularSlickgridComponent.prototype.toggleHeaderRow=function(){var isShowing=!this.grid.getOptions().showHeaderRow;return this.grid.setHeaderRowVisibility(isShowing),isShowing},AngularSlickgridComponent.prototype.refreshGridData=function(dataset){var _this=this;dataset&&this.grid&&(this._dataView.setItems(dataset),this.grid.invalidate(),this.grid.render(),this._gridOptions.enablePagination&&(this.showPagination=!0,this.gridPaginationOptions=this.mergeGridOptions()),this._gridOptions.enableAutoResize&&setTimeout(function(){_this.resizer.resizeGrid(_this.grid,_this._gridOptions),_this.grid.autosizeColumns()}))},AngularSlickgridComponent}();AngularSlickgridComponent.decorators=[{type:_angular_core.Injectable},{type:_angular_core.Component,args:[{selector:"angular-slickgrid",template:'\n
\n
\n
\n\n \n
\n '}]}],AngularSlickgridComponent.ctorParameters=function(){return[{type:ResizerService},{type:MouseService},{type:FilterService},{type:SortService}]},AngularSlickgridComponent.propDecorators={gridId:[{type:_angular_core.Input}],columnDefinitions:[{type:_angular_core.Input}],gridOptions:[{type:_angular_core.Input}],gridHeight:[{type:_angular_core.Input}],gridWidth:[{type:_angular_core.Input}],dataset:[{type:_angular_core.Input}]};var AngularSlickgridModule=function(){function AngularSlickgridModule(){}return AngularSlickgridModule}();AngularSlickgridModule.decorators=[{type:_angular_core.NgModule,args:[{imports:[_angular_common.CommonModule],declarations:[AngularSlickgridComponent,SlickPaginationComponent],exports:[AngularSlickgridComponent,SlickPaginationComponent],providers:[MouseService,OdataService,FilterService,SortService,ResizerService]}]}],AngularSlickgridModule.ctorParameters=function(){return[]},exports.CaseType=CaseType,exports.FormElementType=FormElementType,exports.FieldType=FieldType,exports.FilterConditions=FilterConditions,exports.FilterTemplates=FilterTemplates,exports.Formatters=Formatters,exports.Sorters=Sorters,exports.FilterService=FilterService,exports.MouseService=MouseService,exports.ResizerService=ResizerService,exports.SortService=SortService,exports.GridOdataService=GridOdataService,exports.SlickPaginationComponent=SlickPaginationComponent,exports.AngularSlickgridComponent=AngularSlickgridComponent,exports.AngularSlickgridModule=AngularSlickgridModule,exports.ɵa=OdataService,Object.defineProperty(exports,"__esModule",{value:!0})}); -//# sourceMappingURL=angular-slickgrid.umd.min.js.map diff --git a/dist/bundles/angular-slickgrid.umd.min.js.map b/dist/bundles/angular-slickgrid.umd.min.js.map deleted file mode 100644 index ca2f03e5c..000000000 --- a/dist/bundles/angular-slickgrid.umd.min.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"angular-slickgrid.umd.min.js","sources":["../../src/components/slick-pagination.component.ts","../../src/global-grid-options.ts","../../src/components/angular-slickgrid.component.ts","../../src/modules/angular-slickgrid.module.ts","../../src/filter-conditions/booleanFilterCondition.ts","../../src/models/caseType.ts","../../src/models/formElementType.ts","../../src/models/fieldType.ts","../../src/filter-conditions/filterUtilities.ts","../../src/filter-conditions/dateUtcFilterCondition.ts","../../src/filter-conditions/dateIsoFilterCondition.ts","../../src/filter-conditions/dateUsShortFilterCondition.ts","../../src/filter-conditions/dateUsFilterCondition.ts","../../src/filter-conditions/dateFilterCondition.ts","../../src/filter-conditions/numberFilterCondition.ts","../../src/filter-conditions/stringFilterCondition.ts","../../src/filter-conditions/executeMappedCondition.ts","../../src/filter-conditions/index.ts","../../src/filter-templates/inputFilterTemplate.ts","../../src/filter-templates/selectFilterTemplate.ts","../../src/filter-templates/index.ts","../../src/formatters/checkboxFormatter.ts","../../src/formatters/checkmarkFormatter.ts","../../src/formatters/dateIsoFormatter.ts","../../src/formatters/dateTimeIsoAmPmFormatter.ts","../../src/formatters/dateTimeUsAmPmFormatter.ts","../../src/formatters/dateTimeUsFormatter.ts","../../src/formatters/dateUsFormatter.ts","../../src/formatters/percentCompleteFormatter.ts","../../src/formatters/percentCompleteBarFormatter.ts","../../src/formatters/progressBarFormatter.ts","../../src/formatters/yesNoFormatter.ts","../../src/formatters/index.ts","../../src/sorters/dateUsShortSorter.ts","../../src/sorters/dateSorter.ts","../../src/sorters/dateIsoSorter.ts","../../src/sorters/dateUsSorter.ts","../../src/sorters/numericSorter.ts","../../src/sorters/stringSorter.ts","../../src/sorters/index.ts","../../src/services/filter.service.ts","../../src/services/mouse.service.ts","../../src/services/resizer.service.ts","../../src/services/sort.service.ts","../../src/services/global-utilities.ts","../../src/services/odata.service.ts","../../src/services/grid-odata.service.ts"],"sourcesContent":["import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { GridOption } from './../models/gridOption.interface';\nexport class SlickPaginationComponent implements AfterViewInit, OnInit {\nprivate _gridPaginationOptions: GridOption;\n/**\n * @param {?} gridPaginationOptions\n * @return {?}\n */\nset gridPaginationOptions(gridPaginationOptions: GridOption) {\n this._gridPaginationOptions = gridPaginationOptions;\n if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @return {?}\n */\nget gridPaginationOptions(): GridOption {\n return this._gridPaginationOptions;\n }\n grid: any;\n dataFrom = 1;\n dataTo = 1;\n itemsPerPage = 25;\n pageCount = 0;\n pageNumber = 1;\n totalItems = 0;\n paginationCallback: Function;\n paginationPageSizes = [25, 75, 100];\nconstructor() { }\n/**\n * @return {?}\n */\nngOnInit() {\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n this._gridPaginationOptions = this._gridPaginationOptions;\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @param {?} number\n * @return {?}\n */\nceil(number: number) {\n return Math.ceil(number);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nonChangeItemPerPage(event: any) {\n const /** @type {?} */ itemsPerPage = /** @type {?} */(( event.target.value));\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\n this.pageNumber = 1;\n this.itemsPerPage = itemsPerPage;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToFirstPage(event: any) {\n this.pageNumber = 1;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToLastPage(event: any) {\n this.pageNumber = this.pageCount;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToNextPage(event: any) {\n if (this.pageNumber < this.pageCount) {\n this.pageNumber++;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToPreviousPage(event: any) {\n if (this.pageNumber > 0) {\n this.pageNumber--;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @return {?}\n */\ngotoFirstPage() {\n this.pageNumber = 1;\n this.onPageChanged(undefined, this.pageNumber);\n }\n/**\n * @return {?}\n */\nrefreshPagination() {\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\n if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) {\n this.pageNumber = 1;\n this.recalculateFromToIndexes();\n }\n\n // calculate and refresh the multiple properties of the pagination UI\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\n this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize;\n if (this._gridPaginationOptions.onPaginationChanged) {\n this.paginationCallback = this._gridPaginationOptions.onPaginationChanged;\n }\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\n this.dataTo = this.itemsPerPage;\n }\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n/**\n * @param {?=} event\n * @param {?=} pageNumber\n * @return {?}\n */\nonPageChanged(event?: Event, pageNumber?: number) {\n this.recalculateFromToIndexes();\n\n if (this.dataTo > this.totalItems) {\n this.dataTo = this.totalItems;\n }\n if (typeof this.paginationCallback === 'function') {\n const /** @type {?} */ itemsPerPage = this.itemsPerPage;\n this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage });\n }\n }\n/**\n * @return {?}\n */\nrecalculateFromToIndexes() {\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\n this.dataTo = (this.pageNumber * this.itemsPerPage);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n selector: 'slick-pagination',\n template: `\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n `,\n styles: [\n `\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n `\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridPaginationOptions': [{ type: Input },],\n'grid': [{ type: Input },],\n};\n}\n\nfunction SlickPaginationComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nSlickPaginationComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSlickPaginationComponent.ctorParameters;\n/** @type {?} */\nSlickPaginationComponent.propDecorators;\n/** @type {?} */\nSlickPaginationComponent.prototype._gridPaginationOptions;\n/** @type {?} */\nSlickPaginationComponent.prototype.grid;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataFrom;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataTo;\n/** @type {?} */\nSlickPaginationComponent.prototype.itemsPerPage;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageCount;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageNumber;\n/** @type {?} */\nSlickPaginationComponent.prototype.totalItems;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationCallback;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationPageSizes;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './models/gridOption.interface';\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n enableAutoResize: true,\n cellHighlightCssClass: 'slick-cell-modified',\n editable: false,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableMouseOverRow: true,\n enablePagination: false,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: false,\n forceFitColumns: false,\n headerRowHeight: 35,\n multiColumnSort: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 25\n};\n","import { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { ColumnFilters } from './../models/columnFilters.interface';\nimport { FormElementType } from './../models/formElementType';\nimport { GridOption } from './../models/gridOption.interface';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { SortService } from './../services/sort.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { GlobalGridOptions } from './../global-grid-options';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class AngularSlickgridComponent implements AfterViewInit, OnInit {\nprivate _dataset: any[];\nprivate _dataView: any;\nprivate _gridOptions: GridOption;\nprivate _columnFilters: ColumnFilters = {};\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n showPagination = false;\n onFilter = new Slick.Event();\n\n gridId: string;\n columnDefinitions: Column[];\n gridOptions: GridOption;\n gridHeight = 100;\n gridWidth = 600;\n/**\n * @param {?} dataset\n * @return {?}\n */\nset dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n/**\n * @return {?}\n */\nget dataset(): any[] {\n return this._dataView.getItems();\n }\n/**\n * @param {?} resizer\n * @param {?} mouseService\n * @param {?} filterService\n * @param {?} sortService\n */\nconstructor(private resizer: ResizerService,\nprivate mouseService: MouseService,\nprivate filterService: FilterService,\nprivate sortService: SortService) {\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this._gridOptions = this.mergeGridOptions();\n\n this._dataView = new Slick.Data.DataView();\n\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions);\n this.grid.setSelectionModel(new Slick.RowSelectionModel());\n\n if (this._gridOptions.enableColumnPicker) {\n const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions);\n }\n\n this.grid.init();\n this._dataView.beginUpdate();\n this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView);\n\n this._dataView.setItems(this._dataset);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this._gridOptions);\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @param {?} dataView\n * @return {?}\n */\nattachDifferentHooks(grid: any, options: GridOption, dataView: any) {\n // attach external sorting (backend) when available or default onSort (dataView)\n if (options.enableSorting) {\n (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView);\n }\n\n // attach external filter (backend) when available or default onSort (dataView)\n if (options.enableFiltering) {\n this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters);\n (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView);\n }\n\n // if enable, change background color on mouse over\n if (options.enableMouseOverRow) {\n this.mouseService.attachOnMouseHover(grid);\n }\n\n dataView.onRowCountChanged.subscribe((e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n dataView.onRowsChanged.subscribe((e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\nattachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (this._gridOptions.autoFitColumnsOnFirstLoad) {\n this.grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid(grid, options);\n if (options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n } else {\n this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth });\n }\n }\n/**\n * @return {?}\n */\nmergeGridOptions(): GridOption {\n this.gridOptions.gridId = this.gridId;\n this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (this.gridOptions.enableFiltering) {\n this.gridOptions.showHeaderRow = true;\n }\n const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions);\n return options;\n }\n/**\n * Toggle the filter row displayed on first row\n * @param {?} isShowing\n * @return {?}\n */\nshowHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * Toggle the filter row displayed on first row\n * @return {?}\n */\ntoggleHeaderRow() {\n const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * @param {?} dataset\n * @return {?}\n */\nrefreshGridData(dataset: any) {\n if (dataset && this.grid) {\n this._dataView.setItems(dataset);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this._gridOptions.enablePagination) {\n this.showPagination = true;\n this.gridPaginationOptions = this.mergeGridOptions();\n }\n if (this._gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n setTimeout(() => {\n this.resizer.resizeGrid(this.grid, this._gridOptions);\n this.grid.autosizeColumns();\n });\n }\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n{ type: Component, args: [{\n selector: 'angular-slickgrid',\n template: `\n
\n
\n
\n\n \n
\n `\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ResizerService, },\n{type: MouseService, },\n{type: FilterService, },\n{type: SortService, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridId': [{ type: Input },],\n'columnDefinitions': [{ type: Input },],\n'gridOptions': [{ type: Input },],\n'gridHeight': [{ type: Input },],\n'gridWidth': [{ type: Input },],\n'dataset': [{ type: Input },],\n};\n}\n\nfunction AngularSlickgridComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridComponent.ctorParameters;\n/** @type {?} */\nAngularSlickgridComponent.propDecorators;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataset;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataView;\n/** @type {?} */\nAngularSlickgridComponent.prototype._gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype._columnFilters;\n/** @type {?} */\nAngularSlickgridComponent.prototype.grid;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridPaginationOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeightString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidthString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.showPagination;\n/** @type {?} */\nAngularSlickgridComponent.prototype.onFilter;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridId;\n/** @type {?} */\nAngularSlickgridComponent.prototype.columnDefinitions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeight;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidth;\n/** @type {?} */\nAngularSlickgridComponent.prototype.resizer;\n/** @type {?} */\nAngularSlickgridComponent.prototype.mouseService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.filterService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.sortService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Formatters } from './../formatters/index';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\nexport class AngularSlickgridModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n providers: [\n MouseService,\n OdataService,\n FilterService,\n SortService,\n ResizerService\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction AngularSlickgridModule_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { FilterCondition } from './../models/filterCondition.interface';\r\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\n/**\n * @param {?} str\n * @return {?}\n */\nfunction parseBoolean(str: string) {\r\n return /(true|1)/i.test(str);\r\n}\r\n\r\nexport const /** @type {?} */ booleanFilterCondition: FilterCondition = (options: FilterConditionOption) => {\r\n return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm);\r\n};\r\n","\nexport type CaseType = number;\nexport let CaseType: any = {};\nCaseType.camelCase = 0;\nCaseType.pascalCase = 1;\nCaseType.snakeCase = 2;\nCaseType[CaseType.camelCase] = \"camelCase\";\nCaseType[CaseType.pascalCase] = \"pascalCase\";\nCaseType[CaseType.snakeCase] = \"snakeCase\";\n\r\n","\nexport type FormElementType = number;\nexport let FormElementType: any = {};\nFormElementType.input = 0;\nFormElementType.multiSelect = 1;\nFormElementType.select = 2;\nFormElementType.textarea = 3;\nFormElementType[FormElementType.input] = \"input\";\nFormElementType[FormElementType.multiSelect] = \"multiSelect\";\nFormElementType[FormElementType.select] = \"select\";\nFormElementType[FormElementType.textarea] = \"textarea\";\n\r\n","\nexport type FieldType = number;\nexport let FieldType: any = {};\nFieldType.unknown = 0;\nFieldType.string = 1;\nFieldType.boolean = 2;\nFieldType.number = 3;\nFieldType.date = 4;\nFieldType.dateIso = 5;\nFieldType.dateUtc = 6;\nFieldType.dateTime = 7;\nFieldType.dateTimeIso = 8;\nFieldType.dateUs = 9;\nFieldType.dateUsShort = 10;\nFieldType.dateTimeUs = 11;\nFieldType.dateTimeUsShort = 12;\nFieldType[FieldType.unknown] = \"unknown\";\nFieldType[FieldType.string] = \"string\";\nFieldType[FieldType.boolean] = \"boolean\";\nFieldType[FieldType.number] = \"number\";\nFieldType[FieldType.date] = \"date\";\nFieldType[FieldType.dateIso] = \"dateIso\";\nFieldType[FieldType.dateUtc] = \"dateUtc\";\nFieldType[FieldType.dateTime] = \"dateTime\";\nFieldType[FieldType.dateTimeIso] = \"dateTimeIso\";\nFieldType[FieldType.dateUs] = \"dateUs\";\nFieldType[FieldType.dateUsShort] = \"dateUsShort\";\nFieldType[FieldType.dateTimeUs] = \"dateTimeUs\";\nFieldType[FieldType.dateTimeUsShort] = \"dateTimeUsShort\";\n\r\n","import { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ mapDateFormatByFieldType: Function = (fieldType: FieldType) => {\n switch (fieldType) {\n case FieldType.dateUs:\n return 'M/D/YYYY';\n case FieldType.dateTimeUs:\n return 'M/D/YYYY h:m:s';\n case FieldType.dateUsShort:\n return 'M/D/YY';\n case FieldType.dateTimeUsShort:\n return 'M/D/YY h:m:s';\n case FieldType.dateTimeIso:\n return 'YYYY-MM-DD h:m:s';\n case FieldType.dateIso:\n default:\n return 'YYYY-MM-DD';\n }\n};\n\nexport const /** @type {?} */ testFilterCondition: Function = (operator: string, value1: any, value2: any): boolean => {\n switch (operator) {\n case '<': return (value1 < value2);\n case '<=': return (value1 <= value2);\n case '>': return (value1 > value2);\n case '>=': return (value1 >= value2);\n case '!=':\n case '<>': return (value1 !== value2);\n case '=':\n case '==': return (value1 === value2);\n }\n return true;\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!options.filterSearchType) {\n throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }');\n }\n\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FieldType } from '../models/fieldType';\nimport { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso;\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue);\n const /** @type {?} */ dateSearch = moment(options.searchTerm);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ numberFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ stringFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n // make sure the both search & cell value are string\n // and make them lower case for case insensitive filtering\n const /** @type {?} */ cellValue = options.cellValue.toString().toLowerCase();\n const /** @type {?} */ searchTerm = options.searchTerm.toString().toLowerCase();\n\n if (options.operator === '*') {\n return cellValue.endsWith(searchTerm);\n } else if (options.operator === '' && options.cellValueLastChar === '*') {\n return cellValue.startsWith(searchTerm);\n } else if (options.operator === '') {\n return cellValue.includes(searchTerm);\n }\n return testFilterCondition(options.operator || '==', cellValue, searchTerm);\n};\n","import { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { FilterCondition } from '../models/filterCondition.interface';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ executeMappedCondition: FilterCondition = (options: FilterConditionOption) => {\n // execute the mapped type, or default to String condition check\n switch (options.fieldType) {\n case FieldType.boolean:\n return booleanFilterCondition(options);\n case FieldType.date:\n return dateFilterCondition(options);\n case FieldType.dateUtc:\n return dateUtcFilterCondition(options);\n case FieldType.dateIso:\n return dateIsoFilterCondition(options);\n case FieldType.dateUs:\n case FieldType.dateTimeUs:\n return dateUsFilterCondition(options);\n case FieldType.dateUsShort:\n case FieldType.dateTimeUsShort:\n return dateUsShortFilterCondition(options);\n case FieldType.number:\n return numberFilterCondition(options);\n case FieldType.string:\n default:\n return stringFilterCondition(options);\n }\n};\n","import { FilterConditionOption } from './../models/filterConditionOption.interface';\r\nimport { booleanFilterCondition } from './booleanFilterCondition';\r\nimport { dateUtcFilterCondition } from './dateUtcFilterCondition';\r\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\r\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\r\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\r\nimport { dateFilterCondition } from './dateFilterCondition';\r\nimport { executeMappedCondition } from './executeMappedCondition';\r\nimport { numberFilterCondition } from './numberFilterCondition';\r\nimport { stringFilterCondition } from './stringFilterCondition';\r\nimport { testFilterCondition } from './filterUtilities';\r\n\r\nexport const /** @type {?} */ FilterConditions = {\r\n executeMappedCondition: executeMappedCondition,\r\n booleanFilter: booleanFilterCondition,\r\n dateFilter: dateFilterCondition,\r\n dateIsoFilter: dateIsoFilterCondition,\r\n dateUtcFilter: dateUtcFilterCondition,\r\n dateUsFilter: dateUsFilterCondition,\r\n dateUsShortFilter: dateUsShortFilterCondition,\r\n numberFilter: numberFilterCondition,\r\n stringFilter: stringFilterCondition,\r\n testFilter: testFilterCondition\r\n};\r\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n return ``;\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n if (!columnDef.filter.selectOptions) {\n throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`);\n }\n let /** @type {?} */ options = '';\n columnDef.filter.selectOptions.forEach((option: any) => {\n options += ``;\n });\n return ``;\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\nimport { inputFilterTemplate } from './inputFilterTemplate';\nimport { selectFilterTemplate } from './selectFilterTemplate';\n\nexport const /** @type {?} */ FilterTemplates = {\n input: inputFilterTemplate,\n select: selectFilterTemplate\n};\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkboxFormatter: Formatter = (row, cell, value, columnDef, dataContext) =>\n value ? '☑' : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkmarkFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? `` : '';\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY hh:mm:ss') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '-';\r\n } else if (value < 50) {\r\n return `${value}%`;\r\n } else {\r\n return `${value}%`;\r\n }\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'red';\r\n } else if (value < 70) {\r\n color = 'silver';\r\n } else {\r\n color = 'green';\r\n }\r\n\r\n return ``;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ progressBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'danger';\r\n } else if (value < 70) {\r\n color = 'warning';\r\n } else {\r\n color = 'success';\r\n }\r\n\r\n return `
\r\n
\r\n ${value}%\r\n
\r\n
`;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ yesNoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string =>\r\n value ? 'Yes' : 'No';\r\n","import { Column } from './../models/column.interface';\r\nimport { checkboxFormatter } from './checkboxFormatter';\r\nimport { checkmarkFormatter } from './checkmarkFormatter';\r\nimport { dateIsoFormatter } from './dateIsoFormatter';\r\nimport { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter';\r\nimport { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter';\r\nimport { dateTimeUsFormatter } from './dateTimeUsFormatter';\r\nimport { dateUsFormatter } from './dateUsFormatter';\r\nimport { percentCompleteFormatter } from './percentCompleteFormatter';\r\nimport { percentCompleteBarFormatter } from './percentCompleteBarFormatter';\r\nimport { progressBarFormatter } from './progressBarFormatter';\r\nimport { yesNoFormatter } from './yesNoFormatter';\r\n// import { Group, GroupTotals } from '../core'\r\n// import { Item } from '../dataview'\r\n\r\n\r\n/*\r\nexport interface GroupFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string\r\n}\r\n\r\nexport interface GroupTotalsFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string\r\n}\r\n*/\r\nexport const /** @type {?} */ Formatters = {\r\n checkbox: checkboxFormatter,\r\n checkmark: checkmarkFormatter,\r\n dateIso: dateIsoFormatter,\r\n dateTimeIso: dateIsoFormatter,\r\n dateTimeIsoAmPm: dateTimeIsoAmPmFormatter,\r\n dateUs: dateUsFormatter,\r\n dateTimeUs: dateTimeUsFormatter,\r\n dateTimeUsAmPm: dateTimeUsAmPmFormatter,\r\n percentComplete: percentCompleteFormatter,\r\n percentCompleteBar: percentCompleteBarFormatter,\r\n progressBar: progressBarFormatter,\r\n yesNo: yesNoFormatter\r\n};\r\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, moment.ISO_8601).isValid() || !moment(value2, moment.ISO_8601, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1);\n const /** @type {?} */ date2 = moment(value2);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ numericSorter: Sorter = (value1, value2, sortDirection) => {\n const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1);\n const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2);\n return sortDirection * (x === y ? 0 : (x > y ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ stringSorter: Sorter = (value1, value2, sortDirection) => {\n return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1));\n};\n","import { dateUsShortSorter } from './dateUsShortSorter';\r\nimport { dateSorter } from './dateSorter';\r\nimport { dateIsoSorter } from './dateIsoSorter';\r\nimport { dateUsSorter } from './dateUsSorter';\r\nimport { numericSorter } from './numericSorter';\r\nimport { stringSorter } from './stringSorter';\r\n\r\nexport const /** @type {?} */ Sorters = {\r\n date: dateSorter,\r\n dateIso: dateIsoSorter,\r\n dateUs: dateUsSorter,\r\n dateUsShort: dateUsShortSorter,\r\n numeric: numericSorter,\r\n string: stringSorter\r\n};\r\n","import { FilterConditions } from '../filter-conditions/index';\nimport { Column } from '../models/column.interface';\nimport { ColumnFilters } from '../models/columnFilters.interface';\nimport { FieldType } from '../models/fieldType';\nimport { FilterChangedArgs } from '../models/filterChangedArgs.interface';\nimport { FormElementType } from '../models/formElementType';\nimport { GridOption } from '../models/gridOption.interface';\nimport { FilterTemplates } from './../filter-templates/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class FilterService {\n _columnDefinitions: Column[];\n _columnFilters: ColumnFilters;\n _dataView: any;\n _grid: any;\n _gridOptions: GridOption;\n subscriber: any;\nconstructor() { }\n/**\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?} columnDefinitions\n * @param {?} columnFilters\n * @return {?}\n */\ninit(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any) {\n this._columnDefinitions = columnDefinitions;\n this._columnFilters = columnFilters;\n this._gridOptions = gridOptions;\n this._grid = grid;\n }\n/**\n * Attach a backend filter hook to the grid\n * @return {?}\n */\nattachBackendOnFilter() {\n this.subscriber = new Slick.Event();\n this.subscriber.subscribe(this._gridOptions.onFilterChanged);\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} operator\n * @param {?} value1\n * @param {?} value2\n * @return {?}\n */\ntestFilterCondition(operator: string, value1: any, value2: any) {\n switch (operator) {\n case '<': return (value1 < value2) ? true : false;\n case '<=': return (value1 <= value2) ? true : false;\n case '>': return (value1 > value2) ? true : false;\n case '>=': return (value1 >= value2) ? true : false;\n case '!=':\n case '<>': return (value1 !== value2) ? true : false;\n case '=':\n case '==': return (value1 === value2) ? true : false;\n }\n }\n/**\n * Attach a local filter hook to the grid\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnFilter(dataView: any) {\n this._dataView = dataView;\n this.subscriber = new Slick.Event();\n\n dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid });\n dataView.setFilter(this.customFilter);\n\n this.subscriber.subscribe((e: any, args: any) => {\n const /** @type {?} */ columnId = args.columnId;\n if (columnId != null) {\n dataView.refresh();\n }\n });\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} item\n * @param {?} args\n * @return {?}\n */\ncustomFilter(item: any, args: any) {\n for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId);\n const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex];\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || FieldType.string;\n const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null;\n const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null;\n\n let /** @type {?} */ cellValue = item[columnDef.field];\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n\n // no need to query if search value is empty\n if (searchTerm === '') {\n return true;\n }\n\n if (typeof cellValue === 'number') {\n cellValue = cellValue.toString();\n }\n\n const /** @type {?} */ conditionOptions = {\n fieldType: fieldType,\n searchTerm: searchTerm,\n cellValue: cellValue,\n operator: operator,\n cellValueLastChar: lastValueChar,\n filterSearchType: filterSearchType\n };\n if (conditionalFilterFn && typeof conditionalFilterFn === 'function') {\n conditionalFilterFn(conditionOptions);\n }\n if (!FilterConditions.executeMappedCondition(conditionOptions)) {\n return false;\n }\n }\n return true;\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\n/**\n * @param {?} e\n * @param {?} args\n * @return {?}\n */\ncallbackSearchEvent(e: any, args: any) {\n this._columnFilters[args.columnDef.id] = {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n searchTerm: e.target.value\n };\n\n this.triggerEvent(this.subscriber, {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n columnFilters: this._columnFilters,\n searchTerm: e.target.value,\n grid: this._grid\n }, e);\n }\n/**\n * @return {?}\n */\naddFilterTemplateToHeaderRow() {\n for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) {\n if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) {\n let /** @type {?} */ filterTemplate = '';\n let /** @type {?} */ elm = null;\n let /** @type {?} */ header;\n const /** @type {?} */ columnDef = this._columnDefinitions[i];\n const /** @type {?} */ columnId = columnDef.id;\n const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null;\n let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : '';\n\n // keep the filter in a columnFilters for later reference\n this.keepColumnFilters(searchTerm, listTerm, columnDef);\n\n if (!columnDef.filter) {\n searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null;\n filterTemplate = FilterTemplates.input(searchTerm, columnDef);\n } else {\n // custom Select template\n if (columnDef.filter.type === FormElementType.select) {\n filterTemplate = FilterTemplates.select(searchTerm, columnDef);\n }\n }\n\n // create the DOM Element\n header = this._grid.getHeaderRowColumn(columnDef.id);\n $(header).empty();\n elm = $(filterTemplate);\n elm.val(searchTerm);\n elm.data('columnId', columnDef.id);\n if (elm && typeof elm.appendTo === 'function') {\n elm.appendTo(header);\n }\n\n // depending on the DOM Element type, we will watch the corrent event\n const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input;\n switch (filterType) {\n case FormElementType.select:\n case FormElementType.multiSelect:\n elm.change((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n case FormElementType.input:\n default:\n elm.keyup((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n }\n }\n }\n }\n/**\n * @param {?} searchTerm\n * @param {?} listTerm\n * @param {?} columnDef\n * @return {?}\n */\nprivate keepColumnFilters(searchTerm: string, listTerm: any, columnDef: any) {\n if (searchTerm) {\n this._columnFilters[columnDef.id] = {\n columnId: columnDef.id,\n columnDef: columnDef,\n searchTerm: searchTerm\n };\n if (listTerm) {\n this._columnFilters.listTerm = listTerm;\n }\n }\n }\n/**\n * @param {?} evt\n * @param {?} args\n * @param {?} e\n * @return {?}\n */\nprivate triggerEvent(evt: any, args: any, e: any) {\n e = e || new Slick.EventData();\n return evt.notify(args, e, args.grid);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FilterService_tsickle_Closure_declarations() {\n/** @type {?} */\nFilterService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFilterService.ctorParameters;\n/** @type {?} */\nFilterService.prototype._columnDefinitions;\n/** @type {?} */\nFilterService.prototype._columnFilters;\n/** @type {?} */\nFilterService.prototype._dataView;\n/** @type {?} */\nFilterService.prototype._grid;\n/** @type {?} */\nFilterService.prototype._gridOptions;\n/** @type {?} */\nFilterService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\nexport class MouseService {\n/**\n * @param {?} grid\n * @return {?}\n */\nattachOnMouseHover(grid: any) {\r\n grid.onMouseEnter.subscribe((e: any) => {\r\n const /** @type {?} */ cell = grid.getCellFromEvent(e);\r\n if (cell && cell.row >= 0) {\r\n grid.setSelectedRows([cell.row]);\r\n e.preventDefault();\r\n }\r\n });\r\n grid.onMouseLeave.subscribe((e: any) => {\r\n grid.setSelectedRows([]);\r\n e.preventDefault();\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\nimport { GridOption } from './../models/gridOption.interface';\n\ndeclare var $: any;\n\n// global constants, height/width are in pixels\nconst /** @type {?} */ DATAGRID_MIN_HEIGHT = 180;\nconst /** @type {?} */ DATAGRID_MIN_WIDTH = 300;\nconst /** @type {?} */ DATAGRID_BOTTOM_PADDING = 20;\nconst /** @type {?} */ DATAGRID_PAGINATION_HEIGHT = 35;\nexport class ResizerService {\n/**\n * @param {?} router\n */\nconstructor(private router: Router) {\n }\n/**\n * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\n * Options: we could also provide a % factor to resize on each height/width independently\n * @param {?} grid\n * @param {?} gridOptions\n * @return {?}\n */\nattachAutoResizeDataGrid(grid: any, gridOptions: GridOption): any|void {\n // if we can't find the grid to resize, return without attaching anything\n const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`);\n if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') {\n return null;\n }\n\n // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load)\n this.resizeGrid(grid, gridOptions);\n\n // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load\n // -- attach auto-resize to Window object only if it exist\n $(window).on('resize', () => {\n this.resizeGrid(grid, gridOptions);\n });\n\n // destroy the resizer on route change\n this.router.events.subscribe((event: NavigationEnd) => {\n $(window).trigger('resize').off('resize');\n });\n }\n/**\n * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation\n * object gridOptions\n * @param {?} gridOptions\n * @return {?}\n */\ncalculateGridNewDimensions(gridOptions: GridOption): any {\n let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING;\n if (bottomPadding && gridOptions.enablePagination) {\n bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding\n }\n if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') {\n return;\n }\n const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding;\n const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width();\n const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT;\n const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH;\n\n let /** @type {?} */ newHeight = availableHeight;\n let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth;\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n return {\n height: newHeight,\n width: newWidth\n };\n }\n/**\n * Resize the datagrid to fit the browser height & width\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?=} newSizes\n * @return {?}\n */\nresizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}): void {\n // calculate new available sizes but with minimum height of 220px\n newSizes = newSizes || this.calculateGridNewDimensions(gridOptions);\n\n if (newSizes) {\n // apply these new height/width to the datagrid\n $(`#${gridOptions.gridId}`).height(newSizes.height);\n $(`#${gridOptions.gridId}`).width(newSizes.width);\n $(`#${gridOptions.gridContainerId}`).height(newSizes.height);\n $(`#${gridOptions.gridContainerId}`).width(newSizes.width);\n\n // resize the slickgrid canvas on all browser except some IE versions\n // exclude all IE below IE11\n // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape'\n if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) {\n grid.resizeCanvas();\n }\n\n // also call the grid auto-size columns so that it takes available when going bigger\n grid.autosizeColumns();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Router, },\n];\n}\n\nfunction ResizerService_tsickle_Closure_declarations() {\n/** @type {?} */\nResizerService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nResizerService.ctorParameters;\n/** @type {?} */\nResizerService.prototype.router;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './../models/gridOption.interface';\nimport { FieldType } from './../models/fieldType';\nimport { Sorter } from './../models/sorter.interface';\nimport { Sorters } from './../sorters/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\nexport class SortService {\n subscriber: any;\nconstructor() { }\n/**\n * Attach a backend sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @return {?}\n */\nattachBackendOnSort(grid: any, gridOptions: GridOption) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe(gridOptions.onSortChanged);\n }\n/**\n * Attach a local sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n dataView.sort(function (dataRow1: any, dataRow2: any) {\n for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) {\n const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1;\n const /** @type {?} */ sortField = sortColumns[i].sortCol.field;\n const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string';\n const /** @type {?} */ value1 = dataRow1[sortField];\n const /** @type {?} */ value2 = dataRow2[sortField];\n let /** @type {?} */ result = 0;\n\n switch (fieldType) {\n case FieldType.number:\n result = Sorters.numeric(value1, value2, sortDirection);\n break;\n case FieldType.date:\n result = Sorters.date(value1, value2, sortDirection);\n break;\n case FieldType.dateIso:\n result = Sorters.dateIso(value1, value2, sortDirection);\n break;\n case FieldType.dateUs:\n result = Sorters.dateUs(value1, value2, sortDirection);\n break;\n case FieldType.dateUsShort:\n result = Sorters.dateUsShort(value1, value2, sortDirection);\n break;\n default:\n result = Sorters.string(value1, value2, sortDirection);\n break;\n }\n\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n });\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction SortService_tsickle_Closure_declarations() {\n/** @type {?} */\nSortService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSortService.ctorParameters;\n/** @type {?} */\nSortService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","declare interface StringConstructor {\n allTitleCase(inputStr: string): string;\n format(inputStr: string, args: any): string;\n padZero(length: number): string;\n trim(inputStr: string): string;\n titleCase(inputStr: string): string;\n}\n\n\nString.format = function(format: string, args: any): string {\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] !== 'undefined') ? args[number] : match;\n });\n};\n\nString.padZero = function (this: string, length: number) {\n let /** @type {?} */ s = this;\n while (s.length < length) {\n s = '0' + s;\n }\n return s;\n};\n\n/**\n * Trim any extra white space from the string\n * @param string inputStr\n * @returns string outputStr\n */\nString.trim = function(inputStr: string): string {\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n */\nString.allTitleCase = function(inputStr: string): string {\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\n });\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n*/\nString.titleCase = function(inputStr: string): string {\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\n};\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from '../models/caseType';\nimport { OdataOption } from './../models/odataOption.interface';\nexport class OdataService {\n _columnFilters: any;\n _defaultSortBy: string;\n _odataOptions: OdataOption;\nconstructor() {\n this._odataOptions = {\n filterQueue: [],\n orderBy: ''\n };\n this._defaultSortBy = '';\n this._columnFilters = {};\n }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ queryTmpArray = [];\n\n if (this._odataOptions.top) {\n queryTmpArray.push(`$top=${this._odataOptions.top}`);\n }\n if (this._odataOptions.skip) {\n queryTmpArray.push(`$skip=${this._odataOptions.skip}`);\n }\n if (this._odataOptions.orderBy) {\n let /** @type {?} */ argument = '';\n if (Array.isArray(this._odataOptions.orderBy)) {\n argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc\n } else {\n argument = this._odataOptions.orderBy;\n }\n queryTmpArray.push(`$orderby=${argument}`);\n }\n if (this._odataOptions.filterBy || this._odataOptions.filter) {\n if (this._odataOptions.filter) {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ filterStr = this._odataOptions.filter;\n if (Array.isArray(this._odataOptions.filter)) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n filterStr = this._odataOptions.filter.join(separatorSpacedOut);\n }\n this._odataOptions.filterQueue.push(`(${filterStr})`);\n }\n // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered\n if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) {\n if (this._odataOptions.filterBy.searchTerm !== '') {\n this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm);\n this.updateFilterFromListTerms(this._odataOptions.filterBy);\n }\n }\n }\n if (this._odataOptions.filterQueue.length > 0) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut);\n this._odataOptions.filter = query; // overwrite with\n queryTmpArray.push(`$filter=${query}`);\n }\n\n // join all the odata functions by a '&'\n return queryTmpArray.join('&');\n }\n/**\n * @param {?} columnName\n * @return {?}\n */\ngetFilterByColumn(columnName: string): string {\n return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null;\n }\n/**\n * @return {?}\n */\ngetFilterCount(): number {\n return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0;\n }\n/**\n * @return {?}\n */\nget columnFilters(): any[] {\n return this._columnFilters;\n }\n/**\n * @return {?}\n */\nget options(): OdataOption {\n return this._odataOptions;\n }\n/**\n * @param {?} options\n * @return {?}\n */\nset options(options: OdataOption) {\n this._odataOptions = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string) {\n delete this._columnFilters[fieldName];\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} searchTerms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: any, searchTerms?: any[]) {\n this._columnFilters[fieldName] = {\n search: searchTerms,\n value: value\n };\n }\n/**\n * Update the filter by a list of terms usually passed manually by the user as default filters\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromListTerms(filterOptions: any) {\n // build the filter query\n if (Array.isArray(filterOptions)) {\n filterOptions.forEach((filterOptionObject) => {\n this.updateFilterFromTerm(filterOptionObject);\n });\n } else {\n this.updateFilterFromTerm(filterOptions);\n }\n }\n/**\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromTerm(filterOptions: any) {\n let /** @type {?} */ searchBy = '';\n const /** @type {?} */ tmpSearchByArray = [];\n const /** @type {?} */ fieldName = filterOptions.fieldName;\n const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm;\n const /** @type {?} */ operator = filterOptions.operator;\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (!!fieldSearchTerms && fieldSearchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `$(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `$(${searchBy})`;\n }\n }\n\n // push to our temp array and also trim white spaces\n tmpSearchByArray.push(String.trim(searchBy));\n\n // add to the filter queue only if it doesn't exist in the queue\n const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : '';\n if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) {\n this._odataOptions.filterQueue.push(filter);\n }\n }\n/**\n * Change any OData options that will be used to build the query\n * @param {?} options\n * @return {?}\n */\nupdateOptions(options: OdataOption) {\n for (const /** @type {?} */ property of Object.keys(options)) {\n if (options.hasOwnProperty(property)) {\n this._odataOptions[property] = options[property]; // replace of the property\n }\n\n // we need to keep the defaultSortBy for references whenever the user removes his Sorting\n // then we would revert to the defaultSortBy and the only way is to keep a hard copy here\n if (property === 'orderBy' || property === 'sortBy') {\n let /** @type {?} */ sortBy = options[property];\n\n // make sure first char of each orderBy field is capitalize\n if (this._odataOptions.caseType === CaseType.pascalCase) {\n if (Array.isArray(sortBy)) {\n sortBy.forEach((field, index, inputArray) => {\n inputArray[index] = String.titleCase(field);\n });\n } else {\n sortBy = String.titleCase(options[property]);\n }\n }\n this._odataOptions.orderBy = sortBy;\n this._defaultSortBy = sortBy;\n }\n }\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOdataService.ctorParameters;\n/** @type {?} */\nOdataService.prototype._columnFilters;\n/** @type {?} */\nOdataService.prototype._defaultSortBy;\n/** @type {?} */\nOdataService.prototype._odataOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from './../models/caseType';\nimport { FilterChangedArgs } from './../models/filterChangedArgs.interface';\nimport { FieldType } from './../models/fieldType';\nimport { OdataOption } from './../models/odataOption.interface';\nimport { PaginationChangedArgs } from './../models/paginationChangedArgs.interface';\nimport { SortChangedArgs } from './../models/sortChangedArgs.interface';\nimport { OdataService } from './odata.service';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_;\nexport class GridOdataService {\n defaultSortBy = '';\n minUserInactivityOnFilter = 700;\n/**\n * @param {?} odataService\n */\nconstructor(private odataService: OdataService) { }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} options\n * @return {?}\n */\ninitOptions(options: OdataOption): void {\n this.odataService.options = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n this.odataService.removeColumnFilter(fieldName);\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n this.odataService.updateOptions({\n skip: 0\n });\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n this.odataService.saveColumnFilter(fieldName, value, terms);\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n let /** @type {?} */ searchBy: string = '';\n let /** @type {?} */ timer: any = 0;\n const /** @type {?} */ searchByArray = [];\n\n // loop through all columns to inspect filters\n for (const /** @type {?} */ columnId in args.columnFilters) {\n if (args.columnFilters.hasOwnProperty(columnId)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnDef = columnFilter.columnDef;\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || 'string';\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n if (typeof fieldSearchValue !== 'string') {\n throw new Error(`OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n const /** @type {?} */ searchTerms = columnFilter.listTerm || [];\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n let /** @type {?} */ searchValue = (!!matches) ? matches[2] : fieldSearchValue;\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false;\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '') {\n this.removeColumnFilter(fieldName);\n continue;\n }\n\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n searchValue = encodeURIComponent(searchValue); // encode URI of the final search value\n\n // extra query arguments\n if (bypassOdataQuery) {\n // push to our temp array and also trim white spaces\n if (fieldName) {\n this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms);\n }\n } else {\n let /** @type {?} */ searchBy = '';\n\n // titleCase the fieldName so that it matches the WebApi names\n const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || '');\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `(${searchBy})`;\n }\n } else if (operator === '*' || lastValueChar !== '') {\n // first/last character is a '*' will be a startsWith or endsWith\n searchBy = operator === '*'\n ? `endswith(${fieldNameTitleCase}, '${searchValue}')`\n : `startswith(${fieldNameTitleCase}, '${searchValue}')`;\n } else if (fieldType === FieldType.date) {\n // date field needs to be UTC and within DateTime function\n const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true);\n if (dateFormatted) {\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`;\n }\n } else if (fieldType === FieldType.string) {\n // string field needs to be in single quotes\n searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`;\n } else {\n // any other field type (or undefined type)\n searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`;\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`;\n }\n\n // push to our temp array and also trim white spaces\n if (searchBy !== '') {\n searchByArray.push(String.trim(searchBy));\n this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms);\n }\n }\n }\n }\n\n // build the filter query\n this.odataService.updateOptions({\n filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '',\n skip: undefined\n });\n\n // reset Pagination, then build the OData query which we will use in the WebAPI callback\n this.resetPaginationOptions();\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n this.odataService.updateOptions({\n top: args.pageSize,\n skip: (args.newPage - 1) * args.pageSize\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n let /** @type {?} */ sortByArray = [];\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc\n if (sortColumns && sortColumns.length === 0) {\n sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort\n } else {\n if (sortColumns) {\n for (let /** @type {?} */ column of sortColumns) {\n let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id;\n if (this.odataService.options.caseType === CaseType.pascalCase) {\n fieldName = String.titleCase(fieldName);\n }\n const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc';\n const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`;\n sortByArray.push(sortByColumnString);\n }\n }\n }\n\n // transform the sortby array into a CSV string\n const /** @type {?} */ csvArray = sortByArray.join(',');\n this.odataService.updateOptions({\n orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * Mapper for mathematical operators (ex.: <= is \"le\", > is \"gt\")\n * @param {?} operator\n * @return {?} string map\n */\nprivate mapOperator(operator: string) {\n let /** @type {?} */ map = '';\n switch (operator) {\n case '<':\n map = 'lt';\n break;\n case '<=':\n map = 'le';\n break;\n case '>':\n map = 'gt';\n break;\n case '>=':\n map = 'ge';\n break;\n case '<>':\n case '!=':\n map = 'ne';\n break;\n case '=':\n case '==':\n default:\n map = 'eq';\n break;\n }\n\n return map;\n }\n/**\n * Parse a date passed as a string and return a Date object (if valid)\n * @param {?} inputDateString\n * @param {?} useUtc\n * @return {?} object Date\n */\nprivate parseUtcDate(inputDateString: string, useUtc: boolean) {\n let /** @type {?} */ date = null;\n\n if (/^[0-9\\-\\/]*$/.test(inputDateString)) {\n // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text\n const /** @type {?} */ dateString = decodeURIComponent(inputDateString);\n const /** @type {?} */ dateMoment = moment(new Date(dateString));\n if (dateMoment.isValid() && dateMoment.year().toString().length === 4) {\n date = (useUtc) ? dateMoment.utc().format() : dateMoment.format();\n }\n }\n\n return date;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: OdataService, },\n];\n}\n\nfunction GridOdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nGridOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGridOdataService.ctorParameters;\n/** @type {?} */\nGridOdataService.prototype.defaultSortBy;\n/** @type {?} */\nGridOdataService.prototype.minUserInactivityOnFilter;\n/** @type {?} */\nGridOdataService.prototype.odataService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n"],"names":["get","this","_gridPaginationOptions","set","gridPaginationOptions","pagination","totalItems","refreshPagination","SlickPaginationComponent","prototype","ngOnInit","ngAfterViewInit","ceil","number","Math","onChangeItemPerPage","event","itemsPerPage","target","pageCount","pageNumber","onPageChanged","changeToFirstPage","changeToLastPage","changeToNextPage","changeToPreviousPage","gotoFirstPage","undefined","recalculateFromToIndexes","paginationPageSizes","pageSizes","pageSize","onPaginationChanged","paginationCallback","dataTo","newPage","dataFrom","decorators","type","Component","args","selector","template","styles","ctorParameters","propDecorators","Input","grid","GlobalGridOptions","autoEdit","asyncEditorLoading","autoFitColumnsOnFirstLoad","autoResize","bottomPadding","minHeight","minWidth","sidePadding","enableAutoResize","cellHighlightCssClass","editable","enableCellNavigation","enableColumnPicker","enableColumnReorder","enableMouseOverRow","enablePagination","enableSorting","enableTextSelectionOnCells","explicitInitialization","forceFitColumns","headerRowHeight","multiColumnSort","rowHeight","showHeaderRow","topPanelHeight","AngularSlickgridComponent","resizer","mouseService","filterService","sortService","_columnFilters","showPagination","onFilter","Slick","Event","gridHeight","gridWidth","Object","defineProperty","_dataView","getItems","dataset","_dataset","refreshGridData","gridHeightString","gridWidthString","_gridOptions","mergeGridOptions","Data","DataView","Grid","gridId","columnDefinitions","setSelectionModel","RowSelectionModel","Controls","ColumnPicker","init","beginUpdate","attachDifferentHooks","setItems","endUpdate","attachResizeHook","options","dataView","onSortChanged","attachBackendOnSort","attachLocalOnSort","enableFiltering","onFilterChanged","attachBackendOnFilter","attachLocalOnFilter","attachOnMouseHover","onRowCountChanged","subscribe","e","updateRowCount","render","onRowsChanged","invalidateRows","rows","autosizeColumns","attachAutoResizeDataGrid","resizeGrid","height","width","gridOptions","gridContainerId","assign","isShowing","setHeaderRowVisibility","toggleHeaderRow","getOptions","_this","invalidate","setTimeout","Injectable","ResizerService","MouseService","FilterService","SortService","AngularSlickgridModule","NgModule","imports","CommonModule","declarations","exports","providers","OdataService","parseBoolean","str","test","CaseType","camelCase","pascalCase","snakeCase","FormElementType","input","multiSelect","select","textarea","FieldType","unknown","string","boolean","date","dateIso","dateUtc","dateTime","dateTimeIso","dateUs","dateUsShort","dateTimeUs","dateTimeUsShort","booleanFilterCondition","cellValue","searchTerm","mapDateFormatByFieldType","fieldType","testFilterCondition","operator","value1","value2","moment","((moment_)).default","moment_","dateUtcFilterCondition","filterSearchType","Error","searchDateFormat","ISO_8601","isValid","dateCell","dateSearch","parseInt","format","dateIsoFilterCondition","dateUsShortFilterCondition","dateUsFilterCondition","dateFilterCondition","numberFilterCondition","parseFloat","stringFilterCondition","toString","toLowerCase","endsWith","cellValueLastChar","startsWith","includes","executeMappedCondition","FilterConditions","booleanFilter","dateFilter","dateIsoFilter","dateUtcFilter","dateUsFilter","dateUsShortFilter","numberFilter","stringFilter","testFilter","inputFilterTemplate","columnDef","selectFilterTemplate","filter","selectOptions","forEach","option","value","label","id","FilterTemplates","checkboxFormatter","row","cell","dataContext","checkmarkFormatter","dateIsoFormatter","dateTimeIsoAmPmFormatter","dateTimeUsAmPmFormatter","dateTimeUsFormatter","dateUsFormatter","percentCompleteFormatter","percentCompleteBarFormatter","progressBarFormatter","yesNoFormatter","Formatters","checkbox","checkmark","dateTimeIsoAmPm","dateTimeUsAmPm","percentComplete","percentCompleteBar","progressBar","yesNo","dateUsShortSorter","sortDirection","date1","date2","diff","dateSorter","dateIsoSorter","dateUsSorter","numericSorter","x","isNaN","y","stringSorter","Sorters","numeric","columnFilters","_columnDefinitions","_grid","subscriber","addFilterTemplateToHeaderRow","setFilterArgs","setFilter","customFilter","columnId","refresh","item","_i","_a","keys","length","columnFilter","columnIndex","getColumnIndex","getColumns","field","name","conditionalFilterFn","conditionalFilter","fieldSearchValue","matches","match","lastValueChar","conditionOptions","destroy","unsubscribe","callbackSearchEvent","triggerEvent","i","this_1","filterable","filterTemplate","elm","header","columnDef_1","listTerm","keepColumnFilters","getHeaderRowColumn","$","empty","val","data","appendTo","change","keyup","evt","EventData","notify","onMouseEnter","getCellFromEvent","setSelectedRows","preventDefault","onMouseLeave","router","gridDomElm","offset","window","on","events","trigger","off","calculateGridNewDimensions","availableHeight","top","availableWidth","containerId","newHeight","newWidth","newSizes","RegExp","exec","navigator","userAgent","resizeCanvas","Router","onSort","sortColumns","sortCols","Array","sortAsc","sortCol","sort","dataRow1","dataRow2","l","sortField","result","String","replace","padZero","s","trim","inputStr","allTitleCase","outputStr","charAt","toUpperCase","substr","titleCase","slice","_odataOptions","filterQueue","orderBy","_defaultSortBy","buildQuery","queryTmpArray","push","skip","argument","isArray","join","filterBy","filterStr","filterBySeparator","separatorSpacedOut","fieldName","saveColumnFilter","updateFilterFromListTerms","query","getFilterByColumn","columnName","getFilterCount","removeColumnFilter","searchTerms","search","filterOptions","filterOptionObject","updateFilterFromTerm","searchBy","tmpSearchByArray","fieldSearchTerms","tmpSearchTerms","j","lnj","k","lnk","indexOf","updateOptions","property","hasOwnProperty","sortBy","caseType","index","inputArray","GridOdataService","odataService","defaultSortBy","minUserInactivityOnFilter","initOptions","resetPaginationOptions","terms","searchByArray","searchValue","bypassOdataQuery","bypassBackendQuery","encodeURIComponent","searchBy_1","fieldNameTitleCase","dateFormatted","parseUtcDate","mapOperator","sortByArray","sortColumns_1","column","direction","sortByColumnString","csvArray","map","inputDateString","useUtc","dateString","decodeURIComponent","dateMoment","Date","year","utc"],"mappings":"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"} \ No newline at end of file diff --git a/dist/modules/angular-slickgrid.es5.js b/dist/modules/angular-slickgrid.es5.js deleted file mode 100644 index 405db3904..000000000 --- a/dist/modules/angular-slickgrid.es5.js +++ /dev/null @@ -1,1760 +0,0 @@ -import * as moment_ from 'moment'; -import moment___default from 'moment'; -import { Component, Injectable, Input, NgModule } from '@angular/core'; -import { Router } from '@angular/router'; -import { CommonModule } from '@angular/common'; -var CaseType = {}; -CaseType.camelCase = 0; -CaseType.pascalCase = 1; -CaseType.snakeCase = 2; -CaseType[CaseType.camelCase] = "camelCase"; -CaseType[CaseType.pascalCase] = "pascalCase"; -CaseType[CaseType.snakeCase] = "snakeCase"; -var FormElementType = {}; -FormElementType.input = 0; -FormElementType.multiSelect = 1; -FormElementType.select = 2; -FormElementType.textarea = 3; -FormElementType[FormElementType.input] = "input"; -FormElementType[FormElementType.multiSelect] = "multiSelect"; -FormElementType[FormElementType.select] = "select"; -FormElementType[FormElementType.textarea] = "textarea"; -var FieldType = {}; -FieldType.unknown = 0; -FieldType.string = 1; -FieldType.boolean = 2; -FieldType.number = 3; -FieldType.date = 4; -FieldType.dateIso = 5; -FieldType.dateUtc = 6; -FieldType.dateTime = 7; -FieldType.dateTimeIso = 8; -FieldType.dateUs = 9; -FieldType.dateUsShort = 10; -FieldType.dateTimeUs = 11; -FieldType.dateTimeUsShort = 12; -FieldType[FieldType.unknown] = "unknown"; -FieldType[FieldType.string] = "string"; -FieldType[FieldType.boolean] = "boolean"; -FieldType[FieldType.number] = "number"; -FieldType[FieldType.date] = "date"; -FieldType[FieldType.dateIso] = "dateIso"; -FieldType[FieldType.dateUtc] = "dateUtc"; -FieldType[FieldType.dateTime] = "dateTime"; -FieldType[FieldType.dateTimeIso] = "dateTimeIso"; -FieldType[FieldType.dateUs] = "dateUs"; -FieldType[FieldType.dateUsShort] = "dateUsShort"; -FieldType[FieldType.dateTimeUs] = "dateTimeUs"; -FieldType[FieldType.dateTimeUsShort] = "dateTimeUsShort"; -/** - * @param {?} str - * @return {?} - */ -function parseBoolean(str) { - return /(true|1)/i.test(str); -} -var booleanFilterCondition = function (options) { - return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm); -}; -var mapDateFormatByFieldType = function (fieldType) { - switch (fieldType) { - case FieldType.dateUs: - return 'M/D/YYYY'; - case FieldType.dateTimeUs: - return 'M/D/YYYY h:m:s'; - case FieldType.dateUsShort: - return 'M/D/YY'; - case FieldType.dateTimeUsShort: - return 'M/D/YY h:m:s'; - case FieldType.dateTimeIso: - return 'YYYY-MM-DD h:m:s'; - case FieldType.dateIso: - default: - return 'YYYY-MM-DD'; - } -}; -var testFilterCondition = function (operator, value1, value2) { - switch (operator) { - case '<': return (value1 < value2); - case '<=': return (value1 <= value2); - case '>': return (value1 > value2); - case '>=': return (value1 >= value2); - case '!=': - case '<>': return (value1 !== value2); - case '=': - case '==': return (value1 === value2); - } - return true; -}; -var moment = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateUtcFilterCondition = function (options) { - if (!options.filterSearchType) { - throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }'); - } - var /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType); - if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) { - return true; - } - var /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true); - var /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; -var moment$1 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var DATE_FORMAT = 'YYYY-MM-DD'; -var dateIsoFilterCondition = function (options) { - if (!moment$1(options.cellValue, DATE_FORMAT, true).isValid() || !moment$1(options.searchTerm, DATE_FORMAT, true).isValid()) { - return true; - } - var /** @type {?} */ dateCell = moment$1(options.cellValue, DATE_FORMAT, true); - var /** @type {?} */ dateSearch = moment$1(options.searchTerm, DATE_FORMAT, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; -var moment$2 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var DATE_FORMAT$1 = 'M/D/YY'; -var dateUsShortFilterCondition = function (options) { - if (!moment$2(options.cellValue, DATE_FORMAT$1, true).isValid() || !moment$2(options.searchTerm, DATE_FORMAT$1, true).isValid()) { - return true; - } - var /** @type {?} */ dateCell = moment$2(options.cellValue, DATE_FORMAT$1, true); - var /** @type {?} */ dateSearch = moment$2(options.searchTerm, DATE_FORMAT$1, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; -var moment$3 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var DATE_FORMAT$2 = 'M/D/YYYY'; -var dateUsFilterCondition = function (options) { - if (!moment$3(options.cellValue, DATE_FORMAT$2, true).isValid() || !moment$3(options.searchTerm, DATE_FORMAT$2, true).isValid()) { - return true; - } - var /** @type {?} */ dateCell = moment$3(options.cellValue, DATE_FORMAT$2, true); - var /** @type {?} */ dateSearch = moment$3(options.searchTerm, DATE_FORMAT$2, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; -var moment$4 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateFilterCondition = function (options) { - var /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso; - var /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType); - if (!moment$4(options.cellValue, moment$4.ISO_8601).isValid() || !moment$4(options.searchTerm, searchDateFormat, true).isValid()) { - return true; - } - var /** @type {?} */ dateCell = moment$4(options.cellValue); - var /** @type {?} */ dateSearch = moment$4(options.searchTerm); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; -var numberFilterCondition = function (options) { - return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm)); -}; -var stringFilterCondition = function (options) { - // make sure the both search & cell value are string - // and make them lower case for case insensitive filtering - var /** @type {?} */ cellValue = options.cellValue.toString().toLowerCase(); - var /** @type {?} */ searchTerm = options.searchTerm.toString().toLowerCase(); - if (options.operator === '*') { - return cellValue.endsWith(searchTerm); - } - else if (options.operator === '' && options.cellValueLastChar === '*') { - return cellValue.startsWith(searchTerm); - } - else if (options.operator === '') { - return cellValue.includes(searchTerm); - } - return testFilterCondition(options.operator || '==', cellValue, searchTerm); -}; -var executeMappedCondition = function (options) { - // execute the mapped type, or default to String condition check - switch (options.fieldType) { - case FieldType.boolean: - return booleanFilterCondition(options); - case FieldType.date: - return dateFilterCondition(options); - case FieldType.dateUtc: - return dateUtcFilterCondition(options); - case FieldType.dateIso: - return dateIsoFilterCondition(options); - case FieldType.dateUs: - case FieldType.dateTimeUs: - return dateUsFilterCondition(options); - case FieldType.dateUsShort: - case FieldType.dateTimeUsShort: - return dateUsShortFilterCondition(options); - case FieldType.number: - return numberFilterCondition(options); - case FieldType.string: - default: - return stringFilterCondition(options); - } -}; -var FilterConditions = { - executeMappedCondition: executeMappedCondition, - booleanFilter: booleanFilterCondition, - dateFilter: dateFilterCondition, - dateIsoFilter: dateIsoFilterCondition, - dateUtcFilter: dateUtcFilterCondition, - dateUsFilter: dateUsFilterCondition, - dateUsShortFilter: dateUsShortFilterCondition, - numberFilter: numberFilterCondition, - stringFilter: stringFilterCondition, - testFilter: testFilterCondition -}; -var inputFilterTemplate = function (searchTerm, columnDef) { - return ""; -}; -var selectFilterTemplate = function (searchTerm, columnDef) { - if (!columnDef.filter.selectOptions) { - throw new Error("SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')"); - } - var /** @type {?} */ options = ''; - columnDef.filter.selectOptions.forEach(function (option) { - options += ""; - }); - return ""; -}; -var FilterTemplates = { - input: inputFilterTemplate, - select: selectFilterTemplate -}; -var checkboxFormatter = function (row, cell, value, columnDef, dataContext) { return value ? '☑' : ''; }; -var checkmarkFormatter = function (row, cell, value, columnDef, dataContext) { return value ? "" : ''; }; -var moment$5 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateIsoFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$5(value).format('YYYY-MM-DD') : ''; }; -var moment$6 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateTimeIsoAmPmFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$6(value).format('YYYY-MM-DD h:mm:ss a') : ''; }; -var moment$7 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateTimeUsAmPmFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$7(value).format('MM/DD/YYYY h:mm:ss a') : ''; }; -var moment$8 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateTimeUsFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$8(value).format('MM/DD/YYYY hh:mm:ss') : ''; }; -var moment$9 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateUsFormatter = function (row, cell, value, columnDef, dataContext) { return value ? moment$9(value).format('MM/DD/YYYY') : ''; }; -var percentCompleteFormatter = function (row, cell, value, columnDef, dataContext) { - if (value === null || value === '') { - return '-'; - } - else if (value < 50) { - return "" + value + "%"; - } - else { - return "" + value + "%"; - } -}; -var percentCompleteBarFormatter = function (row, cell, value, columnDef, dataContext) { - if (value === null || value === '') { - return ''; - } - var /** @type {?} */ color; - if (value < 30) { - color = 'red'; - } - else if (value < 70) { - color = 'silver'; - } - else { - color = 'green'; - } - return ""; -}; -var progressBarFormatter = function (row, cell, value, columnDef, dataContext) { - if (value === null || value === '') { - return ''; - } - var /** @type {?} */ color; - if (value < 30) { - color = 'danger'; - } - else if (value < 70) { - color = 'warning'; - } - else { - color = 'success'; - } - return "
\n
\n " + value + "%\n
\n
"; -}; -var yesNoFormatter = function (row, cell, value, columnDef, dataContext) { return value ? 'Yes' : 'No'; }; -// import { Group, GroupTotals } from '../core' -// import { Item } from '../dataview' -/* -export interface GroupFormatter { - (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string -} - -export interface GroupTotalsFormatter { - (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string -} -*/ -var Formatters = { - checkbox: checkboxFormatter, - checkmark: checkmarkFormatter, - dateIso: dateIsoFormatter, - dateTimeIso: dateIsoFormatter, - dateTimeIsoAmPm: dateTimeIsoAmPmFormatter, - dateUs: dateUsFormatter, - dateTimeUs: dateTimeUsFormatter, - dateTimeUsAmPm: dateTimeUsAmPmFormatter, - percentComplete: percentCompleteFormatter, - percentCompleteBar: percentCompleteBarFormatter, - progressBar: progressBarFormatter, - yesNo: yesNoFormatter -}; -var moment$10 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var DATE_FORMAT$3 = 'M/D/YY'; -var dateUsShortSorter = function (value1, value2, sortDirection) { - if (!moment$10(value1, DATE_FORMAT$3, true).isValid() || !moment$10(value2, DATE_FORMAT$3, true).isValid()) { - return 0; - } - var /** @type {?} */ date1 = moment$10(value1, DATE_FORMAT$3, true); - var /** @type {?} */ date2 = moment$10(value2, DATE_FORMAT$3, true); - var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; -var moment$11 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var dateSorter = function (value1, value2, sortDirection) { - if (!moment$11(value1, moment$11.ISO_8601).isValid() || !moment$11(value2, moment$11.ISO_8601, true).isValid()) { - return 0; - } - var /** @type {?} */ date1 = moment$11(value1); - var /** @type {?} */ date2 = moment$11(value2); - var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; -var moment$12 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var DATE_FORMAT$4 = 'YYYY-MM-DD'; -var dateIsoSorter = function (value1, value2, sortDirection) { - if (!moment$12(value1, DATE_FORMAT$4, true).isValid() || !moment$12(value2, DATE_FORMAT$4, true).isValid()) { - return 0; - } - var /** @type {?} */ date1 = moment$12(value1, DATE_FORMAT$4, true); - var /** @type {?} */ date2 = moment$12(value2, DATE_FORMAT$4, true); - var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; -var moment$13 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -var DATE_FORMAT$5 = 'M/D/YYYY'; -var dateUsSorter = function (value1, value2, sortDirection) { - if (!moment$13(value1, DATE_FORMAT$5, true).isValid() || !moment$13(value2, DATE_FORMAT$5, true).isValid()) { - return 0; - } - var /** @type {?} */ date1 = moment$13(value1, DATE_FORMAT$5, true); - var /** @type {?} */ date2 = moment$13(value2, DATE_FORMAT$5, true); - var /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; -var numericSorter = function (value1, value2, sortDirection) { - var /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1); - var /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2); - return sortDirection * (x === y ? 0 : (x > y ? 1 : -1)); -}; -var stringSorter = function (value1, value2, sortDirection) { - return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1)); -}; -var Sorters = { - date: dateSorter, - dateIso: dateIsoSorter, - dateUs: dateUsSorter, - dateUsShort: dateUsShortSorter, - numeric: numericSorter, - string: stringSorter -}; -var FilterService = (function () { - function FilterService() { - } - /** - * @param {?} grid - * @param {?} gridOptions - * @param {?} columnDefinitions - * @param {?} columnFilters - * @return {?} - */ - FilterService.prototype.init = function (grid, gridOptions, columnDefinitions, columnFilters) { - this._columnDefinitions = columnDefinitions; - this._columnFilters = columnFilters; - this._gridOptions = gridOptions; - this._grid = grid; - }; - /** - * Attach a backend filter hook to the grid - * @return {?} - */ - FilterService.prototype.attachBackendOnFilter = function () { - this.subscriber = new Slick.Event(); - this.subscriber.subscribe(this._gridOptions.onFilterChanged); - this.addFilterTemplateToHeaderRow(); - }; - /** - * @param {?} operator - * @param {?} value1 - * @param {?} value2 - * @return {?} - */ - FilterService.prototype.testFilterCondition = function (operator, value1, value2) { - switch (operator) { - case '<': return (value1 < value2) ? true : false; - case '<=': return (value1 <= value2) ? true : false; - case '>': return (value1 > value2) ? true : false; - case '>=': return (value1 >= value2) ? true : false; - case '!=': - case '<>': return (value1 !== value2) ? true : false; - case '=': - case '==': return (value1 === value2) ? true : false; - } - }; - /** - * Attach a local filter hook to the grid - * @param {?} dataView - * @return {?} - */ - FilterService.prototype.attachLocalOnFilter = function (dataView) { - this._dataView = dataView; - this.subscriber = new Slick.Event(); - dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid }); - dataView.setFilter(this.customFilter); - this.subscriber.subscribe(function (e, args) { - var /** @type {?} */ columnId = args.columnId; - if (columnId != null) { - dataView.refresh(); - } - }); - this.addFilterTemplateToHeaderRow(); - }; - /** - * @param {?} item - * @param {?} args - * @return {?} - */ - FilterService.prototype.customFilter = function (item, args) { - for (var _i = 0, _a = Object.keys(args.columnFilters); _i < _a.length; _i++) { - var columnId = _a[_i]; - var /** @type {?} */ columnFilter = args.columnFilters[columnId]; - var /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId); - var /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex]; - var /** @type {?} */ fieldName = columnDef.field || columnDef.name; - var /** @type {?} */ fieldType = columnDef.type || FieldType.string; - var /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null; - var /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null; - var /** @type {?} */ cellValue = item[columnDef.field]; - var /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; - if (typeof fieldSearchValue === 'undefined') { - fieldSearchValue = ''; - } - fieldSearchValue = '' + fieldSearchValue; // make sure it's a string - var /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) - var /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); - var /** @type {?} */ searchTerm = (!!matches) ? matches[2] : ''; - var /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; - // no need to query if search value is empty - if (searchTerm === '') { - return true; - } - if (typeof cellValue === 'number') { - cellValue = cellValue.toString(); - } - var /** @type {?} */ conditionOptions = { - fieldType: fieldType, - searchTerm: searchTerm, - cellValue: cellValue, - operator: operator, - cellValueLastChar: lastValueChar, - filterSearchType: filterSearchType - }; - if (conditionalFilterFn && typeof conditionalFilterFn === 'function') { - conditionalFilterFn(conditionOptions); - } - if (!FilterConditions.executeMappedCondition(conditionOptions)) { - return false; - } - } - return true; - }; - /** - * @return {?} - */ - FilterService.prototype.destroy = function () { - this.subscriber.unsubscribe(); - }; - /** - * @param {?} e - * @param {?} args - * @return {?} - */ - FilterService.prototype.callbackSearchEvent = function (e, args) { - this._columnFilters[args.columnDef.id] = { - columnId: args.columnDef.id, - columnDef: args.columnDef, - searchTerm: e.target.value - }; - this.triggerEvent(this.subscriber, { - columnId: args.columnDef.id, - columnDef: args.columnDef, - columnFilters: this._columnFilters, - searchTerm: e.target.value, - grid: this._grid - }, e); - }; - /** - * @return {?} - */ - FilterService.prototype.addFilterTemplateToHeaderRow = function () { - var _this = this; - var _loop_1 = function (i) { - if (this_1._columnDefinitions[i].id !== 'selector' && this_1._columnDefinitions[i].filterable) { - var /** @type {?} */ filterTemplate = ''; - var /** @type {?} */ elm = null; - var /** @type {?} */ header = void 0; - var /** @type {?} */ columnDef_1 = this_1._columnDefinitions[i]; - var /** @type {?} */ columnId = columnDef_1.id; - var /** @type {?} */ listTerm = (columnDef_1.filter && columnDef_1.filter.listTerm) ? columnDef_1.filter.listTerm : null; - var /** @type {?} */ searchTerm = (columnDef_1.filter && columnDef_1.filter.searchTerm) ? columnDef_1.filter.searchTerm : ''; - // keep the filter in a columnFilters for later reference - this_1.keepColumnFilters(searchTerm, listTerm, columnDef_1); - if (!columnDef_1.filter) { - searchTerm = (columnDef_1.filter && columnDef_1.filter.searchTerm) ? columnDef_1.filter.searchTerm : null; - filterTemplate = FilterTemplates.input(searchTerm, columnDef_1); - } - else { - // custom Select template - if (columnDef_1.filter.type === FormElementType.select) { - filterTemplate = FilterTemplates.select(searchTerm, columnDef_1); - } - } - // create the DOM Element - header = this_1._grid.getHeaderRowColumn(columnDef_1.id); - $(header).empty(); - elm = $(filterTemplate); - elm.val(searchTerm); - elm.data('columnId', columnDef_1.id); - if (elm && typeof elm.appendTo === 'function') { - elm.appendTo(header); - } - // depending on the DOM Element type, we will watch the corrent event - var /** @type {?} */ filterType = (columnDef_1.filter && columnDef_1.filter.type) ? columnDef_1.filter.type : FormElementType.input; - switch (filterType) { - case FormElementType.select: - case FormElementType.multiSelect: - elm.change(function (e) { return _this.callbackSearchEvent(e, { columnDef: columnDef_1 }); }); - break; - case FormElementType.input: - default: - elm.keyup(function (e) { return _this.callbackSearchEvent(e, { columnDef: columnDef_1 }); }); - break; - } - } - }; - var this_1 = this; - for (var /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) { - _loop_1(/** @type {?} */ i); - } - }; - /** - * @param {?} searchTerm - * @param {?} listTerm - * @param {?} columnDef - * @return {?} - */ - FilterService.prototype.keepColumnFilters = function (searchTerm, listTerm, columnDef) { - if (searchTerm) { - this._columnFilters[columnDef.id] = { - columnId: columnDef.id, - columnDef: columnDef, - searchTerm: searchTerm - }; - if (listTerm) { - this._columnFilters.listTerm = listTerm; - } - } - }; - /** - * @param {?} evt - * @param {?} args - * @param {?} e - * @return {?} - */ - FilterService.prototype.triggerEvent = function (evt, args, e) { - e = e || new Slick.EventData(); - return evt.notify(args, e, args.grid); - }; - return FilterService; -}()); -FilterService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -FilterService.ctorParameters = function () { return []; }; -var MouseService = (function () { - function MouseService() { - } - /** - * @param {?} grid - * @return {?} - */ - MouseService.prototype.attachOnMouseHover = function (grid) { - grid.onMouseEnter.subscribe(function (e) { - var /** @type {?} */ cell = grid.getCellFromEvent(e); - if (cell && cell.row >= 0) { - grid.setSelectedRows([cell.row]); - e.preventDefault(); - } - }); - grid.onMouseLeave.subscribe(function (e) { - grid.setSelectedRows([]); - e.preventDefault(); - }); - }; - return MouseService; -}()); -// global constants, height/width are in pixels -var DATAGRID_MIN_HEIGHT = 180; -var DATAGRID_MIN_WIDTH = 300; -var DATAGRID_BOTTOM_PADDING = 20; -var DATAGRID_PAGINATION_HEIGHT = 35; -var ResizerService = (function () { - /** - * @param {?} router - */ - function ResizerService(router) { - this.router = router; - } - /** - * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space - * Options: we could also provide a % factor to resize on each height/width independently - * @param {?} grid - * @param {?} gridOptions - * @return {?} - */ - ResizerService.prototype.attachAutoResizeDataGrid = function (grid, gridOptions) { - var _this = this; - // if we can't find the grid to resize, return without attaching anything - var /** @type {?} */ gridDomElm = $("#" + gridOptions.gridId); - if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') { - return null; - } - // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load) - this.resizeGrid(grid, gridOptions); - // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load - // -- attach auto-resize to Window object only if it exist - $(window).on('resize', function () { - _this.resizeGrid(grid, gridOptions); - }); - // destroy the resizer on route change - this.router.events.subscribe(function (event) { - $(window).trigger('resize').off('resize'); - }); - }; - /** - * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation - * object gridOptions - * @param {?} gridOptions - * @return {?} - */ - ResizerService.prototype.calculateGridNewDimensions = function (gridOptions) { - var /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING; - if (bottomPadding && gridOptions.enablePagination) { - bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding - } - if (typeof $("#" + gridOptions.gridId).offset !== 'function') { - return; - } - var /** @type {?} */ availableHeight = $(window).height() - $("#" + gridOptions.gridId).offset().top - bottomPadding; - var /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $("#" + gridOptions.autoResize.containerId).width() : $("#" + gridOptions.gridContainerId).width(); - var /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT; - var /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH; - var /** @type {?} */ newHeight = availableHeight; - var /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth; - if (newHeight < minHeight) { - newHeight = minHeight; - } - if (newWidth < minWidth) { - newWidth = minWidth; - } - return { - height: newHeight, - width: newWidth - }; - }; - /** - * Resize the datagrid to fit the browser height & width - * @param {?} grid - * @param {?} gridOptions - * @param {?=} newSizes - * @return {?} - */ - ResizerService.prototype.resizeGrid = function (grid, gridOptions, newSizes) { - // calculate new available sizes but with minimum height of 220px - newSizes = newSizes || this.calculateGridNewDimensions(gridOptions); - if (newSizes) { - // apply these new height/width to the datagrid - $("#" + gridOptions.gridId).height(newSizes.height); - $("#" + gridOptions.gridId).width(newSizes.width); - $("#" + gridOptions.gridContainerId).height(newSizes.height); - $("#" + gridOptions.gridContainerId).width(newSizes.width); - // resize the slickgrid canvas on all browser except some IE versions - // exclude all IE below IE11 - // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape' - if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) { - grid.resizeCanvas(); - } - // also call the grid auto-size columns so that it takes available when going bigger - grid.autosizeColumns(); - } - }; - return ResizerService; -}()); -ResizerService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -ResizerService.ctorParameters = function () { return [ - { type: Router, }, -]; }; -var SortService = (function () { - function SortService() { - } - /** - * Attach a backend sort (single/multi) hook to the grid - * @param {?} grid SlickGrid Grid object - * @param {?} gridOptions Grid Options object - * @return {?} - */ - SortService.prototype.attachBackendOnSort = function (grid, gridOptions) { - this.subscriber = grid.onSort; - this.subscriber.subscribe(gridOptions.onSortChanged); - }; - /** - * Attach a local sort (single/multi) hook to the grid - * @param {?} grid SlickGrid Grid object - * @param {?} gridOptions Grid Options object - * @param {?} dataView - * @return {?} - */ - SortService.prototype.attachLocalOnSort = function (grid, gridOptions, dataView) { - this.subscriber = grid.onSort; - this.subscriber.subscribe(function (e, args) { - // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after - // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object - var /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortAsc: args.sortAsc, sortCol: args.sortCol }); - dataView.sort(function (dataRow1, dataRow2) { - for (var /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) { - var /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1; - var /** @type {?} */ sortField = sortColumns[i].sortCol.field; - var /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string'; - var /** @type {?} */ value1 = dataRow1[sortField]; - var /** @type {?} */ value2 = dataRow2[sortField]; - var /** @type {?} */ result = 0; - switch (fieldType) { - case FieldType.number: - result = Sorters.numeric(value1, value2, sortDirection); - break; - case FieldType.date: - result = Sorters.date(value1, value2, sortDirection); - break; - case FieldType.dateIso: - result = Sorters.dateIso(value1, value2, sortDirection); - break; - case FieldType.dateUs: - result = Sorters.dateUs(value1, value2, sortDirection); - break; - case FieldType.dateUsShort: - result = Sorters.dateUsShort(value1, value2, sortDirection); - break; - default: - result = Sorters.string(value1, value2, sortDirection); - break; - } - if (result !== 0) { - return result; - } - } - return 0; - }); - grid.invalidate(); - grid.render(); - }); - }; - /** - * @return {?} - */ - SortService.prototype.destroy = function () { - this.subscriber.unsubscribe(); - }; - return SortService; -}()); -SortService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -SortService.ctorParameters = function () { return []; }; -String.format = function (format, args) { - // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1); - return format.replace(/{(\d+)}/g, function (match, number) { - return (typeof args[number] !== 'undefined') ? args[number] : match; - }); -}; -String.padZero = function (length) { - var /** @type {?} */ s = this; - while (s.length < length) { - s = '0' + s; - } - return s; -}; -/** - * Trim any extra white space from the string - * @param string inputStr - * @returns string outputStr - */ -String.trim = function (inputStr) { - return inputStr ? inputStr.replace(/\s+/g, ' ') : inputStr; -}; -/** - * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) - * @param string inputStr - * @returns string outputStr - */ -String.allTitleCase = function (inputStr) { - return inputStr.replace(/\w\S*/g, function (outputStr) { - return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase(); - }); -}; -/** - * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) - * @param string inputStr - * @returns string outputStr -*/ -String.titleCase = function (inputStr) { - return inputStr.charAt(0).toUpperCase() + inputStr.slice(1); -}; -var OdataService = (function () { - function OdataService() { - this._odataOptions = { - filterQueue: [], - orderBy: '' - }; - this._defaultSortBy = ''; - this._columnFilters = {}; - } - /** - * @return {?} - */ - OdataService.prototype.buildQuery = function () { - this._odataOptions.filterQueue = []; - var /** @type {?} */ queryTmpArray = []; - if (this._odataOptions.top) { - queryTmpArray.push("$top=" + this._odataOptions.top); - } - if (this._odataOptions.skip) { - queryTmpArray.push("$skip=" + this._odataOptions.skip); - } - if (this._odataOptions.orderBy) { - var /** @type {?} */ argument = ''; - if (Array.isArray(this._odataOptions.orderBy)) { - argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc - } - else { - argument = this._odataOptions.orderBy; - } - queryTmpArray.push("$orderby=" + argument); - } - if (this._odataOptions.filterBy || this._odataOptions.filter) { - if (this._odataOptions.filter) { - this._odataOptions.filterQueue = []; - var /** @type {?} */ filterStr = this._odataOptions.filter; - if (Array.isArray(this._odataOptions.filter)) { - var /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; - var /** @type {?} */ separatorSpacedOut = " " + filterBySeparator + " "; - filterStr = this._odataOptions.filter.join(separatorSpacedOut); - } - this._odataOptions.filterQueue.push("(" + filterStr + ")"); - } - // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered - if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) { - if (this._odataOptions.filterBy.searchTerm !== '') { - this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm); - this.updateFilterFromListTerms(this._odataOptions.filterBy); - } - } - } - if (this._odataOptions.filterQueue.length > 0) { - var /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; - var /** @type {?} */ separatorSpacedOut = " " + filterBySeparator + " "; - var /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut); - this._odataOptions.filter = query; // overwrite with - queryTmpArray.push("$filter=" + query); - } - // join all the odata functions by a '&' - return queryTmpArray.join('&'); - }; - /** - * @param {?} columnName - * @return {?} - */ - OdataService.prototype.getFilterByColumn = function (columnName) { - return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null; - }; - /** - * @return {?} - */ - OdataService.prototype.getFilterCount = function () { - return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0; - }; - Object.defineProperty(OdataService.prototype, "columnFilters", { - /** - * @return {?} - */ - get: function () { - return this._columnFilters; - }, - enumerable: true, - configurable: true - }); - Object.defineProperty(OdataService.prototype, "options", { - /** - * @return {?} - */ - get: function () { - return this._odataOptions; - }, - /** - * @param {?} options - * @return {?} - */ - set: function (options) { - this._odataOptions = options; - }, - enumerable: true, - configurable: true - }); - /** - * @param {?} fieldName - * @return {?} - */ - OdataService.prototype.removeColumnFilter = function (fieldName) { - delete this._columnFilters[fieldName]; - }; - /** - * @param {?} fieldName - * @param {?} value - * @param {?=} searchTerms - * @return {?} - */ - OdataService.prototype.saveColumnFilter = function (fieldName, value, searchTerms) { - this._columnFilters[fieldName] = { - search: searchTerms, - value: value - }; - }; - /** - * Update the filter by a list of terms usually passed manually by the user as default filters - * @param {?} filterOptions - * @return {?} - */ - OdataService.prototype.updateFilterFromListTerms = function (filterOptions) { - var _this = this; - // build the filter query - if (Array.isArray(filterOptions)) { - filterOptions.forEach(function (filterOptionObject) { - _this.updateFilterFromTerm(filterOptionObject); - }); - } - else { - this.updateFilterFromTerm(filterOptions); - } - }; - /** - * @param {?} filterOptions - * @return {?} - */ - OdataService.prototype.updateFilterFromTerm = function (filterOptions) { - var /** @type {?} */ searchBy = ''; - var /** @type {?} */ tmpSearchByArray = []; - var /** @type {?} */ fieldName = filterOptions.fieldName; - var /** @type {?} */ fieldSearchTerms = filterOptions.listTerm; - var /** @type {?} */ operator = filterOptions.operator; - // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) - if (!!fieldSearchTerms && fieldSearchTerms.length > 0) { - var /** @type {?} */ tmpSearchTerms = []; - if (operator === 'IN') { - // example:: (Stage eq "Expired" or Stage eq "Renewal") - for (var /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) { - tmpSearchTerms.push(fieldName + " eq '" + fieldSearchTerms[j] + "'"); - } - searchBy = tmpSearchTerms.join(' or '); - searchBy = "$(" + searchBy + ")"; - } - else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { - // example:: (Stage ne "Expired" and Stage ne "Renewal") - for (var /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) { - tmpSearchTerms.push(fieldName + " ne '" + fieldSearchTerms[k] + "'"); - } - searchBy = tmpSearchTerms.join(' and '); - searchBy = "$(" + searchBy + ")"; - } - } - // push to our temp array and also trim white spaces - tmpSearchByArray.push(String.trim(searchBy)); - // add to the filter queue only if it doesn't exist in the queue - var /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : ''; - if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) { - this._odataOptions.filterQueue.push(filter); - } - }; - /** - * Change any OData options that will be used to build the query - * @param {?} options - * @return {?} - */ - OdataService.prototype.updateOptions = function (options) { - for (var _i = 0, _a = Object.keys(options); _i < _a.length; _i++) { - var property = _a[_i]; - if (options.hasOwnProperty(property)) { - this._odataOptions[property] = options[property]; // replace of the property - } - // we need to keep the defaultSortBy for references whenever the user removes his Sorting - // then we would revert to the defaultSortBy and the only way is to keep a hard copy here - if (property === 'orderBy' || property === 'sortBy') { - var /** @type {?} */ sortBy = options[property]; - // make sure first char of each orderBy field is capitalize - if (this._odataOptions.caseType === CaseType.pascalCase) { - if (Array.isArray(sortBy)) { - sortBy.forEach(function (field, index, inputArray) { - inputArray[index] = String.titleCase(field); - }); - } - else { - sortBy = String.titleCase(options[property]); - } - } - this._odataOptions.orderBy = sortBy; - this._defaultSortBy = sortBy; - } - } - }; - return OdataService; -}()); -OdataService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -OdataService.ctorParameters = function () { return []; }; -var moment$14 = moment___default || moment_; -var GridOdataService = (function () { - /** - * @param {?} odataService - */ - function GridOdataService(odataService) { - this.odataService = odataService; - this.defaultSortBy = ''; - this.minUserInactivityOnFilter = 700; - } - /** - * @return {?} - */ - GridOdataService.prototype.buildQuery = function () { - return this.odataService.buildQuery(); - }; - /** - * @param {?} options - * @return {?} - */ - GridOdataService.prototype.initOptions = function (options) { - this.odataService.options = options; - }; - /** - * @param {?} fieldName - * @return {?} - */ - GridOdataService.prototype.removeColumnFilter = function (fieldName) { - this.odataService.removeColumnFilter(fieldName); - }; - /** - * @return {?} - */ - GridOdataService.prototype.resetPaginationOptions = function () { - this.odataService.updateOptions({ - skip: 0 - }); - }; - /** - * @param {?} fieldName - * @param {?} value - * @param {?=} terms - * @return {?} - */ - GridOdataService.prototype.saveColumnFilter = function (fieldName, value, terms) { - this.odataService.saveColumnFilter(fieldName, value, terms); - }; - /** - * @param {?} event - * @param {?} args - * @return {?} - */ - GridOdataService.prototype.onFilterChanged = function (event, args) { - var /** @type {?} */ searchBy = ''; - var /** @type {?} */ timer = 0; - var /** @type {?} */ searchByArray = []; - // loop through all columns to inspect filters - for (var /** @type {?} */ columnId in args.columnFilters) { - if (args.columnFilters.hasOwnProperty(columnId)) { - var /** @type {?} */ columnFilter = args.columnFilters[columnId]; - var /** @type {?} */ columnDef = columnFilter.columnDef; - var /** @type {?} */ fieldName = columnDef.field || columnDef.name; - var /** @type {?} */ fieldType = columnDef.type || 'string'; - var /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; - if (typeof fieldSearchValue === 'undefined') { - fieldSearchValue = ''; - } - if (typeof fieldSearchValue !== 'string') { - throw new Error("OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]"); - } - var /** @type {?} */ searchTerms = columnFilter.listTerm || []; - fieldSearchValue = '' + fieldSearchValue; // make sure it's a string - var /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) - var /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); - var /** @type {?} */ searchValue = (!!matches) ? matches[2] : fieldSearchValue; - var /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; - var /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false; - // no need to query if search value is empty - if (fieldName && searchValue === '') { - this.removeColumnFilter(fieldName); - continue; - } - // escaping the search value - searchValue = searchValue.replace("'", "''"); // escape single quotes by doubling them - searchValue = encodeURIComponent(searchValue); // encode URI of the final search value - // extra query arguments - if (bypassOdataQuery) { - // push to our temp array and also trim white spaces - if (fieldName) { - this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms); - } - } - else { - var /** @type {?} */ searchBy_1 = ''; - // titleCase the fieldName so that it matches the WebApi names - var /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || ''); - // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) - if (searchTerms && searchTerms.length > 0) { - var /** @type {?} */ tmpSearchTerms = []; - if (operator === 'IN') { - // example:: (Stage eq "Expired" or Stage eq "Renewal") - for (var /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) { - tmpSearchTerms.push(fieldNameTitleCase + " eq '" + searchTerms[j] + "'"); - } - searchBy_1 = tmpSearchTerms.join(' or '); - searchBy_1 = "(" + searchBy_1 + ")"; - } - else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { - // example:: (Stage ne "Expired" and Stage ne "Renewal") - for (var /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) { - tmpSearchTerms.push(fieldNameTitleCase + " ne '" + searchTerms[k] + "'"); - } - searchBy_1 = tmpSearchTerms.join(' and '); - searchBy_1 = "(" + searchBy_1 + ")"; - } - } - else if (operator === '*' || lastValueChar !== '') { - // first/last character is a '*' will be a startsWith or endsWith - searchBy_1 = operator === '*' - ? "endswith(" + fieldNameTitleCase + ", '" + searchValue + "')" - : "startswith(" + fieldNameTitleCase + ", '" + searchValue + "')"; - } - else if (fieldType === FieldType.date) { - // date field needs to be UTC and within DateTime function - var /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true); - if (dateFormatted) { - searchBy_1 = fieldNameTitleCase + " " + this.mapOperator(operator) + " DateTime'" + dateFormatted + "'"; - } - } - else if (fieldType === FieldType.string) { - // string field needs to be in single quotes - searchBy_1 = "substringof('" + searchValue + "', " + fieldNameTitleCase + ")"; - } - else { - // any other field type (or undefined type) - searchValue = fieldType === FieldType.number ? searchValue : "'" + searchValue + "'"; - searchBy_1 = fieldNameTitleCase + " " + this.mapOperator(operator) + " " + searchValue; - } - // push to our temp array and also trim white spaces - if (searchBy_1 !== '') { - searchByArray.push(String.trim(searchBy_1)); - this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms); - } - } - } - } - // build the filter query - this.odataService.updateOptions({ - filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '', - skip: undefined - }); - // reset Pagination, then build the OData query which we will use in the WebAPI callback - this.resetPaginationOptions(); - return this.odataService.buildQuery(); - }; - /** - * @param {?} event - * @param {?} args - * @return {?} - */ - GridOdataService.prototype.onPaginationChanged = function (event, args) { - this.odataService.updateOptions({ - top: args.pageSize, - skip: (args.newPage - 1) * args.pageSize - }); - // build the OData query which we will use in the WebAPI callback - return this.odataService.buildQuery(); - }; - /** - * @param {?} event - * @param {?} args - * @return {?} - */ - GridOdataService.prototype.onSortChanged = function (event, args) { - var /** @type {?} */ sortByArray = []; - var /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc }); - // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc - if (sortColumns && sortColumns.length === 0) { - sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort - } - else { - if (sortColumns) { - for (var _i = 0, sortColumns_1 = sortColumns; _i < sortColumns_1.length; _i++) { - var column = sortColumns_1[_i]; - var /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id; - if (this.odataService.options.caseType === CaseType.pascalCase) { - fieldName = String.titleCase(fieldName); - } - var /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc'; - var /** @type {?} */ sortByColumnString = fieldName + " " + direction; - sortByArray.push(sortByColumnString); - } - } - } - // transform the sortby array into a CSV string - var /** @type {?} */ csvArray = sortByArray.join(','); - this.odataService.updateOptions({ - orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray - }); - // build the OData query which we will use in the WebAPI callback - return this.odataService.buildQuery(); - }; - /** - * Mapper for mathematical operators (ex.: <= is "le", > is "gt") - * @param {?} operator - * @return {?} string map - */ - GridOdataService.prototype.mapOperator = function (operator) { - var /** @type {?} */ map = ''; - switch (operator) { - case '<': - map = 'lt'; - break; - case '<=': - map = 'le'; - break; - case '>': - map = 'gt'; - break; - case '>=': - map = 'ge'; - break; - case '<>': - case '!=': - map = 'ne'; - break; - case '=': - case '==': - default: - map = 'eq'; - break; - } - return map; - }; - /** - * Parse a date passed as a string and return a Date object (if valid) - * @param {?} inputDateString - * @param {?} useUtc - * @return {?} object Date - */ - GridOdataService.prototype.parseUtcDate = function (inputDateString, useUtc) { - var /** @type {?} */ date = null; - if (/^[0-9\-\/]*$/.test(inputDateString)) { - // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text - var /** @type {?} */ dateString = decodeURIComponent(inputDateString); - var /** @type {?} */ dateMoment = moment$14(new Date(dateString)); - if (dateMoment.isValid() && dateMoment.year().toString().length === 4) { - date = (useUtc) ? dateMoment.utc().format() : dateMoment.format(); - } - } - return date; - }; - return GridOdataService; -}()); -GridOdataService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -GridOdataService.ctorParameters = function () { return [ - { type: OdataService, }, -]; }; -var SlickPaginationComponent = (function () { - function SlickPaginationComponent() { - this.dataFrom = 1; - this.dataTo = 1; - this.itemsPerPage = 25; - this.pageCount = 0; - this.pageNumber = 1; - this.totalItems = 0; - this.paginationPageSizes = [25, 75, 100]; - } - Object.defineProperty(SlickPaginationComponent.prototype, "gridPaginationOptions", { - /** - * @return {?} - */ - get: function () { - return this._gridPaginationOptions; - }, - /** - * @param {?} gridPaginationOptions - * @return {?} - */ - set: function (gridPaginationOptions) { - this._gridPaginationOptions = gridPaginationOptions; - if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) { - this.refreshPagination(); - } - }, - enumerable: true, - configurable: true - }); - /** - * @return {?} - */ - SlickPaginationComponent.prototype.ngOnInit = function () { - }; - /** - * @return {?} - */ - SlickPaginationComponent.prototype.ngAfterViewInit = function () { - this._gridPaginationOptions = this._gridPaginationOptions; - if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) { - this.refreshPagination(); - } - }; - /** - * @param {?} number - * @return {?} - */ - SlickPaginationComponent.prototype.ceil = function (number) { - return Math.ceil(number); - }; - /** - * @param {?} event - * @return {?} - */ - SlickPaginationComponent.prototype.onChangeItemPerPage = function (event) { - var /** @type {?} */ itemsPerPage = (event.target.value); - this.pageCount = Math.ceil(this.totalItems / itemsPerPage); - this.pageNumber = 1; - this.itemsPerPage = itemsPerPage; - this.onPageChanged(event, this.pageNumber); - }; - /** - * @param {?} event - * @return {?} - */ - SlickPaginationComponent.prototype.changeToFirstPage = function (event) { - this.pageNumber = 1; - this.onPageChanged(event, this.pageNumber); - }; - /** - * @param {?} event - * @return {?} - */ - SlickPaginationComponent.prototype.changeToLastPage = function (event) { - this.pageNumber = this.pageCount; - this.onPageChanged(event, this.pageNumber); - }; - /** - * @param {?} event - * @return {?} - */ - SlickPaginationComponent.prototype.changeToNextPage = function (event) { - if (this.pageNumber < this.pageCount) { - this.pageNumber++; - this.onPageChanged(event, this.pageNumber); - } - }; - /** - * @param {?} event - * @return {?} - */ - SlickPaginationComponent.prototype.changeToPreviousPage = function (event) { - if (this.pageNumber > 0) { - this.pageNumber--; - this.onPageChanged(event, this.pageNumber); - } - }; - /** - * @return {?} - */ - SlickPaginationComponent.prototype.gotoFirstPage = function () { - this.pageNumber = 1; - this.onPageChanged(undefined, this.pageNumber); - }; - /** - * @return {?} - */ - SlickPaginationComponent.prototype.refreshPagination = function () { - if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) { - // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes - if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) { - this.pageNumber = 1; - this.recalculateFromToIndexes(); - } - // calculate and refresh the multiple properties of the pagination UI - this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes; - this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize; - if (this._gridPaginationOptions.onPaginationChanged) { - this.paginationCallback = this._gridPaginationOptions.onPaginationChanged; - } - this.totalItems = this._gridPaginationOptions.pagination.totalItems; - this.dataTo = this.itemsPerPage; - } - this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage); - }; - /** - * @param {?=} event - * @param {?=} pageNumber - * @return {?} - */ - SlickPaginationComponent.prototype.onPageChanged = function (event, pageNumber) { - this.recalculateFromToIndexes(); - if (this.dataTo > this.totalItems) { - this.dataTo = this.totalItems; - } - if (typeof this.paginationCallback === 'function') { - var /** @type {?} */ itemsPerPage = this.itemsPerPage; - this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage }); - } - }; - /** - * @return {?} - */ - SlickPaginationComponent.prototype.recalculateFromToIndexes = function () { - this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1; - this.dataTo = (this.pageNumber * this.itemsPerPage); - }; - return SlickPaginationComponent; -}()); -SlickPaginationComponent.decorators = [ - { type: Component, args: [{ - selector: 'slick-pagination', - template: "\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n ", - styles: [ - "\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n " - ] - },] }, -]; -/** - * @nocollapse - */ -SlickPaginationComponent.ctorParameters = function () { return []; }; -SlickPaginationComponent.propDecorators = { - 'gridPaginationOptions': [{ type: Input },], - 'grid': [{ type: Input },], -}; -/** - * Options that can be passed to the Bootstrap-Datetimepicker directly - */ -var GlobalGridOptions = { - autoEdit: false, - asyncEditorLoading: false, - autoFitColumnsOnFirstLoad: true, - autoResize: { - bottomPadding: 20, - minHeight: 180, - minWidth: 300, - sidePadding: 0 - }, - enableAutoResize: true, - cellHighlightCssClass: 'slick-cell-modified', - editable: false, - enableCellNavigation: false, - enableColumnPicker: true, - enableColumnReorder: true, - enableMouseOverRow: true, - enablePagination: false, - enableSorting: true, - enableTextSelectionOnCells: true, - explicitInitialization: false, - forceFitColumns: false, - headerRowHeight: 35, - multiColumnSort: true, - pagination: { - pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100], - pageSize: 25, - totalItems: 0 - }, - rowHeight: 35, - showHeaderRow: false, - topPanelHeight: 25 -}; -var AngularSlickgridComponent = (function () { - /** - * @param {?} resizer - * @param {?} mouseService - * @param {?} filterService - * @param {?} sortService - */ - function AngularSlickgridComponent(resizer, mouseService, filterService, sortService) { - this.resizer = resizer; - this.mouseService = mouseService; - this.filterService = filterService; - this.sortService = sortService; - this._columnFilters = {}; - this.showPagination = false; - this.onFilter = new Slick.Event(); - this.gridHeight = 100; - this.gridWidth = 600; - } - Object.defineProperty(AngularSlickgridComponent.prototype, "dataset", { - /** - * @return {?} - */ - get: function () { - return this._dataView.getItems(); - }, - /** - * @param {?} dataset - * @return {?} - */ - set: function (dataset) { - this._dataset = dataset; - this.refreshGridData(dataset); - }, - enumerable: true, - configurable: true - }); - /** - * @return {?} - */ - AngularSlickgridComponent.prototype.ngOnInit = function () { - this.gridHeightString = this.gridHeight + "px"; - this.gridWidthString = this.gridWidth + "px"; - }; - /** - * @return {?} - */ - AngularSlickgridComponent.prototype.ngAfterViewInit = function () { - // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null) - this._dataset = this._dataset || []; - this._gridOptions = this.mergeGridOptions(); - this._dataView = new Slick.Data.DataView(); - this.grid = new Slick.Grid("#" + this.gridId, this._dataView, this.columnDefinitions, this._gridOptions); - this.grid.setSelectionModel(new Slick.RowSelectionModel()); - if (this._gridOptions.enableColumnPicker) { - var /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); - } - this.grid.init(); - this._dataView.beginUpdate(); - this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView); - this._dataView.setItems(this._dataset); - this._dataView.endUpdate(); - // attach resize ONLY after the dataView is ready - this.attachResizeHook(this.grid, this._gridOptions); - }; - /** - * @param {?} grid - * @param {?} options - * @param {?} dataView - * @return {?} - */ - AngularSlickgridComponent.prototype.attachDifferentHooks = function (grid, options, dataView) { - // attach external sorting (backend) when available or default onSort (dataView) - if (options.enableSorting) { - (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView); - } - // attach external filter (backend) when available or default onSort (dataView) - if (options.enableFiltering) { - this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters); - (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView); - } - // if enable, change background color on mouse over - if (options.enableMouseOverRow) { - this.mouseService.attachOnMouseHover(grid); - } - dataView.onRowCountChanged.subscribe(function (e, args) { - grid.updateRowCount(); - grid.render(); - }); - dataView.onRowsChanged.subscribe(function (e, args) { - grid.invalidateRows(args.rows); - grid.render(); - }); - }; - /** - * @param {?} grid - * @param {?} options - * @return {?} - */ - AngularSlickgridComponent.prototype.attachResizeHook = function (grid, options) { - // expand/autofit columns on first page load - if (this._gridOptions.autoFitColumnsOnFirstLoad) { - this.grid.autosizeColumns(); - } - // auto-resize grid on browser resize - if (options.enableAutoResize) { - this.resizer.attachAutoResizeDataGrid(grid, options); - if (options.autoFitColumnsOnFirstLoad) { - grid.autosizeColumns(); - } - } - else { - this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth }); - } - }; - /** - * @return {?} - */ - AngularSlickgridComponent.prototype.mergeGridOptions = function () { - this.gridOptions.gridId = this.gridId; - this.gridOptions.gridContainerId = "slickGridContainer-" + this.gridId; - if (this.gridOptions.enableFiltering) { - this.gridOptions.showHeaderRow = true; - } - var /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions); - return options; - }; - /** - * Toggle the filter row displayed on first row - * @param {?} isShowing - * @return {?} - */ - AngularSlickgridComponent.prototype.showHeaderRow = function (isShowing) { - this.grid.setHeaderRowVisibility(isShowing); - return isShowing; - }; - /** - * Toggle the filter row displayed on first row - * @return {?} - */ - AngularSlickgridComponent.prototype.toggleHeaderRow = function () { - var /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow; - this.grid.setHeaderRowVisibility(isShowing); - return isShowing; - }; - /** - * @param {?} dataset - * @return {?} - */ - AngularSlickgridComponent.prototype.refreshGridData = function (dataset) { - var _this = this; - if (dataset && this.grid) { - this._dataView.setItems(dataset); - // this.grid.setData(dataset); - this.grid.invalidate(); - this.grid.render(); - if (this._gridOptions.enablePagination) { - this.showPagination = true; - this.gridPaginationOptions = this.mergeGridOptions(); - } - if (this._gridOptions.enableAutoResize) { - // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed) - setTimeout(function () { - _this.resizer.resizeGrid(_this.grid, _this._gridOptions); - _this.grid.autosizeColumns(); - }); - } - } - }; - return AngularSlickgridComponent; -}()); -AngularSlickgridComponent.decorators = [ - { type: Injectable }, - { type: Component, args: [{ - selector: 'angular-slickgrid', - template: "\n
\n
\n
\n\n \n
\n " - },] }, -]; -/** - * @nocollapse - */ -AngularSlickgridComponent.ctorParameters = function () { return [ - { type: ResizerService, }, - { type: MouseService, }, - { type: FilterService, }, - { type: SortService, }, -]; }; -AngularSlickgridComponent.propDecorators = { - 'gridId': [{ type: Input },], - 'columnDefinitions': [{ type: Input },], - 'gridOptions': [{ type: Input },], - 'gridHeight': [{ type: Input },], - 'gridWidth': [{ type: Input },], - 'dataset': [{ type: Input },], -}; -var AngularSlickgridModule = (function () { - function AngularSlickgridModule() { - } - return AngularSlickgridModule; -}()); -AngularSlickgridModule.decorators = [ - { type: NgModule, args: [{ - imports: [ - CommonModule - ], - declarations: [ - AngularSlickgridComponent, - SlickPaginationComponent - ], - exports: [ - AngularSlickgridComponent, - SlickPaginationComponent - ], - providers: [ - MouseService, - OdataService, - FilterService, - SortService, - ResizerService - ] - },] }, -]; -/** - * @nocollapse - */ -AngularSlickgridModule.ctorParameters = function () { return []; }; -// Public classes. -/** - * Angular library starter. - * Build an Angular library compatible with AoT compilation & Tree shaking. - * Written by Roberto Simonetti. - * MIT license. - * https://github.com/robisim74/angular-slickgrid - */ -/** - * Entry point for all public APIs of the package. - */ -/** - * Generated bundle index. Do not edit. - */ -export { CaseType, FormElementType, FieldType, FilterConditions, FilterTemplates, Formatters, Sorters, FilterService, MouseService, ResizerService, SortService, GridOdataService, SlickPaginationComponent, AngularSlickgridComponent, AngularSlickgridModule, OdataService as ɵa }; -//# sourceMappingURL=angular-slickgrid.es5.js.map diff --git a/dist/modules/angular-slickgrid.es5.js.map b/dist/modules/angular-slickgrid.es5.js.map deleted file mode 100644 index 71536c0f5..000000000 --- a/dist/modules/angular-slickgrid.es5.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"angular-slickgrid.es5.js","sources":["../../angular-slickgrid.ts","../../public_api.ts","../../src/angular-slickgrid.ts","../../src/modules/angular-slickgrid.module.ts","../../src/components/angular-slickgrid.component.ts","../../src/global-grid-options.ts","../../src/components/slick-pagination.component.ts","../../src/services/grid-odata.service.ts","../../src/services/odata.service.ts","../../src/services/global-utilities.ts","../../src/services/sort.service.ts","../../src/services/resizer.service.ts","../../src/services/mouse.service.ts","../../src/services/filter.service.ts","../../src/sorters/index.ts","../../src/sorters/stringSorter.ts","../../src/sorters/numericSorter.ts","../../src/sorters/dateUsSorter.ts","../../src/sorters/dateIsoSorter.ts","../../src/sorters/dateSorter.ts","../../src/sorters/dateUsShortSorter.ts","../../src/formatters/index.ts","../../src/formatters/yesNoFormatter.ts","../../src/formatters/progressBarFormatter.ts","../../src/formatters/percentCompleteBarFormatter.ts","../../src/formatters/percentCompleteFormatter.ts","../../src/formatters/dateUsFormatter.ts","../../src/formatters/dateTimeUsFormatter.ts","../../src/formatters/dateTimeUsAmPmFormatter.ts","../../src/formatters/dateTimeIsoAmPmFormatter.ts","../../src/formatters/dateIsoFormatter.ts","../../src/formatters/checkmarkFormatter.ts","../../src/formatters/checkboxFormatter.ts","../../src/filter-templates/index.ts","../../src/filter-templates/selectFilterTemplate.ts","../../src/filter-templates/inputFilterTemplate.ts","../../src/filter-conditions/index.ts","../../src/filter-conditions/executeMappedCondition.ts","../../src/filter-conditions/stringFilterCondition.ts","../../src/filter-conditions/numberFilterCondition.ts","../../src/filter-conditions/dateFilterCondition.ts","../../src/filter-conditions/dateUsFilterCondition.ts","../../src/filter-conditions/dateUsShortFilterCondition.ts","../../src/filter-conditions/dateIsoFilterCondition.ts","../../src/filter-conditions/dateUtcFilterCondition.ts","../../src/filter-conditions/filterUtilities.ts","../../src/filter-conditions/booleanFilterCondition.ts","../../src/models/fieldType.ts","../../src/models/formElementType.ts","../../src/models/caseType.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {CaseType,Column,Formatter,GridOption,FormElementType,FieldType,FilterConditions,FilterTemplates,Formatters,Sorters,FilterService,MouseService,ResizerService,SortService,GridOdataService,SlickPaginationComponent,AngularSlickgridComponent,AngularSlickgridModule} from './public_api';\n\nexport {OdataService as ɵa} from './src/services/odata.service';","/**\r\n * Angular library starter.\r\n * Build an Angular library compatible with AoT compilation & Tree shaking.\r\n * Written by Roberto Simonetti.\r\n * MIT license.\r\n * https://github.com/robisim74/angular-slickgrid\r\n */\r\n\r\n/**\r\n * Entry point for all public APIs of the package.\r\n */\r\nexport {CaseType,Column,Formatter,GridOption,FormElementType,FieldType,FilterConditions,FilterTemplates,Formatters,Sorters,FilterService,MouseService,ResizerService,SortService,GridOdataService,SlickPaginationComponent,AngularSlickgridComponent,AngularSlickgridModule} from './src/angular-slickgrid';\r\n","// Public classes.\r\nexport { CaseType } from './models/caseType';\r\nexport { Column } from './models/column.interface';\r\nexport { Formatter } from './models/formatter.interface';\r\nexport { GridOption } from './models/gridOption.interface';\r\nexport { FormElementType } from './models/formElementType';\r\nexport { FieldType } from './models/fieldType';\r\n\r\nexport { FilterConditions } from './filter-conditions/index';\r\nexport { FilterTemplates } from './filter-templates/index';\r\nexport { Formatters } from './formatters/index';\r\nexport { Sorters } from './sorters/index';\r\n\r\nexport { FilterService } from './services/filter.service';\r\nexport { MouseService } from './services/mouse.service';\r\nexport { ResizerService } from './services/resizer.service';\r\nexport { SortService } from './services/sort.service';\r\nexport { GridOdataService } from './services/grid-odata.service';\r\n\r\nexport { SlickPaginationComponent } from './components/slick-pagination.component';\r\nexport { AngularSlickgridComponent } from './components/angular-slickgrid.component';\r\nexport { AngularSlickgridModule } from './modules/angular-slickgrid.module';\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Formatters } from './../formatters/index';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\nexport class AngularSlickgridModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n providers: [\n MouseService,\n OdataService,\n FilterService,\n SortService,\n ResizerService\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction AngularSlickgridModule_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { ColumnFilters } from './../models/columnFilters.interface';\nimport { FormElementType } from './../models/formElementType';\nimport { GridOption } from './../models/gridOption.interface';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { SortService } from './../services/sort.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { GlobalGridOptions } from './../global-grid-options';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class AngularSlickgridComponent implements AfterViewInit, OnInit {\nprivate _dataset: any[];\nprivate _dataView: any;\nprivate _gridOptions: GridOption;\nprivate _columnFilters: ColumnFilters = {};\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n showPagination = false;\n onFilter = new Slick.Event();\n\n gridId: string;\n columnDefinitions: Column[];\n gridOptions: GridOption;\n gridHeight = 100;\n gridWidth = 600;\n/**\n * @param {?} dataset\n * @return {?}\n */\nset dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n/**\n * @return {?}\n */\nget dataset(): any[] {\n return this._dataView.getItems();\n }\n/**\n * @param {?} resizer\n * @param {?} mouseService\n * @param {?} filterService\n * @param {?} sortService\n */\nconstructor(private resizer: ResizerService,\nprivate mouseService: MouseService,\nprivate filterService: FilterService,\nprivate sortService: SortService) {\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this._gridOptions = this.mergeGridOptions();\n\n this._dataView = new Slick.Data.DataView();\n\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions);\n this.grid.setSelectionModel(new Slick.RowSelectionModel());\n\n if (this._gridOptions.enableColumnPicker) {\n const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions);\n }\n\n this.grid.init();\n this._dataView.beginUpdate();\n this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView);\n\n this._dataView.setItems(this._dataset);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this._gridOptions);\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @param {?} dataView\n * @return {?}\n */\nattachDifferentHooks(grid: any, options: GridOption, dataView: any) {\n // attach external sorting (backend) when available or default onSort (dataView)\n if (options.enableSorting) {\n (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView);\n }\n\n // attach external filter (backend) when available or default onSort (dataView)\n if (options.enableFiltering) {\n this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters);\n (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView);\n }\n\n // if enable, change background color on mouse over\n if (options.enableMouseOverRow) {\n this.mouseService.attachOnMouseHover(grid);\n }\n\n dataView.onRowCountChanged.subscribe((e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n dataView.onRowsChanged.subscribe((e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\nattachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (this._gridOptions.autoFitColumnsOnFirstLoad) {\n this.grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid(grid, options);\n if (options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n } else {\n this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth });\n }\n }\n/**\n * @return {?}\n */\nmergeGridOptions(): GridOption {\n this.gridOptions.gridId = this.gridId;\n this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (this.gridOptions.enableFiltering) {\n this.gridOptions.showHeaderRow = true;\n }\n const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions);\n return options;\n }\n/**\n * Toggle the filter row displayed on first row\n * @param {?} isShowing\n * @return {?}\n */\nshowHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * Toggle the filter row displayed on first row\n * @return {?}\n */\ntoggleHeaderRow() {\n const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * @param {?} dataset\n * @return {?}\n */\nrefreshGridData(dataset: any) {\n if (dataset && this.grid) {\n this._dataView.setItems(dataset);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this._gridOptions.enablePagination) {\n this.showPagination = true;\n this.gridPaginationOptions = this.mergeGridOptions();\n }\n if (this._gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n setTimeout(() => {\n this.resizer.resizeGrid(this.grid, this._gridOptions);\n this.grid.autosizeColumns();\n });\n }\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n{ type: Component, args: [{\n selector: 'angular-slickgrid',\n template: `\n
\n
\n
\n\n \n
\n `\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ResizerService, },\n{type: MouseService, },\n{type: FilterService, },\n{type: SortService, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridId': [{ type: Input },],\n'columnDefinitions': [{ type: Input },],\n'gridOptions': [{ type: Input },],\n'gridHeight': [{ type: Input },],\n'gridWidth': [{ type: Input },],\n'dataset': [{ type: Input },],\n};\n}\n\nfunction AngularSlickgridComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridComponent.ctorParameters;\n/** @type {?} */\nAngularSlickgridComponent.propDecorators;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataset;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataView;\n/** @type {?} */\nAngularSlickgridComponent.prototype._gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype._columnFilters;\n/** @type {?} */\nAngularSlickgridComponent.prototype.grid;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridPaginationOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeightString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidthString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.showPagination;\n/** @type {?} */\nAngularSlickgridComponent.prototype.onFilter;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridId;\n/** @type {?} */\nAngularSlickgridComponent.prototype.columnDefinitions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeight;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidth;\n/** @type {?} */\nAngularSlickgridComponent.prototype.resizer;\n/** @type {?} */\nAngularSlickgridComponent.prototype.mouseService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.filterService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.sortService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './models/gridOption.interface';\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n enableAutoResize: true,\n cellHighlightCssClass: 'slick-cell-modified',\n editable: false,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableMouseOverRow: true,\n enablePagination: false,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: false,\n forceFitColumns: false,\n headerRowHeight: 35,\n multiColumnSort: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 25\n};\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { GridOption } from './../models/gridOption.interface';\nexport class SlickPaginationComponent implements AfterViewInit, OnInit {\nprivate _gridPaginationOptions: GridOption;\n/**\n * @param {?} gridPaginationOptions\n * @return {?}\n */\nset gridPaginationOptions(gridPaginationOptions: GridOption) {\n this._gridPaginationOptions = gridPaginationOptions;\n if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @return {?}\n */\nget gridPaginationOptions(): GridOption {\n return this._gridPaginationOptions;\n }\n grid: any;\n dataFrom = 1;\n dataTo = 1;\n itemsPerPage = 25;\n pageCount = 0;\n pageNumber = 1;\n totalItems = 0;\n paginationCallback: Function;\n paginationPageSizes = [25, 75, 100];\nconstructor() { }\n/**\n * @return {?}\n */\nngOnInit() {\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n this._gridPaginationOptions = this._gridPaginationOptions;\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @param {?} number\n * @return {?}\n */\nceil(number: number) {\n return Math.ceil(number);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nonChangeItemPerPage(event: any) {\n const /** @type {?} */ itemsPerPage = /** @type {?} */(( event.target.value));\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\n this.pageNumber = 1;\n this.itemsPerPage = itemsPerPage;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToFirstPage(event: any) {\n this.pageNumber = 1;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToLastPage(event: any) {\n this.pageNumber = this.pageCount;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToNextPage(event: any) {\n if (this.pageNumber < this.pageCount) {\n this.pageNumber++;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToPreviousPage(event: any) {\n if (this.pageNumber > 0) {\n this.pageNumber--;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @return {?}\n */\ngotoFirstPage() {\n this.pageNumber = 1;\n this.onPageChanged(undefined, this.pageNumber);\n }\n/**\n * @return {?}\n */\nrefreshPagination() {\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\n if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) {\n this.pageNumber = 1;\n this.recalculateFromToIndexes();\n }\n\n // calculate and refresh the multiple properties of the pagination UI\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\n this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize;\n if (this._gridPaginationOptions.onPaginationChanged) {\n this.paginationCallback = this._gridPaginationOptions.onPaginationChanged;\n }\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\n this.dataTo = this.itemsPerPage;\n }\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n/**\n * @param {?=} event\n * @param {?=} pageNumber\n * @return {?}\n */\nonPageChanged(event?: Event, pageNumber?: number) {\n this.recalculateFromToIndexes();\n\n if (this.dataTo > this.totalItems) {\n this.dataTo = this.totalItems;\n }\n if (typeof this.paginationCallback === 'function') {\n const /** @type {?} */ itemsPerPage = this.itemsPerPage;\n this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage });\n }\n }\n/**\n * @return {?}\n */\nrecalculateFromToIndexes() {\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\n this.dataTo = (this.pageNumber * this.itemsPerPage);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n selector: 'slick-pagination',\n template: `\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n `,\n styles: [\n `\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n `\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridPaginationOptions': [{ type: Input },],\n'grid': [{ type: Input },],\n};\n}\n\nfunction SlickPaginationComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nSlickPaginationComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSlickPaginationComponent.ctorParameters;\n/** @type {?} */\nSlickPaginationComponent.propDecorators;\n/** @type {?} */\nSlickPaginationComponent.prototype._gridPaginationOptions;\n/** @type {?} */\nSlickPaginationComponent.prototype.grid;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataFrom;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataTo;\n/** @type {?} */\nSlickPaginationComponent.prototype.itemsPerPage;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageCount;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageNumber;\n/** @type {?} */\nSlickPaginationComponent.prototype.totalItems;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationCallback;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationPageSizes;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from './../models/caseType';\nimport { FilterChangedArgs } from './../models/filterChangedArgs.interface';\nimport { FieldType } from './../models/fieldType';\nimport { OdataOption } from './../models/odataOption.interface';\nimport { PaginationChangedArgs } from './../models/paginationChangedArgs.interface';\nimport { SortChangedArgs } from './../models/sortChangedArgs.interface';\nimport { OdataService } from './odata.service';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_;\nexport class GridOdataService {\n defaultSortBy = '';\n minUserInactivityOnFilter = 700;\n/**\n * @param {?} odataService\n */\nconstructor(private odataService: OdataService) { }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} options\n * @return {?}\n */\ninitOptions(options: OdataOption): void {\n this.odataService.options = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n this.odataService.removeColumnFilter(fieldName);\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n this.odataService.updateOptions({\n skip: 0\n });\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n this.odataService.saveColumnFilter(fieldName, value, terms);\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n let /** @type {?} */ searchBy: string = '';\n let /** @type {?} */ timer: any = 0;\n const /** @type {?} */ searchByArray = [];\n\n // loop through all columns to inspect filters\n for (const /** @type {?} */ columnId in args.columnFilters) {\n if (args.columnFilters.hasOwnProperty(columnId)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnDef = columnFilter.columnDef;\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || 'string';\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n if (typeof fieldSearchValue !== 'string') {\n throw new Error(`OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n const /** @type {?} */ searchTerms = columnFilter.listTerm || [];\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n let /** @type {?} */ searchValue = (!!matches) ? matches[2] : fieldSearchValue;\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false;\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '') {\n this.removeColumnFilter(fieldName);\n continue;\n }\n\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n searchValue = encodeURIComponent(searchValue); // encode URI of the final search value\n\n // extra query arguments\n if (bypassOdataQuery) {\n // push to our temp array and also trim white spaces\n if (fieldName) {\n this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms);\n }\n } else {\n let /** @type {?} */ searchBy = '';\n\n // titleCase the fieldName so that it matches the WebApi names\n const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || '');\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `(${searchBy})`;\n }\n } else if (operator === '*' || lastValueChar !== '') {\n // first/last character is a '*' will be a startsWith or endsWith\n searchBy = operator === '*'\n ? `endswith(${fieldNameTitleCase}, '${searchValue}')`\n : `startswith(${fieldNameTitleCase}, '${searchValue}')`;\n } else if (fieldType === FieldType.date) {\n // date field needs to be UTC and within DateTime function\n const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true);\n if (dateFormatted) {\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`;\n }\n } else if (fieldType === FieldType.string) {\n // string field needs to be in single quotes\n searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`;\n } else {\n // any other field type (or undefined type)\n searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`;\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`;\n }\n\n // push to our temp array and also trim white spaces\n if (searchBy !== '') {\n searchByArray.push(String.trim(searchBy));\n this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms);\n }\n }\n }\n }\n\n // build the filter query\n this.odataService.updateOptions({\n filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '',\n skip: undefined\n });\n\n // reset Pagination, then build the OData query which we will use in the WebAPI callback\n this.resetPaginationOptions();\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n this.odataService.updateOptions({\n top: args.pageSize,\n skip: (args.newPage - 1) * args.pageSize\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n let /** @type {?} */ sortByArray = [];\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc\n if (sortColumns && sortColumns.length === 0) {\n sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort\n } else {\n if (sortColumns) {\n for (let /** @type {?} */ column of sortColumns) {\n let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id;\n if (this.odataService.options.caseType === CaseType.pascalCase) {\n fieldName = String.titleCase(fieldName);\n }\n const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc';\n const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`;\n sortByArray.push(sortByColumnString);\n }\n }\n }\n\n // transform the sortby array into a CSV string\n const /** @type {?} */ csvArray = sortByArray.join(',');\n this.odataService.updateOptions({\n orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * Mapper for mathematical operators (ex.: <= is \"le\", > is \"gt\")\n * @param {?} operator\n * @return {?} string map\n */\nprivate mapOperator(operator: string) {\n let /** @type {?} */ map = '';\n switch (operator) {\n case '<':\n map = 'lt';\n break;\n case '<=':\n map = 'le';\n break;\n case '>':\n map = 'gt';\n break;\n case '>=':\n map = 'ge';\n break;\n case '<>':\n case '!=':\n map = 'ne';\n break;\n case '=':\n case '==':\n default:\n map = 'eq';\n break;\n }\n\n return map;\n }\n/**\n * Parse a date passed as a string and return a Date object (if valid)\n * @param {?} inputDateString\n * @param {?} useUtc\n * @return {?} object Date\n */\nprivate parseUtcDate(inputDateString: string, useUtc: boolean) {\n let /** @type {?} */ date = null;\n\n if (/^[0-9\\-\\/]*$/.test(inputDateString)) {\n // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text\n const /** @type {?} */ dateString = decodeURIComponent(inputDateString);\n const /** @type {?} */ dateMoment = moment(new Date(dateString));\n if (dateMoment.isValid() && dateMoment.year().toString().length === 4) {\n date = (useUtc) ? dateMoment.utc().format() : dateMoment.format();\n }\n }\n\n return date;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: OdataService, },\n];\n}\n\nfunction GridOdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nGridOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGridOdataService.ctorParameters;\n/** @type {?} */\nGridOdataService.prototype.defaultSortBy;\n/** @type {?} */\nGridOdataService.prototype.minUserInactivityOnFilter;\n/** @type {?} */\nGridOdataService.prototype.odataService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from '../models/caseType';\nimport { OdataOption } from './../models/odataOption.interface';\nexport class OdataService {\n _columnFilters: any;\n _defaultSortBy: string;\n _odataOptions: OdataOption;\nconstructor() {\n this._odataOptions = {\n filterQueue: [],\n orderBy: ''\n };\n this._defaultSortBy = '';\n this._columnFilters = {};\n }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ queryTmpArray = [];\n\n if (this._odataOptions.top) {\n queryTmpArray.push(`$top=${this._odataOptions.top}`);\n }\n if (this._odataOptions.skip) {\n queryTmpArray.push(`$skip=${this._odataOptions.skip}`);\n }\n if (this._odataOptions.orderBy) {\n let /** @type {?} */ argument = '';\n if (Array.isArray(this._odataOptions.orderBy)) {\n argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc\n } else {\n argument = this._odataOptions.orderBy;\n }\n queryTmpArray.push(`$orderby=${argument}`);\n }\n if (this._odataOptions.filterBy || this._odataOptions.filter) {\n if (this._odataOptions.filter) {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ filterStr = this._odataOptions.filter;\n if (Array.isArray(this._odataOptions.filter)) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n filterStr = this._odataOptions.filter.join(separatorSpacedOut);\n }\n this._odataOptions.filterQueue.push(`(${filterStr})`);\n }\n // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered\n if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) {\n if (this._odataOptions.filterBy.searchTerm !== '') {\n this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm);\n this.updateFilterFromListTerms(this._odataOptions.filterBy);\n }\n }\n }\n if (this._odataOptions.filterQueue.length > 0) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut);\n this._odataOptions.filter = query; // overwrite with\n queryTmpArray.push(`$filter=${query}`);\n }\n\n // join all the odata functions by a '&'\n return queryTmpArray.join('&');\n }\n/**\n * @param {?} columnName\n * @return {?}\n */\ngetFilterByColumn(columnName: string): string {\n return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null;\n }\n/**\n * @return {?}\n */\ngetFilterCount(): number {\n return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0;\n }\n/**\n * @return {?}\n */\nget columnFilters(): any[] {\n return this._columnFilters;\n }\n/**\n * @return {?}\n */\nget options(): OdataOption {\n return this._odataOptions;\n }\n/**\n * @param {?} options\n * @return {?}\n */\nset options(options: OdataOption) {\n this._odataOptions = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string) {\n delete this._columnFilters[fieldName];\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} searchTerms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: any, searchTerms?: any[]) {\n this._columnFilters[fieldName] = {\n search: searchTerms,\n value: value\n };\n }\n/**\n * Update the filter by a list of terms usually passed manually by the user as default filters\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromListTerms(filterOptions: any) {\n // build the filter query\n if (Array.isArray(filterOptions)) {\n filterOptions.forEach((filterOptionObject) => {\n this.updateFilterFromTerm(filterOptionObject);\n });\n } else {\n this.updateFilterFromTerm(filterOptions);\n }\n }\n/**\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromTerm(filterOptions: any) {\n let /** @type {?} */ searchBy = '';\n const /** @type {?} */ tmpSearchByArray = [];\n const /** @type {?} */ fieldName = filterOptions.fieldName;\n const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm;\n const /** @type {?} */ operator = filterOptions.operator;\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (!!fieldSearchTerms && fieldSearchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `$(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `$(${searchBy})`;\n }\n }\n\n // push to our temp array and also trim white spaces\n tmpSearchByArray.push(String.trim(searchBy));\n\n // add to the filter queue only if it doesn't exist in the queue\n const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : '';\n if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) {\n this._odataOptions.filterQueue.push(filter);\n }\n }\n/**\n * Change any OData options that will be used to build the query\n * @param {?} options\n * @return {?}\n */\nupdateOptions(options: OdataOption) {\n for (const /** @type {?} */ property of Object.keys(options)) {\n if (options.hasOwnProperty(property)) {\n this._odataOptions[property] = options[property]; // replace of the property\n }\n\n // we need to keep the defaultSortBy for references whenever the user removes his Sorting\n // then we would revert to the defaultSortBy and the only way is to keep a hard copy here\n if (property === 'orderBy' || property === 'sortBy') {\n let /** @type {?} */ sortBy = options[property];\n\n // make sure first char of each orderBy field is capitalize\n if (this._odataOptions.caseType === CaseType.pascalCase) {\n if (Array.isArray(sortBy)) {\n sortBy.forEach((field, index, inputArray) => {\n inputArray[index] = String.titleCase(field);\n });\n } else {\n sortBy = String.titleCase(options[property]);\n }\n }\n this._odataOptions.orderBy = sortBy;\n this._defaultSortBy = sortBy;\n }\n }\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOdataService.ctorParameters;\n/** @type {?} */\nOdataService.prototype._columnFilters;\n/** @type {?} */\nOdataService.prototype._defaultSortBy;\n/** @type {?} */\nOdataService.prototype._odataOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","declare interface StringConstructor {\n allTitleCase(inputStr: string): string;\n format(inputStr: string, args: any): string;\n padZero(length: number): string;\n trim(inputStr: string): string;\n titleCase(inputStr: string): string;\n}\n\n\nString.format = function(format: string, args: any): string {\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] !== 'undefined') ? args[number] : match;\n });\n};\n\nString.padZero = function (this: string, length: number) {\n let /** @type {?} */ s = this;\n while (s.length < length) {\n s = '0' + s;\n }\n return s;\n};\n\n/**\n * Trim any extra white space from the string\n * @param string inputStr\n * @returns string outputStr\n */\nString.trim = function(inputStr: string): string {\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n */\nString.allTitleCase = function(inputStr: string): string {\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\n });\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n*/\nString.titleCase = function(inputStr: string): string {\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\n};\n","import { GridOption } from './../models/gridOption.interface';\nimport { FieldType } from './../models/fieldType';\nimport { Sorter } from './../models/sorter.interface';\nimport { Sorters } from './../sorters/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\nexport class SortService {\n subscriber: any;\nconstructor() { }\n/**\n * Attach a backend sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @return {?}\n */\nattachBackendOnSort(grid: any, gridOptions: GridOption) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe(gridOptions.onSortChanged);\n }\n/**\n * Attach a local sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n dataView.sort(function (dataRow1: any, dataRow2: any) {\n for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) {\n const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1;\n const /** @type {?} */ sortField = sortColumns[i].sortCol.field;\n const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string';\n const /** @type {?} */ value1 = dataRow1[sortField];\n const /** @type {?} */ value2 = dataRow2[sortField];\n let /** @type {?} */ result = 0;\n\n switch (fieldType) {\n case FieldType.number:\n result = Sorters.numeric(value1, value2, sortDirection);\n break;\n case FieldType.date:\n result = Sorters.date(value1, value2, sortDirection);\n break;\n case FieldType.dateIso:\n result = Sorters.dateIso(value1, value2, sortDirection);\n break;\n case FieldType.dateUs:\n result = Sorters.dateUs(value1, value2, sortDirection);\n break;\n case FieldType.dateUsShort:\n result = Sorters.dateUsShort(value1, value2, sortDirection);\n break;\n default:\n result = Sorters.string(value1, value2, sortDirection);\n break;\n }\n\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n });\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction SortService_tsickle_Closure_declarations() {\n/** @type {?} */\nSortService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSortService.ctorParameters;\n/** @type {?} */\nSortService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\nimport { GridOption } from './../models/gridOption.interface';\n\ndeclare var $: any;\n\n// global constants, height/width are in pixels\nconst /** @type {?} */ DATAGRID_MIN_HEIGHT = 180;\nconst /** @type {?} */ DATAGRID_MIN_WIDTH = 300;\nconst /** @type {?} */ DATAGRID_BOTTOM_PADDING = 20;\nconst /** @type {?} */ DATAGRID_PAGINATION_HEIGHT = 35;\nexport class ResizerService {\n/**\n * @param {?} router\n */\nconstructor(private router: Router) {\n }\n/**\n * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\n * Options: we could also provide a % factor to resize on each height/width independently\n * @param {?} grid\n * @param {?} gridOptions\n * @return {?}\n */\nattachAutoResizeDataGrid(grid: any, gridOptions: GridOption): any|void {\n // if we can't find the grid to resize, return without attaching anything\n const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`);\n if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') {\n return null;\n }\n\n // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load)\n this.resizeGrid(grid, gridOptions);\n\n // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load\n // -- attach auto-resize to Window object only if it exist\n $(window).on('resize', () => {\n this.resizeGrid(grid, gridOptions);\n });\n\n // destroy the resizer on route change\n this.router.events.subscribe((event: NavigationEnd) => {\n $(window).trigger('resize').off('resize');\n });\n }\n/**\n * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation\n * object gridOptions\n * @param {?} gridOptions\n * @return {?}\n */\ncalculateGridNewDimensions(gridOptions: GridOption): any {\n let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING;\n if (bottomPadding && gridOptions.enablePagination) {\n bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding\n }\n if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') {\n return;\n }\n const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding;\n const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width();\n const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT;\n const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH;\n\n let /** @type {?} */ newHeight = availableHeight;\n let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth;\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n return {\n height: newHeight,\n width: newWidth\n };\n }\n/**\n * Resize the datagrid to fit the browser height & width\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?=} newSizes\n * @return {?}\n */\nresizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}): void {\n // calculate new available sizes but with minimum height of 220px\n newSizes = newSizes || this.calculateGridNewDimensions(gridOptions);\n\n if (newSizes) {\n // apply these new height/width to the datagrid\n $(`#${gridOptions.gridId}`).height(newSizes.height);\n $(`#${gridOptions.gridId}`).width(newSizes.width);\n $(`#${gridOptions.gridContainerId}`).height(newSizes.height);\n $(`#${gridOptions.gridContainerId}`).width(newSizes.width);\n\n // resize the slickgrid canvas on all browser except some IE versions\n // exclude all IE below IE11\n // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape'\n if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) {\n grid.resizeCanvas();\n }\n\n // also call the grid auto-size columns so that it takes available when going bigger\n grid.autosizeColumns();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Router, },\n];\n}\n\nfunction ResizerService_tsickle_Closure_declarations() {\n/** @type {?} */\nResizerService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nResizerService.ctorParameters;\n/** @type {?} */\nResizerService.prototype.router;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\nexport class MouseService {\n/**\n * @param {?} grid\n * @return {?}\n */\nattachOnMouseHover(grid: any) {\r\n grid.onMouseEnter.subscribe((e: any) => {\r\n const /** @type {?} */ cell = grid.getCellFromEvent(e);\r\n if (cell && cell.row >= 0) {\r\n grid.setSelectedRows([cell.row]);\r\n e.preventDefault();\r\n }\r\n });\r\n grid.onMouseLeave.subscribe((e: any) => {\r\n grid.setSelectedRows([]);\r\n e.preventDefault();\r\n });\r\n }\r\n}\r\n","import { FilterConditions } from '../filter-conditions/index';\nimport { Column } from '../models/column.interface';\nimport { ColumnFilters } from '../models/columnFilters.interface';\nimport { FieldType } from '../models/fieldType';\nimport { FilterChangedArgs } from '../models/filterChangedArgs.interface';\nimport { FormElementType } from '../models/formElementType';\nimport { GridOption } from '../models/gridOption.interface';\nimport { FilterTemplates } from './../filter-templates/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class FilterService {\n _columnDefinitions: Column[];\n _columnFilters: ColumnFilters;\n _dataView: any;\n _grid: any;\n _gridOptions: GridOption;\n subscriber: any;\nconstructor() { }\n/**\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?} columnDefinitions\n * @param {?} columnFilters\n * @return {?}\n */\ninit(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any) {\n this._columnDefinitions = columnDefinitions;\n this._columnFilters = columnFilters;\n this._gridOptions = gridOptions;\n this._grid = grid;\n }\n/**\n * Attach a backend filter hook to the grid\n * @return {?}\n */\nattachBackendOnFilter() {\n this.subscriber = new Slick.Event();\n this.subscriber.subscribe(this._gridOptions.onFilterChanged);\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} operator\n * @param {?} value1\n * @param {?} value2\n * @return {?}\n */\ntestFilterCondition(operator: string, value1: any, value2: any) {\n switch (operator) {\n case '<': return (value1 < value2) ? true : false;\n case '<=': return (value1 <= value2) ? true : false;\n case '>': return (value1 > value2) ? true : false;\n case '>=': return (value1 >= value2) ? true : false;\n case '!=':\n case '<>': return (value1 !== value2) ? true : false;\n case '=':\n case '==': return (value1 === value2) ? true : false;\n }\n }\n/**\n * Attach a local filter hook to the grid\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnFilter(dataView: any) {\n this._dataView = dataView;\n this.subscriber = new Slick.Event();\n\n dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid });\n dataView.setFilter(this.customFilter);\n\n this.subscriber.subscribe((e: any, args: any) => {\n const /** @type {?} */ columnId = args.columnId;\n if (columnId != null) {\n dataView.refresh();\n }\n });\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} item\n * @param {?} args\n * @return {?}\n */\ncustomFilter(item: any, args: any) {\n for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId);\n const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex];\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || FieldType.string;\n const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null;\n const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null;\n\n let /** @type {?} */ cellValue = item[columnDef.field];\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n\n // no need to query if search value is empty\n if (searchTerm === '') {\n return true;\n }\n\n if (typeof cellValue === 'number') {\n cellValue = cellValue.toString();\n }\n\n const /** @type {?} */ conditionOptions = {\n fieldType: fieldType,\n searchTerm: searchTerm,\n cellValue: cellValue,\n operator: operator,\n cellValueLastChar: lastValueChar,\n filterSearchType: filterSearchType\n };\n if (conditionalFilterFn && typeof conditionalFilterFn === 'function') {\n conditionalFilterFn(conditionOptions);\n }\n if (!FilterConditions.executeMappedCondition(conditionOptions)) {\n return false;\n }\n }\n return true;\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\n/**\n * @param {?} e\n * @param {?} args\n * @return {?}\n */\ncallbackSearchEvent(e: any, args: any) {\n this._columnFilters[args.columnDef.id] = {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n searchTerm: e.target.value\n };\n\n this.triggerEvent(this.subscriber, {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n columnFilters: this._columnFilters,\n searchTerm: e.target.value,\n grid: this._grid\n }, e);\n }\n/**\n * @return {?}\n */\naddFilterTemplateToHeaderRow() {\n for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) {\n if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) {\n let /** @type {?} */ filterTemplate = '';\n let /** @type {?} */ elm = null;\n let /** @type {?} */ header;\n const /** @type {?} */ columnDef = this._columnDefinitions[i];\n const /** @type {?} */ columnId = columnDef.id;\n const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null;\n let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : '';\n\n // keep the filter in a columnFilters for later reference\n this.keepColumnFilters(searchTerm, listTerm, columnDef);\n\n if (!columnDef.filter) {\n searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null;\n filterTemplate = FilterTemplates.input(searchTerm, columnDef);\n } else {\n // custom Select template\n if (columnDef.filter.type === FormElementType.select) {\n filterTemplate = FilterTemplates.select(searchTerm, columnDef);\n }\n }\n\n // create the DOM Element\n header = this._grid.getHeaderRowColumn(columnDef.id);\n $(header).empty();\n elm = $(filterTemplate);\n elm.val(searchTerm);\n elm.data('columnId', columnDef.id);\n if (elm && typeof elm.appendTo === 'function') {\n elm.appendTo(header);\n }\n\n // depending on the DOM Element type, we will watch the corrent event\n const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input;\n switch (filterType) {\n case FormElementType.select:\n case FormElementType.multiSelect:\n elm.change((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n case FormElementType.input:\n default:\n elm.keyup((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n }\n }\n }\n }\n/**\n * @param {?} searchTerm\n * @param {?} listTerm\n * @param {?} columnDef\n * @return {?}\n */\nprivate keepColumnFilters(searchTerm: string, listTerm: any, columnDef: any) {\n if (searchTerm) {\n this._columnFilters[columnDef.id] = {\n columnId: columnDef.id,\n columnDef: columnDef,\n searchTerm: searchTerm\n };\n if (listTerm) {\n this._columnFilters.listTerm = listTerm;\n }\n }\n }\n/**\n * @param {?} evt\n * @param {?} args\n * @param {?} e\n * @return {?}\n */\nprivate triggerEvent(evt: any, args: any, e: any) {\n e = e || new Slick.EventData();\n return evt.notify(args, e, args.grid);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FilterService_tsickle_Closure_declarations() {\n/** @type {?} */\nFilterService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFilterService.ctorParameters;\n/** @type {?} */\nFilterService.prototype._columnDefinitions;\n/** @type {?} */\nFilterService.prototype._columnFilters;\n/** @type {?} */\nFilterService.prototype._dataView;\n/** @type {?} */\nFilterService.prototype._grid;\n/** @type {?} */\nFilterService.prototype._gridOptions;\n/** @type {?} */\nFilterService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { dateUsShortSorter } from './dateUsShortSorter';\r\nimport { dateSorter } from './dateSorter';\r\nimport { dateIsoSorter } from './dateIsoSorter';\r\nimport { dateUsSorter } from './dateUsSorter';\r\nimport { numericSorter } from './numericSorter';\r\nimport { stringSorter } from './stringSorter';\r\n\r\nexport const /** @type {?} */ Sorters = {\r\n date: dateSorter,\r\n dateIso: dateIsoSorter,\r\n dateUs: dateUsSorter,\r\n dateUsShort: dateUsShortSorter,\r\n numeric: numericSorter,\r\n string: stringSorter\r\n};\r\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ stringSorter: Sorter = (value1, value2, sortDirection) => {\n return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ numericSorter: Sorter = (value1, value2, sortDirection) => {\n const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1);\n const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2);\n return sortDirection * (x === y ? 0 : (x > y ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, moment.ISO_8601).isValid() || !moment(value2, moment.ISO_8601, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1);\n const /** @type {?} */ date2 = moment(value2);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Column } from './../models/column.interface';\r\nimport { checkboxFormatter } from './checkboxFormatter';\r\nimport { checkmarkFormatter } from './checkmarkFormatter';\r\nimport { dateIsoFormatter } from './dateIsoFormatter';\r\nimport { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter';\r\nimport { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter';\r\nimport { dateTimeUsFormatter } from './dateTimeUsFormatter';\r\nimport { dateUsFormatter } from './dateUsFormatter';\r\nimport { percentCompleteFormatter } from './percentCompleteFormatter';\r\nimport { percentCompleteBarFormatter } from './percentCompleteBarFormatter';\r\nimport { progressBarFormatter } from './progressBarFormatter';\r\nimport { yesNoFormatter } from './yesNoFormatter';\r\n// import { Group, GroupTotals } from '../core'\r\n// import { Item } from '../dataview'\r\n\r\n\r\n/*\r\nexport interface GroupFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string\r\n}\r\n\r\nexport interface GroupTotalsFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string\r\n}\r\n*/\r\nexport const /** @type {?} */ Formatters = {\r\n checkbox: checkboxFormatter,\r\n checkmark: checkmarkFormatter,\r\n dateIso: dateIsoFormatter,\r\n dateTimeIso: dateIsoFormatter,\r\n dateTimeIsoAmPm: dateTimeIsoAmPmFormatter,\r\n dateUs: dateUsFormatter,\r\n dateTimeUs: dateTimeUsFormatter,\r\n dateTimeUsAmPm: dateTimeUsAmPmFormatter,\r\n percentComplete: percentCompleteFormatter,\r\n percentCompleteBar: percentCompleteBarFormatter,\r\n progressBar: progressBarFormatter,\r\n yesNo: yesNoFormatter\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ yesNoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string =>\r\n value ? 'Yes' : 'No';\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ progressBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'danger';\r\n } else if (value < 70) {\r\n color = 'warning';\r\n } else {\r\n color = 'success';\r\n }\r\n\r\n return `
\r\n
\r\n ${value}%\r\n
\r\n
`;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'red';\r\n } else if (value < 70) {\r\n color = 'silver';\r\n } else {\r\n color = 'green';\r\n }\r\n\r\n return ``;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '-';\r\n } else if (value < 50) {\r\n return `${value}%`;\r\n } else {\r\n return `${value}%`;\r\n }\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY hh:mm:ss') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD') : '';\r\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkmarkFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? `` : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkboxFormatter: Formatter = (row, cell, value, columnDef, dataContext) =>\n value ? '☑' : '';\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\nimport { inputFilterTemplate } from './inputFilterTemplate';\nimport { selectFilterTemplate } from './selectFilterTemplate';\n\nexport const /** @type {?} */ FilterTemplates = {\n input: inputFilterTemplate,\n select: selectFilterTemplate\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n if (!columnDef.filter.selectOptions) {\n throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`);\n }\n let /** @type {?} */ options = '';\n columnDef.filter.selectOptions.forEach((option: any) => {\n options += ``;\n });\n return ``;\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n return ``;\n};\n","import { FilterConditionOption } from './../models/filterConditionOption.interface';\r\nimport { booleanFilterCondition } from './booleanFilterCondition';\r\nimport { dateUtcFilterCondition } from './dateUtcFilterCondition';\r\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\r\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\r\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\r\nimport { dateFilterCondition } from './dateFilterCondition';\r\nimport { executeMappedCondition } from './executeMappedCondition';\r\nimport { numberFilterCondition } from './numberFilterCondition';\r\nimport { stringFilterCondition } from './stringFilterCondition';\r\nimport { testFilterCondition } from './filterUtilities';\r\n\r\nexport const /** @type {?} */ FilterConditions = {\r\n executeMappedCondition: executeMappedCondition,\r\n booleanFilter: booleanFilterCondition,\r\n dateFilter: dateFilterCondition,\r\n dateIsoFilter: dateIsoFilterCondition,\r\n dateUtcFilter: dateUtcFilterCondition,\r\n dateUsFilter: dateUsFilterCondition,\r\n dateUsShortFilter: dateUsShortFilterCondition,\r\n numberFilter: numberFilterCondition,\r\n stringFilter: stringFilterCondition,\r\n testFilter: testFilterCondition\r\n};\r\n","import { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { FilterCondition } from '../models/filterCondition.interface';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ executeMappedCondition: FilterCondition = (options: FilterConditionOption) => {\n // execute the mapped type, or default to String condition check\n switch (options.fieldType) {\n case FieldType.boolean:\n return booleanFilterCondition(options);\n case FieldType.date:\n return dateFilterCondition(options);\n case FieldType.dateUtc:\n return dateUtcFilterCondition(options);\n case FieldType.dateIso:\n return dateIsoFilterCondition(options);\n case FieldType.dateUs:\n case FieldType.dateTimeUs:\n return dateUsFilterCondition(options);\n case FieldType.dateUsShort:\n case FieldType.dateTimeUsShort:\n return dateUsShortFilterCondition(options);\n case FieldType.number:\n return numberFilterCondition(options);\n case FieldType.string:\n default:\n return stringFilterCondition(options);\n }\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ stringFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n // make sure the both search & cell value are string\n // and make them lower case for case insensitive filtering\n const /** @type {?} */ cellValue = options.cellValue.toString().toLowerCase();\n const /** @type {?} */ searchTerm = options.searchTerm.toString().toLowerCase();\n\n if (options.operator === '*') {\n return cellValue.endsWith(searchTerm);\n } else if (options.operator === '' && options.cellValueLastChar === '*') {\n return cellValue.startsWith(searchTerm);\n } else if (options.operator === '') {\n return cellValue.includes(searchTerm);\n }\n return testFilterCondition(options.operator || '==', cellValue, searchTerm);\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ numberFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm));\n};\n","import { FieldType } from '../models/fieldType';\nimport { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso;\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue);\n const /** @type {?} */ dateSearch = moment(options.searchTerm);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!options.filterSearchType) {\n throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }');\n }\n\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ mapDateFormatByFieldType: Function = (fieldType: FieldType) => {\n switch (fieldType) {\n case FieldType.dateUs:\n return 'M/D/YYYY';\n case FieldType.dateTimeUs:\n return 'M/D/YYYY h:m:s';\n case FieldType.dateUsShort:\n return 'M/D/YY';\n case FieldType.dateTimeUsShort:\n return 'M/D/YY h:m:s';\n case FieldType.dateTimeIso:\n return 'YYYY-MM-DD h:m:s';\n case FieldType.dateIso:\n default:\n return 'YYYY-MM-DD';\n }\n};\n\nexport const /** @type {?} */ testFilterCondition: Function = (operator: string, value1: any, value2: any): boolean => {\n switch (operator) {\n case '<': return (value1 < value2);\n case '<=': return (value1 <= value2);\n case '>': return (value1 > value2);\n case '>=': return (value1 >= value2);\n case '!=':\n case '<>': return (value1 !== value2);\n case '=':\n case '==': return (value1 === value2);\n }\n return true;\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\r\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\n/**\n * @param {?} str\n * @return {?}\n */\nfunction parseBoolean(str: string) {\r\n return /(true|1)/i.test(str);\r\n}\r\n\r\nexport const /** @type {?} */ booleanFilterCondition: FilterCondition = (options: FilterConditionOption) => {\r\n return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm);\r\n};\r\n","\nexport type FieldType = number;\nexport let FieldType: any = {};\nFieldType.unknown = 0;\nFieldType.string = 1;\nFieldType.boolean = 2;\nFieldType.number = 3;\nFieldType.date = 4;\nFieldType.dateIso = 5;\nFieldType.dateUtc = 6;\nFieldType.dateTime = 7;\nFieldType.dateTimeIso = 8;\nFieldType.dateUs = 9;\nFieldType.dateUsShort = 10;\nFieldType.dateTimeUs = 11;\nFieldType.dateTimeUsShort = 12;\nFieldType[FieldType.unknown] = \"unknown\";\nFieldType[FieldType.string] = \"string\";\nFieldType[FieldType.boolean] = \"boolean\";\nFieldType[FieldType.number] = \"number\";\nFieldType[FieldType.date] = \"date\";\nFieldType[FieldType.dateIso] = \"dateIso\";\nFieldType[FieldType.dateUtc] = \"dateUtc\";\nFieldType[FieldType.dateTime] = \"dateTime\";\nFieldType[FieldType.dateTimeIso] = \"dateTimeIso\";\nFieldType[FieldType.dateUs] = \"dateUs\";\nFieldType[FieldType.dateUsShort] = \"dateUsShort\";\nFieldType[FieldType.dateTimeUs] = \"dateTimeUs\";\nFieldType[FieldType.dateTimeUsShort] = \"dateTimeUsShort\";\n\r\n","\nexport type FormElementType = number;\nexport let FormElementType: any = {};\nFormElementType.input = 0;\nFormElementType.multiSelect = 1;\nFormElementType.select = 2;\nFormElementType.textarea = 3;\nFormElementType[FormElementType.input] = \"input\";\nFormElementType[FormElementType.multiSelect] = \"multiSelect\";\nFormElementType[FormElementType.select] = \"select\";\nFormElementType[FormElementType.textarea] = \"textarea\";\n\r\n","\nexport type CaseType = number;\nexport let CaseType: any = {};\nCaseType.camelCase = 0;\nCaseType.pascalCase = 1;\nCaseType.snakeCase = 2;\nCaseType[CaseType.camelCase] = \"camelCase\";\nCaseType[CaseType.pascalCase] = \"pascalCase\";\nCaseType[CaseType.snakeCase] = \"snakeCase\";\n\r\n"],"names":["moment","((moment_)).default","DATE_FORMAT"],"mappings":"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"} \ No newline at end of file diff --git a/dist/modules/angular-slickgrid.js b/dist/modules/angular-slickgrid.js deleted file mode 100644 index 0a449c1aa..000000000 --- a/dist/modules/angular-slickgrid.js +++ /dev/null @@ -1,1910 +0,0 @@ -import * as moment_ from 'moment'; -import moment___default from 'moment'; -import { Component, Injectable, Input, NgModule } from '@angular/core'; -import { Router } from '@angular/router'; -import { CommonModule } from '@angular/common'; - -let CaseType = {}; -CaseType.camelCase = 0; -CaseType.pascalCase = 1; -CaseType.snakeCase = 2; -CaseType[CaseType.camelCase] = "camelCase"; -CaseType[CaseType.pascalCase] = "pascalCase"; -CaseType[CaseType.snakeCase] = "snakeCase"; - -let FormElementType = {}; -FormElementType.input = 0; -FormElementType.multiSelect = 1; -FormElementType.select = 2; -FormElementType.textarea = 3; -FormElementType[FormElementType.input] = "input"; -FormElementType[FormElementType.multiSelect] = "multiSelect"; -FormElementType[FormElementType.select] = "select"; -FormElementType[FormElementType.textarea] = "textarea"; - -let FieldType = {}; -FieldType.unknown = 0; -FieldType.string = 1; -FieldType.boolean = 2; -FieldType.number = 3; -FieldType.date = 4; -FieldType.dateIso = 5; -FieldType.dateUtc = 6; -FieldType.dateTime = 7; -FieldType.dateTimeIso = 8; -FieldType.dateUs = 9; -FieldType.dateUsShort = 10; -FieldType.dateTimeUs = 11; -FieldType.dateTimeUsShort = 12; -FieldType[FieldType.unknown] = "unknown"; -FieldType[FieldType.string] = "string"; -FieldType[FieldType.boolean] = "boolean"; -FieldType[FieldType.number] = "number"; -FieldType[FieldType.date] = "date"; -FieldType[FieldType.dateIso] = "dateIso"; -FieldType[FieldType.dateUtc] = "dateUtc"; -FieldType[FieldType.dateTime] = "dateTime"; -FieldType[FieldType.dateTimeIso] = "dateTimeIso"; -FieldType[FieldType.dateUs] = "dateUs"; -FieldType[FieldType.dateUsShort] = "dateUsShort"; -FieldType[FieldType.dateTimeUs] = "dateTimeUs"; -FieldType[FieldType.dateTimeUsShort] = "dateTimeUsShort"; - -/** - * @param {?} str - * @return {?} - */ -function parseBoolean(str) { - return /(true|1)/i.test(str); -} -const booleanFilterCondition = (options) => { - return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm); -}; - -const mapDateFormatByFieldType = (fieldType) => { - switch (fieldType) { - case FieldType.dateUs: - return 'M/D/YYYY'; - case FieldType.dateTimeUs: - return 'M/D/YYYY h:m:s'; - case FieldType.dateUsShort: - return 'M/D/YY'; - case FieldType.dateTimeUsShort: - return 'M/D/YY h:m:s'; - case FieldType.dateTimeIso: - return 'YYYY-MM-DD h:m:s'; - case FieldType.dateIso: - default: - return 'YYYY-MM-DD'; - } -}; -const testFilterCondition = (operator, value1, value2) => { - switch (operator) { - case '<': return (value1 < value2); - case '<=': return (value1 <= value2); - case '>': return (value1 > value2); - case '>=': return (value1 >= value2); - case '!=': - case '<>': return (value1 !== value2); - case '=': - case '==': return (value1 === value2); - } - return true; -}; - -const moment = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateUtcFilterCondition = (options) => { - if (!options.filterSearchType) { - throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }'); - } - const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType); - if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) { - return true; - } - const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true); - const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; - -const moment$1 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const DATE_FORMAT = 'YYYY-MM-DD'; -const dateIsoFilterCondition = (options) => { - if (!moment$1(options.cellValue, DATE_FORMAT, true).isValid() || !moment$1(options.searchTerm, DATE_FORMAT, true).isValid()) { - return true; - } - const /** @type {?} */ dateCell = moment$1(options.cellValue, DATE_FORMAT, true); - const /** @type {?} */ dateSearch = moment$1(options.searchTerm, DATE_FORMAT, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; - -const moment$2 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const DATE_FORMAT$1 = 'M/D/YY'; -const dateUsShortFilterCondition = (options) => { - if (!moment$2(options.cellValue, DATE_FORMAT$1, true).isValid() || !moment$2(options.searchTerm, DATE_FORMAT$1, true).isValid()) { - return true; - } - const /** @type {?} */ dateCell = moment$2(options.cellValue, DATE_FORMAT$1, true); - const /** @type {?} */ dateSearch = moment$2(options.searchTerm, DATE_FORMAT$1, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; - -const moment$3 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const DATE_FORMAT$2 = 'M/D/YYYY'; -const dateUsFilterCondition = (options) => { - if (!moment$3(options.cellValue, DATE_FORMAT$2, true).isValid() || !moment$3(options.searchTerm, DATE_FORMAT$2, true).isValid()) { - return true; - } - const /** @type {?} */ dateCell = moment$3(options.cellValue, DATE_FORMAT$2, true); - const /** @type {?} */ dateSearch = moment$3(options.searchTerm, DATE_FORMAT$2, true); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; - -const moment$4 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateFilterCondition = (options) => { - const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso; - const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType); - if (!moment$4(options.cellValue, moment$4.ISO_8601).isValid() || !moment$4(options.searchTerm, searchDateFormat, true).isValid()) { - return true; - } - const /** @type {?} */ dateCell = moment$4(options.cellValue); - const /** @type {?} */ dateSearch = moment$4(options.searchTerm); - // run the filter condition with date in Unix Timestamp format - return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10)); -}; - -const numberFilterCondition = (options) => { - return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm)); -}; - -const stringFilterCondition = (options) => { - // make sure the both search & cell value are string - // and make them lower case for case insensitive filtering - const /** @type {?} */ cellValue = options.cellValue.toString().toLowerCase(); - const /** @type {?} */ searchTerm = options.searchTerm.toString().toLowerCase(); - if (options.operator === '*') { - return cellValue.endsWith(searchTerm); - } - else if (options.operator === '' && options.cellValueLastChar === '*') { - return cellValue.startsWith(searchTerm); - } - else if (options.operator === '') { - return cellValue.includes(searchTerm); - } - return testFilterCondition(options.operator || '==', cellValue, searchTerm); -}; - -const executeMappedCondition = (options) => { - // execute the mapped type, or default to String condition check - switch (options.fieldType) { - case FieldType.boolean: - return booleanFilterCondition(options); - case FieldType.date: - return dateFilterCondition(options); - case FieldType.dateUtc: - return dateUtcFilterCondition(options); - case FieldType.dateIso: - return dateIsoFilterCondition(options); - case FieldType.dateUs: - case FieldType.dateTimeUs: - return dateUsFilterCondition(options); - case FieldType.dateUsShort: - case FieldType.dateTimeUsShort: - return dateUsShortFilterCondition(options); - case FieldType.number: - return numberFilterCondition(options); - case FieldType.string: - default: - return stringFilterCondition(options); - } -}; - -const FilterConditions = { - executeMappedCondition: executeMappedCondition, - booleanFilter: booleanFilterCondition, - dateFilter: dateFilterCondition, - dateIsoFilter: dateIsoFilterCondition, - dateUtcFilter: dateUtcFilterCondition, - dateUsFilter: dateUsFilterCondition, - dateUsShortFilter: dateUsShortFilterCondition, - numberFilter: numberFilterCondition, - stringFilter: stringFilterCondition, - testFilter: testFilterCondition -}; - -const inputFilterTemplate = (searchTerm, columnDef) => { - return ``; -}; - -const selectFilterTemplate = (searchTerm, columnDef) => { - if (!columnDef.filter.selectOptions) { - throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`); - } - let /** @type {?} */ options = ''; - columnDef.filter.selectOptions.forEach((option) => { - options += ``; - }); - return ``; -}; - -const FilterTemplates = { - input: inputFilterTemplate, - select: selectFilterTemplate -}; - -const checkboxFormatter = (row, cell, value, columnDef, dataContext) => value ? '☑' : ''; - -const checkmarkFormatter = (row, cell, value, columnDef, dataContext) => value ? `` : ''; - -const moment$5 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateIsoFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$5(value).format('YYYY-MM-DD') : ''; - -const moment$6 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateTimeIsoAmPmFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$6(value).format('YYYY-MM-DD h:mm:ss a') : ''; - -const moment$7 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateTimeUsAmPmFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$7(value).format('MM/DD/YYYY h:mm:ss a') : ''; - -const moment$8 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateTimeUsFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$8(value).format('MM/DD/YYYY hh:mm:ss') : ''; - -const moment$9 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateUsFormatter = (row, cell, value, columnDef, dataContext) => value ? moment$9(value).format('MM/DD/YYYY') : ''; - -const percentCompleteFormatter = (row, cell, value, columnDef, dataContext) => { - if (value === null || value === '') { - return '-'; - } - else if (value < 50) { - return `${value}%`; - } - else { - return `${value}%`; - } -}; - -const percentCompleteBarFormatter = (row, cell, value, columnDef, dataContext) => { - if (value === null || value === '') { - return ''; - } - let /** @type {?} */ color; - if (value < 30) { - color = 'red'; - } - else if (value < 70) { - color = 'silver'; - } - else { - color = 'green'; - } - return ``; -}; - -const progressBarFormatter = (row, cell, value, columnDef, dataContext) => { - if (value === null || value === '') { - return ''; - } - let /** @type {?} */ color; - if (value < 30) { - color = 'danger'; - } - else if (value < 70) { - color = 'warning'; - } - else { - color = 'success'; - } - return `
-
- ${value}% -
-
`; -}; - -const yesNoFormatter = (row, cell, value, columnDef, dataContext) => value ? 'Yes' : 'No'; - -// import { Group, GroupTotals } from '../core' -// import { Item } from '../dataview' -/* -export interface GroupFormatter { - (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string -} - -export interface GroupTotalsFormatter { - (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string -} -*/ -const Formatters = { - checkbox: checkboxFormatter, - checkmark: checkmarkFormatter, - dateIso: dateIsoFormatter, - dateTimeIso: dateIsoFormatter, - dateTimeIsoAmPm: dateTimeIsoAmPmFormatter, - dateUs: dateUsFormatter, - dateTimeUs: dateTimeUsFormatter, - dateTimeUsAmPm: dateTimeUsAmPmFormatter, - percentComplete: percentCompleteFormatter, - percentCompleteBar: percentCompleteBarFormatter, - progressBar: progressBarFormatter, - yesNo: yesNoFormatter -}; - -const moment$10 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const DATE_FORMAT$3 = 'M/D/YY'; -const dateUsShortSorter = (value1, value2, sortDirection) => { - if (!moment$10(value1, DATE_FORMAT$3, true).isValid() || !moment$10(value2, DATE_FORMAT$3, true).isValid()) { - return 0; - } - const /** @type {?} */ date1 = moment$10(value1, DATE_FORMAT$3, true); - const /** @type {?} */ date2 = moment$10(value2, DATE_FORMAT$3, true); - const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; - -const moment$11 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -// patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const dateSorter = (value1, value2, sortDirection) => { - if (!moment$11(value1, moment$11.ISO_8601).isValid() || !moment$11(value2, moment$11.ISO_8601, true).isValid()) { - return 0; - } - const /** @type {?} */ date1 = moment$11(value1); - const /** @type {?} */ date2 = moment$11(value2); - const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; - -const moment$12 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const DATE_FORMAT$4 = 'YYYY-MM-DD'; -const dateIsoSorter = (value1, value2, sortDirection) => { - if (!moment$12(value1, DATE_FORMAT$4, true).isValid() || !moment$12(value2, DATE_FORMAT$4, true).isValid()) { - return 0; - } - const /** @type {?} */ date1 = moment$12(value1, DATE_FORMAT$4, true); - const /** @type {?} */ date2 = moment$12(value2, DATE_FORMAT$4, true); - const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; - -const moment$13 = moment___default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 -const DATE_FORMAT$5 = 'M/D/YYYY'; -const dateUsSorter = (value1, value2, sortDirection) => { - if (!moment$13(value1, DATE_FORMAT$5, true).isValid() || !moment$13(value2, DATE_FORMAT$5, true).isValid()) { - return 0; - } - const /** @type {?} */ date1 = moment$13(value1, DATE_FORMAT$5, true); - const /** @type {?} */ date2 = moment$13(value2, DATE_FORMAT$5, true); - const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10); - return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1)); -}; - -const numericSorter = (value1, value2, sortDirection) => { - const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1); - const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2); - return sortDirection * (x === y ? 0 : (x > y ? 1 : -1)); -}; - -const stringSorter = (value1, value2, sortDirection) => { - return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1)); -}; - -const Sorters = { - date: dateSorter, - dateIso: dateIsoSorter, - dateUs: dateUsSorter, - dateUsShort: dateUsShortSorter, - numeric: numericSorter, - string: stringSorter -}; - -class FilterService { - constructor() { } - /** - * @param {?} grid - * @param {?} gridOptions - * @param {?} columnDefinitions - * @param {?} columnFilters - * @return {?} - */ - init(grid, gridOptions, columnDefinitions, columnFilters) { - this._columnDefinitions = columnDefinitions; - this._columnFilters = columnFilters; - this._gridOptions = gridOptions; - this._grid = grid; - } - /** - * Attach a backend filter hook to the grid - * @return {?} - */ - attachBackendOnFilter() { - this.subscriber = new Slick.Event(); - this.subscriber.subscribe(this._gridOptions.onFilterChanged); - this.addFilterTemplateToHeaderRow(); - } - /** - * @param {?} operator - * @param {?} value1 - * @param {?} value2 - * @return {?} - */ - testFilterCondition(operator, value1, value2) { - switch (operator) { - case '<': return (value1 < value2) ? true : false; - case '<=': return (value1 <= value2) ? true : false; - case '>': return (value1 > value2) ? true : false; - case '>=': return (value1 >= value2) ? true : false; - case '!=': - case '<>': return (value1 !== value2) ? true : false; - case '=': - case '==': return (value1 === value2) ? true : false; - } - } - /** - * Attach a local filter hook to the grid - * @param {?} dataView - * @return {?} - */ - attachLocalOnFilter(dataView) { - this._dataView = dataView; - this.subscriber = new Slick.Event(); - dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid }); - dataView.setFilter(this.customFilter); - this.subscriber.subscribe((e, args) => { - const /** @type {?} */ columnId = args.columnId; - if (columnId != null) { - dataView.refresh(); - } - }); - this.addFilterTemplateToHeaderRow(); - } - /** - * @param {?} item - * @param {?} args - * @return {?} - */ - customFilter(item, args) { - for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) { - const /** @type {?} */ columnFilter = args.columnFilters[columnId]; - const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId); - const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex]; - const /** @type {?} */ fieldName = columnDef.field || columnDef.name; - const /** @type {?} */ fieldType = columnDef.type || FieldType.string; - const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null; - const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null; - let /** @type {?} */ cellValue = item[columnDef.field]; - let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; - if (typeof fieldSearchValue === 'undefined') { - fieldSearchValue = ''; - } - fieldSearchValue = '' + fieldSearchValue; // make sure it's a string - const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) - const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); - const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : ''; - const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; - // no need to query if search value is empty - if (searchTerm === '') { - return true; - } - if (typeof cellValue === 'number') { - cellValue = cellValue.toString(); - } - const /** @type {?} */ conditionOptions = { - fieldType: fieldType, - searchTerm: searchTerm, - cellValue: cellValue, - operator: operator, - cellValueLastChar: lastValueChar, - filterSearchType: filterSearchType - }; - if (conditionalFilterFn && typeof conditionalFilterFn === 'function') { - conditionalFilterFn(conditionOptions); - } - if (!FilterConditions.executeMappedCondition(conditionOptions)) { - return false; - } - } - return true; - } - /** - * @return {?} - */ - destroy() { - this.subscriber.unsubscribe(); - } - /** - * @param {?} e - * @param {?} args - * @return {?} - */ - callbackSearchEvent(e, args) { - this._columnFilters[args.columnDef.id] = { - columnId: args.columnDef.id, - columnDef: args.columnDef, - searchTerm: e.target.value - }; - this.triggerEvent(this.subscriber, { - columnId: args.columnDef.id, - columnDef: args.columnDef, - columnFilters: this._columnFilters, - searchTerm: e.target.value, - grid: this._grid - }, e); - } - /** - * @return {?} - */ - addFilterTemplateToHeaderRow() { - for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) { - if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) { - let /** @type {?} */ filterTemplate = ''; - let /** @type {?} */ elm = null; - let /** @type {?} */ header; - const /** @type {?} */ columnDef = this._columnDefinitions[i]; - const /** @type {?} */ columnId = columnDef.id; - const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null; - let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : ''; - // keep the filter in a columnFilters for later reference - this.keepColumnFilters(searchTerm, listTerm, columnDef); - if (!columnDef.filter) { - searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null; - filterTemplate = FilterTemplates.input(searchTerm, columnDef); - } - else { - // custom Select template - if (columnDef.filter.type === FormElementType.select) { - filterTemplate = FilterTemplates.select(searchTerm, columnDef); - } - } - // create the DOM Element - header = this._grid.getHeaderRowColumn(columnDef.id); - $(header).empty(); - elm = $(filterTemplate); - elm.val(searchTerm); - elm.data('columnId', columnDef.id); - if (elm && typeof elm.appendTo === 'function') { - elm.appendTo(header); - } - // depending on the DOM Element type, we will watch the corrent event - const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input; - switch (filterType) { - case FormElementType.select: - case FormElementType.multiSelect: - elm.change((e) => this.callbackSearchEvent(e, { columnDef: columnDef })); - break; - case FormElementType.input: - default: - elm.keyup((e) => this.callbackSearchEvent(e, { columnDef: columnDef })); - break; - } - } - } - } - /** - * @param {?} searchTerm - * @param {?} listTerm - * @param {?} columnDef - * @return {?} - */ - keepColumnFilters(searchTerm, listTerm, columnDef) { - if (searchTerm) { - this._columnFilters[columnDef.id] = { - columnId: columnDef.id, - columnDef: columnDef, - searchTerm: searchTerm - }; - if (listTerm) { - this._columnFilters.listTerm = listTerm; - } - } - } - /** - * @param {?} evt - * @param {?} args - * @param {?} e - * @return {?} - */ - triggerEvent(evt, args, e) { - e = e || new Slick.EventData(); - return evt.notify(args, e, args.grid); - } -} -FilterService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -FilterService.ctorParameters = () => []; - -class MouseService { - /** - * @param {?} grid - * @return {?} - */ - attachOnMouseHover(grid) { - grid.onMouseEnter.subscribe((e) => { - const /** @type {?} */ cell = grid.getCellFromEvent(e); - if (cell && cell.row >= 0) { - grid.setSelectedRows([cell.row]); - e.preventDefault(); - } - }); - grid.onMouseLeave.subscribe((e) => { - grid.setSelectedRows([]); - e.preventDefault(); - }); - } -} - -// global constants, height/width are in pixels -const DATAGRID_MIN_HEIGHT = 180; -const DATAGRID_MIN_WIDTH = 300; -const DATAGRID_BOTTOM_PADDING = 20; -const DATAGRID_PAGINATION_HEIGHT = 35; -class ResizerService { - /** - * @param {?} router - */ - constructor(router) { - this.router = router; - } - /** - * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space - * Options: we could also provide a % factor to resize on each height/width independently - * @param {?} grid - * @param {?} gridOptions - * @return {?} - */ - attachAutoResizeDataGrid(grid, gridOptions) { - // if we can't find the grid to resize, return without attaching anything - const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`); - if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') { - return null; - } - // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load) - this.resizeGrid(grid, gridOptions); - // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load - // -- attach auto-resize to Window object only if it exist - $(window).on('resize', () => { - this.resizeGrid(grid, gridOptions); - }); - // destroy the resizer on route change - this.router.events.subscribe((event) => { - $(window).trigger('resize').off('resize'); - }); - } - /** - * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation - * object gridOptions - * @param {?} gridOptions - * @return {?} - */ - calculateGridNewDimensions(gridOptions) { - let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING; - if (bottomPadding && gridOptions.enablePagination) { - bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding - } - if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') { - return; - } - const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding; - const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width(); - const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT; - const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH; - let /** @type {?} */ newHeight = availableHeight; - let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth; - if (newHeight < minHeight) { - newHeight = minHeight; - } - if (newWidth < minWidth) { - newWidth = minWidth; - } - return { - height: newHeight, - width: newWidth - }; - } - /** - * Resize the datagrid to fit the browser height & width - * @param {?} grid - * @param {?} gridOptions - * @param {?=} newSizes - * @return {?} - */ - resizeGrid(grid, gridOptions, newSizes) { - // calculate new available sizes but with minimum height of 220px - newSizes = newSizes || this.calculateGridNewDimensions(gridOptions); - if (newSizes) { - // apply these new height/width to the datagrid - $(`#${gridOptions.gridId}`).height(newSizes.height); - $(`#${gridOptions.gridId}`).width(newSizes.width); - $(`#${gridOptions.gridContainerId}`).height(newSizes.height); - $(`#${gridOptions.gridContainerId}`).width(newSizes.width); - // resize the slickgrid canvas on all browser except some IE versions - // exclude all IE below IE11 - // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape' - if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) { - grid.resizeCanvas(); - } - // also call the grid auto-size columns so that it takes available when going bigger - grid.autosizeColumns(); - } - } -} -ResizerService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -ResizerService.ctorParameters = () => [ - { type: Router, }, -]; - -class SortService { - constructor() { } - /** - * Attach a backend sort (single/multi) hook to the grid - * @param {?} grid SlickGrid Grid object - * @param {?} gridOptions Grid Options object - * @return {?} - */ - attachBackendOnSort(grid, gridOptions) { - this.subscriber = grid.onSort; - this.subscriber.subscribe(gridOptions.onSortChanged); - } - /** - * Attach a local sort (single/multi) hook to the grid - * @param {?} grid SlickGrid Grid object - * @param {?} gridOptions Grid Options object - * @param {?} dataView - * @return {?} - */ - attachLocalOnSort(grid, gridOptions, dataView) { - this.subscriber = grid.onSort; - this.subscriber.subscribe((e, args) => { - // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after - // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object - const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortAsc: args.sortAsc, sortCol: args.sortCol }); - dataView.sort(function (dataRow1, dataRow2) { - for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) { - const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1; - const /** @type {?} */ sortField = sortColumns[i].sortCol.field; - const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string'; - const /** @type {?} */ value1 = dataRow1[sortField]; - const /** @type {?} */ value2 = dataRow2[sortField]; - let /** @type {?} */ result = 0; - switch (fieldType) { - case FieldType.number: - result = Sorters.numeric(value1, value2, sortDirection); - break; - case FieldType.date: - result = Sorters.date(value1, value2, sortDirection); - break; - case FieldType.dateIso: - result = Sorters.dateIso(value1, value2, sortDirection); - break; - case FieldType.dateUs: - result = Sorters.dateUs(value1, value2, sortDirection); - break; - case FieldType.dateUsShort: - result = Sorters.dateUsShort(value1, value2, sortDirection); - break; - default: - result = Sorters.string(value1, value2, sortDirection); - break; - } - if (result !== 0) { - return result; - } - } - return 0; - }); - grid.invalidate(); - grid.render(); - }); - } - /** - * @return {?} - */ - destroy() { - this.subscriber.unsubscribe(); - } -} -SortService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -SortService.ctorParameters = () => []; - -String.format = function (format, args) { - // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1); - return format.replace(/{(\d+)}/g, function (match, number) { - return (typeof args[number] !== 'undefined') ? args[number] : match; - }); -}; -String.padZero = function (length) { - let /** @type {?} */ s = this; - while (s.length < length) { - s = '0' + s; - } - return s; -}; -/** - * Trim any extra white space from the string - * @param string inputStr - * @returns string outputStr - */ -String.trim = function (inputStr) { - return inputStr ? inputStr.replace(/\s+/g, ' ') : inputStr; -}; -/** - * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) - * @param string inputStr - * @returns string outputStr - */ -String.allTitleCase = function (inputStr) { - return inputStr.replace(/\w\S*/g, function (outputStr) { - return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase(); - }); -}; -/** - * Title case the complete sentence (upper case first char of each word while changing everything else to lower case) - * @param string inputStr - * @returns string outputStr -*/ -String.titleCase = function (inputStr) { - return inputStr.charAt(0).toUpperCase() + inputStr.slice(1); -}; - -class OdataService { - constructor() { - this._odataOptions = { - filterQueue: [], - orderBy: '' - }; - this._defaultSortBy = ''; - this._columnFilters = {}; - } - /** - * @return {?} - */ - buildQuery() { - this._odataOptions.filterQueue = []; - let /** @type {?} */ queryTmpArray = []; - if (this._odataOptions.top) { - queryTmpArray.push(`$top=${this._odataOptions.top}`); - } - if (this._odataOptions.skip) { - queryTmpArray.push(`$skip=${this._odataOptions.skip}`); - } - if (this._odataOptions.orderBy) { - let /** @type {?} */ argument = ''; - if (Array.isArray(this._odataOptions.orderBy)) { - argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc - } - else { - argument = this._odataOptions.orderBy; - } - queryTmpArray.push(`$orderby=${argument}`); - } - if (this._odataOptions.filterBy || this._odataOptions.filter) { - if (this._odataOptions.filter) { - this._odataOptions.filterQueue = []; - let /** @type {?} */ filterStr = this._odataOptions.filter; - if (Array.isArray(this._odataOptions.filter)) { - const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; - const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `; - filterStr = this._odataOptions.filter.join(separatorSpacedOut); - } - this._odataOptions.filterQueue.push(`(${filterStr})`); - } - // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered - if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) { - if (this._odataOptions.filterBy.searchTerm !== '') { - this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm); - this.updateFilterFromListTerms(this._odataOptions.filterBy); - } - } - } - if (this._odataOptions.filterQueue.length > 0) { - const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and'; - const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `; - const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut); - this._odataOptions.filter = query; // overwrite with - queryTmpArray.push(`$filter=${query}`); - } - // join all the odata functions by a '&' - return queryTmpArray.join('&'); - } - /** - * @param {?} columnName - * @return {?} - */ - getFilterByColumn(columnName) { - return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null; - } - /** - * @return {?} - */ - getFilterCount() { - return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0; - } - /** - * @return {?} - */ - get columnFilters() { - return this._columnFilters; - } - /** - * @return {?} - */ - get options() { - return this._odataOptions; - } - /** - * @param {?} options - * @return {?} - */ - set options(options) { - this._odataOptions = options; - } - /** - * @param {?} fieldName - * @return {?} - */ - removeColumnFilter(fieldName) { - delete this._columnFilters[fieldName]; - } - /** - * @param {?} fieldName - * @param {?} value - * @param {?=} searchTerms - * @return {?} - */ - saveColumnFilter(fieldName, value, searchTerms) { - this._columnFilters[fieldName] = { - search: searchTerms, - value: value - }; - } - /** - * Update the filter by a list of terms usually passed manually by the user as default filters - * @param {?} filterOptions - * @return {?} - */ - updateFilterFromListTerms(filterOptions) { - // build the filter query - if (Array.isArray(filterOptions)) { - filterOptions.forEach((filterOptionObject) => { - this.updateFilterFromTerm(filterOptionObject); - }); - } - else { - this.updateFilterFromTerm(filterOptions); - } - } - /** - * @param {?} filterOptions - * @return {?} - */ - updateFilterFromTerm(filterOptions) { - let /** @type {?} */ searchBy = ''; - const /** @type {?} */ tmpSearchByArray = []; - const /** @type {?} */ fieldName = filterOptions.fieldName; - const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm; - const /** @type {?} */ operator = filterOptions.operator; - // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) - if (!!fieldSearchTerms && fieldSearchTerms.length > 0) { - let /** @type {?} */ tmpSearchTerms = []; - if (operator === 'IN') { - // example:: (Stage eq "Expired" or Stage eq "Renewal") - for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) { - tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`); - } - searchBy = tmpSearchTerms.join(' or '); - searchBy = `$(${searchBy})`; - } - else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { - // example:: (Stage ne "Expired" and Stage ne "Renewal") - for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) { - tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`); - } - searchBy = tmpSearchTerms.join(' and '); - searchBy = `$(${searchBy})`; - } - } - // push to our temp array and also trim white spaces - tmpSearchByArray.push(String.trim(searchBy)); - // add to the filter queue only if it doesn't exist in the queue - const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : ''; - if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) { - this._odataOptions.filterQueue.push(filter); - } - } - /** - * Change any OData options that will be used to build the query - * @param {?} options - * @return {?} - */ - updateOptions(options) { - for (const /** @type {?} */ property of Object.keys(options)) { - if (options.hasOwnProperty(property)) { - this._odataOptions[property] = options[property]; // replace of the property - } - // we need to keep the defaultSortBy for references whenever the user removes his Sorting - // then we would revert to the defaultSortBy and the only way is to keep a hard copy here - if (property === 'orderBy' || property === 'sortBy') { - let /** @type {?} */ sortBy = options[property]; - // make sure first char of each orderBy field is capitalize - if (this._odataOptions.caseType === CaseType.pascalCase) { - if (Array.isArray(sortBy)) { - sortBy.forEach((field, index, inputArray) => { - inputArray[index] = String.titleCase(field); - }); - } - else { - sortBy = String.titleCase(options[property]); - } - } - this._odataOptions.orderBy = sortBy; - this._defaultSortBy = sortBy; - } - } - } -} -OdataService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -OdataService.ctorParameters = () => []; - -const moment$14 = moment___default || moment_; -class GridOdataService { - /** - * @param {?} odataService - */ - constructor(odataService) { - this.odataService = odataService; - this.defaultSortBy = ''; - this.minUserInactivityOnFilter = 700; - } - /** - * @return {?} - */ - buildQuery() { - return this.odataService.buildQuery(); - } - /** - * @param {?} options - * @return {?} - */ - initOptions(options) { - this.odataService.options = options; - } - /** - * @param {?} fieldName - * @return {?} - */ - removeColumnFilter(fieldName) { - this.odataService.removeColumnFilter(fieldName); - } - /** - * @return {?} - */ - resetPaginationOptions() { - this.odataService.updateOptions({ - skip: 0 - }); - } - /** - * @param {?} fieldName - * @param {?} value - * @param {?=} terms - * @return {?} - */ - saveColumnFilter(fieldName, value, terms) { - this.odataService.saveColumnFilter(fieldName, value, terms); - } - /** - * @param {?} event - * @param {?} args - * @return {?} - */ - onFilterChanged(event, args) { - let /** @type {?} */ searchBy = ''; - let /** @type {?} */ timer = 0; - const /** @type {?} */ searchByArray = []; - // loop through all columns to inspect filters - for (const /** @type {?} */ columnId in args.columnFilters) { - if (args.columnFilters.hasOwnProperty(columnId)) { - const /** @type {?} */ columnFilter = args.columnFilters[columnId]; - const /** @type {?} */ columnDef = columnFilter.columnDef; - const /** @type {?} */ fieldName = columnDef.field || columnDef.name; - const /** @type {?} */ fieldType = columnDef.type || 'string'; - let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm; - if (typeof fieldSearchValue === 'undefined') { - fieldSearchValue = ''; - } - if (typeof fieldSearchValue !== 'string') { - throw new Error(`OData filter term property must be provided type "string", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: "0", value: "0" }, { id: "1", value: "1" }]`); - } - const /** @type {?} */ searchTerms = columnFilter.listTerm || []; - fieldSearchValue = '' + fieldSearchValue; // make sure it's a string - const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) - const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : ''); - let /** @type {?} */ searchValue = (!!matches) ? matches[2] : fieldSearchValue; - const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : ''; - const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false; - // no need to query if search value is empty - if (fieldName && searchValue === '') { - this.removeColumnFilter(fieldName); - continue; - } - // escaping the search value - searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them - searchValue = encodeURIComponent(searchValue); // encode URI of the final search value - // extra query arguments - if (bypassOdataQuery) { - // push to our temp array and also trim white spaces - if (fieldName) { - this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms); - } - } - else { - let /** @type {?} */ searchBy = ''; - // titleCase the fieldName so that it matches the WebApi names - const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || ''); - // when having more than 1 search term (then check if we have a "IN" or "NOT IN" filter search) - if (searchTerms && searchTerms.length > 0) { - let /** @type {?} */ tmpSearchTerms = []; - if (operator === 'IN') { - // example:: (Stage eq "Expired" or Stage eq "Renewal") - for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) { - tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`); - } - searchBy = tmpSearchTerms.join(' or '); - searchBy = `(${searchBy})`; - } - else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') { - // example:: (Stage ne "Expired" and Stage ne "Renewal") - for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) { - tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`); - } - searchBy = tmpSearchTerms.join(' and '); - searchBy = `(${searchBy})`; - } - } - else if (operator === '*' || lastValueChar !== '') { - // first/last character is a '*' will be a startsWith or endsWith - searchBy = operator === '*' - ? `endswith(${fieldNameTitleCase}, '${searchValue}')` - : `startswith(${fieldNameTitleCase}, '${searchValue}')`; - } - else if (fieldType === FieldType.date) { - // date field needs to be UTC and within DateTime function - const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true); - if (dateFormatted) { - searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`; - } - } - else if (fieldType === FieldType.string) { - // string field needs to be in single quotes - searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`; - } - else { - // any other field type (or undefined type) - searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`; - searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`; - } - // push to our temp array and also trim white spaces - if (searchBy !== '') { - searchByArray.push(String.trim(searchBy)); - this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms); - } - } - } - } - // build the filter query - this.odataService.updateOptions({ - filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '', - skip: undefined - }); - // reset Pagination, then build the OData query which we will use in the WebAPI callback - this.resetPaginationOptions(); - return this.odataService.buildQuery(); - } - /** - * @param {?} event - * @param {?} args - * @return {?} - */ - onPaginationChanged(event, args) { - this.odataService.updateOptions({ - top: args.pageSize, - skip: (args.newPage - 1) * args.pageSize - }); - // build the OData query which we will use in the WebAPI callback - return this.odataService.buildQuery(); - } - /** - * @param {?} event - * @param {?} args - * @return {?} - */ - onSortChanged(event, args) { - let /** @type {?} */ sortByArray = []; - const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc }); - // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc - if (sortColumns && sortColumns.length === 0) { - sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort - } - else { - if (sortColumns) { - for (let /** @type {?} */ column of sortColumns) { - let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id; - if (this.odataService.options.caseType === CaseType.pascalCase) { - fieldName = String.titleCase(fieldName); - } - const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc'; - const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`; - sortByArray.push(sortByColumnString); - } - } - } - // transform the sortby array into a CSV string - const /** @type {?} */ csvArray = sortByArray.join(','); - this.odataService.updateOptions({ - orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray - }); - // build the OData query which we will use in the WebAPI callback - return this.odataService.buildQuery(); - } - /** - * Mapper for mathematical operators (ex.: <= is "le", > is "gt") - * @param {?} operator - * @return {?} string map - */ - mapOperator(operator) { - let /** @type {?} */ map = ''; - switch (operator) { - case '<': - map = 'lt'; - break; - case '<=': - map = 'le'; - break; - case '>': - map = 'gt'; - break; - case '>=': - map = 'ge'; - break; - case '<>': - case '!=': - map = 'ne'; - break; - case '=': - case '==': - default: - map = 'eq'; - break; - } - return map; - } - /** - * Parse a date passed as a string and return a Date object (if valid) - * @param {?} inputDateString - * @param {?} useUtc - * @return {?} object Date - */ - parseUtcDate(inputDateString, useUtc) { - let /** @type {?} */ date = null; - if (/^[0-9\-\/]*$/.test(inputDateString)) { - // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text - const /** @type {?} */ dateString = decodeURIComponent(inputDateString); - const /** @type {?} */ dateMoment = moment$14(new Date(dateString)); - if (dateMoment.isValid() && dateMoment.year().toString().length === 4) { - date = (useUtc) ? dateMoment.utc().format() : dateMoment.format(); - } - } - return date; - } -} -GridOdataService.decorators = [ - { type: Injectable }, -]; -/** - * @nocollapse - */ -GridOdataService.ctorParameters = () => [ - { type: OdataService, }, -]; - -class SlickPaginationComponent { - constructor() { - this.dataFrom = 1; - this.dataTo = 1; - this.itemsPerPage = 25; - this.pageCount = 0; - this.pageNumber = 1; - this.totalItems = 0; - this.paginationPageSizes = [25, 75, 100]; - } - /** - * @param {?} gridPaginationOptions - * @return {?} - */ - set gridPaginationOptions(gridPaginationOptions) { - this._gridPaginationOptions = gridPaginationOptions; - if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) { - this.refreshPagination(); - } - } - /** - * @return {?} - */ - get gridPaginationOptions() { - return this._gridPaginationOptions; - } - /** - * @return {?} - */ - ngOnInit() { - } - /** - * @return {?} - */ - ngAfterViewInit() { - this._gridPaginationOptions = this._gridPaginationOptions; - if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) { - this.refreshPagination(); - } - } - /** - * @param {?} number - * @return {?} - */ - ceil(number) { - return Math.ceil(number); - } - /** - * @param {?} event - * @return {?} - */ - onChangeItemPerPage(event) { - const /** @type {?} */ itemsPerPage = (event.target.value); - this.pageCount = Math.ceil(this.totalItems / itemsPerPage); - this.pageNumber = 1; - this.itemsPerPage = itemsPerPage; - this.onPageChanged(event, this.pageNumber); - } - /** - * @param {?} event - * @return {?} - */ - changeToFirstPage(event) { - this.pageNumber = 1; - this.onPageChanged(event, this.pageNumber); - } - /** - * @param {?} event - * @return {?} - */ - changeToLastPage(event) { - this.pageNumber = this.pageCount; - this.onPageChanged(event, this.pageNumber); - } - /** - * @param {?} event - * @return {?} - */ - changeToNextPage(event) { - if (this.pageNumber < this.pageCount) { - this.pageNumber++; - this.onPageChanged(event, this.pageNumber); - } - } - /** - * @param {?} event - * @return {?} - */ - changeToPreviousPage(event) { - if (this.pageNumber > 0) { - this.pageNumber--; - this.onPageChanged(event, this.pageNumber); - } - } - /** - * @return {?} - */ - gotoFirstPage() { - this.pageNumber = 1; - this.onPageChanged(undefined, this.pageNumber); - } - /** - * @return {?} - */ - refreshPagination() { - if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) { - // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes - if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) { - this.pageNumber = 1; - this.recalculateFromToIndexes(); - } - // calculate and refresh the multiple properties of the pagination UI - this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes; - this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize; - if (this._gridPaginationOptions.onPaginationChanged) { - this.paginationCallback = this._gridPaginationOptions.onPaginationChanged; - } - this.totalItems = this._gridPaginationOptions.pagination.totalItems; - this.dataTo = this.itemsPerPage; - } - this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage); - } - /** - * @param {?=} event - * @param {?=} pageNumber - * @return {?} - */ - onPageChanged(event, pageNumber) { - this.recalculateFromToIndexes(); - if (this.dataTo > this.totalItems) { - this.dataTo = this.totalItems; - } - if (typeof this.paginationCallback === 'function') { - const /** @type {?} */ itemsPerPage = this.itemsPerPage; - this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage }); - } - } - /** - * @return {?} - */ - recalculateFromToIndexes() { - this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1; - this.dataTo = (this.pageNumber * this.itemsPerPage); - } -} -SlickPaginationComponent.decorators = [ - { type: Component, args: [{ - selector: 'slick-pagination', - template: ` -
-
- - -
- page {{pageNumber}} of {{pageCount}} -
- - -
- - - items per page, - - {{dataFrom}}-{{dataTo}} of {{totalItems}} items - - -
- `, - styles: [ - ` - /* Pagination styling */ - .slick-pagination { - border-top: 0 none; - border-right: 0 none; - border-bottom: 0 none; - border-left: 0 none; - width: 100%; - height: 34px; - padding-top: 4px; - vertical-align: middle; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; - font-size: 13px; - font-weight: 400; - color: #808080; - } - .slick-pagination .slick-pagination-status { - display: inline-block; - padding: 6px; - } - .slick-pagination .ui-icon-container { - display: inline-block; - border-color: #ddd; - } - .slick-pagination .slick-pagination-nav { - display: inline-block; - padding: 2px; - height: 34px; - } - .slick-pagination .slick-pagination-nav nav { - display: inline-block; - } - .slick-pagination .slick-pagination-nav .slick-page-number { - vertical-align: top; - margin-top: 6px; - display: inline-block; - padding: 0 5px; - } - .slick-pagination .slick-pagination-nav .pagination { - margin: 0; - } - .slick-pagination .slick-pagination-nav .pagination .page-link { - font-size: 13px; - font-weight: bold; - border: 1px solid #ccc; - } - .slick-pagination .slick-pagination-nav .pagination .page-item { - cursor: pointer; - font-weight: bold; - } - .slick-pagination .slick-pagination-nav .pagination .page-item a[class*="icon-seek-"] { - text-decoration: none; - font-size: 14px; - border-color: silver; - } - .slick-pagination .slick-pagination-nav .pagination .page-item.disabled { - cursor: not-allowed; - font-weight: normal; - } - .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link { - font-weight: normal; - } - .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*="icon-seek-"] { - background-color: #f9f9f9; - border-color: #dedede; - } - .slick-pagination .slick-pagination-settings { - display: block; - float: right; - padding: 2px; - vertical-align: middle; - } - .slick-pagination .slick-pagination-settings select { - font-size: 12px; - line-height: 1.5; - height: 32px; - width: 62px; - padding: 5px; - border: 1px solid #ccc; - border-radius: 3px; - } - .slick-pagination .slick-pagination-settings .slick-pagination-count { - padding-left: 10px; - } - ` - ] - },] }, -]; -/** - * @nocollapse - */ -SlickPaginationComponent.ctorParameters = () => []; -SlickPaginationComponent.propDecorators = { - 'gridPaginationOptions': [{ type: Input },], - 'grid': [{ type: Input },], -}; - -/** - * Options that can be passed to the Bootstrap-Datetimepicker directly - */ -const GlobalGridOptions = { - autoEdit: false, - asyncEditorLoading: false, - autoFitColumnsOnFirstLoad: true, - autoResize: { - bottomPadding: 20, - minHeight: 180, - minWidth: 300, - sidePadding: 0 - }, - enableAutoResize: true, - cellHighlightCssClass: 'slick-cell-modified', - editable: false, - enableCellNavigation: false, - enableColumnPicker: true, - enableColumnReorder: true, - enableMouseOverRow: true, - enablePagination: false, - enableSorting: true, - enableTextSelectionOnCells: true, - explicitInitialization: false, - forceFitColumns: false, - headerRowHeight: 35, - multiColumnSort: true, - pagination: { - pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100], - pageSize: 25, - totalItems: 0 - }, - rowHeight: 35, - showHeaderRow: false, - topPanelHeight: 25 -}; - -class AngularSlickgridComponent { - /** - * @param {?} resizer - * @param {?} mouseService - * @param {?} filterService - * @param {?} sortService - */ - constructor(resizer, mouseService, filterService, sortService) { - this.resizer = resizer; - this.mouseService = mouseService; - this.filterService = filterService; - this.sortService = sortService; - this._columnFilters = {}; - this.showPagination = false; - this.onFilter = new Slick.Event(); - this.gridHeight = 100; - this.gridWidth = 600; - } - /** - * @param {?} dataset - * @return {?} - */ - set dataset(dataset) { - this._dataset = dataset; - this.refreshGridData(dataset); - } - /** - * @return {?} - */ - get dataset() { - return this._dataView.getItems(); - } - /** - * @return {?} - */ - ngOnInit() { - this.gridHeightString = `${this.gridHeight}px`; - this.gridWidthString = `${this.gridWidth}px`; - } - /** - * @return {?} - */ - ngAfterViewInit() { - // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null) - this._dataset = this._dataset || []; - this._gridOptions = this.mergeGridOptions(); - this._dataView = new Slick.Data.DataView(); - this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions); - this.grid.setSelectionModel(new Slick.RowSelectionModel()); - if (this._gridOptions.enableColumnPicker) { - const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); - } - this.grid.init(); - this._dataView.beginUpdate(); - this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView); - this._dataView.setItems(this._dataset); - this._dataView.endUpdate(); - // attach resize ONLY after the dataView is ready - this.attachResizeHook(this.grid, this._gridOptions); - } - /** - * @param {?} grid - * @param {?} options - * @param {?} dataView - * @return {?} - */ - attachDifferentHooks(grid, options, dataView) { - // attach external sorting (backend) when available or default onSort (dataView) - if (options.enableSorting) { - (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView); - } - // attach external filter (backend) when available or default onSort (dataView) - if (options.enableFiltering) { - this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters); - (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView); - } - // if enable, change background color on mouse over - if (options.enableMouseOverRow) { - this.mouseService.attachOnMouseHover(grid); - } - dataView.onRowCountChanged.subscribe((e, args) => { - grid.updateRowCount(); - grid.render(); - }); - dataView.onRowsChanged.subscribe((e, args) => { - grid.invalidateRows(args.rows); - grid.render(); - }); - } - /** - * @param {?} grid - * @param {?} options - * @return {?} - */ - attachResizeHook(grid, options) { - // expand/autofit columns on first page load - if (this._gridOptions.autoFitColumnsOnFirstLoad) { - this.grid.autosizeColumns(); - } - // auto-resize grid on browser resize - if (options.enableAutoResize) { - this.resizer.attachAutoResizeDataGrid(grid, options); - if (options.autoFitColumnsOnFirstLoad) { - grid.autosizeColumns(); - } - } - else { - this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth }); - } - } - /** - * @return {?} - */ - mergeGridOptions() { - this.gridOptions.gridId = this.gridId; - this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`; - if (this.gridOptions.enableFiltering) { - this.gridOptions.showHeaderRow = true; - } - const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions); - return options; - } - /** - * Toggle the filter row displayed on first row - * @param {?} isShowing - * @return {?} - */ - showHeaderRow(isShowing) { - this.grid.setHeaderRowVisibility(isShowing); - return isShowing; - } - /** - * Toggle the filter row displayed on first row - * @return {?} - */ - toggleHeaderRow() { - const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow; - this.grid.setHeaderRowVisibility(isShowing); - return isShowing; - } - /** - * @param {?} dataset - * @return {?} - */ - refreshGridData(dataset) { - if (dataset && this.grid) { - this._dataView.setItems(dataset); - // this.grid.setData(dataset); - this.grid.invalidate(); - this.grid.render(); - if (this._gridOptions.enablePagination) { - this.showPagination = true; - this.gridPaginationOptions = this.mergeGridOptions(); - } - if (this._gridOptions.enableAutoResize) { - // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed) - setTimeout(() => { - this.resizer.resizeGrid(this.grid, this._gridOptions); - this.grid.autosizeColumns(); - }); - } - } - } -} -AngularSlickgridComponent.decorators = [ - { type: Injectable }, - { type: Component, args: [{ - selector: 'angular-slickgrid', - template: ` -
-
-
- - -
- ` - },] }, -]; -/** - * @nocollapse - */ -AngularSlickgridComponent.ctorParameters = () => [ - { type: ResizerService, }, - { type: MouseService, }, - { type: FilterService, }, - { type: SortService, }, -]; -AngularSlickgridComponent.propDecorators = { - 'gridId': [{ type: Input },], - 'columnDefinitions': [{ type: Input },], - 'gridOptions': [{ type: Input },], - 'gridHeight': [{ type: Input },], - 'gridWidth': [{ type: Input },], - 'dataset': [{ type: Input },], -}; - -class AngularSlickgridModule { -} -AngularSlickgridModule.decorators = [ - { type: NgModule, args: [{ - imports: [ - CommonModule - ], - declarations: [ - AngularSlickgridComponent, - SlickPaginationComponent - ], - exports: [ - AngularSlickgridComponent, - SlickPaginationComponent - ], - providers: [ - MouseService, - OdataService, - FilterService, - SortService, - ResizerService - ] - },] }, -]; -/** - * @nocollapse - */ -AngularSlickgridModule.ctorParameters = () => []; - -// Public classes. - -/** - * Angular library starter. - * Build an Angular library compatible with AoT compilation & Tree shaking. - * Written by Roberto Simonetti. - * MIT license. - * https://github.com/robisim74/angular-slickgrid - */ -/** - * Entry point for all public APIs of the package. - */ - -/** - * Generated bundle index. Do not edit. - */ - -export { CaseType, FormElementType, FieldType, FilterConditions, FilterTemplates, Formatters, Sorters, FilterService, MouseService, ResizerService, SortService, GridOdataService, SlickPaginationComponent, AngularSlickgridComponent, AngularSlickgridModule, OdataService as ɵa }; -//# sourceMappingURL=angular-slickgrid.js.map diff --git a/dist/modules/angular-slickgrid.js.map b/dist/modules/angular-slickgrid.js.map deleted file mode 100644 index 91b3b3dfa..000000000 --- a/dist/modules/angular-slickgrid.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"angular-slickgrid.js","sources":["../../angular-slickgrid.ts","../../public_api.ts","../../src/angular-slickgrid.ts","../../src/modules/angular-slickgrid.module.ts","../../src/components/angular-slickgrid.component.ts","../../src/global-grid-options.ts","../../src/components/slick-pagination.component.ts","../../src/services/grid-odata.service.ts","../../src/services/odata.service.ts","../../src/services/global-utilities.ts","../../src/services/sort.service.ts","../../src/services/resizer.service.ts","../../src/services/mouse.service.ts","../../src/services/filter.service.ts","../../src/sorters/index.ts","../../src/sorters/stringSorter.ts","../../src/sorters/numericSorter.ts","../../src/sorters/dateUsSorter.ts","../../src/sorters/dateIsoSorter.ts","../../src/sorters/dateSorter.ts","../../src/sorters/dateUsShortSorter.ts","../../src/formatters/index.ts","../../src/formatters/yesNoFormatter.ts","../../src/formatters/progressBarFormatter.ts","../../src/formatters/percentCompleteBarFormatter.ts","../../src/formatters/percentCompleteFormatter.ts","../../src/formatters/dateUsFormatter.ts","../../src/formatters/dateTimeUsFormatter.ts","../../src/formatters/dateTimeUsAmPmFormatter.ts","../../src/formatters/dateTimeIsoAmPmFormatter.ts","../../src/formatters/dateIsoFormatter.ts","../../src/formatters/checkmarkFormatter.ts","../../src/formatters/checkboxFormatter.ts","../../src/filter-templates/index.ts","../../src/filter-templates/selectFilterTemplate.ts","../../src/filter-templates/inputFilterTemplate.ts","../../src/filter-conditions/index.ts","../../src/filter-conditions/executeMappedCondition.ts","../../src/filter-conditions/stringFilterCondition.ts","../../src/filter-conditions/numberFilterCondition.ts","../../src/filter-conditions/dateFilterCondition.ts","../../src/filter-conditions/dateUsFilterCondition.ts","../../src/filter-conditions/dateUsShortFilterCondition.ts","../../src/filter-conditions/dateIsoFilterCondition.ts","../../src/filter-conditions/dateUtcFilterCondition.ts","../../src/filter-conditions/filterUtilities.ts","../../src/filter-conditions/booleanFilterCondition.ts","../../src/models/fieldType.ts","../../src/models/formElementType.ts","../../src/models/caseType.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport {CaseType,Column,Formatter,GridOption,FormElementType,FieldType,FilterConditions,FilterTemplates,Formatters,Sorters,FilterService,MouseService,ResizerService,SortService,GridOdataService,SlickPaginationComponent,AngularSlickgridComponent,AngularSlickgridModule} from './public_api';\n\nexport {OdataService as ɵa} from './src/services/odata.service';","/**\r\n * Angular library starter.\r\n * Build an Angular library compatible with AoT compilation & Tree shaking.\r\n * Written by Roberto Simonetti.\r\n * MIT license.\r\n * https://github.com/robisim74/angular-slickgrid\r\n */\r\n\r\n/**\r\n * Entry point for all public APIs of the package.\r\n */\r\nexport {CaseType,Column,Formatter,GridOption,FormElementType,FieldType,FilterConditions,FilterTemplates,Formatters,Sorters,FilterService,MouseService,ResizerService,SortService,GridOdataService,SlickPaginationComponent,AngularSlickgridComponent,AngularSlickgridModule} from './src/angular-slickgrid';\r\n","// Public classes.\r\nexport { CaseType } from './models/caseType';\r\nexport { Column } from './models/column.interface';\r\nexport { Formatter } from './models/formatter.interface';\r\nexport { GridOption } from './models/gridOption.interface';\r\nexport { FormElementType } from './models/formElementType';\r\nexport { FieldType } from './models/fieldType';\r\n\r\nexport { FilterConditions } from './filter-conditions/index';\r\nexport { FilterTemplates } from './filter-templates/index';\r\nexport { Formatters } from './formatters/index';\r\nexport { Sorters } from './sorters/index';\r\n\r\nexport { FilterService } from './services/filter.service';\r\nexport { MouseService } from './services/mouse.service';\r\nexport { ResizerService } from './services/resizer.service';\r\nexport { SortService } from './services/sort.service';\r\nexport { GridOdataService } from './services/grid-odata.service';\r\n\r\nexport { SlickPaginationComponent } from './components/slick-pagination.component';\r\nexport { AngularSlickgridComponent } from './components/angular-slickgrid.component';\r\nexport { AngularSlickgridModule } from './modules/angular-slickgrid.module';\r\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { Formatters } from './../formatters/index';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { OdataService } from './../services/odata.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { AngularSlickgridComponent } from './../components/angular-slickgrid.component';\nimport { SlickPaginationComponent } from './../components/slick-pagination.component';\nimport { SortService } from './../services/sort.service';\nexport class AngularSlickgridModule { static decorators: DecoratorInvocation[] = [\n{ type: NgModule, args: [{\n imports: [\n CommonModule\n ],\n declarations: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n exports: [\n AngularSlickgridComponent,\n SlickPaginationComponent\n ],\n providers: [\n MouseService,\n OdataService,\n FilterService,\n SortService,\n ResizerService\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction AngularSlickgridModule_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridModule.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridModule.ctorParameters;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { ColumnFilters } from './../models/columnFilters.interface';\nimport { FormElementType } from './../models/formElementType';\nimport { GridOption } from './../models/gridOption.interface';\nimport { FilterService } from './../services/filter.service';\nimport { MouseService } from './../services/mouse.service';\nimport { SortService } from './../services/sort.service';\nimport { ResizerService } from './../services/resizer.service';\nimport { GlobalGridOptions } from './../global-grid-options';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class AngularSlickgridComponent implements AfterViewInit, OnInit {\nprivate _dataset: any[];\nprivate _dataView: any;\nprivate _gridOptions: GridOption;\nprivate _columnFilters: ColumnFilters = {};\n grid: any;\n gridPaginationOptions: GridOption;\n gridHeightString: string;\n gridWidthString: string;\n showPagination = false;\n onFilter = new Slick.Event();\n\n gridId: string;\n columnDefinitions: Column[];\n gridOptions: GridOption;\n gridHeight = 100;\n gridWidth = 600;\n/**\n * @param {?} dataset\n * @return {?}\n */\nset dataset(dataset: any[]) {\n this._dataset = dataset;\n this.refreshGridData(dataset);\n }\n/**\n * @return {?}\n */\nget dataset(): any[] {\n return this._dataView.getItems();\n }\n/**\n * @param {?} resizer\n * @param {?} mouseService\n * @param {?} filterService\n * @param {?} sortService\n */\nconstructor(private resizer: ResizerService,\nprivate mouseService: MouseService,\nprivate filterService: FilterService,\nprivate sortService: SortService) {\n }\n/**\n * @return {?}\n */\nngOnInit(): void {\n this.gridHeightString = `${this.gridHeight}px`;\n this.gridWidthString = `${this.gridWidth}px`;\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n // make sure the dataset is initialized (if not it will throw an error that it cannot getLength of null)\n this._dataset = this._dataset || [];\n this._gridOptions = this.mergeGridOptions();\n\n this._dataView = new Slick.Data.DataView();\n\n this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions);\n this.grid.setSelectionModel(new Slick.RowSelectionModel());\n\n if (this._gridOptions.enableColumnPicker) {\n const /** @type {?} */ columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions);\n }\n\n this.grid.init();\n this._dataView.beginUpdate();\n this.attachDifferentHooks(this.grid, this._gridOptions, this._dataView);\n\n this._dataView.setItems(this._dataset);\n this._dataView.endUpdate();\n\n // attach resize ONLY after the dataView is ready\n this.attachResizeHook(this.grid, this._gridOptions);\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @param {?} dataView\n * @return {?}\n */\nattachDifferentHooks(grid: any, options: GridOption, dataView: any) {\n // attach external sorting (backend) when available or default onSort (dataView)\n if (options.enableSorting) {\n (typeof options.onSortChanged === 'function') ? this.sortService.attachBackendOnSort(grid, options) : this.sortService.attachLocalOnSort(grid, options, this._dataView);\n }\n\n // attach external filter (backend) when available or default onSort (dataView)\n if (options.enableFiltering) {\n this.filterService.init(grid, options, this.columnDefinitions, this._columnFilters);\n (typeof options.onFilterChanged === 'function') ? this.filterService.attachBackendOnFilter() : this.filterService.attachLocalOnFilter(this._dataView);\n }\n\n // if enable, change background color on mouse over\n if (options.enableMouseOverRow) {\n this.mouseService.attachOnMouseHover(grid);\n }\n\n dataView.onRowCountChanged.subscribe((e: any, args: any) => {\n grid.updateRowCount();\n grid.render();\n });\n dataView.onRowsChanged.subscribe((e: any, args: any) => {\n grid.invalidateRows(args.rows);\n grid.render();\n });\n }\n/**\n * @param {?} grid\n * @param {?} options\n * @return {?}\n */\nattachResizeHook(grid: any, options: GridOption) {\n // expand/autofit columns on first page load\n if (this._gridOptions.autoFitColumnsOnFirstLoad) {\n this.grid.autosizeColumns();\n }\n\n // auto-resize grid on browser resize\n if (options.enableAutoResize) {\n this.resizer.attachAutoResizeDataGrid(grid, options);\n if (options.autoFitColumnsOnFirstLoad) {\n grid.autosizeColumns();\n }\n } else {\n this.resizer.resizeGrid(grid, options, { height: this.gridHeight, width: this.gridWidth });\n }\n }\n/**\n * @return {?}\n */\nmergeGridOptions(): GridOption {\n this.gridOptions.gridId = this.gridId;\n this.gridOptions.gridContainerId = `slickGridContainer-${this.gridId}`;\n if (this.gridOptions.enableFiltering) {\n this.gridOptions.showHeaderRow = true;\n }\n const /** @type {?} */ options = Object.assign({}, GlobalGridOptions, this.gridOptions);\n return options;\n }\n/**\n * Toggle the filter row displayed on first row\n * @param {?} isShowing\n * @return {?}\n */\nshowHeaderRow(isShowing: boolean) {\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * Toggle the filter row displayed on first row\n * @return {?}\n */\ntoggleHeaderRow() {\n const /** @type {?} */ isShowing = !this.grid.getOptions().showHeaderRow;\n this.grid.setHeaderRowVisibility(isShowing);\n return isShowing;\n }\n/**\n * @param {?} dataset\n * @return {?}\n */\nrefreshGridData(dataset: any) {\n if (dataset && this.grid) {\n this._dataView.setItems(dataset);\n\n // this.grid.setData(dataset);\n this.grid.invalidate();\n this.grid.render();\n\n if (this._gridOptions.enablePagination) {\n this.showPagination = true;\n this.gridPaginationOptions = this.mergeGridOptions();\n }\n if (this._gridOptions.enableAutoResize) {\n // resize the grid inside a slight timeout, in case other DOM element changed prior to the resize (like a filter/pagination changed)\n setTimeout(() => {\n this.resizer.resizeGrid(this.grid, this._gridOptions);\n this.grid.autosizeColumns();\n });\n }\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n{ type: Component, args: [{\n selector: 'angular-slickgrid',\n template: `\n
\n
\n
\n\n \n
\n `\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: ResizerService, },\n{type: MouseService, },\n{type: FilterService, },\n{type: SortService, },\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridId': [{ type: Input },],\n'columnDefinitions': [{ type: Input },],\n'gridOptions': [{ type: Input },],\n'gridHeight': [{ type: Input },],\n'gridWidth': [{ type: Input },],\n'dataset': [{ type: Input },],\n};\n}\n\nfunction AngularSlickgridComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nAngularSlickgridComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nAngularSlickgridComponent.ctorParameters;\n/** @type {?} */\nAngularSlickgridComponent.propDecorators;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataset;\n/** @type {?} */\nAngularSlickgridComponent.prototype._dataView;\n/** @type {?} */\nAngularSlickgridComponent.prototype._gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype._columnFilters;\n/** @type {?} */\nAngularSlickgridComponent.prototype.grid;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridPaginationOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeightString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidthString;\n/** @type {?} */\nAngularSlickgridComponent.prototype.showPagination;\n/** @type {?} */\nAngularSlickgridComponent.prototype.onFilter;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridId;\n/** @type {?} */\nAngularSlickgridComponent.prototype.columnDefinitions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridOptions;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridHeight;\n/** @type {?} */\nAngularSlickgridComponent.prototype.gridWidth;\n/** @type {?} */\nAngularSlickgridComponent.prototype.resizer;\n/** @type {?} */\nAngularSlickgridComponent.prototype.mouseService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.filterService;\n/** @type {?} */\nAngularSlickgridComponent.prototype.sortService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { GridOption } from './models/gridOption.interface';\n/**\n * Options that can be passed to the Bootstrap-Datetimepicker directly\n */\nexport const GlobalGridOptions: GridOption = {\n autoEdit: false,\n asyncEditorLoading: false,\n autoFitColumnsOnFirstLoad: true,\n autoResize: {\n bottomPadding: 20,\n minHeight: 180,\n minWidth: 300,\n sidePadding: 0\n },\n enableAutoResize: true,\n cellHighlightCssClass: 'slick-cell-modified',\n editable: false,\n enableCellNavigation: false,\n enableColumnPicker: true,\n enableColumnReorder: true,\n enableMouseOverRow: true,\n enablePagination: false,\n enableSorting: true,\n enableTextSelectionOnCells: true,\n explicitInitialization: false,\n forceFitColumns: false,\n headerRowHeight: 35,\n multiColumnSort: true,\n pagination: {\n pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100],\n pageSize: 25,\n totalItems: 0\n },\n rowHeight: 35,\n showHeaderRow: false,\n topPanelHeight: 25\n};\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\nimport { Column } from './../models/column.interface';\nimport { GridOption } from './../models/gridOption.interface';\nexport class SlickPaginationComponent implements AfterViewInit, OnInit {\nprivate _gridPaginationOptions: GridOption;\n/**\n * @param {?} gridPaginationOptions\n * @return {?}\n */\nset gridPaginationOptions(gridPaginationOptions: GridOption) {\n this._gridPaginationOptions = gridPaginationOptions;\n if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @return {?}\n */\nget gridPaginationOptions(): GridOption {\n return this._gridPaginationOptions;\n }\n grid: any;\n dataFrom = 1;\n dataTo = 1;\n itemsPerPage = 25;\n pageCount = 0;\n pageNumber = 1;\n totalItems = 0;\n paginationCallback: Function;\n paginationPageSizes = [25, 75, 100];\nconstructor() { }\n/**\n * @return {?}\n */\nngOnInit() {\n }\n/**\n * @return {?}\n */\nngAfterViewInit() {\n this._gridPaginationOptions = this._gridPaginationOptions;\n if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) {\n this.refreshPagination();\n }\n }\n/**\n * @param {?} number\n * @return {?}\n */\nceil(number: number) {\n return Math.ceil(number);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nonChangeItemPerPage(event: any) {\n const /** @type {?} */ itemsPerPage = /** @type {?} */(( event.target.value));\n this.pageCount = Math.ceil(this.totalItems / itemsPerPage);\n this.pageNumber = 1;\n this.itemsPerPage = itemsPerPage;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToFirstPage(event: any) {\n this.pageNumber = 1;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToLastPage(event: any) {\n this.pageNumber = this.pageCount;\n this.onPageChanged(event, this.pageNumber);\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToNextPage(event: any) {\n if (this.pageNumber < this.pageCount) {\n this.pageNumber++;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @param {?} event\n * @return {?}\n */\nchangeToPreviousPage(event: any) {\n if (this.pageNumber > 0) {\n this.pageNumber--;\n this.onPageChanged(event, this.pageNumber);\n }\n }\n/**\n * @return {?}\n */\ngotoFirstPage() {\n this.pageNumber = 1;\n this.onPageChanged(undefined, this.pageNumber);\n }\n/**\n * @return {?}\n */\nrefreshPagination() {\n if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) {\n // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes\n if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) {\n this.pageNumber = 1;\n this.recalculateFromToIndexes();\n }\n\n // calculate and refresh the multiple properties of the pagination UI\n this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes;\n this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize;\n if (this._gridPaginationOptions.onPaginationChanged) {\n this.paginationCallback = this._gridPaginationOptions.onPaginationChanged;\n }\n this.totalItems = this._gridPaginationOptions.pagination.totalItems;\n this.dataTo = this.itemsPerPage;\n }\n this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage);\n }\n/**\n * @param {?=} event\n * @param {?=} pageNumber\n * @return {?}\n */\nonPageChanged(event?: Event, pageNumber?: number) {\n this.recalculateFromToIndexes();\n\n if (this.dataTo > this.totalItems) {\n this.dataTo = this.totalItems;\n }\n if (typeof this.paginationCallback === 'function') {\n const /** @type {?} */ itemsPerPage = this.itemsPerPage;\n this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage });\n }\n }\n/**\n * @return {?}\n */\nrecalculateFromToIndexes() {\n this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1;\n this.dataTo = (this.pageNumber * this.itemsPerPage);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Component, args: [{\n selector: 'slick-pagination',\n template: `\n
\n
\n \n\n
\n page {{pageNumber}} of {{pageCount}}\n
\n\n \n
\n \n \n items per page,\n \n {{dataFrom}}-{{dataTo}} of {{totalItems}} items\n \n \n
\n `,\n styles: [\n `\n /* Pagination styling */\n .slick-pagination {\n border-top: 0 none;\n border-right: 0 none;\n border-bottom: 0 none;\n border-left: 0 none;\n width: 100%;\n height: 34px;\n padding-top: 4px;\n vertical-align: middle;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, sans-serif;\n font-size: 13px;\n font-weight: 400;\n color: #808080;\n }\n .slick-pagination .slick-pagination-status {\n display: inline-block;\n padding: 6px;\n }\n .slick-pagination .ui-icon-container {\n display: inline-block;\n border-color: #ddd;\n }\n .slick-pagination .slick-pagination-nav {\n display: inline-block;\n padding: 2px;\n height: 34px;\n }\n .slick-pagination .slick-pagination-nav nav {\n display: inline-block;\n }\n .slick-pagination .slick-pagination-nav .slick-page-number {\n vertical-align: top;\n margin-top: 6px;\n display: inline-block;\n padding: 0 5px;\n }\n .slick-pagination .slick-pagination-nav .pagination {\n margin: 0;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-link {\n font-size: 13px;\n font-weight: bold;\n border: 1px solid #ccc;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item {\n cursor: pointer;\n font-weight: bold;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item a[class*=\"icon-seek-\"] {\n text-decoration: none;\n font-size: 14px;\n border-color: silver;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled {\n cursor: not-allowed;\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link {\n font-weight: normal;\n }\n .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*=\"icon-seek-\"] {\n background-color: #f9f9f9;\n border-color: #dedede;\n }\n .slick-pagination .slick-pagination-settings {\n display: block;\n float: right;\n padding: 2px;\n vertical-align: middle;\n }\n .slick-pagination .slick-pagination-settings select {\n font-size: 12px;\n line-height: 1.5;\n height: 32px;\n width: 62px;\n padding: 5px;\n border: 1px solid #ccc;\n border-radius: 3px;\n }\n .slick-pagination .slick-pagination-settings .slick-pagination-count {\n padding-left: 10px;\n }\n `\n ]\n}, ] },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\nstatic propDecorators: {[key: string]: DecoratorInvocation[]} = {\n'gridPaginationOptions': [{ type: Input },],\n'grid': [{ type: Input },],\n};\n}\n\nfunction SlickPaginationComponent_tsickle_Closure_declarations() {\n/** @type {?} */\nSlickPaginationComponent.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSlickPaginationComponent.ctorParameters;\n/** @type {?} */\nSlickPaginationComponent.propDecorators;\n/** @type {?} */\nSlickPaginationComponent.prototype._gridPaginationOptions;\n/** @type {?} */\nSlickPaginationComponent.prototype.grid;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataFrom;\n/** @type {?} */\nSlickPaginationComponent.prototype.dataTo;\n/** @type {?} */\nSlickPaginationComponent.prototype.itemsPerPage;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageCount;\n/** @type {?} */\nSlickPaginationComponent.prototype.pageNumber;\n/** @type {?} */\nSlickPaginationComponent.prototype.totalItems;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationCallback;\n/** @type {?} */\nSlickPaginationComponent.prototype.paginationPageSizes;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from './../models/caseType';\nimport { FilterChangedArgs } from './../models/filterChangedArgs.interface';\nimport { FieldType } from './../models/fieldType';\nimport { OdataOption } from './../models/odataOption.interface';\nimport { PaginationChangedArgs } from './../models/paginationChangedArgs.interface';\nimport { SortChangedArgs } from './../models/sortChangedArgs.interface';\nimport { OdataService } from './odata.service';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_;\nexport class GridOdataService {\n defaultSortBy = '';\n minUserInactivityOnFilter = 700;\n/**\n * @param {?} odataService\n */\nconstructor(private odataService: OdataService) { }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} options\n * @return {?}\n */\ninitOptions(options: OdataOption): void {\n this.odataService.options = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string): void {\n this.odataService.removeColumnFilter(fieldName);\n }\n/**\n * @return {?}\n */\nresetPaginationOptions() {\n this.odataService.updateOptions({\n skip: 0\n });\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} terms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: string, terms?: any[]) {\n this.odataService.saveColumnFilter(fieldName, value, terms);\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonFilterChanged(event: Event, args: FilterChangedArgs) {\n let /** @type {?} */ searchBy: string = '';\n let /** @type {?} */ timer: any = 0;\n const /** @type {?} */ searchByArray = [];\n\n // loop through all columns to inspect filters\n for (const /** @type {?} */ columnId in args.columnFilters) {\n if (args.columnFilters.hasOwnProperty(columnId)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnDef = columnFilter.columnDef;\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || 'string';\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n if (typeof fieldSearchValue !== 'string') {\n throw new Error(`OData filter term property must be provided type \"string\", if you use filter with options then make sure your ids are also string. For example: filter: {type: FormElementType.select, selectOptions: [{ id: \"0\", value: \"0\" }, { id: \"1\", value: \"1\" }]`);\n }\n\n const /** @type {?} */ searchTerms = columnFilter.listTerm || [];\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n let /** @type {?} */ searchValue = (!!matches) ? matches[2] : fieldSearchValue;\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n const /** @type {?} */ bypassOdataQuery = columnFilter.bypassBackendQuery || false;\n\n // no need to query if search value is empty\n if (fieldName && searchValue === '') {\n this.removeColumnFilter(fieldName);\n continue;\n }\n\n // escaping the search value\n searchValue = searchValue.replace(`'`, `''`); // escape single quotes by doubling them\n searchValue = encodeURIComponent(searchValue); // encode URI of the final search value\n\n // extra query arguments\n if (bypassOdataQuery) {\n // push to our temp array and also trim white spaces\n if (fieldName) {\n this.saveColumnFilter(fieldName, fieldSearchValue, searchTerms);\n }\n } else {\n let /** @type {?} */ searchBy = '';\n\n // titleCase the fieldName so that it matches the WebApi names\n const /** @type {?} */ fieldNameTitleCase = String.titleCase(fieldName || '');\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (searchTerms && searchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = searchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} eq '${searchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = searchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldNameTitleCase} ne '${searchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `(${searchBy})`;\n }\n } else if (operator === '*' || lastValueChar !== '') {\n // first/last character is a '*' will be a startsWith or endsWith\n searchBy = operator === '*'\n ? `endswith(${fieldNameTitleCase}, '${searchValue}')`\n : `startswith(${fieldNameTitleCase}, '${searchValue}')`;\n } else if (fieldType === FieldType.date) {\n // date field needs to be UTC and within DateTime function\n const /** @type {?} */ dateFormatted = this.parseUtcDate(searchValue, true);\n if (dateFormatted) {\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} DateTime'${dateFormatted}'`;\n }\n } else if (fieldType === FieldType.string) {\n // string field needs to be in single quotes\n searchBy = `substringof('${searchValue}', ${fieldNameTitleCase})`;\n } else {\n // any other field type (or undefined type)\n searchValue = fieldType === FieldType.number ? searchValue : `'${searchValue}'`;\n searchBy = `${fieldNameTitleCase} ${this.mapOperator(operator)} ${searchValue}`;\n }\n\n // push to our temp array and also trim white spaces\n if (searchBy !== '') {\n searchByArray.push(String.trim(searchBy));\n this.saveColumnFilter(fieldName || '', fieldSearchValue, searchTerms);\n }\n }\n }\n }\n\n // build the filter query\n this.odataService.updateOptions({\n filter: (searchByArray.length > 0) ? searchByArray.join(' and ') : '',\n skip: undefined\n });\n\n // reset Pagination, then build the OData query which we will use in the WebAPI callback\n this.resetPaginationOptions();\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonPaginationChanged(event: Event, args: PaginationChangedArgs) {\n this.odataService.updateOptions({\n top: args.pageSize,\n skip: (args.newPage - 1) * args.pageSize\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * @param {?} event\n * @param {?} args\n * @return {?}\n */\nonSortChanged(event: Event, args: SortChangedArgs) {\n let /** @type {?} */ sortByArray = [];\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({ sortCol: args.sortCol, sortAsc: args.sortAsc });\n\n // build the SortBy string, it could be multisort, example: customerNo asc, purchaserName desc\n if (sortColumns && sortColumns.length === 0) {\n sortByArray = new Array(this.defaultSortBy); // when empty, use the default sort\n } else {\n if (sortColumns) {\n for (let /** @type {?} */ column of sortColumns) {\n let /** @type {?} */ fieldName = column.sortCol.field || column.sortCol.id;\n if (this.odataService.options.caseType === CaseType.pascalCase) {\n fieldName = String.titleCase(fieldName);\n }\n const /** @type {?} */ direction = column.sortAsc ? 'asc' : 'desc';\n const /** @type {?} */ sortByColumnString = `${fieldName} ${direction}`;\n sortByArray.push(sortByColumnString);\n }\n }\n }\n\n // transform the sortby array into a CSV string\n const /** @type {?} */ csvArray = sortByArray.join(',');\n this.odataService.updateOptions({\n orderBy: (this.odataService.options.caseType === CaseType.pascalCase) ? String.titleCase(csvArray) : csvArray\n });\n\n // build the OData query which we will use in the WebAPI callback\n return this.odataService.buildQuery();\n }\n/**\n * Mapper for mathematical operators (ex.: <= is \"le\", > is \"gt\")\n * @param {?} operator\n * @return {?} string map\n */\nprivate mapOperator(operator: string) {\n let /** @type {?} */ map = '';\n switch (operator) {\n case '<':\n map = 'lt';\n break;\n case '<=':\n map = 'le';\n break;\n case '>':\n map = 'gt';\n break;\n case '>=':\n map = 'ge';\n break;\n case '<>':\n case '!=':\n map = 'ne';\n break;\n case '=':\n case '==':\n default:\n map = 'eq';\n break;\n }\n\n return map;\n }\n/**\n * Parse a date passed as a string and return a Date object (if valid)\n * @param {?} inputDateString\n * @param {?} useUtc\n * @return {?} object Date\n */\nprivate parseUtcDate(inputDateString: string, useUtc: boolean) {\n let /** @type {?} */ date = null;\n\n if (/^[0-9\\-\\/]*$/.test(inputDateString)) {\n // get the UTC datetime with moment.js but we need to decode the value so that's it's valid text\n const /** @type {?} */ dateString = decodeURIComponent(inputDateString);\n const /** @type {?} */ dateMoment = moment(new Date(dateString));\n if (dateMoment.isValid() && dateMoment.year().toString().length === 4) {\n date = (useUtc) ? dateMoment.utc().format() : dateMoment.format();\n }\n }\n\n return date;\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: OdataService, },\n];\n}\n\nfunction GridOdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nGridOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nGridOdataService.ctorParameters;\n/** @type {?} */\nGridOdataService.prototype.defaultSortBy;\n/** @type {?} */\nGridOdataService.prototype.minUserInactivityOnFilter;\n/** @type {?} */\nGridOdataService.prototype.odataService;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import'./global-utilities';\nimport { Injectable } from '@angular/core';\nimport { CaseType } from '../models/caseType';\nimport { OdataOption } from './../models/odataOption.interface';\nexport class OdataService {\n _columnFilters: any;\n _defaultSortBy: string;\n _odataOptions: OdataOption;\nconstructor() {\n this._odataOptions = {\n filterQueue: [],\n orderBy: ''\n };\n this._defaultSortBy = '';\n this._columnFilters = {};\n }\n/**\n * @return {?}\n */\nbuildQuery(): string {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ queryTmpArray = [];\n\n if (this._odataOptions.top) {\n queryTmpArray.push(`$top=${this._odataOptions.top}`);\n }\n if (this._odataOptions.skip) {\n queryTmpArray.push(`$skip=${this._odataOptions.skip}`);\n }\n if (this._odataOptions.orderBy) {\n let /** @type {?} */ argument = '';\n if (Array.isArray(this._odataOptions.orderBy)) {\n argument = this._odataOptions.orderBy.join(','); // csv, that will form a query example like: $orderby=RoleName asc, Id desc\n } else {\n argument = this._odataOptions.orderBy;\n }\n queryTmpArray.push(`$orderby=${argument}`);\n }\n if (this._odataOptions.filterBy || this._odataOptions.filter) {\n if (this._odataOptions.filter) {\n this._odataOptions.filterQueue = [];\n let /** @type {?} */ filterStr = this._odataOptions.filter;\n if (Array.isArray(this._odataOptions.filter)) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n filterStr = this._odataOptions.filter.join(separatorSpacedOut);\n }\n this._odataOptions.filterQueue.push(`(${filterStr})`);\n }\n // filterBy are passed manually by the user, however we will only add it if the column wasn't yet filtered\n if (!!this._odataOptions.filterBy && !!this._odataOptions.filterBy.fieldName && !this._columnFilters[this._odataOptions.filterBy.fieldName.toLowerCase()]) {\n if (this._odataOptions.filterBy.searchTerm !== '') {\n this.saveColumnFilter(this._odataOptions.filterBy.fieldName.toLowerCase(), this._odataOptions.filterBy.searchTerm, this._odataOptions.filterBy.listTerm);\n this.updateFilterFromListTerms(this._odataOptions.filterBy);\n }\n }\n }\n if (this._odataOptions.filterQueue.length > 0) {\n const /** @type {?} */ filterBySeparator = this._odataOptions.filterBySeparator || 'and';\n const /** @type {?} */ separatorSpacedOut = ` ${filterBySeparator} `;\n const /** @type {?} */ query = this._odataOptions.filterQueue.join(separatorSpacedOut);\n this._odataOptions.filter = query; // overwrite with\n queryTmpArray.push(`$filter=${query}`);\n }\n\n // join all the odata functions by a '&'\n return queryTmpArray.join('&');\n }\n/**\n * @param {?} columnName\n * @return {?}\n */\ngetFilterByColumn(columnName: string): string {\n return (!!this._columnFilters[columnName]) ? this._columnFilters[columnName] : null;\n }\n/**\n * @return {?}\n */\ngetFilterCount(): number {\n return (this._odataOptions.filterQueue) ? this._odataOptions.filterQueue.length : 0;\n }\n/**\n * @return {?}\n */\nget columnFilters(): any[] {\n return this._columnFilters;\n }\n/**\n * @return {?}\n */\nget options(): OdataOption {\n return this._odataOptions;\n }\n/**\n * @param {?} options\n * @return {?}\n */\nset options(options: OdataOption) {\n this._odataOptions = options;\n }\n/**\n * @param {?} fieldName\n * @return {?}\n */\nremoveColumnFilter(fieldName: string) {\n delete this._columnFilters[fieldName];\n }\n/**\n * @param {?} fieldName\n * @param {?} value\n * @param {?=} searchTerms\n * @return {?}\n */\nsaveColumnFilter(fieldName: string, value: any, searchTerms?: any[]) {\n this._columnFilters[fieldName] = {\n search: searchTerms,\n value: value\n };\n }\n/**\n * Update the filter by a list of terms usually passed manually by the user as default filters\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromListTerms(filterOptions: any) {\n // build the filter query\n if (Array.isArray(filterOptions)) {\n filterOptions.forEach((filterOptionObject) => {\n this.updateFilterFromTerm(filterOptionObject);\n });\n } else {\n this.updateFilterFromTerm(filterOptions);\n }\n }\n/**\n * @param {?} filterOptions\n * @return {?}\n */\nupdateFilterFromTerm(filterOptions: any) {\n let /** @type {?} */ searchBy = '';\n const /** @type {?} */ tmpSearchByArray = [];\n const /** @type {?} */ fieldName = filterOptions.fieldName;\n const /** @type {?} */ fieldSearchTerms = filterOptions.listTerm;\n const /** @type {?} */ operator = filterOptions.operator;\n\n // when having more than 1 search term (then check if we have a \"IN\" or \"NOT IN\" filter search)\n if (!!fieldSearchTerms && fieldSearchTerms.length > 0) {\n let /** @type {?} */ tmpSearchTerms = [];\n\n if (operator === 'IN') {\n // example:: (Stage eq \"Expired\" or Stage eq \"Renewal\")\n for (let /** @type {?} */ j = 0, /** @type {?} */ lnj = fieldSearchTerms.length; j < lnj; j++) {\n tmpSearchTerms.push(`${fieldName} eq '${fieldSearchTerms[j]}'`);\n }\n searchBy = tmpSearchTerms.join(' or ');\n searchBy = `$(${searchBy})`;\n } else if (operator === 'NIN' || operator === 'NOTIN' || operator === 'NOT IN') {\n // example:: (Stage ne \"Expired\" and Stage ne \"Renewal\")\n for (let /** @type {?} */ k = 0, /** @type {?} */ lnk = fieldSearchTerms.length; k < lnk; k++) {\n tmpSearchTerms.push(`${fieldName} ne '${fieldSearchTerms[k]}'`);\n }\n searchBy = tmpSearchTerms.join(' and ');\n searchBy = `$(${searchBy})`;\n }\n }\n\n // push to our temp array and also trim white spaces\n tmpSearchByArray.push(String.trim(searchBy));\n\n // add to the filter queue only if it doesn't exist in the queue\n const /** @type {?} */ filter = (tmpSearchByArray.length > 0) ? tmpSearchByArray.join(' and ') : '';\n if (this._odataOptions.filterQueue && this._odataOptions.filterQueue.indexOf(filter) === -1) {\n this._odataOptions.filterQueue.push(filter);\n }\n }\n/**\n * Change any OData options that will be used to build the query\n * @param {?} options\n * @return {?}\n */\nupdateOptions(options: OdataOption) {\n for (const /** @type {?} */ property of Object.keys(options)) {\n if (options.hasOwnProperty(property)) {\n this._odataOptions[property] = options[property]; // replace of the property\n }\n\n // we need to keep the defaultSortBy for references whenever the user removes his Sorting\n // then we would revert to the defaultSortBy and the only way is to keep a hard copy here\n if (property === 'orderBy' || property === 'sortBy') {\n let /** @type {?} */ sortBy = options[property];\n\n // make sure first char of each orderBy field is capitalize\n if (this._odataOptions.caseType === CaseType.pascalCase) {\n if (Array.isArray(sortBy)) {\n sortBy.forEach((field, index, inputArray) => {\n inputArray[index] = String.titleCase(field);\n });\n } else {\n sortBy = String.titleCase(options[property]);\n }\n }\n this._odataOptions.orderBy = sortBy;\n this._defaultSortBy = sortBy;\n }\n }\n }\n\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction OdataService_tsickle_Closure_declarations() {\n/** @type {?} */\nOdataService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nOdataService.ctorParameters;\n/** @type {?} */\nOdataService.prototype._columnFilters;\n/** @type {?} */\nOdataService.prototype._defaultSortBy;\n/** @type {?} */\nOdataService.prototype._odataOptions;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","declare interface StringConstructor {\n allTitleCase(inputStr: string): string;\n format(inputStr: string, args: any): string;\n padZero(length: number): string;\n trim(inputStr: string): string;\n titleCase(inputStr: string): string;\n}\n\n\nString.format = function(format: string, args: any): string {\n // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1);\n\n return format.replace(/{(\\d+)}/g, function (match, number) {\n return (typeof args[number] !== 'undefined') ? args[number] : match;\n });\n};\n\nString.padZero = function (this: string, length: number) {\n let /** @type {?} */ s = this;\n while (s.length < length) {\n s = '0' + s;\n }\n return s;\n};\n\n/**\n * Trim any extra white space from the string\n * @param string inputStr\n * @returns string outputStr\n */\nString.trim = function(inputStr: string): string {\n return inputStr ? inputStr.replace(/\\s+/g, ' ') : inputStr;\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n */\nString.allTitleCase = function(inputStr: string): string {\n return inputStr.replace(/\\w\\S*/g, function(outputStr) {\n return outputStr.charAt(0).toUpperCase() + outputStr.substr(1).toLowerCase();\n });\n};\n\n/**\n * Title case the complete sentence (upper case first char of each word while changing everything else to lower case)\n * @param string inputStr\n * @returns string outputStr\n*/\nString.titleCase = function(inputStr: string): string {\n return inputStr.charAt(0).toUpperCase() + inputStr.slice(1);\n};\n","import { GridOption } from './../models/gridOption.interface';\nimport { FieldType } from './../models/fieldType';\nimport { Sorter } from './../models/sorter.interface';\nimport { Sorters } from './../sorters/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\nexport class SortService {\n subscriber: any;\nconstructor() { }\n/**\n * Attach a backend sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @return {?}\n */\nattachBackendOnSort(grid: any, gridOptions: GridOption) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe(gridOptions.onSortChanged);\n }\n/**\n * Attach a local sort (single/multi) hook to the grid\n * @param {?} grid SlickGrid Grid object\n * @param {?} gridOptions Grid Options object\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any) {\n this.subscriber = grid.onSort;\n this.subscriber.subscribe((e: any, args: any) => {\n // multiSort and singleSort are not exactly the same, but we want to structure it the same for the (for loop) after\n // also to avoid having to rewrite the for loop in the sort, we will make the singleSort an array of 1 object\n const /** @type {?} */ sortColumns = (args.multiColumnSort) ? args.sortCols : new Array({sortAsc: args.sortAsc, sortCol: args.sortCol});\n\n dataView.sort(function (dataRow1: any, dataRow2: any) {\n for (let /** @type {?} */ i = 0, /** @type {?} */ l = sortColumns.length; i < l; i++) {\n const /** @type {?} */ sortDirection = sortColumns[i].sortAsc ? 1 : -1;\n const /** @type {?} */ sortField = sortColumns[i].sortCol.field;\n const /** @type {?} */ fieldType = sortColumns[i].sortCol.type || 'string';\n const /** @type {?} */ value1 = dataRow1[sortField];\n const /** @type {?} */ value2 = dataRow2[sortField];\n let /** @type {?} */ result = 0;\n\n switch (fieldType) {\n case FieldType.number:\n result = Sorters.numeric(value1, value2, sortDirection);\n break;\n case FieldType.date:\n result = Sorters.date(value1, value2, sortDirection);\n break;\n case FieldType.dateIso:\n result = Sorters.dateIso(value1, value2, sortDirection);\n break;\n case FieldType.dateUs:\n result = Sorters.dateUs(value1, value2, sortDirection);\n break;\n case FieldType.dateUsShort:\n result = Sorters.dateUsShort(value1, value2, sortDirection);\n break;\n default:\n result = Sorters.string(value1, value2, sortDirection);\n break;\n }\n\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n grid.invalidate();\n grid.render();\n });\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction SortService_tsickle_Closure_declarations() {\n/** @type {?} */\nSortService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nSortService.ctorParameters;\n/** @type {?} */\nSortService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart } from '@angular/router';\nimport { GridOption } from './../models/gridOption.interface';\n\ndeclare var $: any;\n\n// global constants, height/width are in pixels\nconst /** @type {?} */ DATAGRID_MIN_HEIGHT = 180;\nconst /** @type {?} */ DATAGRID_MIN_WIDTH = 300;\nconst /** @type {?} */ DATAGRID_BOTTOM_PADDING = 20;\nconst /** @type {?} */ DATAGRID_PAGINATION_HEIGHT = 35;\nexport class ResizerService {\n/**\n * @param {?} router\n */\nconstructor(private router: Router) {\n }\n/**\n * Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space\n * Options: we could also provide a % factor to resize on each height/width independently\n * @param {?} grid\n * @param {?} gridOptions\n * @return {?}\n */\nattachAutoResizeDataGrid(grid: any, gridOptions: GridOption): any|void {\n // if we can't find the grid to resize, return without attaching anything\n const /** @type {?} */ gridDomElm = $(`#${gridOptions.gridId}`);\n if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') {\n return null;\n }\n\n // -- 1st resize the datagrid size at first load (we need this because the .on event is not triggered on first load)\n this.resizeGrid(grid, gridOptions);\n\n // -- 2nd attach a trigger on the Window DOM element, so that it happens also when resizing after first load\n // -- attach auto-resize to Window object only if it exist\n $(window).on('resize', () => {\n this.resizeGrid(grid, gridOptions);\n });\n\n // destroy the resizer on route change\n this.router.events.subscribe((event: NavigationEnd) => {\n $(window).trigger('resize').off('resize');\n });\n }\n/**\n * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation\n * object gridOptions\n * @param {?} gridOptions\n * @return {?}\n */\ncalculateGridNewDimensions(gridOptions: GridOption): any {\n let /** @type {?} */ bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING;\n if (bottomPadding && gridOptions.enablePagination) {\n bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding\n }\n if (typeof $(`#${gridOptions.gridId}`).offset !== 'function') {\n return;\n }\n const /** @type {?} */ availableHeight = $(window).height() - $(`#${gridOptions.gridId}`).offset().top - bottomPadding;\n const /** @type {?} */ availableWidth = (gridOptions.autoResize && gridOptions.autoResize.containerId) ? $(`#${gridOptions.autoResize.containerId}`).width() : $(`#${gridOptions.gridContainerId}`).width();\n const /** @type {?} */ minHeight = (gridOptions.autoResize && gridOptions.autoResize.minHeight < 0) ? gridOptions.autoResize.minHeight : DATAGRID_MIN_HEIGHT;\n const /** @type {?} */ minWidth = (gridOptions.autoResize && gridOptions.autoResize.minWidth < 0) ? gridOptions.autoResize.minWidth : DATAGRID_MIN_WIDTH;\n\n let /** @type {?} */ newHeight = availableHeight;\n let /** @type {?} */ newWidth = (gridOptions.autoResize && gridOptions.autoResize.sidePadding) ? availableWidth - gridOptions.autoResize.sidePadding : availableWidth;\n if (newHeight < minHeight) {\n newHeight = minHeight;\n }\n if (newWidth < minWidth) {\n newWidth = minWidth;\n }\n\n return {\n height: newHeight,\n width: newWidth\n };\n }\n/**\n * Resize the datagrid to fit the browser height & width\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?=} newSizes\n * @return {?}\n */\nresizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}): void {\n // calculate new available sizes but with minimum height of 220px\n newSizes = newSizes || this.calculateGridNewDimensions(gridOptions);\n\n if (newSizes) {\n // apply these new height/width to the datagrid\n $(`#${gridOptions.gridId}`).height(newSizes.height);\n $(`#${gridOptions.gridId}`).width(newSizes.width);\n $(`#${gridOptions.gridContainerId}`).height(newSizes.height);\n $(`#${gridOptions.gridContainerId}`).width(newSizes.width);\n\n // resize the slickgrid canvas on all browser except some IE versions\n // exclude all IE below IE11\n // IE11 wants to be a better standard (W3C) follower (finally) they even changed their appName output to also have 'Netscape'\n if (new RegExp('MSIE [6-8]').exec(navigator.userAgent) === null && grid) {\n grid.resizeCanvas();\n }\n\n // also call the grid auto-size columns so that it takes available when going bigger\n grid.autosizeColumns();\n }\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n{type: Router, },\n];\n}\n\nfunction ResizerService_tsickle_Closure_declarations() {\n/** @type {?} */\nResizerService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nResizerService.ctorParameters;\n/** @type {?} */\nResizerService.prototype.router;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","\nexport class MouseService {\n/**\n * @param {?} grid\n * @return {?}\n */\nattachOnMouseHover(grid: any) {\r\n grid.onMouseEnter.subscribe((e: any) => {\r\n const /** @type {?} */ cell = grid.getCellFromEvent(e);\r\n if (cell && cell.row >= 0) {\r\n grid.setSelectedRows([cell.row]);\r\n e.preventDefault();\r\n }\r\n });\r\n grid.onMouseLeave.subscribe((e: any) => {\r\n grid.setSelectedRows([]);\r\n e.preventDefault();\r\n });\r\n }\r\n}\r\n","import { FilterConditions } from '../filter-conditions/index';\nimport { Column } from '../models/column.interface';\nimport { ColumnFilters } from '../models/columnFilters.interface';\nimport { FieldType } from '../models/fieldType';\nimport { FilterChangedArgs } from '../models/filterChangedArgs.interface';\nimport { FormElementType } from '../models/formElementType';\nimport { GridOption } from '../models/gridOption.interface';\nimport { FilterTemplates } from './../filter-templates/index';\nimport { Injectable, Input, OnInit } from '@angular/core';\n\n// using external js modules in Angular\ndeclare var Slick: any;\ndeclare var jquery: any;\ndeclare var $: any;\nexport class FilterService {\n _columnDefinitions: Column[];\n _columnFilters: ColumnFilters;\n _dataView: any;\n _grid: any;\n _gridOptions: GridOption;\n subscriber: any;\nconstructor() { }\n/**\n * @param {?} grid\n * @param {?} gridOptions\n * @param {?} columnDefinitions\n * @param {?} columnFilters\n * @return {?}\n */\ninit(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any) {\n this._columnDefinitions = columnDefinitions;\n this._columnFilters = columnFilters;\n this._gridOptions = gridOptions;\n this._grid = grid;\n }\n/**\n * Attach a backend filter hook to the grid\n * @return {?}\n */\nattachBackendOnFilter() {\n this.subscriber = new Slick.Event();\n this.subscriber.subscribe(this._gridOptions.onFilterChanged);\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} operator\n * @param {?} value1\n * @param {?} value2\n * @return {?}\n */\ntestFilterCondition(operator: string, value1: any, value2: any) {\n switch (operator) {\n case '<': return (value1 < value2) ? true : false;\n case '<=': return (value1 <= value2) ? true : false;\n case '>': return (value1 > value2) ? true : false;\n case '>=': return (value1 >= value2) ? true : false;\n case '!=':\n case '<>': return (value1 !== value2) ? true : false;\n case '=':\n case '==': return (value1 === value2) ? true : false;\n }\n }\n/**\n * Attach a local filter hook to the grid\n * @param {?} dataView\n * @return {?}\n */\nattachLocalOnFilter(dataView: any) {\n this._dataView = dataView;\n this.subscriber = new Slick.Event();\n\n dataView.setFilterArgs({ columnFilters: this._columnFilters, grid: this._grid });\n dataView.setFilter(this.customFilter);\n\n this.subscriber.subscribe((e: any, args: any) => {\n const /** @type {?} */ columnId = args.columnId;\n if (columnId != null) {\n dataView.refresh();\n }\n });\n this.addFilterTemplateToHeaderRow();\n }\n/**\n * @param {?} item\n * @param {?} args\n * @return {?}\n */\ncustomFilter(item: any, args: any) {\n for (const /** @type {?} */ columnId of Object.keys(args.columnFilters)) {\n const /** @type {?} */ columnFilter = args.columnFilters[columnId];\n const /** @type {?} */ columnIndex = args.grid.getColumnIndex(columnId);\n const /** @type {?} */ columnDef = args.grid.getColumns()[columnIndex];\n const /** @type {?} */ fieldName = columnDef.field || columnDef.name;\n const /** @type {?} */ fieldType = columnDef.type || FieldType.string;\n const /** @type {?} */ conditionalFilterFn = (columnDef.filter && columnDef.filter.conditionalFilter) ? columnDef.filter.conditionalFilter : null;\n const /** @type {?} */ filterSearchType = (columnDef.filterSearchType) ? columnDef.filterSearchType : null;\n\n let /** @type {?} */ cellValue = item[columnDef.field];\n let /** @type {?} */ fieldSearchValue = columnFilter.searchTerm;\n if (typeof fieldSearchValue === 'undefined') {\n fieldSearchValue = '';\n }\n fieldSearchValue = '' + fieldSearchValue; // make sure it's a string\n\n const /** @type {?} */ matches = fieldSearchValue.match(/^([<>!=\\*]{0,2})(.*[^<>!=\\*])([\\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*)\n const /** @type {?} */ operator = columnFilter.operator || ((matches) ? matches[1] : '');\n const /** @type {?} */ searchTerm = (!!matches) ? matches[2] : '';\n const /** @type {?} */ lastValueChar = (!!matches) ? matches[3] : '';\n\n // no need to query if search value is empty\n if (searchTerm === '') {\n return true;\n }\n\n if (typeof cellValue === 'number') {\n cellValue = cellValue.toString();\n }\n\n const /** @type {?} */ conditionOptions = {\n fieldType: fieldType,\n searchTerm: searchTerm,\n cellValue: cellValue,\n operator: operator,\n cellValueLastChar: lastValueChar,\n filterSearchType: filterSearchType\n };\n if (conditionalFilterFn && typeof conditionalFilterFn === 'function') {\n conditionalFilterFn(conditionOptions);\n }\n if (!FilterConditions.executeMappedCondition(conditionOptions)) {\n return false;\n }\n }\n return true;\n }\n/**\n * @return {?}\n */\ndestroy() {\n this.subscriber.unsubscribe();\n }\n/**\n * @param {?} e\n * @param {?} args\n * @return {?}\n */\ncallbackSearchEvent(e: any, args: any) {\n this._columnFilters[args.columnDef.id] = {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n searchTerm: e.target.value\n };\n\n this.triggerEvent(this.subscriber, {\n columnId: args.columnDef.id,\n columnDef: args.columnDef,\n columnFilters: this._columnFilters,\n searchTerm: e.target.value,\n grid: this._grid\n }, e);\n }\n/**\n * @return {?}\n */\naddFilterTemplateToHeaderRow() {\n for (let /** @type {?} */ i = 0; i < this._columnDefinitions.length; i++) {\n if (this._columnDefinitions[i].id !== 'selector' && this._columnDefinitions[i].filterable) {\n let /** @type {?} */ filterTemplate = '';\n let /** @type {?} */ elm = null;\n let /** @type {?} */ header;\n const /** @type {?} */ columnDef = this._columnDefinitions[i];\n const /** @type {?} */ columnId = columnDef.id;\n const /** @type {?} */ listTerm = (columnDef.filter && columnDef.filter.listTerm) ? columnDef.filter.listTerm : null;\n let /** @type {?} */ searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : '';\n\n // keep the filter in a columnFilters for later reference\n this.keepColumnFilters(searchTerm, listTerm, columnDef);\n\n if (!columnDef.filter) {\n searchTerm = (columnDef.filter && columnDef.filter.searchTerm) ? columnDef.filter.searchTerm : null;\n filterTemplate = FilterTemplates.input(searchTerm, columnDef);\n } else {\n // custom Select template\n if (columnDef.filter.type === FormElementType.select) {\n filterTemplate = FilterTemplates.select(searchTerm, columnDef);\n }\n }\n\n // create the DOM Element\n header = this._grid.getHeaderRowColumn(columnDef.id);\n $(header).empty();\n elm = $(filterTemplate);\n elm.val(searchTerm);\n elm.data('columnId', columnDef.id);\n if (elm && typeof elm.appendTo === 'function') {\n elm.appendTo(header);\n }\n\n // depending on the DOM Element type, we will watch the corrent event\n const /** @type {?} */ filterType = (columnDef.filter && columnDef.filter.type) ? columnDef.filter.type : FormElementType.input;\n switch (filterType) {\n case FormElementType.select:\n case FormElementType.multiSelect:\n elm.change((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n case FormElementType.input:\n default:\n elm.keyup((e: any) => this.callbackSearchEvent(e, { columnDef: columnDef }));\n break;\n }\n }\n }\n }\n/**\n * @param {?} searchTerm\n * @param {?} listTerm\n * @param {?} columnDef\n * @return {?}\n */\nprivate keepColumnFilters(searchTerm: string, listTerm: any, columnDef: any) {\n if (searchTerm) {\n this._columnFilters[columnDef.id] = {\n columnId: columnDef.id,\n columnDef: columnDef,\n searchTerm: searchTerm\n };\n if (listTerm) {\n this._columnFilters.listTerm = listTerm;\n }\n }\n }\n/**\n * @param {?} evt\n * @param {?} args\n * @param {?} e\n * @return {?}\n */\nprivate triggerEvent(evt: any, args: any, e: any) {\n e = e || new Slick.EventData();\n return evt.notify(args, e, args.grid);\n }\nstatic decorators: DecoratorInvocation[] = [\n{ type: Injectable },\n];\n/**\n * @nocollapse\n */\nstatic ctorParameters: () => ({type: any, decorators?: DecoratorInvocation[]}|null)[] = () => [\n];\n}\n\nfunction FilterService_tsickle_Closure_declarations() {\n/** @type {?} */\nFilterService.decorators;\n/**\n * @nocollapse\n * @type {?}\n */\nFilterService.ctorParameters;\n/** @type {?} */\nFilterService.prototype._columnDefinitions;\n/** @type {?} */\nFilterService.prototype._columnFilters;\n/** @type {?} */\nFilterService.prototype._dataView;\n/** @type {?} */\nFilterService.prototype._grid;\n/** @type {?} */\nFilterService.prototype._gridOptions;\n/** @type {?} */\nFilterService.prototype.subscriber;\n}\n\n\ninterface DecoratorInvocation {\n type: Function;\n args?: any[];\n}\n","import { dateUsShortSorter } from './dateUsShortSorter';\r\nimport { dateSorter } from './dateSorter';\r\nimport { dateIsoSorter } from './dateIsoSorter';\r\nimport { dateUsSorter } from './dateUsSorter';\r\nimport { numericSorter } from './numericSorter';\r\nimport { stringSorter } from './stringSorter';\r\n\r\nexport const /** @type {?} */ Sorters = {\r\n date: dateSorter,\r\n dateIso: dateIsoSorter,\r\n dateUs: dateUsSorter,\r\n dateUsShort: dateUsShortSorter,\r\n numeric: numericSorter,\r\n string: stringSorter\r\n};\r\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ stringSorter: Sorter = (value1, value2, sortDirection) => {\n return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\n\nexport const /** @type {?} */ numericSorter: Sorter = (value1, value2, sortDirection) => {\n const /** @type {?} */ x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1);\n const /** @type {?} */ y = (isNaN(value2) || value2 === '' || value2 === null) ? -99e+10 : parseFloat(value2);\n return sortDirection * (x === y ? 0 : (x > y ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, moment.ISO_8601).isValid() || !moment(value2, moment.ISO_8601, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1);\n const /** @type {?} */ date2 = moment(value2);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Sorter } from './../models/sorter.interface';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortSorter: Sorter = (value1, value2, sortDirection) => {\n if (!moment(value1, DATE_FORMAT, true).isValid() || !moment(value2, DATE_FORMAT, true).isValid()) {\n return 0;\n }\n const /** @type {?} */ date1 = moment(value1, DATE_FORMAT, true);\n const /** @type {?} */ date2 = moment(value2, DATE_FORMAT, true);\n const /** @type {?} */ diff = parseInt(date1.format('X'), 10) - parseInt(date2.format('X'), 10);\n\n return sortDirection * (diff === 0 ? 0 : (diff > 0 ? 1 : -1));\n};\n","import { Column } from './../models/column.interface';\r\nimport { checkboxFormatter } from './checkboxFormatter';\r\nimport { checkmarkFormatter } from './checkmarkFormatter';\r\nimport { dateIsoFormatter } from './dateIsoFormatter';\r\nimport { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter';\r\nimport { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter';\r\nimport { dateTimeUsFormatter } from './dateTimeUsFormatter';\r\nimport { dateUsFormatter } from './dateUsFormatter';\r\nimport { percentCompleteFormatter } from './percentCompleteFormatter';\r\nimport { percentCompleteBarFormatter } from './percentCompleteBarFormatter';\r\nimport { progressBarFormatter } from './progressBarFormatter';\r\nimport { yesNoFormatter } from './yesNoFormatter';\r\n// import { Group, GroupTotals } from '../core'\r\n// import { Item } from '../dataview'\r\n\r\n\r\n/*\r\nexport interface GroupFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: Group): string\r\n}\r\n\r\nexport interface GroupTotalsFormatter {\r\n (row: number, cell: number, value: any, columnDef: Column, dataContext: GroupTotals): string\r\n}\r\n*/\r\nexport const /** @type {?} */ Formatters = {\r\n checkbox: checkboxFormatter,\r\n checkmark: checkmarkFormatter,\r\n dateIso: dateIsoFormatter,\r\n dateTimeIso: dateIsoFormatter,\r\n dateTimeIsoAmPm: dateTimeIsoAmPmFormatter,\r\n dateUs: dateUsFormatter,\r\n dateTimeUs: dateTimeUsFormatter,\r\n dateTimeUsAmPm: dateTimeUsAmPmFormatter,\r\n percentComplete: percentCompleteFormatter,\r\n percentCompleteBar: percentCompleteBarFormatter,\r\n progressBar: progressBarFormatter,\r\n yesNo: yesNoFormatter\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ yesNoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string =>\r\n value ? 'Yes' : 'No';\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ progressBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'danger';\r\n } else if (value < 70) {\r\n color = 'warning';\r\n } else {\r\n color = 'success';\r\n }\r\n\r\n return `
\r\n
\r\n ${value}%\r\n
\r\n
`;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteBarFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '';\r\n }\r\n\r\n let /** @type {?} */ color;\r\n\r\n if (value < 30) {\r\n color = 'red';\r\n } else if (value < 70) {\r\n color = 'silver';\r\n } else {\r\n color = 'green';\r\n }\r\n\r\n return ``;\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\n\r\nexport const /** @type {?} */ percentCompleteFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any): string => {\r\n if (value === null || value === '') {\r\n return '-';\r\n } else if (value < 50) {\r\n return `${value}%`;\r\n } else {\r\n return `${value}%`;\r\n }\r\n};\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY hh:mm:ss') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('MM/DD/YYYY h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD h:mm:ss a') : '';\r\n","import { Formatter } from './../models/formatter.interface';\r\nimport * as moment_ from 'moment';\r\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\r\n\r\nexport const /** @type {?} */ dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\r\n value ? moment(value).format('YYYY-MM-DD') : '';\r\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkmarkFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) =>\n value ? `` : '';\n","import { Formatter } from './../models/formatter.interface';\n\nexport const /** @type {?} */ checkboxFormatter: Formatter = (row, cell, value, columnDef, dataContext) =>\n value ? '☑' : '';\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\nimport { inputFilterTemplate } from './inputFilterTemplate';\nimport { selectFilterTemplate } from './selectFilterTemplate';\n\nexport const /** @type {?} */ FilterTemplates = {\n input: inputFilterTemplate,\n select: selectFilterTemplate\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n if (!columnDef.filter.selectOptions) {\n throw new Error(`SelectOptions with value/label is required to populate the Select list, for example:: { filter: type: FormElementType.select, selectOptions: [ { value: '1', label: 'One' } ]')`);\n }\n let /** @type {?} */ options = '';\n columnDef.filter.selectOptions.forEach((option: any) => {\n options += ``;\n });\n return ``;\n};\n","import { Column } from './../models/column.interface';\nimport { Filter } from './../models/filter.interface';\n\nexport const /** @type {?} */ inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => {\n return ``;\n};\n","import { FilterConditionOption } from './../models/filterConditionOption.interface';\r\nimport { booleanFilterCondition } from './booleanFilterCondition';\r\nimport { dateUtcFilterCondition } from './dateUtcFilterCondition';\r\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\r\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\r\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\r\nimport { dateFilterCondition } from './dateFilterCondition';\r\nimport { executeMappedCondition } from './executeMappedCondition';\r\nimport { numberFilterCondition } from './numberFilterCondition';\r\nimport { stringFilterCondition } from './stringFilterCondition';\r\nimport { testFilterCondition } from './filterUtilities';\r\n\r\nexport const /** @type {?} */ FilterConditions = {\r\n executeMappedCondition: executeMappedCondition,\r\n booleanFilter: booleanFilterCondition,\r\n dateFilter: dateFilterCondition,\r\n dateIsoFilter: dateIsoFilterCondition,\r\n dateUtcFilter: dateUtcFilterCondition,\r\n dateUsFilter: dateUsFilterCondition,\r\n dateUsShortFilter: dateUsShortFilterCondition,\r\n numberFilter: numberFilterCondition,\r\n stringFilter: stringFilterCondition,\r\n testFilter: testFilterCondition\r\n};\r\n","import { dateUtcFilterCondition } from './dateUtcFilterCondition';\nimport { booleanFilterCondition } from './booleanFilterCondition';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { FilterCondition } from '../models/filterCondition.interface';\nimport { dateIsoFilterCondition } from './dateIsoFilterCondition';\nimport { dateUsShortFilterCondition } from './dateUsShortFilterCondition';\nimport { dateUsFilterCondition } from './dateUsFilterCondition';\nimport { dateFilterCondition } from './dateFilterCondition';\nimport { numberFilterCondition } from './numberFilterCondition';\nimport { stringFilterCondition } from './stringFilterCondition';\nimport { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ executeMappedCondition: FilterCondition = (options: FilterConditionOption) => {\n // execute the mapped type, or default to String condition check\n switch (options.fieldType) {\n case FieldType.boolean:\n return booleanFilterCondition(options);\n case FieldType.date:\n return dateFilterCondition(options);\n case FieldType.dateUtc:\n return dateUtcFilterCondition(options);\n case FieldType.dateIso:\n return dateIsoFilterCondition(options);\n case FieldType.dateUs:\n case FieldType.dateTimeUs:\n return dateUsFilterCondition(options);\n case FieldType.dateUsShort:\n case FieldType.dateTimeUsShort:\n return dateUsShortFilterCondition(options);\n case FieldType.number:\n return numberFilterCondition(options);\n case FieldType.string:\n default:\n return stringFilterCondition(options);\n }\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ stringFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n // make sure the both search & cell value are string\n // and make them lower case for case insensitive filtering\n const /** @type {?} */ cellValue = options.cellValue.toString().toLowerCase();\n const /** @type {?} */ searchTerm = options.searchTerm.toString().toLowerCase();\n\n if (options.operator === '*') {\n return cellValue.endsWith(searchTerm);\n } else if (options.operator === '' && options.cellValueLastChar === '*') {\n return cellValue.startsWith(searchTerm);\n } else if (options.operator === '') {\n return cellValue.includes(searchTerm);\n }\n return testFilterCondition(options.operator || '==', cellValue, searchTerm);\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\n\nexport const /** @type {?} */ numberFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n return testFilterCondition(options.operator || '==', parseFloat(options.cellValue), parseFloat(options.searchTerm));\n};\n","import { FieldType } from '../models/fieldType';\nimport { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n const /** @type {?} */ filterSearchType = options.filterSearchType || FieldType.dateIso;\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue);\n const /** @type {?} */ dateSearch = moment(options.searchTerm);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YYYY';\n\nexport const /** @type {?} */ dateUsFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'M/D/YY';\n\nexport const /** @type {?} */ dateUsShortFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\nconst /** @type {?} */ DATE_FORMAT = 'YYYY-MM-DD';\n\nexport const /** @type {?} */ dateIsoFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!moment(options.cellValue, DATE_FORMAT, true).isValid() || !moment(options.searchTerm, DATE_FORMAT, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, DATE_FORMAT, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, DATE_FORMAT, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\nimport { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities';\nimport * as moment_ from 'moment';\nconst /** @type {?} */ moment: any = ( /** @type {?} */((moment_))).default || moment_; // patch to fix rollup \"moment has no default export\" issue, document here https://github.com/rollup/rollup/issues/670\n\nexport const /** @type {?} */ dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => {\n if (!options.filterSearchType) {\n throw new Error('Date UTC filter is a special case and requires a filterSearchType to be provided in the column option, for example: { filterable: true, type: FieldType.dateUtc, filterSearchType: FieldType.dateIso }');\n }\n\n const /** @type {?} */ searchDateFormat = mapDateFormatByFieldType(options.filterSearchType);\n if (!moment(options.cellValue, moment.ISO_8601).isValid() || !moment(options.searchTerm, searchDateFormat, true).isValid()) {\n return true;\n }\n const /** @type {?} */ dateCell = moment(options.cellValue, moment.ISO_8601, true);\n const /** @type {?} */ dateSearch = moment(options.searchTerm, searchDateFormat, true);\n\n // run the filter condition with date in Unix Timestamp format\n return testFilterCondition(options.operator || '==', parseInt(dateCell.format('X'), 10), parseInt(dateSearch.format('X'), 10));\n};\n","import { FieldType } from '../models/fieldType';\n\nexport const /** @type {?} */ mapDateFormatByFieldType: Function = (fieldType: FieldType) => {\n switch (fieldType) {\n case FieldType.dateUs:\n return 'M/D/YYYY';\n case FieldType.dateTimeUs:\n return 'M/D/YYYY h:m:s';\n case FieldType.dateUsShort:\n return 'M/D/YY';\n case FieldType.dateTimeUsShort:\n return 'M/D/YY h:m:s';\n case FieldType.dateTimeIso:\n return 'YYYY-MM-DD h:m:s';\n case FieldType.dateIso:\n default:\n return 'YYYY-MM-DD';\n }\n};\n\nexport const /** @type {?} */ testFilterCondition: Function = (operator: string, value1: any, value2: any): boolean => {\n switch (operator) {\n case '<': return (value1 < value2);\n case '<=': return (value1 <= value2);\n case '>': return (value1 > value2);\n case '>=': return (value1 >= value2);\n case '!=':\n case '<>': return (value1 !== value2);\n case '=':\n case '==': return (value1 === value2);\n }\n return true;\n};\n","import { FilterCondition } from './../models/filterCondition.interface';\r\nimport { FilterConditionOption } from './../models/filterConditionOption.interface';\n/**\n * @param {?} str\n * @return {?}\n */\nfunction parseBoolean(str: string) {\r\n return /(true|1)/i.test(str);\r\n}\r\n\r\nexport const /** @type {?} */ booleanFilterCondition: FilterCondition = (options: FilterConditionOption) => {\r\n return parseBoolean(options.cellValue) === parseBoolean(options.searchTerm);\r\n};\r\n","\nexport type FieldType = number;\nexport let FieldType: any = {};\nFieldType.unknown = 0;\nFieldType.string = 1;\nFieldType.boolean = 2;\nFieldType.number = 3;\nFieldType.date = 4;\nFieldType.dateIso = 5;\nFieldType.dateUtc = 6;\nFieldType.dateTime = 7;\nFieldType.dateTimeIso = 8;\nFieldType.dateUs = 9;\nFieldType.dateUsShort = 10;\nFieldType.dateTimeUs = 11;\nFieldType.dateTimeUsShort = 12;\nFieldType[FieldType.unknown] = \"unknown\";\nFieldType[FieldType.string] = \"string\";\nFieldType[FieldType.boolean] = \"boolean\";\nFieldType[FieldType.number] = \"number\";\nFieldType[FieldType.date] = \"date\";\nFieldType[FieldType.dateIso] = \"dateIso\";\nFieldType[FieldType.dateUtc] = \"dateUtc\";\nFieldType[FieldType.dateTime] = \"dateTime\";\nFieldType[FieldType.dateTimeIso] = \"dateTimeIso\";\nFieldType[FieldType.dateUs] = \"dateUs\";\nFieldType[FieldType.dateUsShort] = \"dateUsShort\";\nFieldType[FieldType.dateTimeUs] = \"dateTimeUs\";\nFieldType[FieldType.dateTimeUsShort] = \"dateTimeUsShort\";\n\r\n","\nexport type FormElementType = number;\nexport let FormElementType: any = {};\nFormElementType.input = 0;\nFormElementType.multiSelect = 1;\nFormElementType.select = 2;\nFormElementType.textarea = 3;\nFormElementType[FormElementType.input] = \"input\";\nFormElementType[FormElementType.multiSelect] = \"multiSelect\";\nFormElementType[FormElementType.select] = \"select\";\nFormElementType[FormElementType.textarea] = \"textarea\";\n\r\n","\nexport type CaseType = number;\nexport let CaseType: any = {};\nCaseType.camelCase = 0;\nCaseType.pascalCase = 1;\nCaseType.snakeCase = 2;\nCaseType[CaseType.camelCase] = \"camelCase\";\nCaseType[CaseType.pascalCase] = \"pascalCase\";\nCaseType[CaseType.snakeCase] = \"snakeCase\";\n\r\n"],"names":["moment","((moment_)).default","DATE_FORMAT"],"mappings":"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"} \ No newline at end of file diff --git a/dist/package.json b/dist/package.json index b379b36d8..cfd44c5c4 100644 --- a/dist/package.json +++ b/dist/package.json @@ -1,96 +1,99 @@ { - "name": "angular-slickgrid", - "version": "0.2.6", - "description": "Build an Angular library compatible with AoT compilation and Tree shaking", - "main": "./bundles/angular-slickgrid.umd.js", - "module": "./modules/angular-slickgrid.es5.js", - "es2015": "./modules/angular-slickgrid.js", - "scripts": { - "build": "node build.js", - "build-lib": "npm-run-all build sass:build sass:copy", - "build-lib-pack": "npm-run-all build-lib pack-lib", - "test": "karma start", - "pack-lib": "npm pack ./dist", - "publish-lib": "npm publish ./dist", - "compodoc": "compodoc -p tsconfig.json", - "compodoc-serve": "compodoc -s", - "build-task:scss-compile": "node-sass --source-map true src/styles/ -o dist/styles/css", - "build-task:autoprefixer": "postcss dist/styles/css/*.css --use autoprefixer -d dist/styles/css", - "sass:build": "npm-run-all -p build-task:*", - "sass:copy": "cross-env copyfiles -f src/styles/*.scss dist/styles/sass", - "sass:watch": "node-sass 'src/styles/**/*.scss' -c 'npm run sass:build'", - "dev": "npm-run-all -p sass:*" - }, - "typings": "./angular-slickgrid.d.ts", - "author": "Ghislain B.", - "repository": { - "type": "git", - "url": "https://github.com/ghiscoding/angular-slickgrid.git" - }, - "bugs": { - "url": "https://github.com/ghiscoding/angular-slickgrid/issues" - }, - "homepage": "https://github.com/ghiscoding/angular-slickgrid", - "keywords": [ - "angular", - "datagrid", - "datatable", - "javascript", - "slickgrid", - "typescript" - ], - "license": "MIT", - "peerDependencies": { - "@angular/common": ">= ^4.3.6", - "@angular/core": ">= ^4.3.6" - }, - "devDependencies": { - "@angular/animations": "^4.3.6", - "@angular/common": "^4.3.6", - "@angular/compiler": "^4.3.6", - "@angular/compiler-cli": "^4.3.6", - "@angular/core": "^4.3.6", - "@angular/platform-browser": "^4.3.6", - "@angular/platform-browser-dynamic": "^4.3.6", - "@angular/platform-server": "^4.3.6", - "@angular/router": "^4.3.6", - "@compodoc/compodoc": "1.0.0-beta.10", - "@types/jasmine": "2.5.52", - "@types/node": "8.0.1", - "autoprefixer": "^7.1.4", - "chalk": "1.1.3", - "codelyzer": "3.1.1", - "core-js": "2.4.1", - "copyfiles": "^1.2.0", - "cross-env": "^5.0.5", - "jasmine-core": "2.6.4", - "karma": "1.7.0", - "karma-chrome-launcher": "2.1.1", - "karma-jasmine": "1.1.0", - "karma-sourcemap-loader": "0.3.7", - "karma-spec-reporter": "0.0.31", - "karma-webpack": "2.0.3", - "node-sass": "^4.5.3", - "npm-run-all": "^4.1.1", - "postcss-cli": "^4.1.1", - "reflect-metadata": "0.1.10", - "rollup": "0.43.0", - "rollup-plugin-node-resolve": "3.0.0", - "rxjs": "5.4.1", - "sass-lint": "^1.12.0", - "shelljs": "0.7.8", - "sorcery": "0.10.0", - "source-map-loader": "0.2.1", - "ts-loader": "2.1.0", - "tslint": "5.4.3", - "typescript": "2.3.4", - "uglify-js": "2.8.29", - "webpack": "3.0.0", - "yargs": "8.0.2", - "zone.js": "0.8.12" - }, - "dependencies": { - "jquery": "^3.2.1", - "moment": "^2.18.1" - } + "name": "angular-slickgrid", + "version": "0.3.1", + "description": "Slickgrid components made available in Angular", + "keywords": [ + "angular", + "plugin", + "datatable", + "slickgrid" + ], + "license": "MIT", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e", + "build-lib": "npm-run-all packagr sass:build sass:copy", + "build-lib-pack": "npm-run-all build-lib pack-lib copy-pack del-pack", + "copy-pack": "cross-env copyfiles -f *.tgz ../Angular-Slickgrid-PackageTest", + "del-pack": "cross-env del *.tgz", + "pack-lib": "npm pack ./dist", + "packagr": "ng-packagr -p ng-package.json", + "sass-build-task:scss-compile": "node-sass --source-map true src/app/modules/angular-slickgrid/styles/ -o dist/styles/css", + "sass-build-task:autoprefixer": "postcss dist/styles/css/*.css --use autoprefixer -d dist/styles/css", + "sass:build": "npm-run-all -p sass-build-task:*", + "sass:copy": "cross-env copyfiles -f src/app/modules/angular-slickgrid/styles/*.scss dist/styles/sass", + "sass:watch": "node-sass 'src/app/modules/angular-slickgrid/styles/**/*.scss' -c 'npm run sass:build'" + }, + "author": "Ghislain B.", + "repository": { + "type": "git", + "url": "http://github.com/ghiscoding/angular-slickgrid" + }, + "private": false, + "dependencies": { + "@angular/animations": "^4.4.5", + "@angular/common": "^4.4.5", + "@angular/compiler": "^4.4.5", + "@angular/core": "^4.4.5", + "@angular/forms": "^4.4.5", + "@angular/http": "^4.4.5", + "@angular/platform-browser": "^4.4.5", + "@angular/platform-browser-dynamic": "^4.4.5", + "@angular/router": "^4.4.5", + "@types/moment": "^2.13.0", + "bootstrap": "^3.3.7", + "core-js": "^2.5.1", + "font-awesome": "^4.7.0", + "graphql-query-builder": "^1.0.7", + "jquery": "^3.2.1", + "moment-mini": "^2.18.1", + "slickgrid": "^2.3.3", + "vinyl-paths": "^2.1.0", + "zone.js": "^0.8.17" + }, + "devDependencies": { + "@angular/cli": "1.4.4", + "@angular/compiler-cli": "^4.4.5", + "@angular/language-service": "^4.4.5", + "@types/jasmine": "~2.6.0", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^8.0.39", + "codelyzer": "~3.2.0", + "copyfiles": "^1.2.0", + "cross-env": "^5.1.0", + "del": "^3.0.0", + "del-cli": "^1.1.0", + "gulp": "^3.9.1", + "gulp-bump": "^2.7.0", + "gulp-sass": "^3.1.0", + "gulp-yuidoc": "^0.1.2", + "jasmine-core": "~2.8.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~1.7.1", + "karma-chrome-launcher": "~2.2.0", + "karma-cli": "~1.0.1", + "karma-coverage-istanbul-reporter": "^1.3.0", + "karma-jasmine": "~1.1.0", + "karma-jasmine-html-reporter": "^0.2.2", + "ng-packagr": "^1.4.1", + "node-sass": "^4.5.3", + "npm-run-all": "^4.1.1", + "postcss-cli": "^4.1.1", + "protractor": "~5.1.2", + "require-dir": "^0.3.2", + "run-sequence": "^2.2.0", + "ts-node": "~3.3.0", + "tslint": "~5.7.0", + "typescript": "~2.4.2", + "yargs": "^9.0.1" + }, + "main": "bundles/angular-slickgrid.umd.js", + "module": "angular-slickgrid/angular-slickgrid.es5.js", + "es2015": "angular-slickgrid/angular-slickgrid.js", + "typings": "angular-slickgrid.d.ts", + "metadata": "angular-slickgrid.metadata.json" } diff --git a/dist/public_api.d.ts b/dist/public_api.d.ts index 892cf34d9..72771af9f 100644 --- a/dist/public_api.d.ts +++ b/dist/public_api.d.ts @@ -1,11 +1 @@ -/** - * Angular library starter. - * Build an Angular library compatible with AoT compilation & Tree shaking. - * Written by Roberto Simonetti. - * MIT license. - * https://github.com/robisim74/angular-slickgrid - */ -/** - * Entry point for all public APIs of the package. - */ -export * from './src/angular-slickgrid'; +export * from './src/app/modules/angular-slickgrid/index'; diff --git a/dist/src/components/angular-slickgrid.component.d.ts b/dist/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts similarity index 77% rename from dist/src/components/angular-slickgrid.component.d.ts rename to dist/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts index 804301ea2..c1361fb0e 100644 --- a/dist/src/components/angular-slickgrid.component.d.ts +++ b/dist/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.d.ts @@ -1,10 +1,6 @@ +import { Column, GridOption } from './../models'; import { AfterViewInit, OnInit } from '@angular/core'; -import { Column } from './../models/column.interface'; -import { GridOption } from './../models/gridOption.interface'; -import { FilterService } from './../services/filter.service'; -import { MouseService } from './../services/mouse.service'; -import { SortService } from './../services/sort.service'; -import { ResizerService } from './../services/resizer.service'; +import { FilterService, MouseService, SortService, ResizerService } from './../services'; export declare class AngularSlickgridComponent implements AfterViewInit, OnInit { private resizer; private mouseService; diff --git a/dist/src/components/slick-pagination.component.d.ts b/dist/src/app/modules/angular-slickgrid/components/slick-pagination.component.d.ts similarity index 93% rename from dist/src/components/slick-pagination.component.d.ts rename to dist/src/app/modules/angular-slickgrid/components/slick-pagination.component.d.ts index 02642044e..9ad5e5665 100644 --- a/dist/src/components/slick-pagination.component.d.ts +++ b/dist/src/app/modules/angular-slickgrid/components/slick-pagination.component.d.ts @@ -1,5 +1,5 @@ import { OnInit, AfterViewInit } from '@angular/core'; -import { GridOption } from './../models/gridOption.interface'; +import { GridOption } from './../models'; export declare class SlickPaginationComponent implements AfterViewInit, OnInit { private _gridPaginationOptions; gridPaginationOptions: GridOption; diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.d.ts new file mode 100644 index 000000000..ef24d4eb7 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from './../models'; +export declare const booleanFilterCondition: FilterCondition; diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.d.ts new file mode 100644 index 000000000..d25fcff22 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from '../models'; +export declare const dateFilterCondition: FilterCondition; diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.d.ts new file mode 100644 index 000000000..da812184b --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from '../models'; +export declare const dateIsoFilterCondition: FilterCondition; diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.d.ts new file mode 100644 index 000000000..268adc598 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from '../models'; +export declare const dateUsFilterCondition: FilterCondition; diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.d.ts new file mode 100644 index 000000000..45f80129a --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from '../models'; +export declare const dateUsShortFilterCondition: FilterCondition; diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.d.ts new file mode 100644 index 000000000..8432007dd --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from '../models'; +export declare const dateUtcFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/executeMappedCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.d.ts similarity index 100% rename from dist/src/filter-conditions/executeMappedCondition.d.ts rename to dist/src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.d.ts diff --git a/dist/src/filter-conditions/filterUtilities.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.d.ts similarity index 100% rename from dist/src/filter-conditions/filterUtilities.d.ts rename to dist/src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.d.ts diff --git a/dist/src/filter-conditions/index.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/index.d.ts similarity index 100% rename from dist/src/filter-conditions/index.d.ts rename to dist/src/app/modules/angular-slickgrid/filter-conditions/index.d.ts diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.d.ts new file mode 100644 index 000000000..efaa79a69 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from '../models'; +export declare const numberFilterCondition: FilterCondition; diff --git a/dist/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.d.ts b/dist/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.d.ts new file mode 100644 index 000000000..d40c328f9 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.d.ts @@ -0,0 +1,2 @@ +import { FilterCondition } from '../models'; +export declare const stringFilterCondition: FilterCondition; diff --git a/dist/src/filter-templates/index.d.ts b/dist/src/app/modules/angular-slickgrid/filter-templates/index.d.ts similarity index 59% rename from dist/src/filter-templates/index.d.ts rename to dist/src/app/modules/angular-slickgrid/filter-templates/index.d.ts index 3cdc52d94..8fdf34307 100644 --- a/dist/src/filter-templates/index.d.ts +++ b/dist/src/app/modules/angular-slickgrid/filter-templates/index.d.ts @@ -1,4 +1,4 @@ -import { Filter } from './../models/filter.interface'; +import { Filter } from './../models'; export declare const FilterTemplates: { input: Filter; select: Filter; diff --git a/dist/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.d.ts b/dist/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.d.ts new file mode 100644 index 000000000..af726f908 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.d.ts @@ -0,0 +1,2 @@ +import { Filter } from './../models'; +export declare const inputFilterTemplate: Filter; diff --git a/dist/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.d.ts b/dist/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.d.ts new file mode 100644 index 000000000..045475d90 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.d.ts @@ -0,0 +1,2 @@ +import { Filter } from './../models'; +export declare const selectFilterTemplate: Filter; diff --git a/dist/src/formatters/CheckboxFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/CheckboxFormatter.d.ts similarity index 100% rename from dist/src/formatters/CheckboxFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/CheckboxFormatter.d.ts diff --git a/dist/src/formatters/CheckmarkFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/CheckmarkFormatter.d.ts similarity index 100% rename from dist/src/formatters/CheckmarkFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/CheckmarkFormatter.d.ts diff --git a/dist/src/formatters/ProgressBarFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/ProgressBarFormatter.d.ts similarity index 100% rename from dist/src/formatters/ProgressBarFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/ProgressBarFormatter.d.ts diff --git a/dist/src/formatters/dateIsoFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.d.ts similarity index 100% rename from dist/src/formatters/dateIsoFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.d.ts diff --git a/dist/src/formatters/dateTimeIsoAmPmFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.d.ts similarity index 100% rename from dist/src/formatters/dateTimeIsoAmPmFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.d.ts diff --git a/dist/src/formatters/dateTimeUsAmPmFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.d.ts similarity index 100% rename from dist/src/formatters/dateTimeUsAmPmFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.d.ts diff --git a/dist/src/formatters/dateTimeUsFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.d.ts similarity index 100% rename from dist/src/formatters/dateTimeUsFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.d.ts diff --git a/dist/src/formatters/dateUsFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/dateUsFormatter.d.ts similarity index 100% rename from dist/src/formatters/dateUsFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/dateUsFormatter.d.ts diff --git a/dist/src/formatters/index.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/index.d.ts similarity index 88% rename from dist/src/formatters/index.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/index.d.ts index 32d7526d7..b27d2b422 100644 --- a/dist/src/formatters/index.d.ts +++ b/dist/src/app/modules/angular-slickgrid/formatters/index.d.ts @@ -1,4 +1,4 @@ -import { Column } from './../models/column.interface'; +import { Column } from './../models'; export declare const Formatters: { checkbox: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; checkmark: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; @@ -11,5 +11,5 @@ export declare const Formatters: { percentComplete: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; percentCompleteBar: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; progressBar: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; - yesNo: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; + yesNoFormatter: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; }; diff --git a/dist/src/formatters/percentCompleteBarFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/percentCompleteBarFormatter.d.ts similarity index 100% rename from dist/src/formatters/percentCompleteBarFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/percentCompleteBarFormatter.d.ts diff --git a/dist/src/formatters/percentCompleteFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/percentCompleteFormatter.d.ts similarity index 100% rename from dist/src/formatters/percentCompleteFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/percentCompleteFormatter.d.ts diff --git a/dist/src/formatters/yesNoFormatter.d.ts b/dist/src/app/modules/angular-slickgrid/formatters/yesNoFormatter.d.ts similarity index 100% rename from dist/src/formatters/yesNoFormatter.d.ts rename to dist/src/app/modules/angular-slickgrid/formatters/yesNoFormatter.d.ts diff --git a/dist/src/global-grid-options.d.ts b/dist/src/app/modules/angular-slickgrid/global-grid-options.d.ts similarity index 68% rename from dist/src/global-grid-options.d.ts rename to dist/src/app/modules/angular-slickgrid/global-grid-options.d.ts index be82183f5..88e2b9d99 100644 --- a/dist/src/global-grid-options.d.ts +++ b/dist/src/app/modules/angular-slickgrid/global-grid-options.d.ts @@ -1,4 +1,4 @@ -import { GridOption } from './models/gridOption.interface'; +import { GridOption } from './models'; /** * Options that can be passed to the Bootstrap-Datetimepicker directly */ diff --git a/dist/src/angular-slickgrid.d.ts b/dist/src/app/modules/angular-slickgrid/index.d.ts similarity index 94% rename from dist/src/angular-slickgrid.d.ts rename to dist/src/app/modules/angular-slickgrid/index.d.ts index 6b93e5ae3..85b1cad44 100644 --- a/dist/src/angular-slickgrid.d.ts +++ b/dist/src/app/modules/angular-slickgrid/index.d.ts @@ -12,6 +12,7 @@ export { FilterService } from './services/filter.service'; export { MouseService } from './services/mouse.service'; export { ResizerService } from './services/resizer.service'; export { SortService } from './services/sort.service'; +export { GraphqlService } from './services/graphql.service'; export { GridOdataService } from './services/grid-odata.service'; export { SlickPaginationComponent } from './components/slick-pagination.component'; export { AngularSlickgridComponent } from './components/angular-slickgrid.component'; diff --git a/dist/src/models/autoResizeOption.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/autoResizeOption.interface.d.ts similarity index 100% rename from dist/src/models/autoResizeOption.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/autoResizeOption.interface.d.ts diff --git a/dist/src/models/caseType.d.ts b/dist/src/app/modules/angular-slickgrid/models/caseType.d.ts similarity index 100% rename from dist/src/models/caseType.d.ts rename to dist/src/app/modules/angular-slickgrid/models/caseType.d.ts diff --git a/dist/src/models/column.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/column.interface.d.ts similarity index 100% rename from dist/src/models/column.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/column.interface.d.ts diff --git a/dist/src/models/columnFilter.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/columnFilter.interface.d.ts similarity index 100% rename from dist/src/models/columnFilter.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/columnFilter.interface.d.ts diff --git a/dist/src/models/columnFilters.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/columnFilters.interface.d.ts similarity index 100% rename from dist/src/models/columnFilters.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/columnFilters.interface.d.ts diff --git a/dist/src/models/fieldType.d.ts b/dist/src/app/modules/angular-slickgrid/models/fieldType.d.ts similarity index 100% rename from dist/src/models/fieldType.d.ts rename to dist/src/app/modules/angular-slickgrid/models/fieldType.d.ts diff --git a/dist/src/models/filter.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/filter.interface.d.ts similarity index 100% rename from dist/src/models/filter.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/filter.interface.d.ts diff --git a/dist/src/models/filterChangedArgs.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/filterChangedArgs.interface.d.ts similarity index 100% rename from dist/src/models/filterChangedArgs.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/filterChangedArgs.interface.d.ts diff --git a/dist/src/models/filterCondition.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/filterCondition.interface.d.ts similarity index 100% rename from dist/src/models/filterCondition.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/filterCondition.interface.d.ts diff --git a/dist/src/models/filterConditionOption.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/filterConditionOption.interface.d.ts similarity index 100% rename from dist/src/models/filterConditionOption.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/filterConditionOption.interface.d.ts diff --git a/dist/src/models/formElementType.d.ts b/dist/src/app/modules/angular-slickgrid/models/formElementType.d.ts similarity index 100% rename from dist/src/models/formElementType.d.ts rename to dist/src/app/modules/angular-slickgrid/models/formElementType.d.ts diff --git a/dist/src/models/formatter.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/formatter.interface.d.ts similarity index 100% rename from dist/src/models/formatter.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/formatter.interface.d.ts diff --git a/dist/src/app/modules/angular-slickgrid/models/graphqlCursorPaginationOption.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/graphqlCursorPaginationOption.interface.d.ts new file mode 100644 index 000000000..323326a1d --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/models/graphqlCursorPaginationOption.interface.d.ts @@ -0,0 +1,6 @@ +export interface GraphqlCursorPaginationOption { + after?: string; + before?: string; + first?: number; + last?: number; +} diff --git a/dist/src/app/modules/angular-slickgrid/models/graphqlPaginationOption.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/graphqlPaginationOption.interface.d.ts new file mode 100644 index 000000000..7d2181042 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/models/graphqlPaginationOption.interface.d.ts @@ -0,0 +1,5 @@ +export interface GraphqlPaginationOption { + first?: number; + last?: number; + offset?: number; +} diff --git a/dist/src/app/modules/angular-slickgrid/models/graphqlServiceOption.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/graphqlServiceOption.interface.d.ts new file mode 100644 index 000000000..4c772a7ca --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/models/graphqlServiceOption.interface.d.ts @@ -0,0 +1,8 @@ +import { GraphqlCursorPaginationOption } from './graphqlCursorPaginationOption.interface'; +import { GraphqlPaginationOption } from './graphqlPaginationOption.interface'; +export interface GraphqlServiceOption { + datasetName?: string; + isWithCursor?: boolean; + paginationOptions?: GraphqlPaginationOption | GraphqlCursorPaginationOption; + dataFilters?: string[]; +} diff --git a/dist/src/models/gridoption.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/gridOption.interface.d.ts similarity index 97% rename from dist/src/models/gridoption.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/gridOption.interface.d.ts index 98466404e..0b6909ef7 100644 --- a/dist/src/models/gridoption.interface.d.ts +++ b/dist/src/app/modules/angular-slickgrid/models/gridOption.interface.d.ts @@ -10,7 +10,6 @@ export interface GridOption { cellHighlightCssClass?: string | null; editable?: boolean; enableAutoResize?: boolean; - enableColumnPicker?: boolean; enableCellNavigation?: boolean; enableColumnReorder?: boolean; enableFiltering?: boolean; diff --git a/dist/src/app/modules/angular-slickgrid/models/index.d.ts b/dist/src/app/modules/angular-slickgrid/models/index.d.ts new file mode 100644 index 000000000..d59714acc --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/models/index.d.ts @@ -0,0 +1,21 @@ +export { AutoResizeOption } from './autoResizeOption.interface'; +export { CaseType } from './caseType'; +export { Column } from './column.interface'; +export { ColumnFilter } from './columnFilter.interface'; +export { ColumnFilters } from './columnFilters.interface'; +export { FieldType } from './fieldType'; +export { Filter } from './filter.interface'; +export { FilterChangedArgs } from './filterChangedArgs.interface'; +export { FilterCondition } from './filterCondition.interface'; +export { FilterConditionOption } from './filterConditionOption.interface'; +export { Formatter } from './formatter.interface'; +export { FormElementType } from './formElementType'; +export { GraphqlPaginationOption } from './graphqlPaginationOption.interface'; +export { GraphqlCursorPaginationOption } from './graphqlCursorPaginationOption.interface'; +export { GraphqlServiceOption } from './graphqlServiceOption.interface'; +export { GridOption } from './gridOption.interface'; +export { OdataOption } from './odataOption.interface'; +export { Pagination } from './pagination.interface'; +export { PaginationChangedArgs } from './paginationChangedArgs.interface'; +export { SortChangedArgs } from './sortChangedArgs.interface'; +export { Sorter } from './sorter.interface'; diff --git a/dist/src/models/odataOption.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/odataOption.interface.d.ts similarity index 100% rename from dist/src/models/odataOption.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/odataOption.interface.d.ts diff --git a/dist/src/models/pagination.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/pagination.interface.d.ts similarity index 100% rename from dist/src/models/pagination.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/pagination.interface.d.ts diff --git a/dist/src/models/paginationChangedArgs.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/paginationChangedArgs.interface.d.ts similarity index 100% rename from dist/src/models/paginationChangedArgs.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/paginationChangedArgs.interface.d.ts diff --git a/dist/src/models/sortChangedArgs.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/sortChangedArgs.interface.d.ts similarity index 100% rename from dist/src/models/sortChangedArgs.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/sortChangedArgs.interface.d.ts diff --git a/dist/src/models/sorter.interface.d.ts b/dist/src/app/modules/angular-slickgrid/models/sorter.interface.d.ts similarity index 100% rename from dist/src/models/sorter.interface.d.ts rename to dist/src/app/modules/angular-slickgrid/models/sorter.interface.d.ts diff --git a/dist/src/modules/angular-slickgrid.module.d.ts b/dist/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.d.ts similarity index 100% rename from dist/src/modules/angular-slickgrid.module.d.ts rename to dist/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.d.ts diff --git a/dist/src/services/filter.service.d.ts b/dist/src/app/modules/angular-slickgrid/services/filter.service.d.ts similarity index 83% rename from dist/src/services/filter.service.d.ts rename to dist/src/app/modules/angular-slickgrid/services/filter.service.d.ts index ad06cee2d..a9cb095a0 100644 --- a/dist/src/services/filter.service.d.ts +++ b/dist/src/app/modules/angular-slickgrid/services/filter.service.d.ts @@ -1,6 +1,4 @@ -import { Column } from '../models/column.interface'; -import { ColumnFilters } from '../models/columnFilters.interface'; -import { GridOption } from '../models/gridOption.interface'; +import { Column, ColumnFilters, GridOption } from '../models'; export declare class FilterService { _columnDefinitions: Column[]; _columnFilters: ColumnFilters; @@ -16,7 +14,7 @@ export declare class FilterService { * @param gridOptions Grid Options object */ attachBackendOnFilter(): void; - testFilterCondition(operator: string, value1: any, value2: any): boolean | undefined; + testFilterCondition(operator: string, value1: any, value2: any): boolean; /** * Attach a local filter hook to the grid * @param grid SlickGrid Grid object diff --git a/dist/src/services/global-utilities.d.ts b/dist/src/app/modules/angular-slickgrid/services/global-utilities.d.ts similarity index 100% rename from dist/src/services/global-utilities.d.ts rename to dist/src/app/modules/angular-slickgrid/services/global-utilities.d.ts diff --git a/dist/src/app/modules/angular-slickgrid/services/graphql.service.d.ts b/dist/src/app/modules/angular-slickgrid/services/graphql.service.d.ts new file mode 100644 index 000000000..85fce066f --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/services/graphql.service.d.ts @@ -0,0 +1,17 @@ +import { FilterChangedArgs, GraphqlServiceOption, PaginationChangedArgs, SortChangedArgs } from './../models'; +export declare class GraphqlService { + serviceOptions: GraphqlServiceOption; + /** + * Build the GraphQL query, since the service include/exclude cursor, the output query will be different. + * @param serviceOptions GraphqlServiceOption + */ + buildQuery(serviceOptions?: GraphqlServiceOption): any; + initOptions(serviceOptions?: GraphqlServiceOption): void; + removeColumnFilter(fieldName: string): void; + resetPaginationOptions(): void; + updateOptions(serviceOptions?: GraphqlServiceOption): void; + saveColumnFilter(fieldName: string, value: string, terms?: any[]): void; + onFilterChanged(event: Event, args: FilterChangedArgs): void; + onPaginationChanged(event: Event, args: PaginationChangedArgs): any; + onSortChanged(event: Event, args: SortChangedArgs): void; +} diff --git a/dist/src/services/grid-odata.service.d.ts b/dist/src/app/modules/angular-slickgrid/services/grid-odata.service.d.ts similarity index 78% rename from dist/src/services/grid-odata.service.d.ts rename to dist/src/app/modules/angular-slickgrid/services/grid-odata.service.d.ts index ca38e4e7c..9a8fb7b6e 100644 --- a/dist/src/services/grid-odata.service.d.ts +++ b/dist/src/app/modules/angular-slickgrid/services/grid-odata.service.d.ts @@ -1,8 +1,5 @@ import './global-utilities'; -import { FilterChangedArgs } from './../models/filterChangedArgs.interface'; -import { OdataOption } from './../models/odataOption.interface'; -import { PaginationChangedArgs } from './../models/paginationChangedArgs.interface'; -import { SortChangedArgs } from './../models/sortChangedArgs.interface'; +import { FilterChangedArgs, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models'; import { OdataService } from './odata.service'; export declare class GridOdataService { private odataService; diff --git a/dist/src/app/modules/angular-slickgrid/services/index.d.ts b/dist/src/app/modules/angular-slickgrid/services/index.d.ts new file mode 100644 index 000000000..cf5aee4ec --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/services/index.d.ts @@ -0,0 +1,7 @@ +export { FilterService } from './filter.service'; +export { GridOdataService } from './grid-odata.service'; +export { GraphqlService } from './graphql.service'; +export { MouseService } from './mouse.service'; +export { OdataService } from './odata.service'; +export { ResizerService } from './resizer.service'; +export { SortService } from './sort.service'; diff --git a/dist/src/services/mouse.service.d.ts b/dist/src/app/modules/angular-slickgrid/services/mouse.service.d.ts similarity index 100% rename from dist/src/services/mouse.service.d.ts rename to dist/src/app/modules/angular-slickgrid/services/mouse.service.d.ts diff --git a/dist/src/services/odata.service.d.ts b/dist/src/app/modules/angular-slickgrid/services/odata.service.d.ts similarity index 93% rename from dist/src/services/odata.service.d.ts rename to dist/src/app/modules/angular-slickgrid/services/odata.service.d.ts index 87125f50b..d1f483fa5 100644 --- a/dist/src/services/odata.service.d.ts +++ b/dist/src/app/modules/angular-slickgrid/services/odata.service.d.ts @@ -1,5 +1,5 @@ import './global-utilities'; -import { OdataOption } from './../models/odataOption.interface'; +import { OdataOption } from './../models'; export declare class OdataService { _columnFilters: any; _defaultSortBy: string; diff --git a/dist/src/services/resizer.service.d.ts b/dist/src/app/modules/angular-slickgrid/services/resizer.service.d.ts similarity index 76% rename from dist/src/services/resizer.service.d.ts rename to dist/src/app/modules/angular-slickgrid/services/resizer.service.d.ts index c211c5eb9..d75c2cd60 100644 --- a/dist/src/services/resizer.service.d.ts +++ b/dist/src/app/modules/angular-slickgrid/services/resizer.service.d.ts @@ -1,17 +1,24 @@ +import { GridOption } from './../models'; import { Router } from '@angular/router'; -import { GridOption } from './../models/gridOption.interface'; export declare class ResizerService { private router; constructor(router: Router); /** Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space * Options: we could also provide a % factor to resize on each height/width independently */ - attachAutoResizeDataGrid(grid: any, gridOptions: GridOption): any | void; + attachAutoResizeDataGrid(grid: any, gridOptions: GridOption): any; /** * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation * object gridOptions */ - calculateGridNewDimensions(gridOptions: GridOption): any; + calculateGridNewDimensions(gridOptions: GridOption): { + height: number; + width: any; + }; + /** + * Destroy function when element is destroyed + */ + destroy(): void; /** Resize the datagrid to fit the browser height & width */ resizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number; diff --git a/dist/src/services/sort.service.d.ts b/dist/src/app/modules/angular-slickgrid/services/sort.service.d.ts similarity index 100% rename from dist/src/services/sort.service.d.ts rename to dist/src/app/modules/angular-slickgrid/services/sort.service.d.ts diff --git a/dist/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.d.ts b/dist/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.d.ts new file mode 100644 index 000000000..e0845c62e --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.d.ts @@ -0,0 +1,2 @@ +import { Sorter } from './../models'; +export declare const dateIsoSorter: Sorter; diff --git a/dist/src/app/modules/angular-slickgrid/sorters/dateSorter.d.ts b/dist/src/app/modules/angular-slickgrid/sorters/dateSorter.d.ts new file mode 100644 index 000000000..e41fa383c --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/sorters/dateSorter.d.ts @@ -0,0 +1,2 @@ +import { Sorter } from './../models'; +export declare const dateSorter: Sorter; diff --git a/dist/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.d.ts b/dist/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.d.ts new file mode 100644 index 000000000..68b5475cb --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.d.ts @@ -0,0 +1,2 @@ +import { Sorter } from './../models'; +export declare const dateUsShortSorter: Sorter; diff --git a/dist/src/app/modules/angular-slickgrid/sorters/dateUsSorter.d.ts b/dist/src/app/modules/angular-slickgrid/sorters/dateUsSorter.d.ts new file mode 100644 index 000000000..8039b93a7 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/sorters/dateUsSorter.d.ts @@ -0,0 +1,2 @@ +import { Sorter } from './../models'; +export declare const dateUsSorter: Sorter; diff --git a/dist/src/sorters/index.d.ts b/dist/src/app/modules/angular-slickgrid/sorters/index.d.ts similarity index 100% rename from dist/src/sorters/index.d.ts rename to dist/src/app/modules/angular-slickgrid/sorters/index.d.ts diff --git a/dist/src/app/modules/angular-slickgrid/sorters/numericSorter.d.ts b/dist/src/app/modules/angular-slickgrid/sorters/numericSorter.d.ts new file mode 100644 index 000000000..6a29ed620 --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/sorters/numericSorter.d.ts @@ -0,0 +1,2 @@ +import { Sorter } from './../models'; +export declare const numericSorter: Sorter; diff --git a/dist/src/app/modules/angular-slickgrid/sorters/stringSorter.d.ts b/dist/src/app/modules/angular-slickgrid/sorters/stringSorter.d.ts new file mode 100644 index 000000000..c0fa2abba --- /dev/null +++ b/dist/src/app/modules/angular-slickgrid/sorters/stringSorter.d.ts @@ -0,0 +1,2 @@ +import { Sorter } from './../models'; +export declare const stringSorter: Sorter; diff --git a/dist/src/filter-conditions/booleanFilterCondition.d.ts b/dist/src/filter-conditions/booleanFilterCondition.d.ts deleted file mode 100644 index 36b375edf..000000000 --- a/dist/src/filter-conditions/booleanFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const booleanFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/dateFilterCondition.d.ts b/dist/src/filter-conditions/dateFilterCondition.d.ts deleted file mode 100644 index 4e94c6c1f..000000000 --- a/dist/src/filter-conditions/dateFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const dateFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/dateIsoFilterCondition.d.ts b/dist/src/filter-conditions/dateIsoFilterCondition.d.ts deleted file mode 100644 index 233594142..000000000 --- a/dist/src/filter-conditions/dateIsoFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const dateIsoFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/dateUsFilterCondition.d.ts b/dist/src/filter-conditions/dateUsFilterCondition.d.ts deleted file mode 100644 index bae1bb1c6..000000000 --- a/dist/src/filter-conditions/dateUsFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const dateUsFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/dateUsShortFilterCondition.d.ts b/dist/src/filter-conditions/dateUsShortFilterCondition.d.ts deleted file mode 100644 index 47906b98f..000000000 --- a/dist/src/filter-conditions/dateUsShortFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const dateUsShortFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/dateUtcFilterCondition.d.ts b/dist/src/filter-conditions/dateUtcFilterCondition.d.ts deleted file mode 100644 index 002dd66ae..000000000 --- a/dist/src/filter-conditions/dateUtcFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const dateUtcFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/numberFilterCondition.d.ts b/dist/src/filter-conditions/numberFilterCondition.d.ts deleted file mode 100644 index 704599ede..000000000 --- a/dist/src/filter-conditions/numberFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const numberFilterCondition: FilterCondition; diff --git a/dist/src/filter-conditions/stringFilterCondition.d.ts b/dist/src/filter-conditions/stringFilterCondition.d.ts deleted file mode 100644 index eebe1a74b..000000000 --- a/dist/src/filter-conditions/stringFilterCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -export declare const stringFilterCondition: FilterCondition; diff --git a/dist/src/filter-templates/inputFilterTemplate.d.ts b/dist/src/filter-templates/inputFilterTemplate.d.ts deleted file mode 100644 index 1db5949fa..000000000 --- a/dist/src/filter-templates/inputFilterTemplate.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Filter } from './../models/filter.interface'; -export declare const inputFilterTemplate: Filter; diff --git a/dist/src/filter-templates/selectFilterTemplate.d.ts b/dist/src/filter-templates/selectFilterTemplate.d.ts deleted file mode 100644 index f1c7dc9ee..000000000 --- a/dist/src/filter-templates/selectFilterTemplate.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Filter } from './../models/filter.interface'; -export declare const selectFilterTemplate: Filter; diff --git a/dist/src/sorters/dateIsoSorter.d.ts b/dist/src/sorters/dateIsoSorter.d.ts deleted file mode 100644 index e48aef346..000000000 --- a/dist/src/sorters/dateIsoSorter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Sorter } from './../models/sorter.interface'; -export declare const dateIsoSorter: Sorter; diff --git a/dist/src/sorters/dateSorter.d.ts b/dist/src/sorters/dateSorter.d.ts deleted file mode 100644 index 5a2936d5c..000000000 --- a/dist/src/sorters/dateSorter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Sorter } from './../models/sorter.interface'; -export declare const dateSorter: Sorter; diff --git a/dist/src/sorters/dateUsShortSorter.d.ts b/dist/src/sorters/dateUsShortSorter.d.ts deleted file mode 100644 index 00d06b948..000000000 --- a/dist/src/sorters/dateUsShortSorter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Sorter } from './../models/sorter.interface'; -export declare const dateUsShortSorter: Sorter; diff --git a/dist/src/sorters/dateUsSorter.d.ts b/dist/src/sorters/dateUsSorter.d.ts deleted file mode 100644 index 05c003a78..000000000 --- a/dist/src/sorters/dateUsSorter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Sorter } from './../models/sorter.interface'; -export declare const dateUsSorter: Sorter; diff --git a/dist/src/sorters/numericSorter.d.ts b/dist/src/sorters/numericSorter.d.ts deleted file mode 100644 index 6ffecc168..000000000 --- a/dist/src/sorters/numericSorter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Sorter } from './../models/sorter.interface'; -export declare const numericSorter: Sorter; diff --git a/dist/src/sorters/stringSorter.d.ts b/dist/src/sorters/stringSorter.d.ts deleted file mode 100644 index 2b805ceb8..000000000 --- a/dist/src/sorters/stringSorter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Sorter } from './../models/sorter.interface'; -export declare const stringSorter: Sorter; diff --git a/demo/src/typings.d.ts b/dist/src/typings.d.ts similarity index 64% rename from demo/src/typings.d.ts rename to dist/src/typings.d.ts index ef5c7bd62..c10225d3d 100644 --- a/demo/src/typings.d.ts +++ b/dist/src/typings.d.ts @@ -1,5 +1,9 @@ /* SystemJS module definition */ declare var module: NodeModule; + interface NodeModule { id: string; } +interface JQuery { + slickgrid: (options: any) => any; +} diff --git a/dist/styles/css/slick-bootstrap.css b/dist/styles/css/slick-bootstrap.css index 21d9ef5f9..3c14d2a4f 100644 --- a/dist/styles/css/slick-bootstrap.css +++ b/dist/styles/css/slick-bootstrap.css @@ -91,7 +91,6 @@ padding: 0 6px; width: 100%; height: 27px; - -webkit-box-sizing: border-box; box-sizing: border-box; } .slickgrid-container .slick-header-columns { background: transparent; } @@ -158,4 +157,4 @@ right: 2px; } .slickgrid-container .slick-header-columns .slick-header-column .slick-resizable-handle:hover { border-right: 1px solid #d0d0d0; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNsaWNrLWJvb3RzdHJhcC5jc3MiLCIuLi8uLi8uLi9zcmMvc3R5bGVzL3NsaWNrLWJvb3RzdHJhcC5zY3NzIiwiLi4vLi4vLi4vc3JjL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7O0dBSUc7QUFBQTs7MEJBRXVCO0FDTjFCOzs7O0dBSUc7QUFBQTs7bUNBRWdDO0FBQ25DLGtDQUFrQztBQUtsQyxxRUFBcUU7QUFNckUsVUFBVTtBQU1WLFVBQVU7QUFVVixtQ0FBbUM7QUFNbkMsWUFBWTtBQWFaLG9IQUFvSDtBQWNwSCxtQkFBbUI7QUFRbkIsMEJBQTBCO0FEbEUxQjtFQUNFLG1CQ0c0QztFREY1QyxpQ0NINkM7RURJN0Msb0JDSTRDO0VESDVDLHFCQ0M0QztFREE1QyxtQkFBa0IsRUFrTW5CO0VBdk1EO0lBdUJJLHlCQUF3QjtJQUN4QixVQUFTLEVBQ1Y7RUF6Qkg7SUE0Qkksa0JBQWtCLEVBQ25CO0VBN0JIO0lBaUNNLG1CQUFrQjtJQUNsQixZQUFXLEVBTVo7SUF4Q0w7TUFxQ1UsMEJDZGdELEVEZWpEO0VBdENUO0lBMENNLDhCQzNDeUM7SUQ0Q3pDLHNCQ3pCd0M7SUQwQnhDLG9CQ3pCd0M7SUQwQnhDLHFCQzVCd0MsRUQ2QnpDO0VBOUNMO0lBZ0RNLG9CQ0tvQyxFREpyQztFQWpETDtJQVFJLHNCQ2NnRDtJRGJoRCxnQkNUcUMsRURvRnBDO0lBcEZMO01BV00sZ0JDWG1DLEVEWXBDO0lBQ0Q7TUFDRSxrQkFBaUIsRUFDbEI7SUFmTDtNQXdEUSxZQ0xnQztNRE1oQyxzQkFBcUIsRUFDdEI7SUExRFA7TUE0RFEseUJDUndEO01EU3hELHNCQUFxQjtNQUNyQixvQkFBbUIsRUFDcEI7SUEvRFA7TUFpRVEsYUFBWTtNQUNaLGVBQWM7TUFDZCxXQUFVO01BQ1YsaUJBQWdCLEVBQ2pCO0lBckVQO01BdUVRLGVBQWM7TUFDZCxXQUFVO01BQ1YsdUJBQXNCO01BQ3RCLGlCQUFnQixFQUNqQjtJQTNFUDtNQTZFUSwwQkN0RGtELEVEdURuRDtJQTlFUDtNQWlGVSwwQkMxRGdELEVEMkRqRDtFQWxGVDtJQXdGSSxtQkNuRDBDO0lEb0QxQyxxQkNuRDBDO0lEb0QxQyxzQkNuRDBDO0lEb0QxQyxvQkNuRDBDO0lEb0QxQyx5QkFBcUQsRUFDdEQ7RUE3Rkg7SUFpR00sYUFBWTtJQUNaLGlCQUFnQixFQUNqQjtFQW5HTDs7O0lBdUdNLGdCQUFlO0lBQ2YsZUN0RXVDO0lEdUV2QyxZQ3hFc0M7SUR5RXRDLGFDMUVzQztJRDRFdEMsK0JBQThCO0lBQzlCLHVCQUFzQixFQUN2QjtFQTlHTDtJQWtISSx3QkNqRStDLEVEcUpoRDtJQXRNSDtNQXVIUSxlQUFjLEVBQ2Y7SUF4SFA7TUEySE0sYUN2RjREO01Ed0Y1RCxrQkM1SG1DO01ENkhuQyxVQUFTO01BQ1QsbUJDekZ3QztNRDBGeEMscUJDekZ3QztNRDBGeEMsc0JDekZ3QztNRDBGeEMsb0JDekZ3QztNRDBGeEMsb0JBQW1CO01BU2pCLGNBQWM7TUFDZCx3QkMzRjJDO01ENEYzQyx3R0M1STBIO01ENkkxSCxZQ3hGa0M7TUR5RmxDLGtCQUFpQixFQXNEcEI7TUFyTUw7UUFRSSxzQkNjZ0Q7UURiaEQsZ0JDVHFDLEVEcUlsQztRQXJJUDtVQVdNLGdCQ1htQyxFRFlwQztRQUNEO1VBQ0Usa0JBQWlCLEVBQ2xCO01BZkw7UUFpSlUsWUMzRmdDLEVENEZqQztNQWxKVDtRQW9KVSxZQzlGZ0MsRUQrRmpDO01BckpUO1FBMklRLGNBQWM7UUFDZCx3QkMzRjJDO1FENEYzQyx3R0M1STBIO1FENkkxSCxZQ3hGa0M7UUR5RmxDLGtCQUFpQixFQVlsQjtRQTNKUDtVQWlKVSxZQzNGZ0MsRUQ0RmpDO1FBbEpUO1VBb0pVLFlDOUZnQyxFRCtGakM7TUFySlQ7UUE4SlEsbUJBQWtCO1FBQ2xCLFlDekdrQyxFRDBHbkM7TUFoS1A7UUFrS1EsWUM1R2tDLEVENkduQztNQW5LUDtRQXNLUSxtQkFBa0I7UUFDbEIsc0JBQXFCO1FBQ3JCLFdBQVU7UUFDVixZQUFXO1FBQ1gsV0FBVTtRQUNWLFdBQVU7UUFDVixVQUF3QyxFQUN6QztNQTdLUDtRQWdMUSxpQkFBZ0I7UUFDaEIsMkJDcEk2QztRRHFJN0MsZ0JDcElvQyxFRHFJckM7TUFuTFA7UUFzTFUsYUN2SThCLEVBQU87TUQvQy9DO1FBMkxVLGFDM0k4QixFQUFPO01EaEQvQztRQStMUSxXQUFVO1FBQ1YsV0FBVSxFQUNYO01Bak1QO1FBbU1RLGdDQzFKaUQsRUQySmxEIiwiZmlsZSI6InNsaWNrLWJvb3RzdHJhcC5jc3MifQ== */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNsaWNrLWJvb3RzdHJhcC5jc3MiLCIuLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYW5ndWxhci1zbGlja2dyaWQvc3R5bGVzL3NsaWNrLWJvb3RzdHJhcC5zY3NzIiwiLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaUJBQWlCO0FDQWpCOzs7O0dBSUc7QUFBQTs7MEJBRXVCO0FDTjFCOzs7O0dBSUc7QUFBQTs7bUNBRWdDO0FBQ25DLGtDQUFrQztBQUtsQyxxRUFBcUU7QUFNckUsVUFBVTtBQU1WLFVBQVU7QUFVVixtQ0FBbUM7QUFNbkMsWUFBWTtBQWFaLG9IQUFvSDtBQWNwSCxtQkFBbUI7QUFRbkIsMEJBQTBCO0FEbEUxQjtFQUNFLG1CQ0c0QztFREY1QyxpQ0NINkM7RURJN0Msb0JDSTRDO0VESDVDLHFCQ0M0QztFREE1QyxtQkFBa0IsRUFrTW5CO0VBdk1EO0lBdUJJLHlCQUF3QjtJQUN4QixVQUFTLEVBQ1Y7RUF6Qkg7SUE0Qkksa0JBQWtCLEVBQ25CO0VBN0JIO0lBaUNNLG1CQUFrQjtJQUNsQixZQUFXLEVBTVo7SUF4Q0w7TUFxQ1UsMEJDZGdELEVEZWpEO0VBdENUO0lBMENNLDhCQzNDeUM7SUQ0Q3pDLHNCQ3pCd0M7SUQwQnhDLG9CQ3pCd0M7SUQwQnhDLHFCQzVCd0MsRUQ2QnpDO0VBOUNMO0lBZ0RNLG9CQ0tvQyxFREpyQztFQWpETDtJQVFJLHNCQ2NnRDtJRGJoRCxnQkNUcUMsRURvRnBDO0lBcEZMO01BV00sZ0JDWG1DLEVEWXBDO0lBQ0Q7TUFDRSxrQkFBaUIsRUFDbEI7SUFmTDtNQXdEUSxZQ0xnQztNRE1oQyxzQkFBcUIsRUFDdEI7SUExRFA7TUE0RFEseUJDUndEO01EU3hELHNCQUFxQjtNQUNyQixvQkFBbUIsRUFDcEI7SUEvRFA7TUFpRVEsYUFBWTtNQUNaLGVBQWM7TUFDZCxXQUFVO01BQ1YsaUJBQWdCLEVBQ2pCO0lBckVQO01BdUVRLGVBQWM7TUFDZCxXQUFVO01BQ1YsdUJBQXNCO01BQ3RCLGlCQUFnQixFQUNqQjtJQTNFUDtNQTZFUSwwQkN0RGtELEVEdURuRDtJQTlFUDtNQWlGVSwwQkMxRGdELEVEMkRqRDtFQWxGVDtJQXdGSSxtQkNuRDBDO0lEb0QxQyxxQkNuRDBDO0lEb0QxQyxzQkNuRDBDO0lEb0QxQyxvQkNuRDBDO0lEb0QxQyx5QkFBcUQsRUFDdEQ7RUE3Rkg7SUFpR00sYUFBWTtJQUNaLGlCQUFnQixFQUNqQjtFQW5HTDs7O0lBdUdNLGdCQUFlO0lBQ2YsZUN0RXVDO0lEdUV2QyxZQ3hFc0M7SUR5RXRDLGFDMUVzQztJRDZFdEMsdUJBQXNCLEVBQ3ZCO0VBOUdMO0lBa0hJLHdCQ2pFK0MsRURxSmhEO0lBdE1IO01BdUhRLGVBQWMsRUFDZjtJQXhIUDtNQTJITSxhQ3ZGNEQ7TUR3RjVELGtCQzVIbUM7TUQ2SG5DLFVBQVM7TUFDVCxtQkN6RndDO01EMEZ4QyxxQkN6RndDO01EMEZ4QyxzQkN6RndDO01EMEZ4QyxvQkN6RndDO01EMEZ4QyxvQkFBbUI7TUFTakIsY0FBYztNQUNkLHdCQzNGMkM7TUQ0RjNDLHdHQzVJMEg7TUQ2STFILFlDeEZrQztNRHlGbEMsa0JBQWlCLEVBc0RwQjtNQXJNTDtRQVFJLHNCQ2NnRDtRRGJoRCxnQkNUcUMsRURxSWxDO1FBcklQO1VBV00sZ0JDWG1DLEVEWXBDO1FBQ0Q7VUFDRSxrQkFBaUIsRUFDbEI7TUFmTDtRQWlKVSxZQzNGZ0MsRUQ0RmpDO01BbEpUO1FBb0pVLFlDOUZnQyxFRCtGakM7TUFySlQ7UUEySVEsY0FBYztRQUNkLHdCQzNGMkM7UUQ0RjNDLHdHQzVJMEg7UUQ2STFILFlDeEZrQztRRHlGbEMsa0JBQWlCLEVBWWxCO1FBM0pQO1VBaUpVLFlDM0ZnQyxFRDRGakM7UUFsSlQ7VUFvSlUsWUM5RmdDLEVEK0ZqQztNQXJKVDtRQThKUSxtQkFBa0I7UUFDbEIsWUN6R2tDLEVEMEduQztNQWhLUDtRQWtLUSxZQzVHa0MsRUQ2R25DO01BbktQO1FBc0tRLG1CQUFrQjtRQUNsQixzQkFBcUI7UUFDckIsV0FBVTtRQUNWLFlBQVc7UUFDWCxXQUFVO1FBQ1YsV0FBVTtRQUNWLFVBQXdDLEVBQ3pDO01BN0tQO1FBZ0xRLGlCQUFnQjtRQUNoQiwyQkNwSTZDO1FEcUk3QyxnQkNwSW9DLEVEcUlyQztNQW5MUDtRQXNMVSxhQ3ZJOEIsRUFBTztNRC9DL0M7UUEyTFUsYUMzSThCLEVBQU87TURoRC9DO1FBK0xRLFdBQVU7UUFDVixXQUFVLEVBQ1g7TUFqTVA7UUFtTVEsZ0NDMUppRCxFRDJKbEQiLCJmaWxlIjoic2xpY2stYm9vdHN0cmFwLmNzcyJ9 */ \ No newline at end of file diff --git a/dist/styles/css/slick-bootstrap.css.map b/dist/styles/css/slick-bootstrap.css.map index bd2314e6b..a18838d2b 100644 --- a/dist/styles/css/slick-bootstrap.css.map +++ b/dist/styles/css/slick-bootstrap.css.map @@ -2,8 +2,8 @@ "version": 3, "file": "slick-bootstrap.css", "sources": [ - "../../../src/styles/slick-bootstrap.scss", - "../../../src/styles/_variables.scss" + "../../../src/app/modules/angular-slickgrid/styles/slick-bootstrap.scss", + "../../../src/app/modules/angular-slickgrid/styles/_variables.scss" ], "names": [], "mappings": "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" diff --git a/dist/styles/css/slick-controls.css b/dist/styles/css/slick-controls.css index 41747f917..f73536703 100644 --- a/dist/styles/css/slick-controls.css +++ b/dist/styles/css/slick-controls.css @@ -23,7 +23,6 @@ border: 1px solid #b8b8b8; border-radius: 3px; padding: 6px; - -webkit-box-shadow: 2px 2px 2px silver; box-shadow: 2px 2px 2px silver; min-width: 150px; cursor: default; @@ -63,4 +62,4 @@ margin: 6px 0; border: 0; border-top: 1px solid #d5d5d5; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHlsZXMvc2xpY2stY29udHJvbHMuc2NzcyIsIi4uLy4uLy4uL3NyYy9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FDRkg7Ozs7R0FJRztBQUFBOzttQ0FFZ0M7QUFDbkMsa0NBQWtDO0FBS2xDLHFFQUFxRTtBQU1yRSxVQUFVO0FBTVYsVUFBVTtBQVVWLG1DQUFtQztBQU1uQyxZQUFZO0FBYVosb0hBQW9IO0FBY3BILG1CQUFtQjtBQVFuQiwwQkFBMEI7QURyRTFCO0VBQ0UsMEJDNkQ2QztFRDVEN0MsMEJDNkR1RDtFRDVEdkQsbUJDNkR5QztFRDVEekMsYUFBWTtFQUVaLHVDQUFzQztFQUN0QywrQkFBOEI7RUFDOUIsaUJBQWdCO0VBQ2hCLGdCQUFlO0VBQ2YsbUJBQWtCO0VBQ2xCLFlBQVc7RUFDWixlQUFjO0VBQ2IsYUFBWSxFQXVDYjtFQXBERDtJQWdCSSxhQUFZO0lBQ1osWUFBVztJQUNYLGFBQVk7SUFDWixhQUFZO0lBQ1osb0NDNkNxRDtJRDVDckQsMEJDNkNxRCxFRHhDdEQ7SUExQkg7TUF3Qk0sYUMyQ3FDLEVEMUN0QztFQXpCTDtJQTZCSSxZQUFXLEVBQ1o7RUE5Qkg7SUFnQ0ksaUJBQWdCO0lBQ2hCLFVBQVM7SUFDVCxXQUFVO0lBQ1YsaUJBQWdCLEVBVWpCO0lBN0NIO01Bc0NNLGVBQWM7TUFDZCxhQUFZO01BQ1osa0JBQWlCLEVBQ2xCO0lBekNMO01BMkNNLGtCQUFpQixFQUNsQjtFQTVDTDtJQStDSSxnQkFBZTtJQUNmLFdBQVU7SUFDVixpQ0FBZ0M7SUFDaEMsb0JBQW1CLEVBQ3BCOztBQUdIO0VBQ0UsY0FBYTtFQUNiLFVBQVM7RUFDVCw4QkFBNkIsRUFDOUIiLCJmaWxlIjoic2xpY2stY29udHJvbHMuY3NzIn0= */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvc2xpY2stY29udHJvbHMuc2NzcyIsIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FDRkg7Ozs7R0FJRztBQUFBOzttQ0FFZ0M7QUFDbkMsa0NBQWtDO0FBS2xDLHFFQUFxRTtBQU1yRSxVQUFVO0FBTVYsVUFBVTtBQVVWLG1DQUFtQztBQU1uQyxZQUFZO0FBYVosb0hBQW9IO0FBY3BILG1CQUFtQjtBQVFuQiwwQkFBMEI7QURyRTFCO0VBQ0UsMEJDNkQ2QztFRDVEN0MsMEJDNkR1RDtFRDVEdkQsbUJDNkR5QztFRDVEekMsYUFBWTtFQUdaLCtCQUE4QjtFQUM5QixpQkFBZ0I7RUFDaEIsZ0JBQWU7RUFDZixtQkFBa0I7RUFDbEIsWUFBVztFQUNaLGVBQWM7RUFDYixhQUFZLEVBdUNiO0VBcEREO0lBZ0JJLGFBQVk7SUFDWixZQUFXO0lBQ1gsYUFBWTtJQUNaLGFBQVk7SUFDWixvQ0M2Q3FEO0lENUNyRCwwQkM2Q3FELEVEeEN0RDtJQTFCSDtNQXdCTSxhQzJDcUMsRUQxQ3RDO0VBekJMO0lBNkJJLFlBQVcsRUFDWjtFQTlCSDtJQWdDSSxpQkFBZ0I7SUFDaEIsVUFBUztJQUNULFdBQVU7SUFDVixpQkFBZ0IsRUFVakI7SUE3Q0g7TUFzQ00sZUFBYztNQUNkLGFBQVk7TUFDWixrQkFBaUIsRUFDbEI7SUF6Q0w7TUEyQ00sa0JBQWlCLEVBQ2xCO0VBNUNMO0lBK0NJLGdCQUFlO0lBQ2YsV0FBVTtJQUNWLGlDQUFnQztJQUNoQyxvQkFBbUIsRUFDcEI7O0FBR0g7RUFDRSxjQUFhO0VBQ2IsVUFBUztFQUNULDhCQUE2QixFQUM5QiIsImZpbGUiOiJzbGljay1jb250cm9scy5jc3MifQ== */ \ No newline at end of file diff --git a/dist/styles/css/slick-controls.css.map b/dist/styles/css/slick-controls.css.map index ccd59fc8f..14b0d840a 100644 --- a/dist/styles/css/slick-controls.css.map +++ b/dist/styles/css/slick-controls.css.map @@ -2,8 +2,8 @@ "version": 3, "file": "slick-controls.css", "sources": [ - "../../../src/styles/slick-controls.scss", - "../../../src/styles/_variables.scss" + "../../../src/app/modules/angular-slickgrid/styles/slick-controls.scss", + "../../../src/app/modules/angular-slickgrid/styles/_variables.scss" ], "names": [], "mappings": "AAAA;;GAEG;ACFH;;;;GAIG;AAAA;;mCAEgC;AACnC,kCAAkC;AAKlC,qEAAqE;AAMrE,UAAU;AAMV,UAAU;AAUV,mCAAmC;AAMnC,YAAY;AAaZ,oHAAoH;AAcpH,mBAAmB;AAQnB,0BAA0B;ADrE1B,AAAA,mBAAmB,CAAC;EAClB,gBAAgB,EC6DsB,OAAO;ED5D7C,MAAM,EC6DgC,GAAG,CAAC,KAAK,CAAC,OAAO;ED5DvD,aAAa,EC6DyB,GAAG;ED5DzC,OAAO,EAAE,GAAG;EACZ,eAAe,EAAE,kBAAkB;EACnC,kBAAkB,EAAE,kBAAkB;EACtC,UAAU,EAAE,kBAAkB;EAC9B,SAAS,EAAE,KAAK;EAChB,MAAM,EAAE,OAAO;EACf,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,EAAE;EACZ,QAAQ,EAAE,IAAI;EACb,MAAM,EAAE,IAAI,GAuCb;EApDD,AAeI,mBAfe,GAef,MAAM,CAAC;IACP,KAAK,EAAE,KAAK;IACZ,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,GAAG;IACZ,gBAAgB,EC6CoB,GAAG,CAAC,KAAK,CAAC,OAAO;ID5CrD,MAAM,EC6C8B,GAAG,CAAC,KAAK,CAAC,OAAO,GDxCtD;IA1BH,AAuBM,mBAvBa,GAef,MAAM,GAQJ,IAAI,CAAC;MACL,OAAO,EC2C2B,GAAG,GD1CtC;EAzBL,AA4BE,mBA5BiB,CA4BjB,KAAK,CAAC;IACJ,MAAM,EAAE,GAAG,GACZ;EA9BH,AA+BE,mBA/BiB,CA+BjB,EAAE,CAAC;IACD,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,IAAI,GAUjB;IA7CH,AAqCI,mBArCe,CA+BjB,EAAE,CAMA,CAAC,CAAC;MACA,OAAO,EAAE,KAAK;MACd,OAAO,EAAE,GAAG;MACZ,WAAW,EAAE,IAAI,GAClB;IAzCL,AA0CI,mBA1Ce,CA+BjB,EAAE,CAWA,CAAC,AAAA,MAAM,CAAC;MACN,UAAU,EAAE,KAAK,GAClB;EA5CL,AA8CE,mBA9CiB,CA8CjB,MAAM,CAAC;IACL,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,GAAG;IACV,aAAa,EAAE,iBAAiB;IAChC,aAAa,EAAE,IAAI,GACpB;;AAGH,AAA2B,wBAAH,GAAG,EAAE,CAAC;EAC5B,MAAM,EAAE,KAAK;EACb,MAAM,EAAE,CAAC;EACT,UAAU,EAAE,iBAAiB,GAC9B" diff --git a/dist/styles/css/slick-default-theme.css b/dist/styles/css/slick-default-theme.css index 2e626cc02..8f27ee657 100644 --- a/dist/styles/css/slick-default-theme.css +++ b/dist/styles/css/slick-default-theme.css @@ -30,7 +30,6 @@ .slickgrid-container .slick-header-columns { border-bottom: 1px solid fade(black, 3%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, transparent), to(rgba(0, 0, 0, 0.1))); background: linear-gradient(transparent 60%, rgba(0, 0, 0, 0.1)); } .slickgrid-container .slick-header-column { @@ -63,8 +62,7 @@ padding-bottom: 4px; padding-left: 4px; padding-right: 4px; - -webkit-box-sizing: border-box; - box-sizing: border-box; } + box-sizing: border-box; } .slickgrid-container .slick-row .slick-cell.invalid { border-color: red; -moz-animation-duration: 0.2s; @@ -127,11 +125,9 @@ @-webkit-keyframes slickgrid-invalid-hilite { from { - -webkit-box-shadow: 0 0 6px red; - box-shadow: 0 0 6px red; } + box-shadow: 0 0 6px red; } to { - -webkit-box-shadow: none; - box-shadow: none; } } + box-shadow: none; } } .slickgrid-container .slick-header-menubutton { background-position: center center; @@ -224,4 +220,4 @@ background: transparent; border: none; outline: black; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHlsZXMvc2xpY2stZGVmYXVsdC10aGVtZS5zY3NzIiwiLi4vLi4vLi4vc3JjL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUNMSDs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBRG5FMUI7RUFDRSxnQkFBZSxFQUNoQjs7QUFDRDs7RUFHSSxxQ0NPMkQsRURMNUQ7O0FBTEg7RUFRSSx5Q0NBbUQ7RURDbkQsa0hBQThEO0VBQTlELGlFQUE4RCxFQUMvRDs7QUFWSDtFQWFJLHdDQ0xtRDtFRE1uRCx5Q0NObUQsRURPcEQ7O0FBZkg7RUFrQkkscUNBQStDLEVBQ2hEOztBQW5CSDtFQXNCSSxnREFBMEQsRUFDM0Q7O0FBdkJIO0VBMEJJLHFDQ2hCMkQsRURpQjVEOztBQTNCSDtFQThCSSxvQkFBbUI7RUFDbkIsaUJBQWdCLEVBQ2pCOztBQWhDSDtFQW1DSSxrQkFBaUIsRUFDbEI7O0FBcENIO0VBdUNJLGtCQUFpQjtFQUNqQixVQUFTO0VBQ1Qsa0JBQWlCLEVBNkVsQjtFQXRISDtJQTRDTSxrQkFBaUI7SUFFakIsaUJBQWdCO0lBQ2hCLG9CQUFtQjtJQUNuQixrQkFBaUI7SUFDakIsbUJBQWtCO0lBQ2xCLCtCQUFzQjtZQUF0Qix1QkFBc0IsRUFvQ3ZCO0lBdEZMO01BcURRLGtCQUFpQjtNQUNqQiw4QkFBNkI7TUFDN0IsaUNBQWdDO01BQ2hDLDhDQUE2QztNQUM3QyxpREFBZ0Q7TUFDaEQseUJBQXdCO01BQ3hCLHlDQUF3QyxFQUN6QztJQTVEUDtNQStEUSwwQkFBb0MsRUFDckM7SUFoRVA7TUFtRVEsb0JBQW1CO01BQ25CLG9CQUFtQjtNQUNuQixrQkFBaUI7TUFHakIsaUJBQWdC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 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvc2xpY2stZGVmYXVsdC10aGVtZS5zY3NzIiwiLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUNMSDs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBRG5FMUI7RUFDRSxnQkFBZSxFQUNoQjs7QUFDRDs7RUFHSSxxQ0NPMkQsRURMNUQ7O0FBTEg7RUFRSSx5Q0NBbUQ7RURDbkQsaUVBQThELEVBQy9EOztBQVZIO0VBYUksd0NDTG1EO0VETW5ELHlDQ05tRCxFRE9wRDs7QUFmSDtFQWtCSSxxQ0FBK0MsRUFDaEQ7O0FBbkJIO0VBc0JJLGdEQUEwRCxFQUMzRDs7QUF2Qkg7RUEwQkkscUNDaEIyRCxFRGlCNUQ7O0FBM0JIO0VBOEJJLG9CQUFtQjtFQUNuQixpQkFBZ0IsRUFDakI7O0FBaENIO0VBbUNJLGtCQUFpQixFQUNsQjs7QUFwQ0g7RUF1Q0ksa0JBQWlCO0VBQ2pCLFVBQVM7RUFDVCxrQkFBaUIsRUE2RWxCO0VBdEhIO0lBNENNLGtCQUFpQjtJQUVqQixpQkFBZ0I7SUFDaEIsb0JBQW1CO0lBQ25CLGtCQUFpQjtJQUNqQixtQkFBa0I7SUFDbEIsdUJBQXNCLEVBb0N2QjtJQXRGTDtNQXFEUSxrQkFBaUI7TUFDakIsOEJBQTZCO01BQzdCLGlDQUFnQztNQUNoQyw4Q0FBNkM7TUFDN0MsaURBQWdEO01BQ2hELHlCQUF3QjtNQUN4Qix5Q0FBd0MsRUFDekM7SUE1RFA7TUErRFEsMEJBQW9DLEVBQ3JDO0lBaEVQO01BbUVRLG9CQUFtQjtNQUNu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 */ \ No newline at end of file diff --git a/dist/styles/css/slick-default-theme.css.map b/dist/styles/css/slick-default-theme.css.map index e0cbba728..454585789 100644 --- a/dist/styles/css/slick-default-theme.css.map +++ b/dist/styles/css/slick-default-theme.css.map @@ -2,8 +2,8 @@ "version": 3, "file": "slick-default-theme.css", "sources": [ - "../../../src/styles/slick-default-theme.scss", - "../../../src/styles/_variables.scss" + "../../../src/app/modules/angular-slickgrid/styles/slick-default-theme.scss", + "../../../src/app/modules/angular-slickgrid/styles/_variables.scss" ], "names": [], "mappings": "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" diff --git a/dist/styles/css/slick-grid.css b/dist/styles/css/slick-grid.css index 24f5f1f6e..5bd8ec695 100644 --- a/dist/styles/css/slick-grid.css +++ b/dist/styles/css/slick-grid.css @@ -25,8 +25,7 @@ overflow: hidden; outline: 0; position: relative; - -webkit-box-sizing: content-box; - box-sizing: content-box; } + box-sizing: content-box; } .slickgrid-container .slick-group-header-columns { position: relative; white-space: nowrap; @@ -121,8 +120,7 @@ .slickgrid-container .slick-header-column.ui-state-default { position: relative; display: inline-block; - -webkit-box-sizing: content-box !important; - box-sizing: content-box !important; + box-sizing: content-box !important; overflow: hidden; text-overflow: ellipsis; height: 16px; @@ -135,8 +133,7 @@ border-bottom: 0px !important; float: left; } .slickgrid-container .slick-cell { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; border-style: solid; padding: 1px 2px 1px 2px; } .slickgrid-container .slick-header-column { @@ -165,8 +162,7 @@ .slickgrid-container .slick-header-sortable .slick-column-name { margin-left: 10px; } .slickgrid-container .slick-header.ui-state-default { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .slickgrid-container .slick-column-name { text-overflow: ellipsis; } .slickgrid-container .slick-resizable-handle { @@ -187,7 +183,6 @@ .slickgrid-container .slick-cell.highlighted { background: lightskyblue; background: rgba(0, 0, 255, 0.2); - -webkit-transition: all 0.5s; transition: all 0.5s; } .slickgrid-container .slick-cell.flashing { border: 1px solid red !important; } @@ -230,12 +225,11 @@ transform: translate(0px, -100%); } .interact-drop-active { - -webkit-box-shadow: inset 0 0 8px rgba(7, 67, 128, 0.5); - box-shadow: inset 0 0 8px rgba(7, 67, 128, 0.5); } + box-shadow: inset 0 0 8px rgba(7, 67, 128, 0.5); } .interact-can-drop { opacity: .9; } .scrollbar-fix::-webkit-scrollbar { -webkit-appearance: none; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHlsZXMvc2xpY2stZ3JpZC5zY3NzIiwiLi4vLi4vLi4vc3JjL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUNMSDs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBRG5FMUI7RUFDRSxpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLG1CQUFrQjtFQUNsQixnQ0FBdUI7VUFBdkIsd0JBQXVCLEVBd1F4QjtFQTVRRDtJQU9JLG1CQUFrQjtJQUNsQixvQkFBbUI7SUFDbkIsZ0JBQWU7SUFDZixpQkFBZ0IsRUFDakI7RUFYSDtJQWNJLFlBQVc7SUFDWCxpQkFBZ0I7SUFDaEIsaUJBQWdCLEVBQ2pCO0VBakJIO0lBb0JJLG1CQUFrQjtJQUNsQixzQkFBcUI7SUFDckIsaUJBQWdCO0lBRWhCLHdCQUF1QjtJQUN2QixhQUFZO0lBQ1osa0JBQWlCO0lBQ2pCLFVBQVM7SUFDVCxhQUFZO0lBQ1osa0NDbEJtRDtJRG1CbkQsaUJBQWdCO0lBQ2hCLGdCQUFlO0lBQ2YsbUJBQWtCO0lBQ2xCLFlBQVcsRUFDWjtFQWxDSDs7Ozs7SUF5Q0ksbUJBQWtCO0lBQ2xCLFlBQVc7SUFDWCxrQ0NoQ21EO0lEaUNuRCxnQ0FBK0I7SUFDL0IsaUNBQWdDO0lBQ2hDLHNCQUFxQjtJQUNyQix1QkFBc0I7SUFDdEIsVUFBUztJQUNULFdBQVUsRUFDWDtFQWxESDtJQW9ESSxlQUFjLEVBU2Y7SUE3REg7TUFzRE0seUJBQXdCLEVBQ3pCO0lBdkRMO01BeURNLG1CQUFrQjtNQUNsQix3QkFBdUI7TUFBRyxtREFBbUQ7TUFDN0UscUNBQW1DLEVBQ3BDO0VBNURMOzs7SUFpRUksaUJBQWdCLEVBQ2pCO0VBbEVIO0lBb0VJLDhC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 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvc2xpY2stZ3JpZC5zY3NzIiwiLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3N0eWxlcy9fdmFyaWFibGVzLnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7O0dBS0c7QUNMSDs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBRG5FMUI7RUFDRSxpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLG1CQUFrQjtFQUNsQix3QkFBdUIsRUF3UXhCO0VBNVFEO0lBT0ksbUJBQWtCO0lBQ2xCLG9CQUFtQjtJQUNuQixnQkFBZTtJQUNmLGlCQUFnQixFQUNqQjtFQVhIO0lBY0ksWUFBVztJQUNYLGlCQUFnQjtJQUNoQixpQkFBZ0IsRUFDakI7RUFqQkg7SUFvQkksbUJBQWtCO0lBQ2xCLHNCQUFxQjtJQUNyQixpQkFBZ0I7SUFFaEIsd0JBQXVCO0lBQ3ZCLGFBQVk7SUFDWixrQkFBaUI7SUFDakIsVUFBUztJQUNULGFBQVk7SUFDWixrQ0NsQm1EO0lEbUJuRCxpQkFBZ0I7SUFDaEIsZ0JBQWU7SUFDZixtQkFBa0I7SUFDbEIsWUFBVyxFQUNaO0VBbENIOzs7OztJQXlDSSxtQkFBa0I7SUFDbEIsWUFBVztJQUNYLGtDQ2hDbUQ7SURpQ25ELGdDQUErQjtJQUMvQixpQ0FBZ0M7SUFDaEMsc0JBQXFCO0lBQ3JCLHVCQUFzQjtJQUN0QixVQUFTO0lBQ1QsV0FBVSxFQUNYO0VBbERIO0lBb0RJLGVBQWMsRUFTZjtJQTdESDtNQXNETSx5QkFBd0IsRUFDekI7SUF2REw7TUF5RE0sbUJBQWtCO01BQ2xCLHdCQUF1QjtNQUFHLG1EQUFtRDtNQUM3RSxxQ0FBbUMs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 */ \ No newline at end of file diff --git a/dist/styles/css/slick-grid.css.map b/dist/styles/css/slick-grid.css.map index bbd59713f..a9046aaac 100644 --- a/dist/styles/css/slick-grid.css.map +++ b/dist/styles/css/slick-grid.css.map @@ -2,8 +2,8 @@ "version": 3, "file": "slick-grid.css", "sources": [ - "../../../src/styles/slick-grid.scss", - "../../../src/styles/_variables.scss" + "../../../src/app/modules/angular-slickgrid/styles/slick-grid.scss", + "../../../src/app/modules/angular-slickgrid/styles/_variables.scss" ], "names": [], "mappings": "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" diff --git a/dist/styles/css/slick-pagination.component.css b/dist/styles/css/slick-pagination.component.css index 45e086508..7363b61bd 100644 --- a/dist/styles/css/slick-pagination.component.css +++ b/dist/styles/css/slick-pagination.component.css @@ -91,4 +91,4 @@ border-radius: 3px; } .slick-pagination .slick-pagination-settings .slick-pagination-count { padding-left: 10px; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNsaWNrLXBhZ2luYXRpb24uY29tcG9uZW50LmNzcyIsIi4uLy4uLy4uL3NyYy9zdHlsZXMvc2xpY2stcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyIsIi4uLy4uLy4uL3NyYy9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQixxQ0FBcUM7QUNBckM7Ozs7R0FJRztBQUFBOzttQ0FFZ0M7QUFDbkMsa0NBQWtDO0FBS2xDLHFFQUFxRTtBQU1yRSxVQUFVO0FBTVYsVUFBVTtBQVVWLG1DQUFtQztBQU1uQyxZQUFZO0FBYVosb0hBQW9IO0FBY3BILG1CQUFtQjtBQVFuQiwwQkFBMEI7QUR4RTFCLHdCQUF3QjtBQUN4QjtFQUNFLG1CQzhFNEM7RUQ3RTVDLHFCQzhFNEM7RUQ3RTVDLHNCQzhFNEM7RUQ3RTVDLG9CQzhFNEM7RUQ3RTVDLFlBQVc7RUFDWCxhQUFZO0VBQ1osaUJBQWdCO0VBQ2hCLHVCQUFzQjtFQUN0Qix3R0NIZ0k7RURJaEksZ0JBQWtDO0VBQ2xDLGlCQUFnQjtFQUNoQixlQzRENkMsRUQwQzlDO0VBbEhEO0lBZUksc0JBQXFCO0lBQ3JCLGFBQVksRUFDYjtFQWpCSDtJQW9CSSxzQkFBcUI7SUFDckIsbUJDb0R3QyxFRG5EekM7RUF0Qkg7SUF5Qkksc0JBQXFCO0lBQ3JCLGFBQVk7SUFDWixhQUFZLEVBaUViO0lBNUZIO01BOEJNLHNCQUFxQixFQUN0QjtJQS9CTDtNQWtDTSxvQkFBbUI7TUFDbkIsZ0JBQWU7TUFDZixzQkFBcUI7TUFDckIsZUFBYyxFQUNmO0lBdENMO01BeUNNLFVBQVMsRUFrRFY7TUEzRkw7UUE0Q1EsZ0JBQWtDO1FBQ2xDLHVCQ2lDOEMsRURoQy9DO01BOUNQO1FBaURRLGdCQUFlO1FBQ2YsaUJBQWdCLEVBK0JqQjtRQWpGUDtVQXFEVSxzQkFBcUI7VUFDckIsMkJDSjJDO1VESzNDLGdCQ0prQztVREtsQyxtQkFBbUI7VUFFbkIscUJBQWdDLEVBQ2pDO1FBM0RUO1VBK0RZLGFDVzRCLEVBQU87UUQxRS9DO1VBb0VZLGFDUzRCLEVBQU87UUQ3RS9DO1VBeUVZLGFDRzRCLEVBQU87UUQ1RS9DO1VBOEVZLGFDSDRCLEVBQU87TUQzRS9DO1FBbUZRLG9CQUFtQjtRQUNuQixvQkFBbUIsRUFNcEI7UUExRlA7VUF1RlUsMEJBQW9DO1VBQ3BDLHNCQUFnQyxFQUNqQztFQXpGVDtJQStGSSxlQUFjO0lBQ2QsYUFBWTtJQUNaLGFBQVk7SUFDWix1QkFBc0IsRUFldkI7SUFqSEg7TUFxR00sZ0JBQWtDO01BQ2xDLGlCQUFnQjtNQUNoQixhQUFZO01BQ1osWUFBVztNQUNYLGFBQVk7TUFDWix1QkM1QmdEO01ENkJoRCxtQkFBa0IsRUFDbkI7SUE1R0w7TUErR00sbUJBQWtCLEVBQ25CIiwiZmlsZSI6InNsaWNrLXBhZ2luYXRpb24uY29tcG9uZW50LmNzcyJ9 */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNsaWNrLXBhZ2luYXRpb24uY29tcG9uZW50LmNzcyIsIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvc2xpY2stcGFnaW5hdGlvbi5jb21wb25lbnQuc2NzcyIsIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQ0FqQixxQ0FBcUM7QUNBckM7Ozs7R0FJRztBQUFBOzttQ0FFZ0M7QUFDbkMsa0NBQWtDO0FBS2xDLHFFQUFxRTtBQU1yRSxVQUFVO0FBTVYsVUFBVTtBQVVWLG1DQUFtQztBQU1uQyxZQUFZO0FBYVosb0hBQW9IO0FBY3BILG1CQUFtQjtBQVFuQiwwQkFBMEI7QUR4RTFCLHdCQUF3QjtBQUN4QjtFQUNFLG1CQzhFNEM7RUQ3RTVDLHFCQzhFNEM7RUQ3RTVDLHNCQzhFNEM7RUQ3RTVDLG9CQzhFNEM7RUQ3RTVDLFlBQVc7RUFDWCxhQUFZO0VBQ1osaUJBQWdCO0VBQ2hCLHVCQUFzQjtFQUN0Qix3R0NIZ0k7RURJaEksZ0JBQWtDO0VBQ2xDLGlCQUFnQjtFQUNoQixlQzRENkMsRUQwQzlDO0VBbEhEO0lBZUksc0JBQXFCO0lBQ3JCLGFBQVksRUFDYjtFQWpCSDtJQW9CSSxzQkFBcUI7SUFDckIsbUJDb0R3QyxFRG5EekM7RUF0Qkg7SUF5Qkksc0JBQXFCO0lBQ3JCLGFBQVk7SUFDWixhQUFZLEVBaUViO0lBNUZIO01BOEJNLHNCQUFxQixFQUN0QjtJQS9CTDtNQWtDTSxvQkFBbUI7TUFDbkIsZ0JBQWU7TUFDZixzQkFBcUI7TUFDckIsZUFBYyxFQUNmO0lBdENMO01BeUNNLFVBQVMsRUFrRFY7TUEzRkw7UUE0Q1EsZ0JBQWtDO1FBQ2xDLHVCQ2lDOEMsRURoQy9DO01BOUNQO1FBaURRLGdCQUFlO1FBQ2YsaUJBQWdCLEVBK0JqQjtRQWpGUDtVQXFEVSxzQkFBcUI7VUFDckIsMkJDSjJDO1VESzNDLGdCQ0prQztVREtsQyxtQkFBbUI7VUFFbkIscUJBQWdDLEVBQ2pDO1FBM0RUO1VBK0RZLGFDVzRCLEVBQU87UUQxRS9DO1VBb0VZLGFDUzRCLEVBQU87UUQ3RS9DO1VBeUVZLGFDRzRCLEVBQU87UUQ1RS9DO1VBOEVZLGFDSDRCLEVBQU87TUQzRS9DO1FBbUZRLG9CQUFtQjtRQUNuQixvQkFBbUIsRUFNcEI7UUExRlA7VUF1RlUsMEJBQW9DO1VBQ3BDLHNCQUFnQyxFQUNqQztFQXpGVDtJQStGSSxlQUFjO0lBQ2QsYUFBWTtJQUNaLGFBQVk7SUFDWix1QkFBc0IsRUFldkI7SUFqSEg7TUFxR00sZ0JBQWtDO01BQ2xDLGlCQUFnQjtNQUNoQixhQUFZO01BQ1osWUFBVztNQUNYLGFBQVk7TUFDWix1QkM1QmdEO01ENkJoRCxtQkFBa0IsRUFDbkI7SUE1R0w7TUErR00sbUJBQWtCLEVBQ25CIiwiZmlsZSI6InNsaWNrLXBhZ2luYXRpb24uY29tcG9uZW50LmNzcyJ9 */ \ No newline at end of file diff --git a/dist/styles/css/slick-pagination.component.css.map b/dist/styles/css/slick-pagination.component.css.map index 5fdd3056c..a022bc1d7 100644 --- a/dist/styles/css/slick-pagination.component.css.map +++ b/dist/styles/css/slick-pagination.component.css.map @@ -2,8 +2,8 @@ "version": 3, "file": "slick-pagination.component.css", "sources": [ - "../../../src/styles/slick-pagination.component.scss", - "../../../src/styles/_variables.scss" + "../../../src/app/modules/angular-slickgrid/styles/slick-pagination.component.scss", + "../../../src/app/modules/angular-slickgrid/styles/_variables.scss" ], "names": [], "mappings": "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" diff --git a/dist/styles/css/slick-plugins.css b/dist/styles/css/slick-plugins.css index 8df3989d6..9f98bad8c 100644 --- a/dist/styles/css/slick-plugins.css +++ b/dist/styles/css/slick-plugins.css @@ -29,7 +29,6 @@ .slick-header-button-hidden { width: 0; - -webkit-transition: 0.2s width; transition: 0.2s width; } .slick-header-column:hover > .slick-header-button { @@ -91,4 +90,4 @@ /* Disabled */ .slick-header-menuitem-disabled { color: silver; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHlsZXMvc2xpY2stcGx1Z2lucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0g7O0VBRUU7OztLQUdHO0VBQ0gsc0JBQXFCO0VBQ3JCLFlBQVc7RUFDWCxxQkFBb0IsRUFDckI7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsYUFBWTtFQUNaLG9CQUFtQjtFQUNuQixZQUFXO0VBQ1g7OztJQUdFO0VBQ0YscUJBQW9CO0VBQ3BCLGFBQVk7RUFDWixZQUFXO0VBQ1gsNkJBQTRCO0VBQzVCLG1DQUFrQztFQUNsQyxnQkFBZSxFQUNoQjs7QUFFRDtFQUNFLFNBQVE7RUFFUiwrQkFBOEI7RUFFOUIsdUJBQXNCLEVBQ3ZCOztBQUVEO0VBQ0UsWUFBVyxFQUNaOztBQUdEOztHQUVHO0FBQ0YsaUJBQWlCO0FBQ2pCO0VBQ0UsbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixPQUFNO0VBQ04sVUFBUztFQUNULFlBQVc7RUFDWCw2QkFBNEI7RUFDNUIsaUNBQWdDO0VBQ2hDLGdCQUFlO0VBQ2YsY0FBYTtFQUNiLCtCQUE4QjtFQUM5QixpREFBaUQsRUFDbEQ7O0FBQ0Q7RUFDRSxnQkFBZTtFQUNmLGlCQUFnQixFQUNqQjs7QUFFRDs7RUFFRSxzQkFBcUIsRUFDdEI7O0FBRUQsVUFBVTtBQUNWO0VBQ0UsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQixVQUFTO0VBQ1QsYUFBWTtFQUNaLGdCQUFlLEVBQ2hCOztBQUdELGdCQUFnQjtBQUNoQjtFQUNFLGlCQUFnQjtFQUNoQixVQUFTO0VBQ1QsV0FBVTtFQUNWLGdCQUFlLEVBQ2hCOztBQUVEO0VBQ0Usc0JBQXFCO0VBQ3JCLFlBQVc7RUFDWCxhQUFZO0VBQ1osdUJBQXNCO0VBQ3RCLGtCQUFpQjtFQUNqQiw2QkFBNEI7RUFDNUIsbUNBQWtDLEVBQ25DOztBQUVEO0VBQ0Usc0JBQXFCO0VBQ3JCLHVCQUFzQixFQUN2Qjs7QUFHRCxjQUFjO0FBQ2Q7RUFDRSxjQUFhLEVBQ2QiLCJmaWxlIjoic2xpY2stcGx1Z2lucy5jc3MifQ== */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvc2xpY2stcGx1Z2lucy5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0g7O0VBRUU7OztLQUdHO0VBQ0gsc0JBQXFCO0VBQ3JCLFlBQVc7RUFDWCxxQkFBb0IsRUFDckI7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsYUFBWTtFQUNaLG9CQUFtQjtFQUNuQixZQUFXO0VBQ1g7OztJQUdFO0VBQ0YscUJBQW9CO0VBQ3BCLGFBQVk7RUFDWixZQUFXO0VBQ1gsNkJBQTRCO0VBQzVCLG1DQUFrQztFQUNsQyxnQkFBZSxFQUNoQjs7QUFFRDtFQUNFLFNBQVE7RUFJUix1QkFBc0IsRUFDdkI7O0FBRUQ7RUFDRSxZQUFXLEVBQ1o7O0FBR0Q7O0dBRUc7QUFDRixpQkFBaUI7QUFDakI7RUFDRSxtQkFBa0I7RUFDbEIsU0FBUTtFQUNSLE9BQU07RUFDTixVQUFTO0VBQ1QsWUFBVztFQUNYLDZCQUE0QjtFQUM1QixpQ0FBZ0M7RUFDaEMsZ0JBQWU7RUFDZixjQUFhO0VBQ2IsK0JBQThCO0VBQzlCLGlEQUFpRCxFQUNsRDs7QUFDRDtFQUNFLGdCQUFlO0VBQ2YsaUJBQWdCLEVBQ2pCOztBQUVEOztFQUVFLHNCQUFxQixFQUN0Qjs7QUFFRCxVQUFVO0FBQ1Y7RUFDRSxtQkFBa0I7RUFDbEIsc0JBQXFCO0VBQ3JCLFVBQVM7RUFDVCxhQUFZO0VBQ1osZ0JBQWUsRUFDaEI7O0FBR0QsZ0JBQWdCO0FBQ2hCO0VBQ0UsaUJBQWdCO0VBQ2hCLFVBQVM7RUFDVCxXQUFVO0VBQ1YsZ0JBQWUsRUFDaEI7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsWUFBVztFQUNYLGFBQVk7RUFDWix1QkFBc0I7RUFDdEIsa0JBQWlCO0VBQ2pCLDZCQUE0QjtFQUM1QixtQ0FBa0MsRUFDbkM7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsdUJBQXNCLEVBQ3ZCOztBQUdELGNBQWM7QUFDZDtFQUNFLGNBQWEsRUFDZCIsImZpbGUiOiJzbGljay1wbHVnaW5zLmNzcyJ9 */ \ No newline at end of file diff --git a/dist/styles/css/slick-plugins.css.map b/dist/styles/css/slick-plugins.css.map index 525d7f08a..c533319ec 100644 --- a/dist/styles/css/slick-plugins.css.map +++ b/dist/styles/css/slick-plugins.css.map @@ -2,7 +2,7 @@ "version": 3, "file": "slick-plugins.css", "sources": [ - "../../../src/styles/slick-plugins.scss" + "../../../src/app/modules/angular-slickgrid/styles/slick-plugins.scss" ], "names": [], "mappings": "AAAA;;GAEG;AACH,AAAa,YAAD,CAAC,kBAAkB;AAC/B,AAAA,qBAAqB,CAAC;EACpB;;;KAGG;EACH,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;EACX,aAAa,EAAE,KAAK,GACrB;;AAED,AAAA,oBAAoB,CAAC;EACnB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,KAAK;EACZ,cAAc,EAAE,GAAG;EACnB,MAAM,EAAE,GAAG;EACX;;;IAGE;EACF,aAAa,EAAE,KAAK;EACpB,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,aAAa;EAClC,MAAM,EAAE,OAAO,GAChB;;AAED,AAAA,2BAA2B,CAAC;EAC1B,KAAK,EAAE,CAAC;EAER,kBAAkB,EAAE,UAAU;EAC9B,cAAc,EAAE,UAAU;EAC1B,UAAU,EAAE,UAAU,GACvB;;AAED,AAA6B,oBAAT,AAAA,MAAM,GAAG,oBAAoB,CAAC;EAChD,KAAK,EAAE,IAAI,GACZ;;AAGD;;GAEG;AACF,iBAAiB;AACjB,AAAA,wBAAwB,CAAC;EACvB,QAAQ,EAAE,QAAQ;EAClB,KAAK,EAAE,CAAC;EACR,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,IAAI;EACX,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,WAAW;EAChC,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,IAAI;EACb,WAAW,EAAE,iBAAiB;EAC9B,iDAAiD,EAClD;;AACD,AAAA,wBAAwB,AAAA,OAAO,CAAC;EAC9B,SAAS,EAAE,IAAI;EACf,OAAO,EAAE,OAAO,GACjB;;AAED,AAA6B,oBAAT,AAAA,MAAM,GAAG,wBAAwB;AACrD,AAA4B,2BAAD,CAAC,wBAAwB,CAAC;EACnD,OAAO,EAAE,YAAY,GACtB;;AAED,UAAU;AACV,AAAA,kBAAkB,CAAC;EACjB,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,GAAG;EACZ,MAAM,EAAE,OAAO,GAChB;;AAGD,gBAAgB;AAChB,AAAA,sBAAsB,CAAC;EACrB,UAAU,EAAE,IAAI;EAChB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,OAAO,GAChB;;AAED,AAAA,sBAAsB,CAAC;EACrB,OAAO,EAAE,YAAY;EACrB,KAAK,EAAE,IAAI;EACX,MAAM,EAAE,IAAI;EACZ,cAAc,EAAE,MAAM;EACtB,YAAY,EAAE,GAAG;EACjB,iBAAiB,EAAE,SAAS;EAC5B,mBAAmB,EAAE,aAAa,GACnC;;AAED,AAAA,yBAAyB,CAAC;EACxB,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM,GACvB;;AAGD,cAAc;AACd,AAAA,+BAA+B,CAAC;EAC9B,KAAK,EAAE,MAAM,GACd" diff --git a/dist/styles/css/slickgrid-examples.css b/dist/styles/css/slickgrid-examples.css index 08c905c5a..b7c9a7269 100644 --- a/dist/styles/css/slickgrid-examples.css +++ b/dist/styles/css/slickgrid-examples.css @@ -177,4 +177,4 @@ input.editor-checkbox { .slick-row.frozen:last-child .slick-cell { border-bottom: 1px solid #999; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vc3JjL3N0eWxlcy9zbGlja2dyaWQtZXhhbXBsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBQ3pFMUI7RUFDSSxhQUFZLEVBQ2Y7O0FBQ0Q7RUFDSSxZQUFXLEVBQ2Q7O0FBQ0Q7RUFDRSx1QkFBc0I7RUFDdEIsaUJBQWdCO0VBQ2hCLGNBQWE7RUFDYixtRUFBbUU7RUFDbkUsYUFBWTtFQUNaLGFBQVk7RUFDWixrQkFBaUIsRUFDbEI7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsa0JBQWlCO0VBQ2pCLDJCQUEwQixFQUMzQjs7QUFFRDtFQUNFLHlCQUF3QjtFQUN4Qiw4QkFBNkI7RUFDN0IsMEJBQXlCLEVBQzFCOztBQUVEO0VBQ0Usd0JBQXVCLEVBQ3hCOztBQUVEO0VBQ0Usb0JBQW1CO0VBQ25CLGlCQUFnQjtFQUdoQixtQkFBa0I7RUFDbEIseUJBQXdCLEVBQ3pCOztBQUVEO0VBR0UsbUJBQWtCO0VBQ2xCLHlCQUF3QjtFQUN4QixvQkFBbUI7RUFDbkIsYUFBWTtFQUNaLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixZQUFXLEVBQ1o7O0FBRUQsNEJBQTRCO0FBQzVCO0VBQ0Usa0JBQWlCO0VBQ2pCLGtCQUFpQixFQUNsQjs7QUFFRDtFQUNFLGtCQUFpQixFQUNsQjs7QUFFRDtFQUNFLGtCQUFpQjtFQUNqQixrQkFBaUI7RUFDakIseUJBQXdCO0VBRXhCLG9CQUFtQjtFQUNuQixhQUFZLEVBQ2I7O0FBRUQ7RUFDRSxvQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxvQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxpQkFBZ0IsRUFDakI7O0FBRUQ7RUFDRSx1QkFBc0I7RUFDdEIsWUFBVyxFQUNaOztBQUVEO0VBQ0Usc0JBQXFCO0VBQ3JCLFlBQVc7RUFHWCxtQkFBa0I7RUFDbEIsOEJBQTZCLEVBQzlCOztBQUVELDRDQUE0QztBQUM1QztFQUNFLGdCQUFlO0VBQ2YsV0FBVTtFQUNWLG9CQUFtQixFQUNwQjs7QUFFRCxtQ0FBbUM7QUFDbkM7RUFDRSxZQUFXO0VBQ1gsYUFBWTtFQUNaLFVBQVM7RUFDVCxVQUFTO0VBQ1Qsd0JBQXVCO0VBQ3ZCLFdBQVU7RUFDVixXQUFVO0VBRVYsWUFBVyxFQUNaOztBQUVEO0VBQ0UsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQixZQUFXO0VBQ1gsYUFBWTtFQUNaLG9FQUFvRTtFQUNwRSxrQkFBaUI7RUFDakIsY0FBYTtFQUNiLGFBQVksRUFDYjs7QUFFRDtFQUNFLHFCQUFvQjtFQUNwQixtQkFBa0I7RUFDbEIsVUFBUztFQUNULFdBQVU7RUFDVix5RUFBeUU7RUFDekUsa0JBQWlCO0VBRWpCLGFBQVk7RUFDWixjQUFhO0VBQ2IsY0FBYTtFQUNiLGtCQUFpQixFQUNsQjs7QUFFRDtFQUNFLGtCQUFpQjtFQUNqQixrQkFBaUI7RUFFakIsWUFBVztFQUNYLGFBQVk7RUFDWix1QkFBc0I7RUFDdEIsZUFBYyxFQUNmOztBQUVEO0VBQ0UsYUFBWSxFQUNiOztBQUVEO0VBQ0UsWUFBVyxFQUNaOztBQUVEO0VBQ0UsWUFBVyxFQUNaOztBQUVEO0VBQ0UsZUFBYyxFQUNmOztBQUVEO0VBQ0UsZUFBYyxFQUNmOztBQUVELCtCQUErQjtBQUMvQjtFQUNFLFlBQVc7RUFDWCxVQUFTO0VBQ1QsdUJBQXNCLEVBQ3ZCOztBQUVELDRCQUE0QjtBQUM1QjtFQUNFLFVBQVM7RUFDVCxhQUFZO0VBQ1osV0FBVTtFQUNWLFVBQVMsRUFDVjs7QUFHRDtFQUNFLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLDZCQUE0QixFQUM3Qjs7QUFFRDtFQUNFLDhCQUE2QixFQUM5QiIsImZpbGUiOiJzbGlja2dyaWQtZXhhbXBsZXMuY3NzIn0= */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3N0eWxlcy9zbGlja2dyaWQtZXhhbXBsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBQ3pFMUI7RUFDSSxhQUFZLEVBQ2Y7O0FBQ0Q7RUFDSSxZQUFXLEVBQ2Q7O0FBQ0Q7RUFDRSx1QkFBc0I7RUFDdEIsaUJBQWdCO0VBQ2hCLGNBQWE7RUFDYixtRUFBbUU7RUFDbkUsYUFBWTtFQUNaLGFBQVk7RUFDWixrQkFBaUIsRUFDbEI7O0FBRUQ7RUFDRSxzQkFBcUI7RUFDckIsa0JBQWlCO0VBQ2pCLDJCQUEwQixFQUMzQjs7QUFFRDtFQUNFLHlCQUF3QjtFQUN4Qiw4QkFBNkI7RUFDN0IsMEJBQXlCLEVBQzFCOztBQUVEO0VBQ0Usd0JBQXVCLEVBQ3hCOztBQUVEO0VBQ0Usb0JBQW1CO0VBQ25CLGlCQUFnQjtFQUdoQixtQkFBa0I7RUFDbEIseUJBQXdCLEVBQ3pCOztBQUVEO0VBR0UsbUJBQWtCO0VBQ2xCLHlCQUF3QjtFQUN4QixvQkFBbUI7RUFDbkIsYUFBWTtFQUNaLG9CQUFtQjtFQUNuQixhQUFZO0VBQ1osbUJBQWtCO0VBQ2xCLFNBQVE7RUFDUixZQUFXLEVBQ1o7O0FBRUQsNEJBQTRCO0FBQzVCO0VBQ0Usa0JBQWlCO0VBQ2pCLGtCQUFpQixFQUNsQjs7QUFFRDtFQUNFLGtCQUFpQixFQUNsQjs7QUFFRDtFQUNFLGtCQUFpQjtFQUNqQixrQkFBaUI7RUFDakIseUJBQXdCO0VBRXhCLG9CQUFtQjtFQUNuQixhQUFZLEVBQ2I7O0FBRUQ7RUFDRSxvQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxvQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxpQkFBZ0IsRUFDakI7O0FBRUQ7RUFDRSx1QkFBc0I7RUFDdEIsWUFBVyxFQUNaOztBQUVEO0VBQ0Usc0JBQXFCO0VBQ3JCLFlBQVc7RUFHWCxtQkFBa0I7RUFDbEIsOEJBQTZCLEVBQzlCOztBQUVELDRDQUE0QztBQUM1QztFQUNFLGdCQUFlO0VBQ2YsV0FBVTtFQUNWLG9CQUFtQixFQUNwQjs7QUFFRCxtQ0FBbUM7QUFDbkM7RUFDRSxZQUFXO0VBQ1gsYUFBWTtFQUNaLFVBQVM7RUFDVCxVQUFTO0VBQ1Qsd0JBQXVCO0VBQ3ZCLFdBQVU7RUFDVixXQUFVO0VBRVYsWUFBVyxFQUNaOztBQUVEO0VBQ0UsbUJBQWtCO0VBQ2xCLHNCQUFxQjtFQUNyQixZQUFXO0VBQ1gsYUFBWTtFQUNaLG9FQUFvRTtFQUNwRSxrQkFBaUI7RUFDakIsY0FBYTtFQUNiLGFBQVksRUFDYjs7QUFFRDtFQUNFLHFCQUFvQjtFQUNwQixtQkFBa0I7RUFDbEIsVUFBUztFQUNULFdBQVU7RUFDVix5RUFBeUU7RUFDekUsa0JBQWlCO0VBRWpCLGFBQVk7RUFDWixjQUFhO0VBQ2IsY0FBYTtFQUNiLGtCQUFpQixFQUNsQjs7QUFFRDtFQUNFLGtCQUFpQjtFQUNqQixrQkFBaUI7RUFFakIsWUFBVztFQUNYLGFBQVk7RUFDWix1QkFBc0I7RUFDdEIsZUFBYyxFQUNmOztBQUVEO0VBQ0UsYUFBWSxFQUNiOztBQUVEO0VBQ0UsWUFBVyxFQUNaOztBQUVEO0VBQ0UsWUFBVyxFQUNaOztBQUVEO0VBQ0UsZUFBYyxFQUNmOztBQUVEO0VBQ0UsZUFBYyxFQUNmOztBQUVELCtCQUErQjtBQUMvQjtFQUNFLFlBQVc7RUFDWCxVQUFTO0VBQ1QsdUJBQXNCLEVBQ3ZCOztBQUVELDRCQUE0QjtBQUM1QjtFQUNFLFVBQVM7RUFDVCxhQUFZO0VBQ1osV0FBVTtFQUNWLFVBQVMsRUFDVjs7QUFHRDtFQUNFLG9CQUFtQixFQUNwQjs7QUFFRDtFQUNFLDZCQUE0QixFQUM3Qjs7QUFFRDtFQUNFLDhCQUE2QixFQUM5QiIsImZpbGUiOiJzbGlja2dyaWQtZXhhbXBsZXMuY3NzIn0= */ \ No newline at end of file diff --git a/dist/styles/css/slickgrid-examples.css.map b/dist/styles/css/slickgrid-examples.css.map index a4b4f31f8..678167a0c 100644 --- a/dist/styles/css/slickgrid-examples.css.map +++ b/dist/styles/css/slickgrid-examples.css.map @@ -2,8 +2,8 @@ "version": 3, "file": "slickgrid-examples.css", "sources": [ - "../../../src/styles/slickgrid-examples.scss", - "../../../src/styles/_variables.scss" + "../../../src/app/modules/angular-slickgrid/styles/slickgrid-examples.scss", + "../../../src/app/modules/angular-slickgrid/styles/_variables.scss" ], "names": [], "mappings": "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" diff --git a/dist/styles/css/slickgrid-theme-bootstrap.css b/dist/styles/css/slickgrid-theme-bootstrap.css index 390796aae..68cf1f3e6 100644 --- a/dist/styles/css/slickgrid-theme-bootstrap.css +++ b/dist/styles/css/slickgrid-theme-bootstrap.css @@ -26,8 +26,7 @@ overflow: hidden; outline: 0; position: relative; - -webkit-box-sizing: content-box; - box-sizing: content-box; } + box-sizing: content-box; } .slickgrid-container .slick-group-header-columns { position: relative; white-space: nowrap; @@ -122,8 +121,7 @@ .slickgrid-container .slick-header-column.ui-state-default { position: relative; display: inline-block; - -webkit-box-sizing: content-box !important; - box-sizing: content-box !important; + box-sizing: content-box !important; overflow: hidden; text-overflow: ellipsis; height: 16px; @@ -136,8 +134,7 @@ border-bottom: 0px !important; float: left; } .slickgrid-container .slick-cell { - -webkit-box-sizing: border-box; - box-sizing: border-box; + box-sizing: border-box; border-style: solid; padding: 1px 2px 1px 2px; } .slickgrid-container .slick-header-column { @@ -166,8 +163,7 @@ .slickgrid-container .slick-header-sortable .slick-column-name { margin-left: 10px; } .slickgrid-container .slick-header.ui-state-default { - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } + box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } .slickgrid-container .slick-column-name { text-overflow: ellipsis; } .slickgrid-container .slick-resizable-handle { @@ -188,7 +184,6 @@ .slickgrid-container .slick-cell.highlighted { background: lightskyblue; background: rgba(0, 0, 255, 0.2); - -webkit-transition: all 0.5s; transition: all 0.5s; } .slickgrid-container .slick-cell.flashing { border: 1px solid red !important; } @@ -231,8 +226,7 @@ transform: translate(0px, -100%); } .interact-drop-active { - -webkit-box-shadow: inset 0 0 8px rgba(7, 67, 128, 0.5); - box-shadow: inset 0 0 8px rgba(7, 67, 128, 0.5); } + box-shadow: inset 0 0 8px rgba(7, 67, 128, 0.5); } .interact-can-drop { opacity: .9; } @@ -265,7 +259,6 @@ border: 1px solid #b8b8b8; border-radius: 3px; padding: 6px; - -webkit-box-shadow: 2px 2px 2px silver; box-shadow: 2px 2px 2px silver; min-width: 150px; cursor: default; @@ -337,7 +330,6 @@ .slick-header-button-hidden { width: 0; - -webkit-transition: 0.2s width; transition: 0.2s width; } .slick-header-column:hover > .slick-header-button { @@ -432,7 +424,6 @@ .slickgrid-container .slick-header-columns { border-bottom: 1px solid fade(black, 3%); - background: -webkit-gradient(linear, left top, left bottom, color-stop(60%, transparent), to(rgba(0, 0, 0, 0.1))); background: linear-gradient(transparent 60%, rgba(0, 0, 0, 0.1)); } .slickgrid-container .slick-header-column { @@ -465,8 +456,7 @@ padding-bottom: 4px; padding-left: 4px; padding-right: 4px; - -webkit-box-sizing: border-box; - box-sizing: border-box; } + box-sizing: border-box; } .slickgrid-container .slick-row .slick-cell.invalid { border-color: red; -moz-animation-duration: 0.2s; @@ -529,11 +519,9 @@ @-webkit-keyframes slickgrid-invalid-hilite { from { - -webkit-box-shadow: 0 0 6px red; - box-shadow: 0 0 6px red; } + box-shadow: 0 0 6px red; } to { - -webkit-box-shadow: none; - box-shadow: none; } } + box-shadow: none; } } .slickgrid-container .slick-header-menubutton { background-position: center center; @@ -899,7 +887,6 @@ input.editor-checkbox { padding: 0 6px; width: 100%; height: 27px; - -webkit-box-sizing: border-box; box-sizing: border-box; } .slickgrid-container .slick-header-columns { background: transparent; } @@ -966,4 +953,4 @@ input.editor-checkbox { right: 2px; } .slickgrid-container .slick-header-columns .slick-header-column .slick-resizable-handle:hover { border-right: 1px solid #d0d0d0; } -/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNsaWNrZ3JpZC10aGVtZS1ib290c3RyYXAuY3NzIiwiLi4vLi4vLi4vc3JjL3N0eWxlcy9zbGljay1ncmlkLnNjc3MiLCIuLi8uLi8uLi9zcmMvc3R5bGVzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL3NyYy9zdHlsZXMvc2xpY2stY29udHJvbHMuc2NzcyIsIi4uLy4uLy4uL3NyYy9zdHlsZXMvc2xpY2stcGx1Z2lucy5zY3NzIiwiLi4vLi4vLi4vc3JjL3N0eWxlcy9zbGljay1kZWZhdWx0LXRoZW1lLnNjc3MiLCIuLi8uLi8uLi9zcmMvc3R5bGVzL3NsaWNrZ3JpZC1leGFtcGxlcy5zY3NzIiwiLi4vLi4vLi4vc3JjL3N0eWxlcy9zbGljay1ib290c3RyYXAuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7Ozs7O0dBS0c7QUNMSDs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBRG5FMUI7RUFDRSxpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLG1CQUFrQjtFQUNsQixnQ0FBdUI7VUFBdkIsd0JBQXVCLEVBd1F4QjtFQTVRRDtJQU9JLG1CQUFrQjtJQUNsQixvQkFBbUI7SUFDbkIsZ0JBQWU7SUFDZixpQkFBZ0IsRUFDakI7RUFYSDtJQWNJLFlBQVc7SUFDWCxpQkFBZ0I7SUFDaEIsaUJBQWdCLEVBQ2pCO0VBakJIO0lBb0JJLG1CQUFrQjtJQUNsQixzQkFBcUI7SUFDckIsaUJBQWdCO0lBRWhCLHdCQUF1QjtJQUN2QixhQUFZO0lBQ1osa0JBQWlCO0lBQ2pCLFVBQVM7SUFDVCxhQUFZO0lBQ1osa0NDbEJtRDtJRG1CbkQsaUJBQWdCO0lBQ2hCLGdCQUFlO0lBQ2YsbUJBQWtCO0lBQ2xCLFlBQVcsRUFDWjtFQWxDSDs7Ozs7SUF5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QWlFUSxhQUFZO01BQ1osZUFBYztNQUNkLFdBQVU7TUFDVixpQkFBZ0IsRUFDakI7SUFyRVA7TUF1RVEsZUFBYztNQUNkLFdBQVU7TUFDVix1QkFBc0I7TUFDdEIsaUJBQWdCLEVBQ2pCO0lBM0VQO01BNkVRLDBCTHREa0QsRUt1RG5EO0lBOUVQO01BaUZVLDBCTDFEZ0QsRUsyRGpEO0VBbEZUO0lBd0ZJLG1CTG5EMEM7SUtvRDFDLHFCTG5EMEM7SUtvRDFDLHNCTG5EMEM7SUtvRDFDLG9CTG5EMEM7SUtvRDFDLHlCQUFxRCxFQUN0RDtFQTdGSDtJQWlHTSxhQUFZO0lBQ1osaUJBQWdCLEVBQ2pCO0VBbkdMOzs7SUF1R00sZ0JBQWU7SUFDZixlTHRFdUM7SUt1RXZDLFlMeEVzQztJS3lFdEMsYUwxRXNDO0lLNEV0QywrQkFBOEI7SUFDOUIsdUJBQXNCLEVBQ3ZCO0VBOUdMO0lBa0hJLHdCTGpFK0MsRUtxSmhEO0lBdE1IO01BdUhRLGVBQWMsRUFDZjtJQXhIUDtNQTJITSxhTHZGNEQ7TUt3RjVELGtCTDVIbUM7TUs2SG5DLFVBQVM7TUFDVCxtQkx6RndDO01LMEZ4QyxxQkx6RndDO01LMEZ4QyxzQkx6RndDO01LMEZ4QyxvQkx6RndDO01LMEZ4QyxvQkFBbUI7TUFTakIsY0FBYztNQUNkLHdCTDNGMkM7TUs0RjNDLHdHTDVJMEg7TUs2STFILFlMeEZrQztNS3lGbEMsa0JBQWlCLEVBc0RwQjtNQXJNTDtRQVFJLHNCTGNnRDtRS2JoRCxnQkxUcUMsRUtxSWxDO1FBcklQO1VBV00sZ0JMWG1DLEVLWXBDO1FBQ0Q7VUFDRSxrQkFBaUIsRUFDbEI7TUFmTDtRQWlKVSxZTDNGZ0MsRUs0RmpDO01BbEpUO1FBb0pVLFlMOUZnQyxFSytGakM7TUFySlQ7UUEySVEsY0FBYztRQUNkLHdCTDNGMkM7UUs0RjNDLHdHTDVJMEg7UUs2STFILFlMeEZrQztRS3lGbEMsa0JBQWlCLEVBWWxCO1FBM0pQO1VBaUpVLFlMM0ZnQyxFSzRGakM7UUFsSlQ7VUFvSlUsWUw5RmdDLEVLK0ZqQztNQXJKVDtRQThKUSxtQkFBa0I7UUFDbEIsWUx6R2tDLEVLMEduQztNQWhLUDtRQWtLUSxZTDVHa0MsRUs2R25DO01BbktQO1FBc0tRLG1CQUFrQjtRQUNsQixzQkFBcUI7UUFDckIsV0FBVTtRQUNWLFlBQVc7UUFDWCxXQUFVO1FBQ1YsV0FBVTtRQUNWLFVBQXdDLEVBQ3pDO01BN0tQO1FBZ0xRLGlCQUFnQjtRQUNoQiwyQkxwSTZDO1FLcUk3QyxnQkxwSW9DLEVLcUlyQztNQW5MUDtRQXNMVSxhTHZJOEIsRUFBTztNSy9DL0M7UUEyTFUsYUwzSThCLEVBQU87TUtoRC9DO1FBK0xRLFdBQVU7UUFDVixXQUFVLEVBQ1g7TUFqTVA7UUFtTVEsZ0NMMUppRCxFSzJKbEQiLCJmaWxlIjoic2xpY2tncmlkLXRoZW1lLWJvb3RzdHJhcC5jc3MifQ== */ \ No newline at end of file +/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNsaWNrZ3JpZC10aGVtZS1ib290c3RyYXAuY3NzIiwiLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3N0eWxlcy9zbGljay1ncmlkLnNjc3MiLCIuLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYW5ndWxhci1zbGlja2dyaWQvc3R5bGVzL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvc2xpY2stY29udHJvbHMuc2NzcyIsIi4uLy4uLy4uL3NyYy9hcHAvbW9kdWxlcy9hbmd1bGFyLXNsaWNrZ3JpZC9zdHlsZXMvc2xpY2stcGx1Z2lucy5zY3NzIiwiLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3N0eWxlcy9zbGljay1kZWZhdWx0LXRoZW1lLnNjc3MiLCIuLi8uLi8uLi9zcmMvYXBwL21vZHVsZXMvYW5ndWxhci1zbGlja2dyaWQvc3R5bGVzL3NsaWNrZ3JpZC1leGFtcGxlcy5zY3NzIiwiLi4vLi4vLi4vc3JjL2FwcC9tb2R1bGVzL2FuZ3VsYXItc2xpY2tncmlkL3N0eWxlcy9zbGljay1ib290c3RyYXAuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUNBakI7Ozs7O0dBS0c7QUNMSDs7OztHQUlHO0FBQUE7O21DQUVnQztBQUNuQyxrQ0FBa0M7QUFLbEMscUVBQXFFO0FBTXJFLFVBQVU7QUFNVixVQUFVO0FBVVYsbUNBQW1DO0FBTW5DLFlBQVk7QUFhWixvSEFBb0g7QUFjcEgsbUJBQW1CO0FBUW5CLDBCQUEwQjtBRG5FMUI7RUFDRSxpQkFBZ0I7RUFDaEIsV0FBVTtFQUNWLG1CQUFrQjtFQUNsQix3QkFBdUIsRUF3UXhCO0VBNVFEO0lBT0ksbUJBQWtCO0lBQ2xCLG9CQUFtQjtJQUNuQixnQkFBZTtJQUNmLGlCQUFnQixFQUNqQjtFQVhIO0lBY0ksWUFBVztJQUNYLGlCQUFnQjtJQUNo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UDtNQTREUSx5QkxSd0Q7TUtTeEQsc0JBQXFCO01BQ3JCLG9CQUFtQixFQUNwQjtJQS9EUDtNQWlFUSxhQUFZO01BQ1osZUFBYztNQUNkLFdBQVU7TUFDVixpQkFBZ0IsRUFDakI7SUFyRVA7TUF1RVEsZUFBYztNQUNkLFdBQVU7TUFDVix1QkFBc0I7TUFDdEIsaUJBQWdCLEVBQ2pCO0lBM0VQO01BNkVRLDBCTHREa0QsRUt1RG5EO0lBOUVQO01BaUZVLDBCTDFEZ0QsRUsyRGpEO0VBbEZUO0lBd0ZJLG1CTG5EMEM7SUtvRDFDLHFCTG5EMEM7SUtvRDFDLHNCTG5EMEM7SUtvRDFDLG9CTG5EMEM7SUtvRDFDLHlCQUFxRCxFQUN0RDtFQTdGSDtJQWlHTSxhQUFZO0lBQ1osaUJBQWdCLEVBQ2pCO0VBbkdMOzs7SUF1R00sZ0JBQWU7SUFDZixlTHRFdUM7SUt1RXZDLFlMeEVzQztJS3lFdEMsYUwxRXNDO0lLNkV0Qyx1QkFBc0IsRUFDdkI7RUE5R0w7SUFrSEksd0JMakUrQyxFS3FKaEQ7SUF0TUg7TUF1SFEsZUFBYyxFQUNmO0lBeEhQO01BMkhNLGFMdkY0RDtNS3dGNUQsa0JMNUhtQztNSzZIbkMsVUFBUztNQUNULG1CTHpGd0M7TUswRnhDLHFCTHpGd0M7TUswRnhDLHNCTHpGd0M7TUswRnhDLG9CTHpGd0M7TUswRnhDLG9CQUFtQjtNQVNqQixjQUFjO01BQ2Qsd0JMM0YyQztNSzRGM0Msd0dMNUkwSDtNSzZJMUgsWUx4RmtDO01LeUZsQyxrQkFBaUIsRUFzRHBCO01Bck1MO1FBUUksc0JMY2dEO1FLYmhELGdCTFRxQyxFS3FJbEM7UUFySVA7VUFXTSxnQkxYbUMsRUtZcEM7UUFDRDtVQUNFLGtCQUFpQixFQUNsQjtNQWZMO1FBaUpVLFlMM0ZnQyxFSzRGakM7TUFsSlQ7UUFvSlUsWUw5RmdDLEVLK0ZqQztNQXJKVDtRQTJJUSxjQUFjO1FBQ2Qsd0JMM0YyQztRSzRGM0Msd0dMNUkwSDtRSzZJMUgsWUx4RmtDO1FLeUZsQyxrQkFBaUIsRUFZbEI7UUEzSlA7VUFpSlUsWUwzRmdDLEVLNEZqQztRQWxKVDtVQW9KVSxZTDlGZ0MsRUsrRmpDO01BckpUO1FBOEpRLG1CQUFrQjtRQUNsQixZTHpHa0MsRUswR25DO01BaEtQO1FBa0tRLFlMNUdrQyxFSzZHbkM7TUFuS1A7UUFzS1EsbUJBQWtCO1FBQ2xCLHNCQUFxQjtRQUNyQixXQUFVO1FBQ1YsWUFBVztRQUNYLFdBQVU7UUFDVixXQUFVO1FBQ1YsVUFBd0MsRUFDekM7TUE3S1A7UUFnTFEsaUJBQWdCO1FBQ2hCLDJCTHBJNkM7UUtxSTdDLGdCTHBJb0MsRUtxSXJDO01BbkxQO1FBc0xVLGFMdkk4QixFQUFPO01LL0MvQztRQTJMVSxhTDNJOEIsRUFBTztNS2hEL0M7UUErTFEsV0FBVTtRQUNWLFdBQVUsRUFDWDtNQWpNUDtRQW1NUSxnQ0wxSmlELEVLMkpsRCIsImZpbGUiOiJzbGlja2dyaWQtdGhlbWUtYm9vdHN0cmFwLmNzcyJ9 */ \ No newline at end of file diff --git a/dist/styles/css/slickgrid-theme-bootstrap.css.map b/dist/styles/css/slickgrid-theme-bootstrap.css.map index 473267292..357bd0bed 100644 --- a/dist/styles/css/slickgrid-theme-bootstrap.css.map +++ b/dist/styles/css/slickgrid-theme-bootstrap.css.map @@ -2,14 +2,14 @@ "version": 3, "file": "slickgrid-theme-bootstrap.css", "sources": [ - "../../../src/styles/slickgrid-theme-bootstrap.scss", - "../../../src/styles/slick-grid.scss", - "../../../src/styles/_variables.scss", - "../../../src/styles/slick-controls.scss", - "../../../src/styles/slick-plugins.scss", - "../../../src/styles/slick-default-theme.scss", - "../../../src/styles/slickgrid-examples.scss", - "../../../src/styles/slick-bootstrap.scss" + "../../../src/app/modules/angular-slickgrid/styles/slickgrid-theme-bootstrap.scss", + "../../../src/app/modules/angular-slickgrid/styles/slick-grid.scss", + "../../../src/app/modules/angular-slickgrid/styles/_variables.scss", + "../../../src/app/modules/angular-slickgrid/styles/slick-controls.scss", + "../../../src/app/modules/angular-slickgrid/styles/slick-plugins.scss", + "../../../src/app/modules/angular-slickgrid/styles/slick-default-theme.scss", + "../../../src/app/modules/angular-slickgrid/styles/slickgrid-examples.scss", + "../../../src/app/modules/angular-slickgrid/styles/slick-bootstrap.scss" ], "names": [], "mappings": "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" diff --git a/demo/e2e/app.e2e-spec.ts b/e2e/app.e2e-spec.ts similarity index 86% rename from demo/e2e/app.e2e-spec.ts rename to e2e/app.e2e-spec.ts index e3fc3e22d..29a76b6b2 100644 --- a/demo/e2e/app.e2e-spec.ts +++ b/e2e/app.e2e-spec.ts @@ -1,6 +1,6 @@ import { AppPage } from './app.po'; -describe('test-slickgrid App', () => { +describe('datagrid App', () => { let page: AppPage; beforeEach(() => { diff --git a/demo/e2e/app.po.ts b/e2e/app.po.ts similarity index 100% rename from demo/e2e/app.po.ts rename to e2e/app.po.ts diff --git a/demo/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json similarity index 100% rename from demo/e2e/tsconfig.e2e.json rename to e2e/tsconfig.e2e.json diff --git a/karma.conf.js b/karma.conf.js index c64fca6cf..af139fada 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,97 +1,33 @@ -// Karma configuration for Unit testing +// Karma configuration file, see link for more information +// https://karma-runner.github.io/1.0/config/configuration-file.html module.exports = function (config) { - - const configuration = { - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], - - plugins: [ - require('karma-jasmine'), - require('karma-chrome-launcher'), - require('karma-webpack'), - require('karma-sourcemap-loader'), - require('karma-spec-reporter') - ], - - // list of files / patterns to load in the browser - files: [ - { pattern: 'spec.bundle.js', watched: false } - ], - - // list of files to exclude - exclude: [ - ], - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - 'spec.bundle.js': ['webpack', 'sourcemap'] - }, - - // webpack - webpack: { - resolve: { - extensions: ['.ts', '.js'] - }, - module: { - rules: [ - { - test: /\.ts/, - loaders: ['ts-loader', 'source-map-loader'], - exclude: /node_modules/ - } - ], - exprContextCritical: false - }, - devtool: 'inline-source-map', - performance: { hints: false } - }, - - webpackServer: { - noInfo: true - }, - - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['spec'], - - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['Chrome'], - - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: true - - }; - - config.set(configuration); - -} + config.set({ + basePath: '', + frameworks: ['jasmine', '@angular/cli'], + plugins: [ + require('karma-jasmine'), + require('karma-chrome-launcher'), + require('karma-jasmine-html-reporter'), + require('karma-coverage-istanbul-reporter'), + require('@angular/cli/plugins/karma') + ], + client:{ + clearContext: false // leave Jasmine Spec Runner output visible in browser + }, + coverageIstanbulReporter: { + reports: [ 'html', 'lcovonly' ], + fixWebpackSourcePaths: true + }, + angularCli: { + environment: 'dev' + }, + reporters: ['progress', 'kjhtml'], + port: 9876, + colors: true, + logLevel: config.LOG_INFO, + autoWatch: true, + browsers: ['Chrome'], + singleRun: false + }); +}; diff --git a/ng-package.json b/ng-package.json new file mode 100644 index 000000000..ca7a67f21 --- /dev/null +++ b/ng-package.json @@ -0,0 +1,8 @@ +{ + "$schema": "./node_modules/ng-packagr/ng-package.schema.json", + "dest": "dist", + "workingDirectory": ".ng_build", + "lib": { + "entryFile": "public_api.ts" + } +} diff --git a/package-lock.json b/package-lock.json index 1a65508a7..8a49b9796 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,4461 +1,9035 @@ { - "name": "angular-slickgrid", - "version": "0.0.1", - "lockfileVersion": 1, - "dependencies": { - "@angular/animations": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.1.0.tgz", - "integrity": "sha1-l7ZCruAbVAbgPsZeSZNCupHi3Tg=", - "dev": true - }, - "@angular/common": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.1.0.tgz", - "integrity": "sha1-Q3D1aeUd3ZmWO39KpYwaXcxf6lI=", - "dev": true - }, - "@angular/compiler": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.1.0.tgz", - "integrity": "sha1-vhreW2rsgfA8KdUry5WSWiiQDcs=", - "dev": true - }, - "@angular/compiler-cli": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.1.0.tgz", - "integrity": "sha1-cnqq2ov9lChemBiZWSUEj3/fEgA=", - "dev": true - }, - "@angular/core": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.1.0.tgz", - "integrity": "sha1-cuwXMxaHlXGIDJxIPtbfwMqrlLA=", - "dev": true - }, - "@angular/platform-browser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.1.0.tgz", - "integrity": "sha1-uYE4a+Gjbyr38GeUR/2XtyZ7Jd4=", - "dev": true - }, - "@angular/platform-browser-dynamic": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.1.0.tgz", - "integrity": "sha1-AlDYLUq9Nr5guzH8dEisbigDZpA=", - "dev": true - }, - "@angular/platform-server": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-4.1.0.tgz", - "integrity": "sha1-YQChL+PoVoyb9fwnr3nlKqpx/ts=", - "dev": true - }, - "@angular/tsc-wrapped": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.1.0.tgz", - "integrity": "sha1-B8vWHZGt3kwtr5pBYFFSlSuIMrM=", - "dev": true - }, - "@compodoc/compodoc": { - "version": "1.0.0-beta.10", - "resolved": "https://registry.npmjs.org/@compodoc/compodoc/-/compodoc-1.0.0-beta.10.tgz", - "integrity": "sha512-FU8K8H0aKUa8dHazccSnu/pe4qDJeQ0xGt96o1i+jHOAmMYXJuST6lrUiga2yB20cAqDOC14eBgx0jcwML6aWw==", - "dev": true - }, - "@compodoc/ngd-core": { - "version": "2.0.0-alpha.1", - "resolved": "https://registry.npmjs.org/@compodoc/ngd-core/-/ngd-core-2.0.0-alpha.1.tgz", - "integrity": "sha1-L0+d8QzPJMII4rq6rgtDjLcv23c=", - "dev": true - }, - "@compodoc/ngd-transformer": { - "version": "2.0.0-alpha.3", - "resolved": "https://registry.npmjs.org/@compodoc/ngd-transformer/-/ngd-transformer-2.0.0-alpha.3.tgz", - "integrity": "sha1-h/bj9Baa4bL4725a2WAGK738qY8=", - "dev": true, - "dependencies": { - "fs-extra": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-2.1.2.tgz", - "integrity": "sha1-BGxwFjzvmq1GsOSn+kZ/si1x3jU=", - "dev": true - } - } - }, - "@types/jasmine": { - "version": "2.5.52", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.52.tgz", - "integrity": "sha512-UPh5iFLlmAJ0W1jbzKyVMAC4CmvZAA6wxA9ES+SrzWvUxi5ZZfptxiIAdC6JeYlwRJLDilL3ckq4pzW1J3mngg==", - "dev": true - }, - "@types/node": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-8.0.1.tgz", - "integrity": "sha512-bys2VRs6H7HP8S26aHgPWSiSX7q81TToe5HSSvl5bQjoSElQ2SwbGw2p6/DSDb7Vr0oKhewFao9ZuTn8DSag9Q==", - "dev": true - }, - "accepts": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", - "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", - "dev": true - }, - "acorn": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.0.3.tgz", - "integrity": "sha1-xGDfCEkUY/AozLguqzcwvwEIez0=", - "dev": true - }, - "acorn-dynamic-import": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", - "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", - "dev": true, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } - } - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "ajv": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.0.tgz", - "integrity": "sha1-wXNQJMXaLvdcwZBxMHPUTwmL9IY=", - "dev": true - }, - "ajv-keywords": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", - "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", - "dev": true - }, - "align-text": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", - "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true - }, - "amdefine": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", - "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", - "dev": true - }, - "ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true - }, - "anymatch": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.0.tgz", - "integrity": "sha1-o+Uvo5FoyCX/V7AkgSbOWo/5VQc=", - "dev": true - }, - "apache-crypt": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.1.tgz", - "integrity": "sha1-1vxyqm0n2ZyVqU/RiNcx7v/6Zjw=", - "dev": true - }, - "apache-md5": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.2.tgz", - "integrity": "sha1-7klza2ObTxCLbp5ibG2pkwa0FpI=", - "dev": true - }, - "app-root-path": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", - "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", - "dev": true - }, - "arr-diff": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", - "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", - "dev": true - }, - "arr-flatten": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.0.3.tgz", - "integrity": "sha1-onTthawIhJtr14R8RYB0XcUa37E=", - "dev": true - }, - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", - "dev": true - }, - "array-slice": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", - "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", - "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", - "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "asn1.js": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", - "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", - "dev": true - }, - "assert": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", - "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", - "dev": true - }, - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "async-each": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", - "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", - "dev": true - }, - "babel-code-frame": { - "version": "6.22.0", - "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", - "dev": true - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.0.tgz", - "integrity": "sha1-o5mS1yNYSBGYK+XikLtqU9hnAPE=", - "dev": true - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true - }, - "basic-auth": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-1.1.0.tgz", - "integrity": "sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcryptjs": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", - "integrity": "sha1-mrVie5PmBiH/fNrF2pczAn3x0Ms=", - "dev": true - }, - "beeper": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/beeper/-/beeper-1.1.1.tgz", - "integrity": "sha1-5tXqjF2tABMEpwsiY4RH9pyy+Ak=", - "dev": true - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true - }, - "big.js": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", - "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", - "dev": true - }, - "binary-extensions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.8.0.tgz", - "integrity": "sha1-SOyNFt9Dd+rl+liEaCSAr02Vx3Q=", - "dev": true - }, - "blob": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", - "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", - "dev": true - }, - "bluebird": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", - "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", - "dev": true - }, - "bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==", - "dev": true - }, - "body-parser": { - "version": "1.17.2", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", - "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", - "dev": true, - "dependencies": { - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "brace-expansion": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", - "dev": true - }, - "braces": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", - "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", - "dev": true - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browser-resolve": { - "version": "1.11.2", - "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.2.tgz", - "integrity": "sha1-j/CbCixCFxihBRwmCzLkj0QpOM4=", - "dev": true, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browserify-aes": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", - "dev": true - }, - "browserify-cipher": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", - "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", - "dev": true - }, - "browserify-des": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", - "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", - "dev": true - }, - "browserify-rsa": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", - "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", - "dev": true - }, - "browserify-sign": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", - "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", - "dev": true - }, - "browserify-zlib": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", - "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", - "dev": true - }, - "buffer": { - "version": "4.9.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", - "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "bytes": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", - "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", - "dev": true - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "center-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", - "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true - }, - "cheerio": { - "version": "1.0.0-rc.1", - "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-1.0.0-rc.1.tgz", - "integrity": "sha1-KvNzOeq3E+9rcs3pjO+mcrh2Qf4=", - "dev": true - }, - "chokidar": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", - "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", - "dev": true - }, - "cipher-base": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.3.tgz", - "integrity": "sha1-7qvxlEGc6QDaMBjCB9IS8qbfCgc=", - "dev": true - }, - "cliui": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", - "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", - "dev": true, - "dependencies": { - "wordwrap": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", - "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true - } - } - }, - "clone": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", - "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", - "dev": true - }, - "clone-stats": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", - "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", - "dev": true - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", - "dev": true - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codelyzer": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-3.1.1.tgz", - "integrity": "sha1-ZtvcqLF2YEcrtNeRU8D5LmO7KLY=", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "combine-lists": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", - "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", - "dev": true - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", - "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "connect": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.5.1.tgz", - "integrity": "sha1-bTDXpjx/FwhXprOqazY9lz3KWI4=", - "dev": true - }, - "console-browserify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", - "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", - "dev": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-type": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", - "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", - "dev": true - }, - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=", - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cors": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.3.tgz", - "integrity": "sha1-TPeOHSMymnSWsvwiJbd8pbteuAI=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, - "create-ecdh": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", - "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", - "dev": true - }, - "create-hash": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", - "dev": true - }, - "create-hmac": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", - "dev": true - }, - "cross-spawn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz", - "integrity": "sha1-e5JHYhwjrf3ThWAEqCPL45dCTUE=", - "dev": true, - "dependencies": { - "lru-cache": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", - "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", - "dev": true - } - } - }, - "crypto-browserify": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.0.tgz", - "integrity": "sha1-NlKgkGq5sqfgw85mpAjpV6JIVSI=", - "dev": true - }, - "css-select": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", - "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", - "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", - "dev": true - }, - "css-what": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", - "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", - "dev": true - }, - "cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true - }, - "cssesc": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", - "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", - "dev": true - }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "d": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", - "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", - "dev": true - }, - "date-now": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", - "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", - "dev": true - }, - "dateformat": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.0.0.tgz", - "integrity": "sha1-J0Pjq7XD/CRi5SfcpEXgTp9N7hc=", - "dev": true - }, - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true - }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true - }, - "depd": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.0.tgz", - "integrity": "sha1-4b2Cxqq2ztlluXuIsX7T5SjKGMM=", - "dev": true - }, - "des.js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", - "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", - "dev": true - }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", - "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", - "dev": true - }, - "diffie-hellman": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", - "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", - "dev": true - }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true - }, - "dom-serializer": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", - "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", - "dev": true, - "dependencies": { - "domelementtype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", - "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", - "dev": true - } - } - }, - "domain-browser": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", - "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", - "dev": true - }, - "domelementtype": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", - "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", - "dev": true - }, - "domhandler": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.1.tgz", - "integrity": "sha1-iS5HAAqZvlW783dP/qBWHYh5wlk=", - "dev": true - }, - "domutils": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", - "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", - "dev": true - }, - "dot": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/dot/-/dot-1.1.2.tgz", - "integrity": "sha1-xzdwGfxOVQeYkosrmv62ar+h8vk=", - "dev": true - }, - "duplexer": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", - "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", - "dev": true - }, - "duplexer2": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", - "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", - "dev": true - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "elliptic": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "encodeurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", - "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", - "dev": true - }, - "engine.io": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", - "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", - "dev": true, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } - }, - "engine.io-client": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", - "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", - "dev": true, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } - }, - "engine.io-parser": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", - "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", - "dev": true - }, - "enhanced-resolve": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.1.0.tgz", - "integrity": "sha1-n0tib1dyRe3PSyrYPYbhf09CHew=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "entities": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", - "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", - "dev": true - }, - "errno": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", - "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", - "dev": true - }, - "error-ex": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", - "dev": true - }, - "es5-ext": { - "version": "0.10.23", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.23.tgz", - "integrity": "sha1-dXi1G+l0IHpUh4IbVlOMIk5Oezg=", - "dev": true - }, - "es6-iterator": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", - "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", - "dev": true - }, - "es6-map": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", - "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", - "dev": true - }, - "es6-promise": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", - "dev": true - }, - "es6-set": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", - "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", - "dev": true - }, - "es6-symbol": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", - "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", - "dev": true - }, - "es6-weak-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", - "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "escope": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", - "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", - "dev": true - }, - "esrecurse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", - "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, - "estraverse": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", - "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", - "dev": true - }, - "esutils": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", - "dev": true - }, - "etag": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", - "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true - }, - "event-stream": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", - "integrity": "sha1-SrTJoPWlTbkzi0w02Gv86PSzVXE=", - "dev": true - }, - "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", - "dev": true - }, - "events": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", - "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", - "dev": true - }, - "evp_bytestokey": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", - "dev": true - }, - "execa": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.5.1.tgz", - "integrity": "sha1-3j+4XLjW6RyFvLzrFkWBeFy1ezY=", - "dev": true - }, - "expand-braces": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", - "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", - "dev": true, - "dependencies": { - "braces": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", - "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", - "dev": true - }, - "expand-range": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", - "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", - "dev": true - }, - "is-number": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", - "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", - "dev": true - }, - "repeat-string": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", - "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", - "dev": true - } - } - }, - "expand-brackets": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", - "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", - "dev": true - }, - "expand-range": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", - "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", - "dev": true - }, - "extend": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", - "dev": true - }, - "extglob": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", - "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", - "dev": true - }, - "fancy-log": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.0.tgz", - "integrity": "sha1-Rb4X0Cu5kX1gzP/UmVyZnmyMmUg=", - "dev": true - }, - "fast-deep-equal": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-0.1.0.tgz", - "integrity": "sha1-XG9FmaumszPuM0Li7ZeGcvEAH40=", - "dev": true - }, - "fastparse": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", - "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", - "dev": true - }, - "faye-websocket": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", - "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", - "dev": true - }, - "filename-regex": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", - "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", - "dev": true - }, - "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", - "dev": true - }, - "finalhandler": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.5.1.tgz", - "integrity": "sha1-LEANjUUwk1vCMlScX6OF7Afeb80=", - "dev": true - }, - "find-up": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", - "dev": true - }, - "for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true - }, - "for-own": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", - "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", - "dev": true - }, - "fresh": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", - "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", - "dev": true - }, - "from": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", - "integrity": "sha1-g8YK/Fi5xWmXAH7Rp2izqzA6RP4=", - "dev": true - }, - "fs-access": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", - "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", - "dev": true - }, - "fs-extra": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", - "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", - "dev": true, - "dependencies": { - "jsonfile": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.0.tgz", - "integrity": "sha1-kufHRE5f/V+jLmqa6LhQNN+DR9A=", - "dev": true - } - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "fsevents": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.2.tgz", - "integrity": "sha512-Sn44E5wQW4bTHXvQmvSHwqbuiXtduD6Rrjm2ZtUEGbyrig+nUH3t/QD4M4/ZXViY556TBpRgZkHLDx3JxPwxiw==", - "dev": true, - "optional": true, - "dependencies": { - "abbrev": { - "version": "1.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true - }, - "ansi-regex": { - "version": "2.1.1", - "bundled": true, - "dev": true - }, - "aproba": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "are-we-there-yet": { - "version": "1.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "asn1": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "assert-plus": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "asynckit": { - "version": "0.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws-sign2": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "aws4": { - "version": "1.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "balanced-match": { - "version": "0.4.2", - "bundled": true, - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true - }, - "brace-expansion": { - "version": "1.1.7", - "bundled": true, - "dev": true - }, - "buffer-shims": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "caseless": { - "version": "0.12.0", - "bundled": true, - "dev": true, - "optional": true - }, - "co": { - "version": "4.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "code-point-at": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "bundled": true, - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "bundled": true, - "dev": true - }, - "core-util-is": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "debug": { - "version": "2.6.8", - "bundled": true, - "dev": true, - "optional": true - }, - "deep-extend": { - "version": "0.4.2", - "bundled": true, - "dev": true, - "optional": true - }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "delegates": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extend": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "extsprintf": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "forever-agent": { - "version": "0.6.1", - "bundled": true, - "dev": true, - "optional": true - }, - "form-data": { - "version": "2.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "fs.realpath": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, - "dev": true - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "gauge": { - "version": "2.7.4", - "bundled": true, - "dev": true, - "optional": true - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "glob": { - "version": "7.1.2", - "bundled": true, - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "bundled": true, - "dev": true - }, - "har-schema": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "har-validator": { - "version": "4.2.1", - "bundled": true, - "dev": true, - "optional": true - }, - "has-unicode": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "hawk": { - "version": "3.1.3", - "bundled": true, - "dev": true, - "optional": true - }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "inflight": { - "version": "1.0.6", - "bundled": true, - "dev": true - }, - "inherits": { - "version": "2.0.3", - "bundled": true, - "dev": true - }, - "ini": { - "version": "1.3.4", - "bundled": true, - "dev": true, - "optional": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "is-typedarray": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "isarray": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, - "isstream": { - "version": "0.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jodid25519": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-schema": { - "version": "0.2.3", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "json-stringify-safe": { - "version": "5.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "jsonify": { - "version": "0.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "jsprim": { - "version": "1.4.0", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "mime-db": { - "version": "1.27.0", - "bundled": true, - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "bundled": true, - "dev": true - }, - "minimatch": { - "version": "3.0.4", - "bundled": true, - "dev": true - }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "bundled": true, - "dev": true - }, - "ms": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "node-pre-gyp": { - "version": "0.6.36", - "bundled": true, - "dev": true, - "optional": true - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "npmlog": { - "version": "4.1.0", - "bundled": true, - "dev": true, - "optional": true - }, - "number-is-nan": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, - "object-assign": { - "version": "4.1.1", - "bundled": true, - "dev": true, - "optional": true - }, - "once": { - "version": "1.4.0", - "bundled": true, - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "os-tmpdir": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "osenv": { - "version": "0.1.4", - "bundled": true, - "dev": true, - "optional": true - }, - "path-is-absolute": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "performance-now": { - "version": "0.2.0", - "bundled": true, - "dev": true, - "optional": true - }, - "process-nextick-args": { - "version": "1.0.7", - "bundled": true, - "dev": true - }, - "punycode": { - "version": "1.4.1", - "bundled": true, - "dev": true, - "optional": true - }, - "qs": { - "version": "6.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rc": { - "version": "1.2.1", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "minimist": { - "version": "1.2.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true - }, - "request": { - "version": "2.81.0", - "bundled": true, - "dev": true, - "optional": true - }, - "rimraf": { - "version": "2.6.1", - "bundled": true, - "dev": true - }, - "safe-buffer": { - "version": "5.0.1", - "bundled": true, - "dev": true - }, - "semver": { - "version": "5.3.0", - "bundled": true, - "dev": true, - "optional": true - }, - "set-blocking": { - "version": "2.0.0", - "bundled": true, - "dev": true, - "optional": true - }, - "signal-exit": { - "version": "3.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "sntp": { - "version": "1.0.9", - "bundled": true, - "dev": true, - "optional": true - }, - "sshpk": { - "version": "1.13.0", - "bundled": true, - "dev": true, - "optional": true, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } - }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "dev": true - }, - "string-width": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, - "strip-ansi": { - "version": "3.0.1", - "bundled": true, - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true - }, - "tunnel-agent": { - "version": "0.6.0", - "bundled": true, - "dev": true, - "optional": true - }, - "tweetnacl": { - "version": "0.14.5", - "bundled": true, - "dev": true, - "optional": true - }, - "uid-number": { - "version": "0.0.6", - "bundled": true, - "dev": true, - "optional": true - }, - "util-deprecate": { - "version": "1.0.2", - "bundled": true, - "dev": true - }, - "uuid": { - "version": "3.0.1", - "bundled": true, - "dev": true, - "optional": true - }, - "verror": { - "version": "1.3.6", - "bundled": true, - "dev": true, - "optional": true - }, - "wide-align": { - "version": "1.1.2", - "bundled": true, - "dev": true, - "optional": true - }, - "wrappy": { - "version": "1.0.2", - "bundled": true, - "dev": true - } - } - }, - "get-caller-file": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", - "dev": true - }, - "get-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", - "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, - "glob": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", - "dev": true - }, - "glob-base": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", - "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", - "dev": true - }, - "glob-parent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", - "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", - "dev": true - }, - "glogg": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.0.tgz", - "integrity": "sha1-f+DxmfV6yQbPUS/urY+Q7kooT8U=", - "dev": true - }, - "graceful-fs": { - "version": "4.1.11", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", - "dev": true - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", - "dev": true - }, - "gulp-util": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", - "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", - "dev": true - }, - "gulplog": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", - "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", - "dev": true - }, - "handlebars": { - "version": "4.0.10", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", - "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", - "dev": true, - "dependencies": { - "source-map": { - "version": "0.4.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", - "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true - }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "optional": true, - "dependencies": { - "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true, - "optional": true - } - } - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true, - "optional": true - } - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true - }, - "has-binary": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", - "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", - "dev": true - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "has-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", - "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", - "dev": true - }, - "has-gulplog": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", - "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", - "dev": true - }, - "hash-base": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", - "dev": true - }, - "hash.js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.1.tgz", - "integrity": "sha512-I2TYCUjYQMmqmRMCp6jKMC5bvdXxGIZ/heITRR/0F1u0OP920ImEj/cXt3WgcTKBnNYGn7enxUzdai3db829JA==", - "dev": true - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true - }, - "hosted-git-info": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.4.2.tgz", - "integrity": "sha1-AHa59GonBQbduq6lZJaJdGBhKmc=", - "dev": true - }, - "html-entities": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", - "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", - "dev": true - }, - "htmlparser2": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.9.2.tgz", - "integrity": "sha1-G9+HrMoPP55T+k/M6w9LTLsAszg=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true - }, - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } - } - }, - "http-auth": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", - "integrity": "sha1-lFz63WZSHq+PfISRPTd9exXyTjE=", - "dev": true - }, - "http-errors": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.1.tgz", - "integrity": "sha1-X4uO2YrKVFZWv1cplzh/kEpyIlc=", - "dev": true - }, - "http-proxy": { - "version": "1.16.2", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", - "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", - "dev": true - }, - "https-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", - "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", - "dev": true - }, - "iconv-lite": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", - "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", - "dev": true - }, - "ieee754": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", - "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", - "dev": true - }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "interpret": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", - "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", - "dev": true - }, - "invert-kv": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", - "dev": true - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true - }, - "is-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", - "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", - "dev": true - }, - "is-builtin-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", - "dev": true - }, - "is-dotfile": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", - "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", - "dev": true - }, - "is-equal-shallow": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", - "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", - "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true - }, - "is-glob": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", - "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", - "dev": true - }, - "is-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", - "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", - "dev": true - }, - "is-number": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", - "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", - "dev": true - }, - "is-posix-bracket": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", - "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", - "dev": true - }, - "is-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", - "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-utf8": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, + "name": "datagrid", + "version": "0.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@angular-devkit/build-optimizer": { + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.0.13.tgz", + "integrity": "sha512-yEMkYU4YU8XlA5OauPhg22ZEWJ4X2VhiFKUwfeo4UWJ7lz4XWiuBJocrT5NHWqI1S0rOLpSixLXG9byvFMbavA==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "source-map": "0.5.7", + "typescript": "2.3.4" + } + }, + "@angular/animations": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-4.3.6.tgz", + "integrity": "sha1-v5KD7HyMmLMvVp2E3NoQiQ/cAmI=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/cli": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-1.3.2.tgz", + "integrity": "sha512-VAZXI19PbhhUE/dJH5r6HT7502y0OXYzxhbGIagh/e7SNKnVV8KglVL4zfTfnsI8kmLrFFbAmPy7xomKO8Btkg==", + "dev": true, + "requires": { + "@angular-devkit/build-optimizer": "0.0.13", + "@ngtools/json-schema": "1.1.0", + "@ngtools/webpack": "1.6.2", + "autoprefixer": "6.7.7", + "chalk": "2.1.0", + "circular-dependency-plugin": "3.0.0", + "common-tags": "1.4.0", + "core-object": "3.1.5", + "css-loader": "0.28.7", + "cssnano": "3.10.0", + "denodeify": "1.2.1", + "diff": "3.3.0", + "ember-cli-normalize-entity-name": "1.0.0", + "ember-cli-string-utils": "1.1.0", + "exports-loader": "0.6.4", + "extract-text-webpack-plugin": "3.0.0", + "file-loader": "0.10.1", + "fs-extra": "4.0.1", + "get-caller-file": "1.0.2", + "glob": "7.1.2", + "heimdalljs": "0.2.5", + "heimdalljs-logger": "0.1.9", + "html-webpack-plugin": "2.30.1", + "inflection": "1.12.0", + "inquirer": "3.2.3", + "isbinaryfile": "3.0.2", + "istanbul-instrumenter-loader": "2.0.0", + "karma-source-map-support": "1.2.0", + "less": "2.7.2", + "less-loader": "4.0.5", + "license-webpack-plugin": "0.5.1", + "lodash": "4.17.4", + "memory-fs": "0.4.1", + "minimatch": "3.0.4", + "node-modules-path": "1.0.1", + "node-sass": "4.5.3", + "nopt": "4.0.1", + "opn": "5.1.0", + "portfinder": "1.0.13", + "postcss-loader": "1.3.3", + "postcss-url": "5.1.2", + "raw-loader": "0.5.1", + "resolve": "1.4.0", + "rsvp": "3.6.2", + "rxjs": "5.4.3", + "sass-loader": "6.0.6", + "script-loader": "0.7.0", + "semver": "5.4.1", + "silent-error": "1.1.0", + "source-map-loader": "0.2.1", + "source-map-support": "0.4.16", + "style-loader": "0.13.2", + "stylus": "0.54.5", + "stylus-loader": "3.0.1", + "temp": "0.8.3", + "typescript": "2.3.4", + "url-loader": "0.5.9", + "walk-sync": "0.3.2", + "webpack": "3.4.1", + "webpack-dev-middleware": "1.12.0", + "webpack-dev-server": "2.5.1", + "webpack-merge": "4.1.0", + "zone.js": "0.8.17" + } + }, + "@angular/common": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-4.3.6.tgz", + "integrity": "sha1-7TfpMHx1Bt2DR5fBps9nXlK1tu4=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/compiler": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-4.3.6.tgz", + "integrity": "sha1-vhcN8Ji3HoNczt8WjV+3sj5QRbg=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/compiler-cli": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-4.3.6.tgz", + "integrity": "sha1-avpq72jdaB5hs5i+TWJw5choCxI=", + "dev": true, + "requires": { + "@angular/tsc-wrapped": "4.3.6", + "minimist": "1.2.0", + "reflect-metadata": "0.1.10" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "@angular/core": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-4.3.6.tgz", + "integrity": "sha1-u6xj1o0Pe8s4nRKzQghlK+MofpY=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/forms": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-4.3.6.tgz", + "integrity": "sha1-DyDEWXwWoVJ0XXzZVVmFWgpcZoc=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/http": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-4.3.6.tgz", + "integrity": "sha1-Vjgn0afV6J47fYa3f7vTZ7LAhZE=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/language-service": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-4.3.6.tgz", + "integrity": "sha1-cc8tu0ZhVo89EqnA5LngQ++TvTo=", + "dev": true + }, + "@angular/platform-browser": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-4.3.6.tgz", + "integrity": "sha1-YVKx87eNAkb8XhUOL3ue1DN+O6Y=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/platform-browser-dynamic": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.3.6.tgz", + "integrity": "sha1-nqv4JvEZyY+Fwqlu3LGKsAtO+xw=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/router": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-4.3.6.tgz", + "integrity": "sha1-ZAM+20/NoIoyPnUztKGCDA8o0TA=", + "requires": { + "tslib": "1.7.1" + } + }, + "@angular/tsc-wrapped": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/@angular/tsc-wrapped/-/tsc-wrapped-4.3.6.tgz", + "integrity": "sha1-GqZuCrLEeZpK0UtnXhOVOqX81DY=", + "dev": true, + "requires": { + "tsickle": "0.21.6" + } + }, + "@ngtools/json-schema": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@ngtools/json-schema/-/json-schema-1.1.0.tgz", + "integrity": "sha1-w6DFRNYjkqzCgTpCyKDcb1j4aSI=", + "dev": true + }, + "@ngtools/webpack": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-1.6.2.tgz", + "integrity": "sha512-2s2kCCV3FQUC+MG69e+H5k7zELuVcQ0Gkl1ioqR25HOclxv0UGVY7jsmz9LRm/DanS5ORXQt4S82EFV1dY4w+A==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "magic-string": "0.22.4", + "source-map": "0.5.7" + } + }, + "@types/jasmine": { + "version": "2.5.54", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.5.54.tgz", + "integrity": "sha512-B9YofFbUljs19g5gBKUYeLIulsh31U5AK70F41BImQRHEZQGm4GcN922UvnYwkduMqbC/NH+9fruWa/zrqvHIg==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.3.tgz", + "integrity": "sha512-hYDVmQZT5VA2kigd4H4bv7vl/OhlympwREUemqBdOqtrYTo5Ytm12a5W5/nGgGYdanGVxj0x/VhZ7J3hOg/YKg==", + "dev": true, + "requires": { + "@types/jasmine": "2.5.54" + } + }, + "@types/node": { + "version": "6.0.88", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.88.tgz", + "integrity": "sha512-bYDPZTX0/s1aihdjLuAgogUAT5M+TpoWChEMea2p0yOcfn5bu3k6cJb9cp6nw268XeSNIGGr+4+/8V5K6BGzLQ==", + "dev": true + }, + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", + "dev": true + }, + "@types/selenium-webdriver": { + "version": "2.53.42", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz", + "integrity": "sha1-dMt3+2BS7a/yqJhN2v2I1BnyXKw=", + "dev": true + }, + "abbrev": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.0.tgz", + "integrity": "sha1-0FVMIlZjbi9W58LlrRg/hZQo2B8=", + "dev": true + }, + "accepts": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.4.tgz", + "integrity": "sha1-hiRnWMfdbSGmR0/whKR0DsBesh8=", + "dev": true, + "requires": { + "mime-types": "2.1.16", + "negotiator": "0.6.1" + } + }, + "acorn": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", + "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, + "adm-zip": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.7.tgz", + "integrity": "sha1-hgbCy/HEJs6MjsABdER/1Jtur8E=", + "dev": true + }, + "after": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", + "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", + "dev": true + }, + "agent-base": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-2.1.1.tgz", + "integrity": "sha1-1t4Q1a9hMtW9aSQn1G/FOFOQlMc=", + "dev": true, + "requires": { + "extend": "3.0.1", + "semver": "5.0.3" + }, + "dependencies": { + "semver": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.0.3.tgz", + "integrity": "sha1-d0Zt5YnNXTyV8TiqeLxWmjy10no=", + "dev": true + } + } + }, + "ajv": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", + "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + } + }, + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "dev": true + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-escapes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-2.0.0.tgz", + "integrity": "sha1-W65SvkJIeN2Xg+iRDj/Cki6DyBs=", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, + "app-root-path": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.0.1.tgz", + "integrity": "sha1-zWLc+OT9WkF+/GZNLlsQZTxlG0Y=", + "dev": true + }, + "append-transform": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-0.4.0.tgz", + "integrity": "sha1-126/jKlNJ24keja61EpLdKthGZE=", + "dev": true, + "requires": { + "default-require-extensions": "1.0.0" + } + }, + "aproba": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", + "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + }, + "dependencies": { "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "isbinaryfile": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", - "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", - "dev": true - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - } - } + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "jasmine-core": { - "version": "2.6.4", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz", - "integrity": "sha1-3skmzQqfoof7bbXHVfpIfnTOysU=", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "js-tokens": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.1.tgz", - "integrity": "sha1-COnxMkhKLEWjCQfp3E1VZ7fxFNc=", - "dev": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-find-index": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", + "integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=", + "dev": true + }, + "array-flatten": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz", + "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY=", + "dev": true + }, + "array-slice": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz", + "integrity": "sha1-3Tz7gO15c6dRF82sabC5nshhhvU=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "1.0.3" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arraybuffer.slice": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz", + "integrity": "sha1-8zshWfBTKj8xB6JywMz70a0peco=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true + }, + "asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "async-foreach": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz", + "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", + "dev": true, + "optional": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "autoprefixer": { + "version": "6.7.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-6.7.7.tgz", + "integrity": "sha1-Hb0cg1ZY41zj+ZhAmdsAWFx4IBQ=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000721", + "normalize-range": "0.1.2", + "num2fraction": "1.2.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + }, + "dependencies": { "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - }, - "json-loader": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.4.tgz", - "integrity": "sha1-i6oTZaYy9Yo8RtIBdfxgAsluN94=", - "dev": true - }, - "json-schema-traverse": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.0.tgz", - "integrity": "sha1-ABbAscoe/kbUTTdUG838Gdz64Ns=", - "dev": true - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", - "dev": true - }, - "json3": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", - "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", - "dev": true - }, - "json5": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", - "dev": true - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", - "dev": true - }, - "karma": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.0.tgz", - "integrity": "sha1-b3oaQGRG+i4YfslTmGmPTO5HYmk=", - "dev": true, - "dependencies": { - "connect": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.2.tgz", - "integrity": "sha1-aU6NIGgb/kkCgsiriGvpjwn0L+c=", - "dev": true - }, - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true - }, - "finalhandler": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.3.tgz", - "integrity": "sha1-70fneVDpmXgOhgIqVg4yF+DQzIk=", - "dev": true - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "karma-chrome-launcher": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.1.1.tgz", - "integrity": "sha1-IWh5xorATY1RQOmWGboEtZr9Rs8=", - "dev": true - }, - "karma-jasmine": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz", - "integrity": "sha1-IuTAa/mhguUpTR9wXjczgRuBCs8=", - "dev": true - }, - "karma-sourcemap-loader": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/karma-sourcemap-loader/-/karma-sourcemap-loader-0.3.7.tgz", - "integrity": "sha1-kTIsd/jxPUb+0GKwQuEAnUxFBdg=", - "dev": true - }, - "karma-spec-reporter": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/karma-spec-reporter/-/karma-spec-reporter-0.0.31.tgz", - "integrity": "sha1-SDDccUihVcfXoYbmMjOaDYD63sM=", - "dev": true - }, - "karma-webpack": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/karma-webpack/-/karma-webpack-2.0.3.tgz", - "integrity": "sha1-Oc6/XKJYATmyf5rmm3iBa5yC+uY=", - "dev": true, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "lodash": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", - "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", - "dev": true - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true - } - } + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + } + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.1", + "regenerator-runtime": "0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "backo2": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", + "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", + "dev": true + }, + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + }, + "base64-arraybuffer": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", + "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", + "dev": true + }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, + "base64id": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", + "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } + }, + "better-assert": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", + "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", + "dev": true, + "requires": { + "callsite": "1.0.0" + } + }, + "big.js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", + "dev": true + }, + "binary-extensions": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.10.0.tgz", + "integrity": "sha1-muuabF6IY4qtFx4Wf1kAq+JINdA=", + "dev": true + }, + "blob": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.4.tgz", + "integrity": "sha1-vPEwUspURj8w+fx+lbmkdjCpSSE=", + "dev": true + }, + "block-stream": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", + "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", + "dev": true, + "optional": true, + "requires": { + "inherits": "2.0.3" + } + }, + "blocking-proxy": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-0.0.5.tgz", + "integrity": "sha1-RikF4Nz76pcPQao3Ij3anAexkSs=", + "dev": true, + "requires": { + "minimist": "1.2.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "bluebird": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.0.tgz", + "integrity": "sha1-eRQg1/VR7qKJdFOop3ZT+WYG1nw=", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "body-parser": { + "version": "1.17.2", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.17.2.tgz", + "integrity": "sha1-+IkqvI+eYn1Crtr7yma/WrmRBO4=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "content-type": "1.0.2", + "debug": "2.6.7", + "depd": "1.1.1", + "http-errors": "1.6.2", + "iconv-lite": "0.4.15", + "on-finished": "2.3.0", + "qs": "6.4.0", + "raw-body": "2.2.0", + "type-is": "1.6.15" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true + "debug": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", + "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", + "dev": true, + "requires": { + "ms": "2.0.0" + } }, + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "2.1.1", + "deep-equal": "1.0.1", + "dns-equal": "1.0.0", + "dns-txt": "2.0.2", + "multicast-dns": "6.1.1", + "multicast-dns-service-types": "1.1.0" + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + } + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "dev": true, + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.2", + "inherits": "2.0.3" + } + }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "requires": { + "browserify-aes": "1.0.6", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.2" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.5" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, + "browserslist": { + "version": "1.7.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-1.7.7.tgz", + "integrity": "sha1-C9dnBCWL6CmyOYu1Dkti0aFmsLk=", + "dev": true, + "requires": { + "caniuse-db": "1.0.30000721", + "electron-to-chromium": "1.3.20" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", + "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.5.0.tgz", + "integrity": "sha1-TJQj6i0lLCcMQbK97+/5u2tiwGo=", + "dev": true + }, + "callsite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", + "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "2.3.1", + "upper-case": "1.1.3" + } + }, + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "camelcase-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz", + "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", + "dev": true, + "requires": { + "camelcase": "2.1.1", + "map-obj": "1.0.1" + } + }, + "caniuse-api": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-1.6.1.tgz", + "integrity": "sha1-tTTnxzTE+B7F++isoq0kNUuWLGw=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-db": "1.0.30000721", + "lodash.memoize": "4.1.2", + "lodash.uniq": "4.5.0" + } + }, + "caniuse-db": { + "version": "1.0.30000721", + "resolved": "https://registry.npmjs.org/caniuse-db/-/caniuse-db-1.0.30000721.tgz", + "integrity": "sha1-zcUu/o+C3RORZhW3job3BOzmGAI=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + }, + "dependencies": { "lazy-cache": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", - "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true - }, - "lcid": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", - "dev": true - }, - "live-server": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.0.tgz", - "integrity": "sha1-RJhkS7+Bpm8Y3Y3/3vYcTBw3TKM=", - "dev": true, - "dependencies": { - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, - "load-json-file": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", - "dev": true - }, - "loader-runner": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", - "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", - "dev": true - }, - "loader-utils": { - "version": "0.2.17", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", - "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", - "dev": true, - "dependencies": { - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true - } - } - }, - "locate-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", - "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", - "dev": true, - "dependencies": { - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - } - } - }, - "lodash": { - "version": "4.17.4", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", - "dev": true - }, - "lodash._basecopy": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", - "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", - "dev": true - }, - "lodash._basetostring": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", - "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", - "dev": true - }, - "lodash._basevalues": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", - "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", - "dev": true - }, - "lodash._getnative": { - "version": "3.9.1", - "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", - "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", - "dev": true - }, - "lodash._isiterateecall": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", - "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", - "dev": true - }, - "lodash._reescape": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", - "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", - "dev": true - }, - "lodash._reevaluate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", - "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", - "dev": true - }, - "lodash._reinterpolate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", - "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", - "dev": true - }, - "lodash._root": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", - "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", - "dev": true - }, - "lodash.escape": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", - "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", - "dev": true - }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "lodash.isarray": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", - "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", - "dev": true - }, - "lodash.keys": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", - "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true - }, - "lodash.restparam": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", - "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", - "dev": true - }, - "lodash.template": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", - "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", - "dev": true - }, - "lodash.templatesettings": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", - "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", - "dev": true - }, - "log4js": { - "version": "0.6.38", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", - "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", - "dev": true, - "dependencies": { - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true - }, - "semver": { - "version": "4.3.6", - "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", - "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", - "dev": true - } - } - }, - "longest": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", - "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true - }, - "lru-cache": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", - "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", - "dev": true - }, - "lunr": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-1.0.0.tgz", - "integrity": "sha1-XJJ2ySyRrDWpJBtQGNRnI9kuL18=", - "dev": true - }, - "macos-release": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/macos-release/-/macos-release-1.1.0.tgz", - "integrity": "sha512-mmLbumEYMi5nXReB9js3WGsB8UE6cDBWyIO62Z4DNx6GbRhDxHNjA1MlzSpJ2S2KM1wyiPRA0d19uHWYYvMHjA==", - "dev": true - }, - "map-stream": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", - "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", - "dev": true - }, - "marked": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.3.6.tgz", - "integrity": "sha1-ssbGGPzOzk74bE/Gy4p8v1rtqNc=", - "dev": true - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true - }, - "mem": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", - "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", - "dev": true - }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true - }, - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } - } - }, - "micromatch": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", - "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", - "dev": true - }, - "miller-rabin": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", - "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", - "dev": true - }, - "mime": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", - "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", - "dev": true - }, - "mime-db": { - "version": "1.27.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.27.0.tgz", - "integrity": "sha1-gg9XIpa70g7CXtVeW13oaeVDbrE=", - "dev": true - }, - "mime-types": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.15.tgz", - "integrity": "sha1-pOv1BkCUVpI3uM9wBGd20J/JKu0=", - "dev": true - }, - "mimic-fn": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", - "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", - "dev": true + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + } + } + }, + "chalk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.1.0.tgz", + "integrity": "sha512-LUHGS/dge4ujbXMJrnihYMcL4AoOweGnw9Tp3kQuqy1Kx5c1qKjqvMJZ6nVJPMWJtKCTN72ZogH3oeSO9g9rXQ==", + "dev": true, + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "4.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.0.tgz", + "integrity": "sha512-NnSOmMEYtVR2JVMIGTzynRkkaxtiq1xnFBcdQD/DnNCYPoEPsVJhM98BDyaoNOQIi7p4okdi3E27eN7GQbsUug==", + "dev": true, + "requires": { + "color-convert": "1.9.0" + } }, - "minimalistic-assert": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", - "dev": true + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + }, + "circular-dependency-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-3.0.0.tgz", + "integrity": "sha1-m2hpLjWw41EJmNAWS2rlARvqV2A=", + "dev": true + }, + "clap": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/clap/-/clap-1.2.0.tgz", + "integrity": "sha1-WckP4+E3EEdG/xlGmiemNP9oyFc=", + "dev": true, + "requires": { + "chalk": "1.1.3" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + } + } + }, + "clean-css": { + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.1.7.tgz", + "integrity": "sha1-ua6k+FZ5iJzz6ui0A0nsTr390DI=", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "2.0.0" + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "clone": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.2.tgz", + "integrity": "sha1-Jgt6meux7f4kdTgXX3gyQ8sZ0Uk=", + "dev": true + }, + "clone-deep": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.3.0.tgz", + "integrity": "sha1-NIxhrpzb4O3+BT2R/0zFIdeQ7eg=", + "dev": true, + "requires": { + "for-own": "1.0.0", + "is-plain-object": "2.0.4", + "kind-of": "3.2.2", + "shallow-clone": "0.1.2" + } + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/coa/-/coa-1.0.4.tgz", + "integrity": "sha1-qe8VNmDWqGqL3sAomlxoTSF0Mv0=", + "dev": true, + "requires": { + "q": "1.5.0" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codelyzer": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-3.1.2.tgz", + "integrity": "sha1-n/HwQfubXuXb60W6hm368EmDrwQ=", + "dev": true, + "requires": { + "app-root-path": "2.0.1", + "css-selector-tokenizer": "0.7.0", + "cssauron": "1.4.0", + "semver-dsl": "1.0.1", + "source-map": "0.5.7", + "sprintf-js": "1.0.3" + } + }, + "color": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", + "integrity": "sha1-bXtcdPtl6EHNSHkq0e1eB7kE12Q=", + "dev": true, + "requires": { + "clone": "1.0.2", + "color-convert": "1.9.0", + "color-string": "0.3.0" + } + }, + "color-convert": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.0.tgz", + "integrity": "sha1-Gsz5fdc5uYO/mU1W/sj5WFNkG3o=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-0.3.0.tgz", + "integrity": "sha1-J9RvtnAlxcL6JZk7+/V55HhBuZE=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "colormin": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colormin/-/colormin-1.1.2.tgz", + "integrity": "sha1-6i90IKcrlogaOKrlnsEkpvcpgTM=", + "dev": true, + "requires": { + "color": "0.11.4", + "css-color-names": "0.0.4", + "has": "1.0.1" + } + }, + "colors": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", + "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", + "dev": true + }, + "combine-lists": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/combine-lists/-/combine-lists-1.0.1.tgz", + "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "common-tags": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.4.0.tgz", + "integrity": "sha1-EYe+Tz1M8MBCfUP3Tu8fc1AWFMA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "component-bind": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", + "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", + "dev": true + }, + "component-emitter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.1.2.tgz", + "integrity": "sha1-KWWU8nU9qmOZbSrwjRWpURbJrsM=", + "dev": true + }, + "component-inherit": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", + "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", + "dev": true + }, + "compressible": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.11.tgz", + "integrity": "sha1-FnGKdd4oPtjmBAQWJaIGRYZ5fYo=", + "dev": true, + "requires": { + "mime-db": "1.29.0" + } + }, + "compression": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.0.tgz", + "integrity": "sha1-AwyfGY8WQ6BX13anOOki2kNzAS0=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "bytes": "2.5.0", + "compressible": "2.0.11", + "debug": "2.6.8", + "on-headers": "1.0.1", + "safe-buffer": "5.1.1", + "vary": "1.1.1" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "connect": { + "version": "3.6.3", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.6.3.tgz", + "integrity": "sha512-GLSZqgjVxPvGYVD/2vz//gS201MEXk4b7t3nHV6OVnTdDNWi/Gm7Rpxs/ybvljPWvULys/wrzIV3jB3YvEc3nQ==", + "dev": true, + "requires": { + "debug": "2.6.8", + "finalhandler": "1.0.4", + "parseurl": "1.3.1", + "utils-merge": "1.0.0" + } + }, + "connect-history-api-fallback": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz", + "integrity": "sha1-5R0X+PDvDbkKZP20feMFFVbp8Wk=", + "dev": true + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "content-disposition": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=", + "dev": true + }, + "content-type": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.2.tgz", + "integrity": "sha1-t9ETrueo3Se9IRM8TcJSnfFyHu0=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true + }, + "cookie": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "core-js": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", + "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" + }, + "core-object": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/core-object/-/core-object-3.1.5.tgz", + "integrity": "sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==", + "dev": true, + "requires": { + "chalk": "2.1.0" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "0.3.1", + "js-yaml": "3.7.0", + "minimist": "1.2.0", + "object-assign": "4.1.1", + "os-homedir": "1.0.2", + "parse-json": "2.2.0", + "require-from-string": "1.2.1" + }, + "dependencies": { "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - }, - "mkdirp": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dev": true, - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", - "dev": true - } - } - }, - "morgan": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.8.2.tgz", - "integrity": "sha1-eErHc05KRTqcbm6GgKkyknXItoc=", - "dev": true, - "dependencies": { - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true - }, - "multipipe": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", - "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", - "dev": true - }, - "nan": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", - "dev": true, - "optional": true - }, - "negotiator": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", - "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", - "dev": true - }, - "node-libs-browser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", - "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true, - "dependencies": { - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } - } - } - } - }, - "normalize-package-data": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.3.8.tgz", - "integrity": "sha1-2Bntoqne29H/pWPqQHHZNngilbs=", - "dev": true - }, - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true - }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true - }, - "nth-check": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", - "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", - "dev": true - }, - "null-check": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", - "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", - "dev": true - }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true - }, - "object-assign": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", - "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", - "dev": true - }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "object.omit": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", - "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", - "dev": true - }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true - }, - "on-headers": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", - "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", - "dev": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true - }, - "opn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", - "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", - "dev": true - }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - } - } - }, - "options": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", - "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", - "dev": true - }, - "os-browserify": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", - "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", - "dev": true - }, - "os-locale": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", - "dev": true - }, - "os-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/os-name/-/os-name-2.0.1.tgz", - "integrity": "sha1-uaOGNhwXrjohc27wWZQFyajF3F4=", - "dev": true - }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true - }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true - }, - "p-limit": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", - "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", - "dev": true - }, - "p-locate": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", - "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", - "dev": true - }, - "pako": { - "version": "0.2.9", - "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", - "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", - "dev": true - }, - "parse-asn1": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", - "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", - "dev": true - }, - "parse-glob": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", - "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", - "dev": true - }, - "parse-json": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", - "dev": true - }, - "parse5": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.2.tgz", - "integrity": "sha1-Be/1fw70V3+xRKefi5qWemzERRA=", - "dev": true, - "dependencies": { - "@types/node": { - "version": "6.0.78", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.78.tgz", - "integrity": "sha512-+vD6E8ixntRzzZukoF3uP1iV+ZjVN3koTcaeK+BEoc/kSfGbLDIGC7RmCaUgVpUfN6cWvfczFRERCyKM9mkvXg==", - "dev": true - } - } - }, - "parsejson": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", - "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", - "dev": true - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true - }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true - }, - "parseurl": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", - "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", - "dev": true - }, - "path-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", - "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", - "dev": true - }, - "path-exists": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", - "dev": true - }, - "path-type": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", - "dev": true - }, - "pause-stream": { - "version": "0.0.11", - "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", - "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", - "dev": true - }, - "pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=", - "dev": true - }, + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.8" + } + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } + }, + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "optional": true, + "requires": { + "lru-cache": "4.1.1", + "which": "1.3.0" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } + }, + "crypto-browserify": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", + "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", + "dev": true, + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.13", + "public-encrypt": "4.0.0", + "randombytes": "2.0.5" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-loader": { + "version": "0.28.7", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-0.28.7.tgz", + "integrity": "sha512-GxMpax8a/VgcfRrVy0gXD6yLd5ePYbXX/5zGgTVYp4wXtJklS8Z2VaUArJgc//f6/Dzil7BaJObdSv8eKKCPgg==", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "css-selector-tokenizer": "0.7.0", + "cssnano": "3.10.0", + "icss-utils": "2.1.0", + "loader-utils": "1.1.0", + "lodash.camelcase": "4.3.0", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-modules-extract-imports": "1.1.0", + "postcss-modules-local-by-default": "1.2.0", + "postcss-modules-scope": "1.1.0", + "postcss-modules-values": "1.3.0", + "postcss-value-parser": "3.3.0", + "source-list-map": "2.0.0" + } + }, + "css-parse": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.7.0.tgz", + "integrity": "sha1-Mh9s9zeCpv91ERE5D8BeLGV9jJs=", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "1.0.0", + "css-what": "2.1.0", + "domutils": "1.5.1", + "nth-check": "1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz", + "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", + "dev": true, + "requires": { + "cssesc": "0.1.0", + "fastparse": "1.1.1", + "regexpu-core": "1.0.0" + } + }, + "css-what": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.0.tgz", + "integrity": "sha1-lGfQMsOM+u+58teVASUwYvh/ob0=", + "dev": true + }, + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", + "dev": true, + "requires": { + "through": "2.3.8" + } + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "6.7.7", + "decamelize": "1.2.0", + "defined": "1.0.0", + "has": "1.0.1", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-calc": "5.3.1", + "postcss-colormin": "2.2.2", + "postcss-convert-values": "2.6.1", + "postcss-discard-comments": "2.0.4", + "postcss-discard-duplicates": "2.1.0", + "postcss-discard-empty": "2.1.0", + "postcss-discard-overridden": "0.1.1", + "postcss-discard-unused": "2.2.3", + "postcss-filter-plugins": "2.0.2", + "postcss-merge-idents": "2.1.7", + "postcss-merge-longhand": "2.0.2", + "postcss-merge-rules": "2.1.2", + "postcss-minify-font-values": "1.0.5", + "postcss-minify-gradients": "1.0.5", + "postcss-minify-params": "1.2.2", + "postcss-minify-selectors": "2.1.1", + "postcss-normalize-charset": "1.1.1", + "postcss-normalize-url": "3.0.8", + "postcss-ordered-values": "2.2.3", + "postcss-reduce-idents": "2.4.0", + "postcss-reduce-initial": "1.0.1", + "postcss-reduce-transforms": "1.0.4", + "postcss-svgo": "2.1.6", + "postcss-unique-selectors": "2.0.2", + "postcss-value-parser": "3.3.0", + "postcss-zindex": "2.2.0" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "1.2.0", + "source-map": "0.5.7" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "1.0.2" + } + }, + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", + "dev": true + }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.30" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true + }, + "default-require-extensions": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-1.0.0.tgz", + "integrity": "sha1-836hXT4T/9m0N9M+GnW1+5eHTLg=", + "dev": true, + "requires": { + "strip-bom": "2.0.0" + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "6.1.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "p-map": "1.1.1", + "pify": "3.0.0", + "rimraf": "2.6.1" + }, + "dependencies": { "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true - }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true - }, - "preserve": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", - "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", - "dev": true - }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true - }, - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "proxy-middleware": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", - "integrity": "sha1-o/3xvvtzD5UZZYcqwvYHTGFHelY=", - "dev": true - }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "public-encrypt": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", - "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", - "dev": true - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "q": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", - "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", - "dev": true - }, - "qjobs": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", - "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", - "dev": true - }, - "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", - "dev": true - }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true - }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true - }, - "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", - "dev": true, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true - } - } - }, - "randombytes": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", - "dev": true - }, - "range-parser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", - "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", - "dev": true - }, - "raw-body": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", - "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", - "dev": true - }, - "read-pkg": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", - "dev": true - }, - "read-pkg-up": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", - "dev": true - }, - "readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "dev": true - }, - "readdirp": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", - "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true - }, - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } - } - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true - }, - "reflect-metadata": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", - "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo=", - "dev": true + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "denodeify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/denodeify/-/denodeify-1.2.1.tgz", + "integrity": "sha1-OjYof1A05pnnV3kBBSwubJQlFjE=", + "dev": true + }, + "depd": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz", + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "detect-node": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz", + "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", + "dev": true + }, + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", + "dev": true + }, + "diff": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.0.tgz", + "integrity": "sha512-w0XZubFWn0Adlsapj9EAWX0FqWdO4tz8kc3RiYdWLh4k/V8PTb6i0SMgXt0vRM3zyKnT8tKO7mUlieRQHIjMNg==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.0", + "randombytes": "2.0.5" + } + }, + "directory-encoder": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/directory-encoder/-/directory-encoder-0.7.2.tgz", + "integrity": "sha1-WbTiqk8lQi9sY7UntGL14tDdLFg=", + "dev": true, + "requires": { + "fs-extra": "0.23.1", + "handlebars": "1.3.0", + "img-stats": "0.5.2" + }, + "dependencies": { + "fs-extra": { + "version": "0.23.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", + "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" + } }, - "regenerate": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", - "dev": true + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + } + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.2.2.tgz", + "integrity": "sha512-kN+DjfGF7dJGUL7nWRktL9Z18t1rWP3aQlyZdY8XlpvU3Nc6GeFTQApftcjtWKxAZfiggZSGrCEoszNgvnpwDg==", + "dev": true, + "requires": { + "ip": "1.1.5", + "safe-buffer": "5.1.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "1.1.1" + } + }, + "dom-converter": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.1.4.tgz", + "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", + "dev": true, + "requires": { + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", + "dev": true, + "requires": { + "custom-event": "1.0.1", + "ent": "2.2.0", + "extend": "3.0.1", + "void-elements": "2.0.1" + } + }, + "dom-serializer": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.0.tgz", + "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", + "dev": true, + "requires": { + "domelementtype": "1.1.3", + "entities": "1.1.1" + }, + "dependencies": { + "domelementtype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.1.3.tgz", + "integrity": "sha1-vSh3PiZCiBrsUVRJJCmcXNgiGFs=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, + "domelementtype": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.0.tgz", + "integrity": "sha1-sXrtguirWeUt2cGbF1bg/BhyBMI=", + "dev": true + }, + "domhandler": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.1.0.tgz", + "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0.1.0", + "domelementtype": "1.3.0" + } + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.20", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.20.tgz", + "integrity": "sha1-Lu3VzLrn3cVX9orR/OnBcukV5OU=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "ember-cli-normalize-entity-name": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ember-cli-normalize-entity-name/-/ember-cli-normalize-entity-name-1.0.0.tgz", + "integrity": "sha1-CxT3vLxZmqEXtf3cgeT9A8S61bc=", + "dev": true, + "requires": { + "silent-error": "1.1.0" + } + }, + "ember-cli-string-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz", + "integrity": "sha1-ObZ3/CgF9VFzc1N2/O8njqpEUqE=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.1.tgz", + "integrity": "sha1-eePVhlU0aQn+bw9Fpd5oEDspTSA=", + "dev": true + }, + "engine.io": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-1.8.3.tgz", + "integrity": "sha1-jef5eJXSDTm4X4ju7nd7K9QrE9Q=", + "dev": true, + "requires": { + "accepts": "1.3.3", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "ws": "1.1.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.3.tgz", + "integrity": "sha1-w8p0NJOGSMPg2cHjKN1otiLChMo=", + "dev": true, + "requires": { + "mime-types": "2.1.16", + "negotiator": "0.6.1" + } }, - "regex-cache": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", - "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", - "dev": true + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } }, - "regexpu-core": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", - "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", - "dev": true + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "engine.io-client": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-1.8.3.tgz", + "integrity": "sha1-F5jtk0USRkU9TG9jXXogH+lA1as=", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "2.3.3", + "engine.io-parser": "1.3.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parsejson": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "1.1.2", + "xmlhttprequest-ssl": "1.5.3", + "yeast": "0.1.2" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true }, - "regjsgen": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", - "dev": true + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } }, - "regjsparser": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", - "dev": true + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-1.3.2.tgz", + "integrity": "sha1-k3sHnwAH0Ik+xW1GyyILjLQ1Igo=", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "0.0.6", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.4", + "has-binary": "0.1.7", + "wtf-8": "1.0.0" + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } + }, + "ensure-posix-path": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.0.2.tgz", + "integrity": "sha1-pls+QtC3HPxYXrd0+ZQ8jZuRsMI=", + "dev": true + }, + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", + "dev": true + }, + "entities": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.1.tgz", + "integrity": "sha1-blwtClYhtdra7O+AuQ7ftc13cvA=", + "dev": true + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "dev": true, + "requires": { + "prr": "0.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } + }, + "es5-ext": { + "version": "0.10.30", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.30.tgz", + "integrity": "sha1-cUGhaDZpfbq/qq7uQUlc4p9SyTk=", + "dev": true, + "requires": { + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30", + "es6-iterator": "2.0.1", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "etag": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.0.tgz", + "integrity": "sha1-b2Ma7zNtbEY2K1F2QETOIWvjwFE=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.30" + } + }, + "eventemitter3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", + "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "eventsource": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz", + "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", + "dev": true, + "requires": { + "original": "1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.2.tgz", + "integrity": "sha512-ni0r0lrm7AOzsh2qC5mi9sj8S0gmj5fLNjfFpxN05FB4tAVZEKotbkjOtLPqTCX/CXT7NsUr6juZb4IFJeNNdA==", + "dev": true, + "requires": { + "md5.js": "1.3.4", + "safe-buffer": "5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + } + } + } + }, + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "dev": true + }, + "expand-braces": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/expand-braces/-/expand-braces-0.1.2.tgz", + "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", + "dev": true, + "requires": { + "array-slice": "0.2.3", + "array-unique": "0.2.1", + "braces": "0.1.5" + }, + "dependencies": { + "braces": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-0.1.5.tgz", + "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", + "dev": true, + "requires": { + "expand-range": "0.1.1" + } }, - "remove-trailing-separator": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", - "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", - "dev": true + "expand-range": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-0.1.1.tgz", + "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", + "dev": true, + "requires": { + "is-number": "0.1.1", + "repeat-string": "0.2.2" + } }, - "repeat-element": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", - "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", - "dev": true + "is-number": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-0.1.1.tgz", + "integrity": "sha1-aaevEWlj1HIG7JvZtIoUIW8eOAY=", + "dev": true }, "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true - }, - "replace-ext": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", - "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true - }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "resolve": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", - "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=", - "dev": true - }, - "right-align": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", - "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", - "dev": true - }, - "rimraf": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", - "dev": true - }, - "ripemd160": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", - "dev": true - }, - "rollup": { - "version": "0.43.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.43.0.tgz", - "integrity": "sha512-XqpEPAMHCJ4VcT95ApyGQC7MncjGcG6UtcU5geONqPfN2uAROGmJDE3cOi325S19rhklbM+BXIHNX35l+1zmAg==", - "dev": true - }, - "rollup-plugin-node-resolve": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz", - "integrity": "sha1-i4l8TDAw1QASd7BRSyXSygloPuA=", - "dev": true - }, - "rxjs": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.1.tgz", - "integrity": "sha1-ti91fyeURdJloYpY+wpw3JDpFiY=", - "dev": true - }, - "safe-buffer": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.0.tgz", - "integrity": "sha512-aSLEDudu6OoRr/2rU609gRmnYboRLxgDG1z9o2Q0os7236FwvcqIOO8r8U5JUEwivZOhDaKlFO4SbPTJYyBEyQ==", - "dev": true - }, - "sander": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", - "integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=", - "dev": true - }, - "semver": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", - "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true - }, - "semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", - "dev": true + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-0.2.2.tgz", + "integrity": "sha1-x6jTI2BoNiBZp+RlH8aITosftK4=", + "dev": true + } + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, + "exports-loader": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/exports-loader/-/exports-loader-0.6.4.tgz", + "integrity": "sha1-1w/GEhl1s1/BKDDPUnVL4nQPyIY=", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "source-map": "0.5.7" + } + }, + "express": { + "version": "4.15.4", + "resolved": "https://registry.npmjs.org/express/-/express-4.15.4.tgz", + "integrity": "sha1-Ay4iU0ic+PzgJma+yj0R7XotrtE=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "array-flatten": "1.1.1", + "content-disposition": "0.5.2", + "content-type": "1.0.2", + "cookie": "0.3.1", + "cookie-signature": "1.0.6", + "debug": "2.6.8", + "depd": "1.1.1", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "finalhandler": "1.0.4", + "fresh": "0.5.0", + "merge-descriptors": "1.0.1", + "methods": "1.1.2", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "path-to-regexp": "0.1.7", + "proxy-addr": "1.1.5", + "qs": "6.5.0", + "range-parser": "1.2.0", + "send": "0.15.4", + "serve-static": "1.12.4", + "setprototypeof": "1.0.3", + "statuses": "1.3.1", + "type-is": "1.6.15", + "utils-merge": "1.0.0", + "vary": "1.1.1" + }, + "dependencies": { + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true }, - "send": { - "version": "0.15.3", - "resolved": "https://registry.npmjs.org/send/-/send-0.15.3.tgz", - "integrity": "sha1-UBP5+ZAj31DRvZiSwZ4979HVMwk=", - "dev": true, - "dependencies": { - "debug": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.7.tgz", - "integrity": "sha1-krrR9tBbu2u6Isyoi80OyJTChh4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } + "qs": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz", + "integrity": "sha512-fjVFjW9yhqMhVGwRExCXLhJKrLlkYSaxNWdyc9rmHlrVZbk35YHH312dFd7191uQeXkI3mKLZTIbSvIeFwFemg==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true + }, + "external-editor": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.0.4.tgz", + "integrity": "sha1-HtkZnanL/i7y96MbL96LDRI2iXI=", + "dev": true, + "requires": { + "iconv-lite": "0.4.18", + "jschardet": "1.5.1", + "tmp": "0.0.31" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "extract-text-webpack-plugin": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.0.tgz", + "integrity": "sha1-kMqnkHvESfM1AF46x1MrQbAN5hI=", + "dev": true, + "requires": { + "async": "2.5.0", + "loader-utils": "1.1.0", + "schema-utils": "0.3.0", + "webpack-sources": "1.0.1" + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", + "dev": true + }, + "fastparse": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz", + "integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "1.0.5" + } + }, + "file-loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.10.1.tgz", + "integrity": "sha1-gVA0EZiR/GRB+1pkwRvJPCLd2EI=", + "dev": true, + "requires": { + "loader-utils": "1.1.0" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fileset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", + "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "dev": true, + "requires": { + "glob": "7.1.2", + "minimatch": "3.0.4" + } + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "serve-index": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", - "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=", - "dev": true, - "dependencies": { - "debug": { - "version": "2.6.8", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "finalhandler": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.4.tgz", + "integrity": "sha512-16l/r8RgzlXKmFOhZpHBztvye+lAhC5SU7hXavnerC9UfZqZxxXl3BzL8MhffPT3kF61lj9Oav2LKEzh0ei7tg==", + "dev": true, + "requires": { + "debug": "2.6.8", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "on-finished": "2.3.0", + "parseurl": "1.3.1", + "statuses": "1.3.1", + "unpipe": "1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } + }, + "flatten": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz", + "integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I=", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + } + }, + "forwarded": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.0.tgz", + "integrity": "sha1-Ge+YdMSuHCl7zweP3mOgm2aoQ2M=", + "dev": true + }, + "fresh": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.0.tgz", + "integrity": "sha1-9HTKXmqSRtb9jglTz6m5yAWvp44=", + "dev": true + }, + "fs-access": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fs-access/-/fs-access-1.0.1.tgz", + "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", + "dev": true, + "requires": { + "null-check": "1.0.0" + } + }, + "fs-extra": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.1.tgz", + "integrity": "sha1-f8DGyJV/mD9X8waiTlud3Y0N2IA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "3.0.1", + "universalify": "0.1.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fstream": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.11.tgz", + "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "inherits": "2.0.3", + "mkdirp": "0.5.1", + "rimraf": "2.6.1" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "1.1.2", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "gaze": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", + "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "dev": true, + "optional": true, + "requires": { + "globule": "1.2.0" + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "globule": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", + "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "minimatch": "3.0.4" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "handle-thing": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz", + "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ=", + "dev": true + }, + "handlebars": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-1.3.0.tgz", + "integrity": "sha1-npsTCpPjiUkTItl1zz7BgYw3zjQ=", + "dev": true, + "requires": { + "optimist": "0.3.7", + "uglify-js": "2.3.6" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true, + "optional": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "optional": true, + "requires": { + "amdefine": "1.0.1" + } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "uglify-js": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.3.6.tgz", + "integrity": "sha1-+gmEdwtCi3qbKoBY9GNV0U/vIRo=", + "dev": true, + "optional": true, + "requires": { + "async": "0.2.10", + "optimist": "0.3.7", + "source-map": "0.1.43" + } + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "requires": { + "ajv": "4.11.8", + "har-schema": "1.0.5" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "requires": { + "co": "4.6.0", + "json-stable-stringify": "1.0.1" + } + } + } + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "has-binary": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-binary/-/has-binary-0.1.7.tgz", + "integrity": "sha1-aOYesWIQyVRaClzOBqhzkS/h5ow=", + "dev": true, + "requires": { + "isarray": "0.0.1" + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "heimdalljs": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/heimdalljs/-/heimdalljs-0.2.5.tgz", + "integrity": "sha1-aqVDCO7nk7ZCz/nPlHgURfN3MKw=", + "dev": true, + "requires": { + "rsvp": "3.2.1" + }, + "dependencies": { + "rsvp": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.2.1.tgz", + "integrity": "sha1-B8tKXfJa3Z6Cbrxn3Mn9idsn2Eo=", + "dev": true + } + } + }, + "heimdalljs-logger": { + "version": "0.1.9", + "resolved": "https://registry.npmjs.org/heimdalljs-logger/-/heimdalljs-logger-0.1.9.tgz", + "integrity": "sha1-12raTkW3u294b8nAEKaOsuL68XY=", + "dev": true, + "requires": { + "debug": "2.6.8", + "heimdalljs": "0.2.5" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "wbuf": "1.7.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "setprototypeof": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", - "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "sha.js": { - "version": "2.4.8", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", - "dev": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "html-comment-regex": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz", + "integrity": "sha1-ZouTd26q5V696POtRkswekljYl4=", + "dev": true + }, + "html-entities": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", + "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=", + "dev": true + }, + "html-minifier": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.3.tgz", + "integrity": "sha512-iKRzQQDuTCsq0Ultbi/mfJJnR0D3AdZKTq966Gsp92xkmAPCV4Xi08qhJ0Dl3ZAWemSgJ7qZK+UsZc0gFqK6wg==", + "dev": true, + "requires": { + "camel-case": "3.0.0", + "clean-css": "4.1.7", + "commander": "2.11.0", + "he": "1.1.1", + "ncname": "1.0.0", + "param-case": "2.1.1", + "relateurl": "0.2.7", + "uglify-js": "3.0.28" + } + }, + "html-webpack-plugin": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", + "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", + "dev": true, + "requires": { + "bluebird": "3.5.0", + "html-minifier": "3.5.3", + "loader-utils": "0.2.17", + "lodash": "4.17.4", + "pretty-error": "2.1.1", + "toposort": "1.0.3" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + } + } + }, + "htmlparser2": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.3.0.tgz", + "integrity": "sha1-zHDQWln2VC5D8OaFyYLhTJJKnv4=", + "dev": true, + "requires": { + "domelementtype": "1.3.0", + "domhandler": "2.1.0", + "domutils": "1.1.6", + "readable-stream": "1.0.34" + }, + "dependencies": { + "domutils": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.1.6.tgz", + "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", + "dev": true, + "requires": { + "domelementtype": "1.3.0" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz", + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=", + "dev": true, + "requires": { + "depd": "1.1.1", + "inherits": "2.0.3", + "setprototypeof": "1.0.3", + "statuses": "1.3.1" + } + }, + "http-proxy": { + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.16.2.tgz", + "integrity": "sha1-Bt/ykpUr9k2+hHH6nfcwZtTzd0I=", + "dev": true, + "requires": { + "eventemitter3": "1.2.0", + "requires-port": "1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz", + "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", + "dev": true, + "requires": { + "http-proxy": "1.16.2", + "is-glob": "3.1.0", + "lodash": "4.17.4", + "micromatch": "2.3.11" + }, + "dependencies": { + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true }, - "shelljs": { - "version": "0.7.8", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", - "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } + }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, + "https-proxy-agent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz", + "integrity": "sha1-NffabEjOTdv6JkiRrFk+5f+GceY=", + "dev": true, + "requires": { + "agent-base": "2.1.1", + "debug": "2.6.8", + "extend": "3.0.1" + } + }, + "iconv-lite": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", + "dev": true + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "6.0.10" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz", + "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==", + "dev": true, + "requires": { + "chalk": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.4.0" + } }, - "signal-exit": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", - "dev": true + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "img-stats": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/img-stats/-/img-stats-0.5.2.tgz", + "integrity": "sha1-wgNJbELy2esuWrgjL6dWurMsnis=", + "dev": true, + "requires": { + "xmldom": "0.1.27" + } + }, + "in-publish": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz", + "integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=", + "dev": true, + "optional": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflection": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true + }, + "inquirer": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.2.3.tgz", + "integrity": "sha512-Bc3KbimpDTOeQdDj18Ir/rlsGuhBSSNqdOnxaAuKhpkdnMMuKsEGbZD2v5KFF9oso2OU+BPh7+/u5obmFDRmWw==", + "dev": true, + "requires": { + "ansi-escapes": "2.0.0", + "chalk": "2.1.0", + "cli-cursor": "2.1.0", + "cli-width": "2.2.0", + "external-editor": "2.0.4", + "figures": "2.0.0", + "lodash": "4.17.4", + "mute-stream": "0.0.7", + "run-async": "2.3.0", + "rx-lite": "4.0.8", + "rx-lite-aggregates": "4.0.8", + "string-width": "2.1.1", + "strip-ansi": "4.0.0", + "through": "2.3.8" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, - "socket.io": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", - "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", - "dev": true, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - }, - "object-assign": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", - "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", - "dev": true - } - } + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "internal-ip": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz", + "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=", + "dev": true, + "requires": { + "meow": "3.7.0" + } + }, + "interpret": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ipaddr.js": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz", + "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.10.0" + } + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz", + "integrity": "sha1-ZHdYK4IU1gI0YJRWcAO+ip6sBNw=", + "dev": true, + "requires": { + "is-path-inside": "1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.0.tgz", + "integrity": "sha1-/AbloWg/vaE95mev9xe7wQpI838=", + "dev": true, + "requires": { + "path-is-inside": "1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "3.0.1" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "1.1.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "istanbul-api": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-1.1.13.tgz", + "integrity": "sha1-cZf2RBNgDr3+xjR6LcPU4D+X7Vo=", + "dev": true, + "requires": { + "async": "2.5.0", + "fileset": "2.0.3", + "istanbul-lib-coverage": "1.1.1", + "istanbul-lib-hook": "1.0.7", + "istanbul-lib-instrument": "1.7.5", + "istanbul-lib-report": "1.1.1", + "istanbul-lib-source-maps": "1.2.1", + "istanbul-reports": "1.1.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "once": "1.4.0" + } + }, + "istanbul-instrumenter-loader": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-2.0.0.tgz", + "integrity": "sha1-5UkpAKsLuoNe+oAkywC+mz7qJwA=", + "dev": true, + "requires": { + "convert-source-map": "1.5.0", + "istanbul-lib-instrument": "1.7.5", + "loader-utils": "0.2.17", + "object-assign": "4.1.1" + }, + "dependencies": { + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } + } + } + }, + "istanbul-lib-coverage": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz", + "integrity": "sha512-0+1vDkmzxqJIn5rcoEqapSB4DmPxE31EtI2dF2aCkV5esN9EWHxZ0dwgDClivMXJqE7zaYQxq30hj5L0nlTN5Q==", + "dev": true + }, + "istanbul-lib-hook": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz", + "integrity": "sha512-3U2HB9y1ZV9UmFlE12Fx+nPtFqIymzrqCksrXujm3NVbAZIJg/RfYgO1XiIa0mbmxTjWpVEVlkIZJ25xVIAfkQ==", + "dev": true, + "requires": { + "append-transform": "0.4.0" + } + }, + "istanbul-lib-instrument": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-1.7.5.tgz", + "integrity": "sha1-rbWW+PDLi5XnOSBjUaOKWGryGx4=", + "dev": true, + "requires": { + "babel-generator": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "istanbul-lib-coverage": "1.1.1", + "semver": "5.4.1" + } + }, + "istanbul-lib-report": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz", + "integrity": "sha512-tvF+YmCmH4thnez6JFX06ujIA19WPa9YUiwjc1uALF2cv5dmE3It8b5I8Ob7FHJ70H9Y5yF+TDkVa/mcADuw1Q==", + "dev": true, + "requires": { + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "path-parse": "1.0.5", + "supports-color": "3.2.3" + } + }, + "istanbul-lib-source-maps": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz", + "integrity": "sha512-mukVvSXCn9JQvdJl8wP/iPhqig0MRtuWuD4ZNKo6vB2Ik//AmhAKe3QnPN02dmkRe3lTudFk3rzoHhwU4hb94w==", + "dev": true, + "requires": { + "debug": "2.6.8", + "istanbul-lib-coverage": "1.1.1", + "mkdirp": "0.5.1", + "rimraf": "2.6.1", + "source-map": "0.5.7" + } + }, + "istanbul-reports": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-1.1.2.tgz", + "integrity": "sha1-D7Lj9qqZIr085F0F2KtNXo4HvU8=", + "dev": true, + "requires": { + "handlebars": "4.0.10" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true }, - "socket.io-adapter": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", - "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", - "dev": true, - "dependencies": { - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } - } + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true }, - "socket.io-client": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", - "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", - "dev": true, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", - "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", - "dev": true - }, - "ms": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", - "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", - "dev": true - } + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + }, + "dependencies": { + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true } + } }, - "socket.io-parser": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", - "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", - "dev": true - }, - "sorcery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", - "integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=", - "dev": true + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + } }, - "source-list-map": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", - "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", - "dev": true + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } }, "source-map": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", - "dev": true + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } }, - "source-map-loader": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.1.tgz", - "integrity": "sha1-SBJr6SML1H+tBeRqjDwuPS2r5Qc=", - "dev": true, - "dependencies": { - "async": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", - "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", - "dev": true - }, - "source-map": { - "version": "0.1.43", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", - "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", - "dev": true - } + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true } + } }, - "source-map-support": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", - "dev": true - }, - "sourcemap-codec": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.3.1.tgz", - "integrity": "sha1-mtb5vb1pGTEBbjCTnbyGhnMyMUY=", - "dev": true - }, - "sparkles": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.0.tgz", - "integrity": "sha1-Gsu/tZJDbRC76PeFt8xvgoFQEsM=", - "dev": true - }, - "spdx-correct": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", - "dev": true - }, - "spdx-expression-parse": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", - "dev": true + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", + "dev": true, + "requires": { + "exit": "0.1.2", + "glob": "7.1.2", + "jasmine-core": "2.8.0" + }, + "dependencies": { + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", + "dev": true + } + } + }, + "jasmine-core": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.6.4.tgz", + "integrity": "sha1-3skmzQqfoof7bbXHVfpIfnTOysU=", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.1.1.tgz", + "integrity": "sha1-Wm1Yq11hvqcwn7wnkjlRF1axtYg=", + "dev": true, + "requires": { + "colors": "1.1.2" + } + }, + "jasminewd2": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.1.0.tgz", + "integrity": "sha1-2llSddGuYx3nNqwKfH2Fyfc+9lI=", + "dev": true + }, + "jquery": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.2.1.tgz", + "integrity": "sha1-XE2d5lKvbNCncBVKYxu6ErAVx4c=" + }, + "jquery-ui": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/jquery-ui/-/jquery-ui-1.12.1.tgz", + "integrity": "sha1-vLQEXI3QU5wTS8FIjN0+dop6nlE=" + }, + "js-base64": { + "version": "2.1.9", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.1.9.tgz", + "integrity": "sha1-8OgK4DmkvWVLXygfyT8EqRSn/M4=", + "dev": true + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, + "optional": true + }, + "jschardet": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/jschardet/-/jschardet-1.5.1.tgz", + "integrity": "sha512-vE2hT1D0HLZCLLclfBSfkfTTedhVj0fubHpJBHKwwUWX0nSbhPAfk+SG9rTX95BYNmau8rGFfCeaT6T5OW1C2A==", + "dev": true + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "karma": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/karma/-/karma-1.7.1.tgz", + "integrity": "sha512-k5pBjHDhmkdaUccnC7gE3mBzZjcxyxYsYVaqiL2G5AqlfLyBO5nw2VdNK+O16cveEPd/gIOWULH7gkiYYwVNHg==", + "dev": true, + "requires": { + "bluebird": "3.5.0", + "body-parser": "1.17.2", + "chokidar": "1.7.0", + "colors": "1.1.2", + "combine-lists": "1.0.1", + "connect": "3.6.3", + "core-js": "2.5.1", + "di": "0.0.1", + "dom-serialize": "2.2.1", + "expand-braces": "0.1.2", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "http-proxy": "1.16.2", + "isbinaryfile": "3.0.2", + "lodash": "3.10.1", + "log4js": "0.6.38", + "mime": "1.4.0", + "minimatch": "3.0.4", + "optimist": "0.6.1", + "qjobs": "1.1.5", + "range-parser": "1.2.0", + "rimraf": "2.6.1", + "safe-buffer": "5.1.1", + "socket.io": "1.7.3", + "source-map": "0.5.7", + "tmp": "0.0.31", + "useragent": "2.2.1" + }, + "dependencies": { + "lodash": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", + "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", + "dev": true }, - "spdx-license-ids": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", - "dev": true + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + } + } + }, + "karma-chrome-launcher": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-2.1.1.tgz", + "integrity": "sha1-IWh5xorATY1RQOmWGboEtZr9Rs8=", + "dev": true, + "requires": { + "fs-access": "1.0.1", + "which": "1.3.0" + } + }, + "karma-cli": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/karma-cli/-/karma-cli-1.0.1.tgz", + "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", + "dev": true, + "requires": { + "resolve": "1.4.0" + } + }, + "karma-coverage-istanbul-reporter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.3.0.tgz", + "integrity": "sha1-0ULNnFVzHJ42Pvc3To7xoxvr+ts=", + "dev": true, + "requires": { + "istanbul-api": "1.1.13", + "minimatch": "3.0.4" + } + }, + "karma-jasmine": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.0.tgz", + "integrity": "sha1-IuTAa/mhguUpTR9wXjczgRuBCs8=", + "dev": true + }, + "karma-jasmine-html-reporter": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz", + "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", + "dev": true, + "requires": { + "karma-jasmine": "1.1.0" + } + }, + "karma-source-map-support": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.2.0.tgz", + "integrity": "sha1-G/gee7SwiWJ6s1LsQXnhF8QGpUA=", + "dev": true, + "requires": { + "source-map-support": "0.4.16" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + }, + "lazy-cache": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-0.2.7.tgz", + "integrity": "sha1-f+3fLctu23fRHvHRF6tf/fCrG2U=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } + }, + "less": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/less/-/less-2.7.2.tgz", + "integrity": "sha1-No1sxz4fsDmBGDKAkYdDxdz5s98=", + "dev": true, + "requires": { + "errno": "0.1.4", + "graceful-fs": "4.1.11", + "image-size": "0.5.5", + "mime": "1.4.0", + "mkdirp": "0.5.1", + "promise": "7.3.1", + "request": "2.81.0", + "source-map": "0.5.7" + } + }, + "less-loader": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-4.0.5.tgz", + "integrity": "sha1-rhVadAbKxqzSk9eFWH/P8PR4xN0=", + "dev": true, + "requires": { + "clone": "2.1.1", + "loader-utils": "1.1.0", + "pify": "2.3.0" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + } + } + }, + "license-webpack-plugin": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-0.5.1.tgz", + "integrity": "sha1-aNivEDSGqcTrzt237V071h84O+Q=", + "dev": true, + "requires": { + "object-assign": "4.1.1" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true, + "optional": true + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=", + "dev": true + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.mergewith": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", + "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=", + "dev": true, + "optional": true + }, + "lodash.tail": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.tail/-/lodash.tail-4.1.1.tgz", + "integrity": "sha1-0jM6NtnncXyK0vfKyv7HwytERmQ=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log4js": { + "version": "0.6.38", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-0.6.38.tgz", + "integrity": "sha1-LElBFmldb7JUgJQ9P8hy5mKlIv0=", + "dev": true, + "requires": { + "readable-stream": "1.0.34", + "semver": "4.3.6" + }, + "dependencies": { + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + } + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "0.4.1", + "signal-exit": "3.0.2" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "macaddress": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz", + "integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=", + "dev": true + }, + "magic-string": { + "version": "0.22.4", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.4.tgz", + "integrity": "sha512-kxBL06p6iO2qPBHsqGK2b3cRwiRGpnmSuVWNhwHcMX7qJOUr1HvricYP1LZOCdkQBUp0jiWg2d6WJwR3vYgByw==", + "dev": true, + "requires": { + "vlq": "0.2.2" + } + }, + "make-error": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.0.tgz", + "integrity": "sha1-Uq06M5zPEM5itAQLcI/nByRLi5Y=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "matcher-collection": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-1.0.4.tgz", + "integrity": "sha1-L2auCGmZbynkPQtiyD3R1D5YF1U=", + "dev": true, + "requires": { + "minimatch": "3.0.4" + } + }, + "math-expression-evaluator": { + "version": "1.2.17", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", + "integrity": "sha1-3oGf282E3M2PrlnGrreWFbnSZqw=", + "dev": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "3.0.4", + "inherits": "2.0.3" + }, + "dependencies": { + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } + } + } + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "0.1.4", + "readable-stream": "2.3.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "split": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", - "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "sprintf-js": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz", - "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=", - "dev": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "2.1.0", + "decamelize": "1.2.0", + "loud-rejection": "1.6.0", + "map-obj": "1.0.1", + "minimist": "1.2.0", + "normalize-package-data": "2.4.0", + "object-assign": "4.1.1", + "read-pkg-up": "1.0.1", + "redent": "1.0.0", + "trim-newlines": "1.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.4" + } + }, + "miller-rabin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, + "mime": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.0.tgz", + "integrity": "sha512-n9ChLv77+QQEapYz8lV+rIZAW3HhAPW2CXnzb1GN5uMkuczshwvkW7XPsbzU0ZQN3sP47Er2KVkp2p3KyqZKSQ==", + "dev": true + }, + "mime-db": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "dev": true + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "dev": true, + "requires": { + "mime-db": "1.29.0" + } + }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mixin-object": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", + "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", + "dev": true, + "requires": { + "for-in": "0.1.8", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-in": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-0.1.8.tgz", + "integrity": "sha1-2Hc5COMSVhCZUrH9ubP6hn0ndeE=", + "dev": true + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multicast-dns": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.1.1.tgz", + "integrity": "sha1-bn3oalcIcqsXBYrepxYLvsqBTd4=", + "dev": true, + "requires": { + "dns-packet": "1.2.2", + "thunky": "0.1.0" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", + "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=", + "dev": true, + "optional": true + }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "dev": true, + "requires": { + "xml-char-classes": "1.0.0" + } + }, + "negotiator": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", + "dev": true + }, + "no-case": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.1.tgz", + "integrity": "sha1-euuhxzpSGEJlVUt9wDuvcg34AIE=", + "dev": true, + "requires": { + "lower-case": "1.1.4" + } + }, + "node-forge": { + "version": "0.6.33", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.6.33.tgz", + "integrity": "sha1-RjgRh59XPUUVWtap9D3ClujoXrw=", + "dev": true + }, + "node-gyp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.6.2.tgz", + "integrity": "sha1-m/vlRWIoYoSDjnUOrAUpWFP6HGA=", + "dev": true, + "optional": true, + "requires": { + "fstream": "1.0.11", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "npmlog": "4.1.2", + "osenv": "0.1.4", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.3.0", + "tar": "2.2.1", + "which": "1.3.0" + }, + "dependencies": { + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "optional": true, + "requires": { + "abbrev": "1.1.0" + } }, - "statuses": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", - "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", - "dev": true + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true, + "optional": true + } + } + }, + "node-libs-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", + "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.11.1", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.4", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "stream-browserify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", - "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true - }, - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + }, + "dependencies": { + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } } + } + } + } + }, + "node-modules-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/node-modules-path/-/node-modules-path-1.0.1.tgz", + "integrity": "sha1-QAlrCM560OoUaAhjr0ScfHWl0cg=", + "dev": true + }, + "node-sass": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.5.3.tgz", + "integrity": "sha1-0JydEXlkEjnRuX/8YjH9zsU+FWg=", + "dev": true, + "optional": true, + "requires": { + "async-foreach": "0.1.3", + "chalk": "1.1.3", + "cross-spawn": "3.0.1", + "gaze": "1.1.2", + "get-stdin": "4.0.1", + "glob": "7.1.2", + "in-publish": "2.0.0", + "lodash.assign": "4.2.0", + "lodash.clonedeep": "4.5.0", + "lodash.mergewith": "4.6.0", + "meow": "3.7.0", + "mkdirp": "0.5.1", + "nan": "2.7.0", + "node-gyp": "3.6.2", + "npmlog": "4.1.2", + "request": "2.81.0", + "sass-graph": "2.2.4", + "stdout-stream": "1.4.0" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "optional": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } }, - "stream-combiner": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", - "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", - "dev": true - }, - "stream-http": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", - "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true - }, - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true, + "optional": true + } + } + }, + "nopt": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.1.tgz", + "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", + "dev": true, + "requires": { + "abbrev": "1.1.0", + "osenv": "0.1.4" + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.1.0" + } + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "prepend-http": "1.0.4", + "query-string": "4.3.4", + "sort-keys": "1.1.2" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } + }, + "nth-check": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.1.tgz", + "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", + "dev": true, + "requires": { + "boolbase": "1.0.0" + } + }, + "null-check": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/null-check/-/null-check-1.0.0.tgz", + "integrity": "sha1-l33/1xdgErnsMNKjnbXPcqBDnt0=", + "dev": true + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + }, + "dependencies": { + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + } + } + }, + "obuf": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.1.tgz", + "integrity": "sha1-EEEktsYCxnlogaBCVB0220OlJk4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz", + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } + }, + "opn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.1.0.tgz", + "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", + "dev": true, + "requires": { + "is-wsl": "1.1.0" + } + }, + "optimist": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz", + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=", + "dev": true, + "requires": { + "wordwrap": "0.0.3" + } + }, + "options": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz", + "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=", + "dev": true + }, + "original": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", + "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "dev": true, + "requires": { + "url-parse": "1.0.5" + }, + "dependencies": { + "url-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.0.5.tgz", + "integrity": "sha1-CFSGBCKv3P7+tsllxmLUgAFpkns=", + "dev": true, + "requires": { + "querystringify": "0.0.4", + "requires-port": "1.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.4.tgz", + "integrity": "sha1-Qv5tWVPfBsgGS+bxdsPQWqqjRkQ=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "p-map": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.1.1.tgz", + "integrity": "sha1-BfXkrpegaDcbwqXMhr+9vBnErno=", + "dev": true + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "2.3.1" + } + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true, + "requires": { + "asn1.js": "4.9.1", + "browserify-aes": "1.0.6", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.2", + "pbkdf2": "3.0.13" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } + }, + "parsejson": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", + "integrity": "sha1-q343WfIJ7OmUN5c/fQ8fZK4OZKs=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "1.0.2" + } + }, + "parseurl": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.1.tgz", + "integrity": "sha1-yKuMkiO6NIiKpkopeyiFO+wY2lY=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } + }, + "pbkdf2": { + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.13.tgz", + "integrity": "sha512-+dCHxDH+djNtjgWmvVC/my3SYBAKpKNqKSjLkp+GtWWYe4XPE+e/PSD2aCanlEZZnqPk2uekTKNC/ccbwd2X2Q==", + "dev": true, + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } + }, + "portfinder": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz", + "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", + "dev": true, + "requires": { + "async": "1.5.2", + "debug": "2.6.8", + "mkdirp": "0.5.1" + }, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + } + } + }, + "postcss": { + "version": "5.2.17", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.17.tgz", + "integrity": "sha1-z09Ze4ZNZcikkrLqvp1wbIecOIs=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "js-base64": "2.1.9", + "source-map": "0.5.7", + "supports-color": "3.2.3" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + }, + "dependencies": { + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true } + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-message-helpers": "2.0.0", + "reduce-css-calc": "1.3.0" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "1.1.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "uniqs": "2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz", + "integrity": "sha1-bYWGJTTXNaxCDkqFgG4fXUKG2Ew=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "uniqid": "4.1.1" + } + }, + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1", + "postcss-load-options": "1.2.0", + "postcss-load-plugins": "2.3.0" + } + }, + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } + }, + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "dev": true, + "requires": { + "cosmiconfig": "2.2.2", + "object-assign": "4.1.1" + } + }, + "postcss-loader": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-1.3.3.tgz", + "integrity": "sha1-piHqH6KQYqg5cqRvVEhncTAZFus=", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-load-config": "1.2.0" + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "1.7.7", + "caniuse-api": "1.6.1", + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3", + "vendors": "1.0.1" + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "uniqs": "2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-selector-parser": "2.2.3" + } + }, + "postcss-modules-extract-imports": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz", + "integrity": "sha1-thTJcgvmgW6u41+zpfqh26agXds=", + "dev": true, + "requires": { + "postcss": "6.0.10" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz", + "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==", + "dev": true, + "requires": { + "chalk": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.4.0" + } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", - "dev": true - }, - "strip-bom": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", - "dev": true + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.10" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz", + "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==", + "dev": true, + "requires": { + "chalk": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.4.0" + } }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "0.7.0", + "postcss": "6.0.10" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz", + "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==", + "dev": true, + "requires": { + "chalk": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.4.0" + } }, "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "1.1.0", + "postcss": "6.0.10" + }, + "dependencies": { + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "postcss": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.10.tgz", + "integrity": "sha512-7WOpqea/cQHH1XUXdN1mqoFFmhigW3KAXJ+ssMOk/f6mKmwqFgqqdwsnjLGH+wuY+kwaJvT4whHcfKt5kWga0A==", + "dev": true, + "requires": { + "chalk": "2.1.0", + "source-map": "0.5.7", + "supports-color": "4.4.0" + } }, - "symbol-observable": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", - "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=", - "dev": true + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "2.1.0", + "normalize-url": "1.9.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "5.2.17" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "1.0.2", + "indexes-of": "1.0.1", + "uniq": "1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "2.1.0", + "postcss": "5.2.17", + "postcss-value-parser": "3.3.0", + "svgo": "0.7.2" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "1.0.2", + "postcss": "5.2.17", + "uniqs": "2.0.0" + } + }, + "postcss-url": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-url/-/postcss-url-5.1.2.tgz", + "integrity": "sha1-mLMWW+jVkkccsMqt3iwNH4MvEz4=", + "dev": true, + "requires": { + "directory-encoder": "0.7.2", + "js-base64": "2.1.9", + "mime": "1.4.0", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "path-is-absolute": "1.0.1", + "postcss": "5.2.17" + } + }, + "postcss-value-parser": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz", + "integrity": "sha1-h/OPnxj3dKSrTIojL1xc6IcqnRU=", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "1.0.1", + "postcss": "5.2.17", + "uniqs": "2.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "2.0.1", + "utila": "0.4.0" + } + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "dev": true, + "optional": true, + "requires": { + "asap": "2.0.6" + } + }, + "protractor": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.1.2.tgz", + "integrity": "sha1-myIXQXCaTGLVzVPGqt1UpxE36V8=", + "dev": true, + "requires": { + "@types/node": "6.0.88", + "@types/q": "0.0.32", + "@types/selenium-webdriver": "2.53.42", + "blocking-proxy": "0.0.5", + "chalk": "1.1.3", + "glob": "7.1.2", + "jasmine": "2.8.0", + "jasminewd2": "2.1.0", + "optimist": "0.6.1", + "q": "1.4.1", + "saucelabs": "1.3.0", + "selenium-webdriver": "3.0.1", + "source-map-support": "0.4.16", + "webdriver-js-extender": "1.0.0", + "webdriver-manager": "12.0.6" + }, + "dependencies": { + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "5.0.0", + "is-path-cwd": "1.0.0", + "is-path-in-cwd": "1.0.0", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "rimraf": "2.6.1" + } + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "1.0.2", + "arrify": "1.0.1", + "glob": "7.1.2", + "object-assign": "4.1.1", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } }, - "tapable": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.6.tgz", - "integrity": "sha1-IGvo4YiGC1FEJTdebxrom/sB/Y0=", - "dev": true + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "dev": true }, - "through2": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", - "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", - "dev": true, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "readable-stream": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.1.tgz", - "integrity": "sha512-u6cxIvtbZcjq2HH71Zc/SRBUl7vbv62szIqmqqGpK3HY5J1c0kR/LUzKUpeoFgMzapvVAlBD+QY56ilWmHi4Nw==", - "dev": true - }, - "string_decoder": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.2.tgz", - "integrity": "sha1-sp4fThEl+pehA4K4pTNze3SR4Xk=", - "dev": true, - "dependencies": { - "safe-buffer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.0.1.tgz", - "integrity": "sha1-0mPKVGls2KMGtcplUekt5XkY++c=", - "dev": true - } - } - } + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "webdriver-manager": { + "version": "12.0.6", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.0.6.tgz", + "integrity": "sha1-PfGkgZdwELTL+MnYXHpXeCjA5ws=", + "dev": true, + "requires": { + "adm-zip": "0.4.7", + "chalk": "1.1.3", + "del": "2.2.2", + "glob": "7.1.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "q": "1.4.1", + "request": "2.81.0", + "rimraf": "2.6.1", + "semver": "5.4.1", + "xml2js": "0.4.19" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true } - }, - "time-stamp": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", - "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", - "dev": true - }, - "timers-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.2.tgz", - "integrity": "sha1-q0iDz1l9zVCvIRNJoA+8pWrIa4Y=", - "dev": true - }, - "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", - "dev": true - }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "ts-loader": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-2.1.0.tgz", - "integrity": "sha1-Wo78xccsBvxJ1putachWF8YZT3c=", - "dev": true, - "dependencies": { - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true - } + } + } + } + }, + "proxy-addr": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz", + "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=", + "dev": true, + "requires": { + "forwarded": "0.1.0", + "ipaddr.js": "1.4.0" + } + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" + } + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "q": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.0.tgz", + "integrity": "sha1-3QG6ydBtMObyGa7LglPunr3DCPE=", + "dev": true + }, + "qjobs": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.1.5.tgz", + "integrity": "sha1-ZZ3p8s+NzCehSBJ28gU3cnI4LnM=", + "dev": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "strict-uri-encode": "1.1.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", + "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } } + } }, - "tsickle": { - "version": "0.21.6", - "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.21.6.tgz", - "integrity": "sha1-U7Abl5xcE/2xOvs/uVgXflmRWI0=", - "dev": true - }, - "tslib": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.7.1.tgz", - "integrity": "sha1-vIAEFkaRkjp5/oN4u+s9ogF1OOw=", - "dev": true - }, - "tslint": { - "version": "5.4.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.4.3.tgz", - "integrity": "sha1-dhyEArgONHt3M6BDkKdXslNYBGc=", - "dev": true - }, - "tsutils": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.4.0.tgz", - "integrity": "sha1-rUzm26Dlo+2934Ymt8oEB4IYn+o=", - "dev": true - }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "type-is": { - "version": "1.6.15", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", - "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", - "dev": true + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "range-parser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz", + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4=", + "dev": true + }, + "raw-body": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.2.0.tgz", + "integrity": "sha1-mUl2z2pQlqQRYoQEkvC9xdbn+5Y=", + "dev": true, + "requires": { + "bytes": "2.4.0", + "iconv-lite": "0.4.15", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-2.4.0.tgz", + "integrity": "sha1-fZcZb51br39pNeJZhVSe3SpsIzk=", + "dev": true }, - "typescript": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.3.4.tgz", - "integrity": "sha1-PTgyGCgjHkNPKHUUlZw3qCtin0I=", - "dev": true + "iconv-lite": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.15.tgz", + "integrity": "sha1-/iZaIYrGpXz+hUkn6dBMGYJe3es=", + "dev": true + } + } + }, + "raw-loader": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-0.5.1.tgz", + "integrity": "sha1-DD0L6u2KAclm2Xh793goElKpeao=", + "dev": true + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true, - "dependencies": { - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true - } - } + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "uglify-to-browserify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", - "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", - "dev": true, - "optional": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "2.1.0", + "strip-indent": "1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "0.4.2", + "math-expression-evaluator": "1.2.17", + "reduce-function-call": "1.0.2" + } + }, + "reduce-function-call": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.2.tgz", + "integrity": "sha1-WiAL+S4ON3UXUv5FsKszD9S2vpk=", + "dev": true, + "requires": { + "balanced-match": "0.4.2" + } + }, + "reflect-metadata": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.10.tgz", + "integrity": "sha1-tPg3BEFqytiZiMmxVjXUfgO5NEo=", + "dev": true + }, + "regenerate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", + "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==", + "dev": true + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3" + } + }, + "regexpu-core": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-1.0.0.tgz", + "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", + "dev": true, + "requires": { + "regenerate": "1.3.2", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.1.tgz", + "integrity": "sha1-iYyr/Ivt5Le5ETWj/9Mj5YwNsxk=", + "dev": true, + "requires": { + "css-select": "1.2.0", + "dom-converter": "0.1.4", + "htmlparser2": "3.3.0", + "strip-ansi": "3.0.1", + "utila": "0.3.3" + }, + "dependencies": { + "utila": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.3.3.tgz", + "integrity": "sha1-1+jn1+MJEHCSsF+NloiCTWM6QiY=", + "dev": true + } + } + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.12.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "4.2.1", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "oauth-sign": "0.8.2", + "performance-now": "0.2.0", + "qs": "6.4.0", + "safe-buffer": "5.1.1", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.6.0", + "uuid": "3.1.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", + "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "2.0.1", + "signal-exit": "3.0.2" + } + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "0.1.4" + } + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } + }, + "rsvp": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz", + "integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==", + "dev": true + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "2.1.0" + } + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite/-/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "4.0.8" + } + }, + "rxjs": { + "version": "5.4.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.4.3.tgz", + "integrity": "sha512-fSNi+y+P9ss+EZuV0GcIIqPUK07DEaMRUtLJvdcvMyFjc9dizuDjere+A4V7JrLGnm9iCc+nagV/4QdMTkqC4A==", + "requires": { + "symbol-observable": "1.0.4" + } + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", + "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", + "dev": true, + "optional": true, + "requires": { + "glob": "7.1.2", + "lodash": "4.17.4", + "scss-tokenizer": "0.2.3", + "yargs": "7.1.0" + } + }, + "sass-loader": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-6.0.6.tgz", + "integrity": "sha512-c3/Zc+iW+qqDip6kXPYLEgsAu2lf4xz0EZDplB7EmSUMda12U1sGJPetH55B/j9eu0bTtKzKlNPWWyYC7wFNyQ==", + "dev": true, + "requires": { + "async": "2.5.0", + "clone-deep": "0.3.0", + "loader-utils": "1.1.0", + "lodash.tail": "4.1.1", + "pify": "3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "saucelabs": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.3.0.tgz", + "integrity": "sha1-0kDoAJ33+ocwbsRXimm6O1xCT+4=", + "dev": true, + "requires": { + "https-proxy-agent": "1.0.0" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "5.2.2" + } + }, + "script-loader": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/script-loader/-/script-loader-0.7.0.tgz", + "integrity": "sha1-aF3H5waeDe56kmdPDrxbD1W6pew=", + "dev": true, + "requires": { + "raw-loader": "0.5.1" + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "optional": true, + "requires": { + "js-base64": "2.1.9", + "source-map": "0.4.4" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "optional": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selenium-webdriver": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz", + "integrity": "sha1-ot6l2kqX9mcuiefKcnbO+jZRR6c=", + "dev": true, + "requires": { + "adm-zip": "0.4.7", + "rimraf": "2.6.1", + "tmp": "0.0.30", + "xml2js": "0.4.19" + }, + "dependencies": { + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + } + } + }, + "selfsigned": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.1.tgz", + "integrity": "sha1-v4y3uDJWxFUeMTR8YxF3jbme7FI=", + "dev": true, + "requires": { + "node-forge": "0.6.33" + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + }, + "semver-dsl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "dev": true, + "requires": { + "semver": "5.4.1" + } + }, + "send": { + "version": "0.15.4", + "resolved": "https://registry.npmjs.org/send/-/send-0.15.4.tgz", + "integrity": "sha1-mF+qPihLAnPHkzZKNcZze9k5Bbk=", + "dev": true, + "requires": { + "debug": "2.6.8", + "depd": "1.1.1", + "destroy": "1.0.4", + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "etag": "1.8.0", + "fresh": "0.5.0", + "http-errors": "1.6.2", + "mime": "1.3.4", + "ms": "2.0.0", + "on-finished": "2.3.0", + "range-parser": "1.2.0", + "statuses": "1.3.1" + }, + "dependencies": { + "mime": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz", + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=", + "dev": true + } + } + }, + "serve-index": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.0.tgz", + "integrity": "sha1-0rKA/FYNYW7oG0i/D6gqvtJIXOc=", + "dev": true, + "requires": { + "accepts": "1.3.4", + "batch": "0.6.1", + "debug": "2.6.8", + "escape-html": "1.0.3", + "http-errors": "1.6.2", + "mime-types": "2.1.16", + "parseurl": "1.3.1" + } + }, + "serve-static": { + "version": "1.12.4", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.4.tgz", + "integrity": "sha1-m2qpjutyU8Tu3Ewfb9vKYJkBqWE=", + "dev": true, + "requires": { + "encodeurl": "1.0.1", + "escape-html": "1.0.3", + "parseurl": "1.3.1", + "send": "0.15.4" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz", + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ=", + "dev": true + }, + "sha.js": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "shallow-clone": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", + "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", + "dev": true, + "requires": { + "is-extendable": "0.1.1", + "kind-of": "2.0.1", + "lazy-cache": "0.2.7", + "mixin-object": "2.0.1" + }, + "dependencies": { + "kind-of": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", + "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "silent-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/silent-error/-/silent-error-1.1.0.tgz", + "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", + "dev": true, + "requires": { + "debug": "2.6.8" + } + }, + "slickgrid": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/slickgrid/-/slickgrid-2.3.3.tgz", + "integrity": "sha1-bPgsMQkiDPs4mgCUKFiDzCoo4Nc=", + "requires": { + "jquery": "3.2.1", + "jquery-ui": "1.12.1" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } + }, + "socket.io": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-1.7.3.tgz", + "integrity": "sha1-uK+cq6AJSeVo42nxMn6pvp6iRhs=", + "dev": true, + "requires": { + "debug": "2.3.3", + "engine.io": "1.8.3", + "has-binary": "0.1.7", + "object-assign": "4.1.0", + "socket.io-adapter": "0.5.0", + "socket.io-client": "1.7.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } }, - "uglifyjs-webpack-plugin": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", - "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", - "dev": true, - "dependencies": { - "uglify-js": { - "version": "2.8.29", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", - "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", - "dev": true - }, - "yargs": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", - "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", - "dev": true - } - } + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true }, - "ultron": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", - "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", - "dev": true + "object-assign": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.0.tgz", + "integrity": "sha1-ejs9DpgGPUP0wD8uiubNUahog6A=", + "dev": true + } + } + }, + "socket.io-adapter": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz", + "integrity": "sha1-y21LuL7IHhB4uZZ3+c7QBGBmu4s=", + "dev": true, + "requires": { + "debug": "2.3.3", + "socket.io-parser": "2.3.1" + }, + "dependencies": { + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } }, - "universalify": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.0.tgz", - "integrity": "sha1-nrHEZR3rzGcMyU8adXYjMruWd3g=", - "dev": true + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-client": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-1.7.3.tgz", + "integrity": "sha1-sw6GqhDV7zVGYBwJzeR2Xjgdo3c=", + "dev": true, + "requires": { + "backo2": "1.0.2", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "2.3.3", + "engine.io-client": "1.8.3", + "has-binary": "0.1.7", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseuri": "0.0.5", + "socket.io-parser": "2.3.1", + "to-array": "0.1.4" + }, + "dependencies": { + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true }, - "unix-crypt-td-js": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.0.0.tgz", - "integrity": "sha1-HAgkFQSBvHoB1J6Y8exmjYJBLzs=", - "dev": true + "debug": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz", + "integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=", + "dev": true, + "requires": { + "ms": "0.7.2" + } }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true + "ms": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", + "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-2.3.1.tgz", + "integrity": "sha1-3VMgJRA85Clpcya+/WQAX8/ltKA=", + "dev": true, + "requires": { + "component-emitter": "1.1.2", + "debug": "2.2.0", + "isarray": "0.0.1", + "json3": "3.3.2" + }, + "dependencies": { + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true, + "requires": { + "ms": "0.7.1" + } }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } - } + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + } + } + }, + "sockjs": { + "version": "0.3.18", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz", + "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=", + "dev": true, + "requires": { + "faye-websocket": "0.10.0", + "uuid": "2.0.3" + }, + "dependencies": { + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } + }, + "sockjs-client": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.2.tgz", + "integrity": "sha1-8CEqhVDkyUaMjM6u79LjSTwDOtU=", + "dev": true, + "requires": { + "debug": "2.6.8", + "eventsource": "0.1.6", + "faye-websocket": "0.11.1", + "inherits": "2.0.3", + "json3": "3.3.2", + "url-parse": "1.1.9" + }, + "dependencies": { + "faye-websocket": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz", + "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", + "dev": true, + "requires": { + "websocket-driver": "0.6.5" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "1.1.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-loader": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.1.tgz", + "integrity": "sha1-SBJr6SML1H+tBeRqjDwuPS2r5Qc=", + "dev": true, + "requires": { + "async": "0.9.2", + "loader-utils": "0.2.17", + "source-map": "0.1.43" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true }, - "useragent": { - "version": "2.1.13", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.1.13.tgz", - "integrity": "sha1-u6Q+iqJNXOuDwpN0c+EC4h33TBA=", - "dev": true + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1", + "object-assign": "4.1.1" + } }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - } - } + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "source-map-support": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.16.tgz", + "integrity": "sha512-A6vlydY7H/ljr4L2UOhDSajQdZQ6dMD7cLH0pzwcmwLyc9u8PNI4WGtnfDDzX7uzGL6c/T+ORL97Zlh+S4iOrg==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true + }, + "spdy": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz", + "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", + "dev": true, + "requires": { + "debug": "2.6.8", + "handle-thing": "1.2.5", + "http-deceiver": "1.2.7", + "safe-buffer": "5.1.1", + "select-hose": "2.0.0", + "spdy-transport": "2.0.20" + } + }, + "spdy-transport": { + "version": "2.0.20", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.0.20.tgz", + "integrity": "sha1-c15yBUxIayNU/onnAiVgBKOazk0=", + "dev": true, + "requires": { + "debug": "2.6.8", + "detect-node": "2.0.3", + "hpack.js": "2.1.6", + "obuf": "1.1.1", + "readable-stream": "2.3.3", + "safe-buffer": "5.1.1", + "wbuf": "1.7.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "utils-merge": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", - "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", - "dev": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.0.tgz", + "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", + "dev": true, + "optional": true, + "requires": { + "readable-stream": "2.3.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "validate-npm-package-license": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", - "dev": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.3" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "vary": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", - "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "vinyl": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", - "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", - "dev": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true }, - "viz.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/viz.js/-/viz.js-1.8.0.tgz", - "integrity": "sha1-4Mta0kE2jjWxpulgaR66RUwklR8=", - "dev": true + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, - "vlq": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", - "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", - "dev": true + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + } + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true }, - "vm-browserify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", - "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", - "dev": true + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + } + } + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "4.0.1" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "style-loader": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", + "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=", + "dev": true, + "requires": { + "loader-utils": "1.1.0" + } + }, + "stylus": { + "version": "0.54.5", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.5.tgz", + "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", + "dev": true, + "requires": { + "css-parse": "1.7.0", + "debug": "2.6.8", + "glob": "7.0.6", + "mkdirp": "0.5.1", + "sax": "0.5.8", + "source-map": "0.1.43" + }, + "dependencies": { + "glob": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz", + "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "sax": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz", + "integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=", + "dev": true }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true + "source-map": { + "version": "0.1.43", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz", + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", + "dev": true, + "requires": { + "amdefine": "1.0.1" + } + } + } + }, + "stylus-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.1.tgz", + "integrity": "sha1-d/SzT9Aw0lsmF7z1UT21sHMMQIk=", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "lodash.clonedeep": "4.5.0", + "when": "3.6.4" + } + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "1.0.4", + "colors": "1.1.2", + "csso": "2.3.2", + "js-yaml": "3.7.0", + "mkdirp": "0.5.1", + "sax": "1.2.4", + "whet.extend": "0.9.9" + } + }, + "symbol-observable": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.4.tgz", + "integrity": "sha1-Kb9hXUqnEhvdiYsi1LP5vE4qoD0=" + }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, + "tar": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", + "dev": true, + "optional": true, + "requires": { + "block-stream": "0.0.9", + "fstream": "1.0.11", + "inherits": "2.0.3" + } + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2", + "rimraf": "2.2.8" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "thunky": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz", + "integrity": "sha1-vzAUaCTituZ7Dy16Ssi+smkIaE4=", + "dev": true + }, + "time-stamp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz", + "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.4.tgz", + "integrity": "sha512-uZYhyU3EX8O7HQP+J9fTVYwsq90Vr68xPEFo7yrVImIxYvHgukBEgOB/SgGoorWVTzGM/3Z+wUNnboA4M8jWrg==", + "dev": true, + "requires": { + "setimmediate": "1.0.5" + } + }, + "tmp": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "toposort": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.3.tgz", + "integrity": "sha1-8CzYp0vYvi/A6YYRw7rLlaFxhpw=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "requires": { + "punycode": "1.4.1" + } + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "ts-node": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-3.2.2.tgz", + "integrity": "sha1-u9KOOK9Kqj6WB2xGbhsiAZfBo84=", + "dev": true, + "requires": { + "arrify": "1.0.1", + "chalk": "2.1.0", + "diff": "3.3.0", + "make-error": "1.3.0", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map-support": "0.4.16", + "tsconfig": "6.0.0", + "v8flags": "3.0.0", + "yn": "2.0.0" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "tsconfig": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-6.0.0.tgz", + "integrity": "sha1-aw6DdgA9evGGT434+J3QBZ/80DI=", + "dev": true, + "requires": { + "strip-bom": "3.0.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "tsickle": { + "version": "0.21.6", + "resolved": "https://registry.npmjs.org/tsickle/-/tsickle-0.21.6.tgz", + "integrity": "sha1-U7Abl5xcE/2xOvs/uVgXflmRWI0=", + "dev": true, + "requires": { + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "source-map": "0.5.7", + "source-map-support": "0.4.16" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } + }, + "tslib": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.7.1.tgz", + "integrity": "sha1-vIAEFkaRkjp5/oN4u+s9ogF1OOw=" + }, + "tslint": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.3.2.tgz", + "integrity": "sha1-5WRZ+wlacwfxA7hAUhdPXju+9u0=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "colors": "1.1.2", + "diff": "3.3.0", + "glob": "7.1.2", + "optimist": "0.6.1", + "resolve": "1.4.0", + "semver": "5.4.1", + "tslib": "1.7.1", + "tsutils": "2.8.2" + }, + "dependencies": { + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + } + } + } + }, + "tsutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.8.2.tgz", + "integrity": "sha1-LBSGukMSYIRbCsb5Aq/Z1wio6mo=", + "dev": true, + "requires": { + "tslib": "1.7.1" + } + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, + "optional": true + }, + "type-is": { + "version": "1.6.15", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.15.tgz", + "integrity": "sha1-yrEPtJCeRByChC6v4a1kbIGARBA=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "2.1.16" + } + }, + "typescript": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.3.4.tgz", + "integrity": "sha1-PTgyGCgjHkNPKHUUlZw3qCtin0I=", + "dev": true + }, + "uglify-js": { + "version": "3.0.28", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.0.28.tgz", + "integrity": "sha512-0h/qGay016GG2lVav3Kz174F3T2Vjlz2v6HCt+WDQpoXfco0hWwF5gHK9yh88mUYvIC+N7Z8NT8WpjSp1yoqGA==", + "dev": true, + "requires": { + "commander": "2.11.0", + "source-map": "0.5.7" + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-js": "2.8.29", + "webpack-sources": "1.0.1" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true }, - "watchpack": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.3.1.tgz", - "integrity": "sha1-fYaTkHsozmAT5/NhCqKhrPB9rYc=", - "dev": true, - "dependencies": { - "async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz", - "integrity": "sha1-YqVrJ5yYoR0JhwlqAcw+6463u9c=", - "dev": true - } - } + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } }, - "webpack": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.0.0.tgz", - "integrity": "sha1-7pvOvyEkf3FTy0EBaMq0XjpZ1Nc=", - "dev": true, - "dependencies": { - "async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/async/-/async-2.4.1.tgz", - "integrity": "sha1-YqVrJ5yYoR0JhwlqAcw+6463u9c=", - "dev": true - }, - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true - }, - "loader-utils": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", - "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", - "dev": true - }, - "supports-color": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", - "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true - }, - "yargs": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", - "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", - "dev": true - } - } + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "0.5.7", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + } }, - "webpack-dev-middleware": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.10.2.tgz", - "integrity": "sha1-LiUs4d+wINvaHMs33ybzCrAU29E=", - "dev": true + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true }, - "webpack-sources": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", - "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", - "dev": true + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } + } + } + }, + "ultron": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz", + "integrity": "sha1-rOEWq1V80Zc4ak6I9GhTeMiy5Po=", + "dev": true + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqid": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/uniqid/-/uniqid-4.1.1.tgz", + "integrity": "sha1-iSIN32t1GuUrX3JISGNShZa7hME=", + "dev": true, + "requires": { + "macaddress": "0.2.8" + } + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "universalify": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", + "integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz", + "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==", + "dev": true, + "requires": { + "loader-utils": "1.1.0", + "mime": "1.3.6" + }, + "dependencies": { + "mime": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", + "dev": true + } + } + }, + "url-parse": { + "version": "1.1.9", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.1.9.tgz", + "integrity": "sha1-xn8dd11R8KGJEd17P/rSe7nlvRk=", + "dev": true, + "requires": { + "querystringify": "1.0.0", + "requires-port": "1.0.0" + }, + "dependencies": { + "querystringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-1.0.0.tgz", + "integrity": "sha1-YoYkIRLFtxL6ZU5SZlK/ahP/Bcs=", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "useragent": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.2.1.tgz", + "integrity": "sha1-z1k+9PLRdYdei7ZY6pLhik/QbY4=", + "dev": true, + "requires": { + "lru-cache": "2.2.4", + "tmp": "0.0.31" + }, + "dependencies": { + "lru-cache": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.2.4.tgz", + "integrity": "sha1-bGWGGb7PFAMdDQtZSxYELOTcBj0=", + "dev": true + } + } + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz", + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true + }, + "v8flags": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.0.tgz", + "integrity": "sha512-AGl+C+4qpeSu2g3JxCD/mGFFOs/vVZ3XREkD3ibQXEqr4Y4zgIrPWW124/IKJFHOIVFIoH8miWrLf0o84HYjwA==", + "dev": true, + "requires": { + "user-home": "1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } + }, + "vary": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.1.tgz", + "integrity": "sha1-Z1Neu2lMHVIldFeYRmUyP1h+jTc=", + "dev": true + }, + "vendors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.1.tgz", + "integrity": "sha1-N61zyO5Bf7PVgOeFMSMH0nSEfyI=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } + }, + "vlq": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.2.tgz", + "integrity": "sha1-4xbVJXtAuGu0PLjV/qXX9U1rDKE=", + "dev": true + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", + "dev": true + }, + "walk-sync": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-0.3.2.tgz", + "integrity": "sha512-FMB5VqpLqOCcqrzA9okZFc0wq0Qbmdm396qJxvQZhDpyu0W95G9JCmp74tx7iyYnyOcBtUuKJsgIKAqjozvmmQ==", + "dev": true, + "requires": { + "ensure-posix-path": "1.0.2", + "matcher-collection": "1.0.4" + } + }, + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", + "dev": true, + "requires": { + "async": "2.5.0", + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" + } + }, + "wbuf": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.2.tgz", + "integrity": "sha1-1pe5nx9ZUS3ydRvkJ2nBWAtYAf4=", + "dev": true, + "requires": { + "minimalistic-assert": "1.0.0" + } + }, + "webdriver-js-extender": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz", + "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", + "dev": true, + "requires": { + "@types/selenium-webdriver": "2.53.42", + "selenium-webdriver": "2.53.3" + }, + "dependencies": { + "adm-zip": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.4.tgz", + "integrity": "sha1-ph7VrmkFw66lizplfSUDMJEFJzY=", + "dev": true + }, + "sax": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/sax/-/sax-0.6.1.tgz", + "integrity": "sha1-VjsZx8HeiS4Jv8Ty/DDjwn8JUrk=", + "dev": true + }, + "selenium-webdriver": { + "version": "2.53.3", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz", + "integrity": "sha1-0p/1qVff8aG0ncRXdW5OS/vc4IU=", + "dev": true, + "requires": { + "adm-zip": "0.4.4", + "rimraf": "2.6.1", + "tmp": "0.0.24", + "ws": "1.1.2", + "xml2js": "0.4.4" + } }, - "websocket-driver": { - "version": "0.6.5", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", - "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", - "dev": true + "tmp": { + "version": "0.0.24", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.24.tgz", + "integrity": "sha1-1qXhmNFKmDXMby18PZ4wJCjIzxI=", + "dev": true + }, + "xml2js": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.4.tgz", + "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", + "dev": true, + "requires": { + "sax": "0.6.1", + "xmlbuilder": "9.0.4" + } + } + } + }, + "webpack": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.4.1.tgz", + "integrity": "sha1-TD9PP7MYFVpNsMtqNv8FxWl0GPQ=", + "dev": true, + "requires": { + "acorn": "5.1.1", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.2.2", + "ajv-keywords": "2.1.0", + "async": "2.5.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.0.3", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.0.0", + "source-map": "0.5.7", + "supports-color": "4.4.0", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.0.1", + "yargs": "8.0.2" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true }, - "websocket-extensions": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", - "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=", - "dev": true + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } }, - "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true }, - "which-module": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", - "dev": true + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } }, - "win-release": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/win-release/-/win-release-1.1.1.tgz", - "integrity": "sha1-X6VeAr58qTTt/BJmVjLoSbcuUgk=", - "dev": true + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } }, - "window-size": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", - "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } }, - "wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true }, - "ws": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", - "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", - "dev": true + "supports-color": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz", + "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } }, - "wtf-8": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", - "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", - "dev": true + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true }, - "xhr2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", - "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=", - "dev": true + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } }, - "xmlhttprequest-ssl": { - "version": "1.5.3", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", - "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", - "dev": true + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz", + "integrity": "sha1-007++y7dp+HTtdvgcolRMhllFwk=", + "dev": true, + "requires": { + "memory-fs": "0.4.1", + "mime": "1.4.0", + "path-is-absolute": "1.0.1", + "range-parser": "1.2.0", + "time-stamp": "2.0.0" + } + }, + "webpack-dev-server": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.5.1.tgz", + "integrity": "sha1-oC5yaoe7YD211xq7fW0mSb8Qx2k=", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "3.5.0", + "chokidar": "1.7.0", + "compression": "1.7.0", + "connect-history-api-fallback": "1.3.0", + "del": "3.0.0", + "express": "4.15.4", + "html-entities": "1.2.1", + "http-proxy-middleware": "0.17.4", + "internal-ip": "1.2.0", + "opn": "4.0.2", + "portfinder": "1.0.13", + "selfsigned": "1.10.1", + "serve-index": "1.9.0", + "sockjs": "0.3.18", + "sockjs-client": "1.1.2", + "spdy": "3.4.7", + "strip-ansi": "3.0.1", + "supports-color": "3.2.3", + "webpack-dev-middleware": "1.12.0", + "yargs": "6.6.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true }, - "xtend": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", - "dev": true + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, - "y18n": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", - "dev": true + "opn": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", + "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "dev": true, + "requires": { + "object-assign": "4.1.1", + "pinkie-promise": "2.0.1" + } }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } }, "yargs": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", - "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", - "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", - "dev": true - }, - "cliui": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", - "dev": true, - "dependencies": { - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true - } - } - }, - "find-up": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", - "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", - "dev": true - }, - "load-json-file": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", - "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", - "dev": true - }, - "os-locale": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.0.0.tgz", - "integrity": "sha1-FZGN7VEFIrge565aMJ1U9jn8OaQ=", - "dev": true - }, - "path-type": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", - "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", - "dev": true - }, - "read-pkg": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", - "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", - "dev": true - }, - "read-pkg-up": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", - "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", - "dev": true - }, - "string-width": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.0.0.tgz", - "integrity": "sha1-Y1xUNsxypuDDh87KJ41OLuxSaH4=", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "yargs-parser": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", - "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", - "dev": true - } - } + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz", + "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "4.2.1" + } }, "yargs-parser": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", - "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", - "dev": true, - "dependencies": { - "camelcase": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", - "dev": true - } - } + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz", + "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", + "dev": true, + "requires": { + "camelcase": "3.0.0" + } + } + } + }, + "webpack-merge": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.0.tgz", + "integrity": "sha1-atciI7PguDflMeRZfBmfkJNhUR4=", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "webpack-sources": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", + "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", + "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.5.7" + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": "0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.1.tgz", + "integrity": "sha1-domUmcGEtu91Q3fC27DNbLVdKec=", + "dev": true + }, + "when": { + "version": "3.6.4", + "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", + "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "dev": true + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, + "requires": { + "string-width": "1.0.2" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "ws": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.2.tgz", + "integrity": "sha1-iiRPoFJAHgjJiGz0SoUYnh/UBn8=", + "dev": true, + "requires": { + "options": "0.0.6", + "ultron": "1.0.2" + } + }, + "wtf-8": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wtf-8/-/wtf-8-1.0.0.tgz", + "integrity": "sha1-OS2LotDxw00e4tYw8V0O+2jhBIo=", + "dev": true + }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", + "dev": true + }, + "xml2js": { + "version": "0.4.19", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz", + "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", + "dev": true, + "requires": { + "sax": "1.2.4", + "xmlbuilder": "9.0.4" + } + }, + "xmlbuilder": { + "version": "9.0.4", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.4.tgz", + "integrity": "sha1-UZy0ymhtAFqEINNJbz8MruzKWA8=", + "dev": true + }, + "xmldom": { + "version": "0.1.27", + "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", + "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", + "dev": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz", + "integrity": "sha1-GFqIjATspGw+QHDZn3tJ3jUomS0=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "3.0.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "y18n": "3.2.1", + "yargs-parser": "5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "optional": true, + "requires": { + "number-is-nan": "1.0.1" + } }, - "zone.js": { - "version": "0.8.12", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.12.tgz", - "integrity": "sha1-hv9QU8mK7CkaC/S7rFAdaUoFz7s=", - "dev": true + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "optional": true, + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } + } + } + }, + "yargs-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", + "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", + "dev": true, + "optional": true, + "requires": { + "camelcase": "3.0.0" + }, + "dependencies": { + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true, + "optional": true } + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=", + "dev": true + }, + "zone.js": { + "version": "0.8.17", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.8.17.tgz", + "integrity": "sha1-TF5RhahX2o2nk9rzkZNxxaNrKgs=" } + } } diff --git a/package.json b/package.json index b379b36d8..97698a719 100644 --- a/package.json +++ b/package.json @@ -1,96 +1,94 @@ { - "name": "angular-slickgrid", - "version": "0.2.6", - "description": "Build an Angular library compatible with AoT compilation and Tree shaking", - "main": "./bundles/angular-slickgrid.umd.js", - "module": "./modules/angular-slickgrid.es5.js", - "es2015": "./modules/angular-slickgrid.js", - "scripts": { - "build": "node build.js", - "build-lib": "npm-run-all build sass:build sass:copy", - "build-lib-pack": "npm-run-all build-lib pack-lib", - "test": "karma start", - "pack-lib": "npm pack ./dist", - "publish-lib": "npm publish ./dist", - "compodoc": "compodoc -p tsconfig.json", - "compodoc-serve": "compodoc -s", - "build-task:scss-compile": "node-sass --source-map true src/styles/ -o dist/styles/css", - "build-task:autoprefixer": "postcss dist/styles/css/*.css --use autoprefixer -d dist/styles/css", - "sass:build": "npm-run-all -p build-task:*", - "sass:copy": "cross-env copyfiles -f src/styles/*.scss dist/styles/sass", - "sass:watch": "node-sass 'src/styles/**/*.scss' -c 'npm run sass:build'", - "dev": "npm-run-all -p sass:*" - }, - "typings": "./angular-slickgrid.d.ts", - "author": "Ghislain B.", - "repository": { - "type": "git", - "url": "https://github.com/ghiscoding/angular-slickgrid.git" - }, - "bugs": { - "url": "https://github.com/ghiscoding/angular-slickgrid/issues" - }, - "homepage": "https://github.com/ghiscoding/angular-slickgrid", - "keywords": [ - "angular", - "datagrid", - "datatable", - "javascript", - "slickgrid", - "typescript" - ], - "license": "MIT", - "peerDependencies": { - "@angular/common": ">= ^4.3.6", - "@angular/core": ">= ^4.3.6" - }, - "devDependencies": { - "@angular/animations": "^4.3.6", - "@angular/common": "^4.3.6", - "@angular/compiler": "^4.3.6", - "@angular/compiler-cli": "^4.3.6", - "@angular/core": "^4.3.6", - "@angular/platform-browser": "^4.3.6", - "@angular/platform-browser-dynamic": "^4.3.6", - "@angular/platform-server": "^4.3.6", - "@angular/router": "^4.3.6", - "@compodoc/compodoc": "1.0.0-beta.10", - "@types/jasmine": "2.5.52", - "@types/node": "8.0.1", - "autoprefixer": "^7.1.4", - "chalk": "1.1.3", - "codelyzer": "3.1.1", - "core-js": "2.4.1", - "copyfiles": "^1.2.0", - "cross-env": "^5.0.5", - "jasmine-core": "2.6.4", - "karma": "1.7.0", - "karma-chrome-launcher": "2.1.1", - "karma-jasmine": "1.1.0", - "karma-sourcemap-loader": "0.3.7", - "karma-spec-reporter": "0.0.31", - "karma-webpack": "2.0.3", - "node-sass": "^4.5.3", - "npm-run-all": "^4.1.1", - "postcss-cli": "^4.1.1", - "reflect-metadata": "0.1.10", - "rollup": "0.43.0", - "rollup-plugin-node-resolve": "3.0.0", - "rxjs": "5.4.1", - "sass-lint": "^1.12.0", - "shelljs": "0.7.8", - "sorcery": "0.10.0", - "source-map-loader": "0.2.1", - "ts-loader": "2.1.0", - "tslint": "5.4.3", - "typescript": "2.3.4", - "uglify-js": "2.8.29", - "webpack": "3.0.0", - "yargs": "8.0.2", - "zone.js": "0.8.12" - }, - "dependencies": { - "jquery": "^3.2.1", - "moment": "^2.18.1" - } + "name": "angular-slickgrid", + "version": "0.3.1", + "description": "Slickgrid components made available in Angular", + "keywords": [ + "angular", + "plugin", + "datatable", + "slickgrid" + ], + "license": "MIT", + "scripts": { + "ng": "ng", + "start": "ng serve", + "build": "ng build", + "test": "ng test", + "lint": "ng lint", + "e2e": "ng e2e", + "build-lib": "npm-run-all packagr sass:build sass:copy", + "build-lib-pack": "npm-run-all build-lib pack-lib copy-pack del-pack", + "copy-pack": "cross-env copyfiles -f *.tgz ../Angular-Slickgrid-PackageTest", + "del-pack": "cross-env del *.tgz", + "pack-lib": "npm pack ./dist", + "packagr": "ng-packagr -p ng-package.json", + "sass-build-task:scss-compile": "node-sass --source-map true src/app/modules/angular-slickgrid/styles/ -o dist/styles/css", + "sass-build-task:autoprefixer": "postcss dist/styles/css/*.css --use autoprefixer -d dist/styles/css", + "sass:build": "npm-run-all -p sass-build-task:*", + "sass:copy": "cross-env copyfiles -f src/app/modules/angular-slickgrid/styles/*.scss dist/styles/sass", + "sass:watch": "node-sass 'src/app/modules/angular-slickgrid/styles/**/*.scss' -c 'npm run sass:build'" + }, + "author": "Ghislain B.", + "repository": { + "type": "git", + "url": "http://github.com/ghiscoding/angular-slickgrid" + }, + "private": false, + "dependencies": { + "@angular/animations": "^4.4.5", + "@angular/common": "^4.4.5", + "@angular/compiler": "^4.4.5", + "@angular/core": "^4.4.5", + "@angular/forms": "^4.4.5", + "@angular/http": "^4.4.5", + "@angular/platform-browser": "^4.4.5", + "@angular/platform-browser-dynamic": "^4.4.5", + "@angular/router": "^4.4.5", + "@types/moment": "^2.13.0", + "bootstrap": "^3.3.7", + "core-js": "^2.5.1", + "font-awesome": "^4.7.0", + "graphql-query-builder": "^1.0.7", + "jquery": "^3.2.1", + "moment-mini": "^2.18.1", + "slickgrid": "^2.3.3", + "vinyl-paths": "^2.1.0", + "zone.js": "^0.8.17" + }, + "devDependencies": { + "@angular/cli": "1.4.4", + "@angular/compiler-cli": "^4.4.5", + "@angular/language-service": "^4.4.5", + "@types/jasmine": "~2.6.0", + "@types/jasminewd2": "~2.0.3", + "@types/node": "^8.0.39", + "codelyzer": "~3.2.0", + "copyfiles": "^1.2.0", + "cross-env": "^5.1.0", + "del": "^3.0.0", + "del-cli": "^1.1.0", + "gulp": "^3.9.1", + "gulp-bump": "^2.7.0", + "gulp-sass": "^3.1.0", + "gulp-yuidoc": "^0.1.2", + "jasmine-core": "~2.8.0", + "jasmine-spec-reporter": "~4.2.1", + "karma": "~1.7.1", + "karma-chrome-launcher": "~2.2.0", + "karma-cli": "~1.0.1", + "karma-coverage-istanbul-reporter": "^1.3.0", + "karma-jasmine": "~1.1.0", + "karma-jasmine-html-reporter": "^0.2.2", + "ng-packagr": "^1.4.1", + "node-sass": "^4.5.3", + "npm-run-all": "^4.1.1", + "postcss-cli": "^4.1.1", + "protractor": "~5.1.2", + "require-dir": "^0.3.2", + "run-sequence": "^2.2.0", + "ts-node": "~3.3.0", + "tslint": "~5.7.0", + "typescript": "~2.4.2", + "yargs": "^9.0.1" + } } diff --git a/demo/protractor.conf.js b/protractor.conf.js similarity index 100% rename from demo/protractor.conf.js rename to protractor.conf.js diff --git a/public_api.ts b/public_api.ts index 9a9a8d904..72771af9f 100644 --- a/public_api.ts +++ b/public_api.ts @@ -1,12 +1 @@ -/** - * Angular library starter. - * Build an Angular library compatible with AoT compilation & Tree shaking. - * Written by Roberto Simonetti. - * MIT license. - * https://github.com/robisim74/angular-slickgrid - */ - -/** - * Entry point for all public APIs of the package. - */ -export * from './src/angular-slickgrid'; +export * from './src/app/modules/angular-slickgrid/index'; diff --git a/rollup.config.js b/rollup.config.js deleted file mode 100644 index aed492daf..000000000 --- a/rollup.config.js +++ /dev/null @@ -1,27 +0,0 @@ -import resolve from 'rollup-plugin-node-resolve'; - -// Add here external dependencies that actually you use. -const globals = { - '@angular/core': 'ng.core', - '@angular/common': 'ng.common', - '@angular/router': 'ng.router', - /* - 'rxjs/Observable': 'Rx', - 'rxjs/Observer': 'Rx', - 'rxjs/add/operator/map': 'Rx', - */ - 'moment': 'moment', - 'jquery': 'jquery' -}; - -export default { - entry: './dist/modules/angular-slickgrid.es5.js', - dest: './dist/bundles/angular-slickgrid.umd.js', - format: 'umd', - exports: 'named', - moduleName: 'ng.angularLibraryStarter', - plugins: [resolve()], - external: Object.keys(globals), - globals: globals, - onwarn: () => { return } -} diff --git a/screenshots/columnPicker.png b/screenshots/columnPicker.png deleted file mode 100644 index 9b7315ba0..000000000 Binary files a/screenshots/columnPicker.png and /dev/null differ diff --git a/screenshots/filter_and_sort.png b/screenshots/filter_and_sort.png deleted file mode 100644 index decac7246..000000000 Binary files a/screenshots/filter_and_sort.png and /dev/null differ diff --git a/screenshots/formatters.png b/screenshots/formatters.png deleted file mode 100644 index ae10fea71..000000000 Binary files a/screenshots/formatters.png and /dev/null differ diff --git a/screenshots/pagination.png b/screenshots/pagination.png deleted file mode 100644 index 7b1dbb115..000000000 Binary files a/screenshots/pagination.png and /dev/null differ diff --git a/scripts/map-sources.js b/scripts/map-sources.js deleted file mode 100644 index 3ce6bfba2..000000000 --- a/scripts/map-sources.js +++ /dev/null @@ -1,9 +0,0 @@ -const sorcery = require('sorcery'); - -const argv = require('yargs') - .alias('f', 'file') - .argv; - -sorcery.load(argv.file).then(function (chain) { - chain.write(); -}); diff --git a/spec.bundle.js b/spec.bundle.js deleted file mode 100644 index 8698ee146..000000000 --- a/spec.bundle.js +++ /dev/null @@ -1,29 +0,0 @@ -import 'core-js'; -import 'zone.js/dist/zone'; -import 'zone.js/dist/long-stack-trace-zone'; -import 'zone.js/dist/proxy.js'; -import 'zone.js/dist/sync-test'; -import 'zone.js/dist/jasmine-patch'; -import 'zone.js/dist/async-test'; -import 'zone.js/dist/fake-async-test'; - -import { getTestBed } from '@angular/core/testing'; -import { - BrowserDynamicTestingModule, - platformBrowserDynamicTesting -} from '@angular/platform-browser-dynamic/testing'; - -import 'rxjs'; - -getTestBed().initTestEnvironment( - BrowserDynamicTestingModule, - platformBrowserDynamicTesting() -); - -const testContext = require.context('./', true, /\.spec\.ts/); - -function requireAll(requireContext) { - return requireContext.keys().map(requireContext); -} - -const modules = requireAll(testContext); diff --git a/demo/src/app/app-routing.module.ts b/src/app/app-routing.module.ts similarity index 82% rename from demo/src/app/app-routing.module.ts rename to src/app/app-routing.module.ts index a59a5d971..16c71d5eb 100644 --- a/demo/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,8 +1,9 @@ -import { GridBasicComponent } from './examples/grid-basic.component'; import { GridBackendComponent } from './examples/grid-backend.component'; +import { GridBasicComponent } from './examples/grid-basic.component'; import { GridClientSideComponent } from './examples/grid-clientside.component'; import { GridFormatterComponent } from './examples/grid-formatter.component'; import { GridOdataComponent } from './examples/grid-odata.component'; +import { GridGraphqlComponent } from './examples/grid-graphql.component'; import { NgModule } from '@angular/core'; import { Routes, RouterModule } from '@angular/router'; @@ -12,7 +13,8 @@ const routes: Routes = [ { path: 'clientside', component: GridClientSideComponent }, { path: 'backend', component: GridBackendComponent }, { path: 'odata', component: GridOdataComponent }, - { path: '', redirectTo: '/formatter', pathMatch: 'full' } + { path: 'graphql', component: GridGraphqlComponent }, + { path: '', redirectTo: '/basic', pathMatch: 'full' } ]; @NgModule({ diff --git a/demo/src/app/app.component.html b/src/app/app.component.html similarity index 91% rename from demo/src/app/app.component.html rename to src/app/app.component.html index e340c4755..4d6390981 100644 --- a/demo/src/app/app.component.html +++ b/src/app/app.component.html @@ -31,6 +31,9 @@
  • Backend Server with OData
  • +
  • + Backend Server with GraphQL +
  • diff --git a/demo/src/app/app.component.scss b/src/app/app.component.scss similarity index 100% rename from demo/src/app/app.component.scss rename to src/app/app.component.scss diff --git a/demo/src/app/app.component.spec.ts b/src/app/app.component.spec.ts similarity index 88% rename from demo/src/app/app.component.spec.ts rename to src/app/app.component.spec.ts index bcbdf36b3..c740bcd74 100644 --- a/demo/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -1,5 +1,7 @@ import { TestBed, async } from '@angular/core/testing'; + import { AppComponent } from './app.component'; + describe('AppComponent', () => { beforeEach(async(() => { TestBed.configureTestingModule({ @@ -8,20 +10,23 @@ describe('AppComponent', () => { ], }).compileComponents(); })); + it('should create the app', async(() => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.debugElement.componentInstance; expect(app).toBeTruthy(); })); - it(`should have as title 'app'`, async(() => { + + it(`should have as title 'app works!'`, async(() => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.debugElement.componentInstance; - expect(app.title).toEqual('app'); + expect(app.title).toEqual('app works!'); })); + it('should render title in a h1 tag', async(() => { const fixture = TestBed.createComponent(AppComponent); fixture.detectChanges(); const compiled = fixture.debugElement.nativeElement; - expect(compiled.querySelector('h1').textContent).toContain('Welcome to app!'); + expect(compiled.querySelector('h1').textContent).toContain('app works!'); })); }); diff --git a/demo/src/app/app.component.ts b/src/app/app.component.ts similarity index 84% rename from demo/src/app/app.component.ts rename to src/app/app.component.ts index fac2ca143..56ec51382 100644 --- a/demo/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -6,5 +6,5 @@ import { Component } from '@angular/core'; styleUrls: ['./app.component.scss'] }) export class AppComponent { - title = 'SlickGrid Demo'; + title = 'Angular SlickGrid Demo'; } diff --git a/demo/src/app/app.module.ts b/src/app/app.module.ts similarity index 63% rename from demo/src/app/app.module.ts rename to src/app/app.module.ts index f0c235e33..5aa98be25 100644 --- a/demo/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,26 +1,32 @@ -import { GridOdataService } from 'angular-slickgrid'; -import { HttpClientModule } from '@angular/common/http'; -import { GridBasicComponent } from './examples/grid-basic.component'; -import { GridFormatterComponent } from './examples/grid-formatter.component'; -import { GridClientSideComponent } from './examples/grid-clientside.component'; -import { GridBackendComponent } from './examples/grid-backend.component'; -import { GridOdataComponent } from './examples/grid-odata.component'; +import { GridOdataService } from './modules/angular-slickgrid/services'; import { AppRoutingRoutingModule } from './app-routing.module'; import { BrowserModule } from '@angular/platform-browser'; +import { HttpClientModule } from '@angular/common/http'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; -import { AngularSlickgridModule } from 'angular-slickgrid'; -// import { AngularSlickgridModule } from '../../../src/modules/angular-slickgrid.module'; +import { GridBasicComponent } from './examples/grid-basic.component'; +import { GridBackendComponent } from './examples/grid-backend.component'; +import { GridClientSideComponent } from './examples/grid-clientside.component'; +import { GridFormatterComponent } from './examples/grid-formatter.component'; +import { GridOdataComponent } from './examples/grid-odata.component'; +import { GridGraphqlComponent, PrettyPrintPipe } from './examples/grid-graphql.component'; + +// import our custom module, library created using this article +// https://medium.com/@ngl817/building-an-angular-4-component-library-with-the-angular-cli-and-ng-packagr-53b2ade0701e +import { AngularSlickgridModule } from './modules/angular-slickgrid/modules/angular-slickgrid.module'; +// import { SlickgridModule } from 'angular-slickgrid'; @NgModule({ declarations: [ AppComponent, + PrettyPrintPipe, GridBasicComponent, GridClientSideComponent, GridFormatterComponent, GridBackendComponent, - GridOdataComponent + GridOdataComponent, + GridGraphqlComponent ], imports: [ AppRoutingRoutingModule, diff --git a/demo/src/app/examples/grid-backend.component.html b/src/app/examples/grid-backend.component.html similarity index 100% rename from demo/src/app/examples/grid-backend.component.html rename to src/app/examples/grid-backend.component.html diff --git a/demo/src/app/examples/grid-backend.component.scss b/src/app/examples/grid-backend.component.scss similarity index 100% rename from demo/src/app/examples/grid-backend.component.scss rename to src/app/examples/grid-backend.component.scss diff --git a/src/app/examples/grid-backend.component.spec.ts b/src/app/examples/grid-backend.component.spec.ts new file mode 100644 index 000000000..9d517d6a7 --- /dev/null +++ b/src/app/examples/grid-backend.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GridBackendComponent } from './grid-backend.component'; + +describe('GridBackendComponent', () => { + let component: GridBackendComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ GridBackendComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(GridBackendComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/demo/src/app/examples/grid-backend.component.ts b/src/app/examples/grid-backend.component.ts similarity index 93% rename from demo/src/app/examples/grid-backend.component.ts rename to src/app/examples/grid-backend.component.ts index a241569fd..af4c0acce 100644 --- a/demo/src/app/examples/grid-backend.component.ts +++ b/src/app/examples/grid-backend.component.ts @@ -1,6 +1,8 @@ import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core'; -import { FieldType, Formatters, Column, Formatter, FormElementType, GridOption } from 'angular-slickgrid'; import { HttpClient } from '@angular/common/http'; +import { Column } from './../modules/angular-slickgrid/models/column.interface'; +import { GridOption } from './../modules/angular-slickgrid/models/gridOption.interface'; +import { Formatters } from './../modules/angular-slickgrid'; const defaultPageSize = 20; const sampleDataRoot = '/assets/data'; diff --git a/demo/src/app/examples/grid-basic.component.html b/src/app/examples/grid-basic.component.html similarity index 100% rename from demo/src/app/examples/grid-basic.component.html rename to src/app/examples/grid-basic.component.html diff --git a/demo/src/app/examples/grid-basic.component.scss b/src/app/examples/grid-basic.component.scss similarity index 100% rename from demo/src/app/examples/grid-basic.component.scss rename to src/app/examples/grid-basic.component.scss diff --git a/demo/src/app/examples/grid-basic.component.ts b/src/app/examples/grid-basic.component.ts similarity index 87% rename from demo/src/app/examples/grid-basic.component.ts rename to src/app/examples/grid-basic.component.ts index 1e9249183..2c73ee068 100644 --- a/demo/src/app/examples/grid-basic.component.ts +++ b/src/app/examples/grid-basic.component.ts @@ -1,5 +1,8 @@ import { Component, OnInit } from '@angular/core'; -import { Column, GridOption } from 'angular-slickgrid'; +import { Column, GridOption } from './../modules/angular-slickgrid/models'; + +// using external js modules in Angular +declare var Slick: any; @Component({ templateUrl: './grid-basic.component.html', @@ -26,12 +29,12 @@ export class GridBasicComponent implements OnInit { enableAutoResize: false }; - // mock a dataset + // fake a dataset this.dataset = []; for (let i = 0; i < 1000; i++) { const randomYear = 2000 + Math.floor(Math.random() * 10); const randomMonth = Math.floor(Math.random() * 11); - const randomDay = Math.floor((Math.random() * 28)); + const randomDay = Math.floor((Math.random() * 29)); const randomPercent = Math.round(Math.random() * 100); this.dataset[i] = { diff --git a/demo/src/app/examples/grid-clientside.component.html b/src/app/examples/grid-clientside.component.html similarity index 100% rename from demo/src/app/examples/grid-clientside.component.html rename to src/app/examples/grid-clientside.component.html diff --git a/demo/src/app/examples/grid-clientside.component.scss b/src/app/examples/grid-clientside.component.scss similarity index 100% rename from demo/src/app/examples/grid-clientside.component.scss rename to src/app/examples/grid-clientside.component.scss diff --git a/demo/src/app/examples/grid-clientside.component.ts b/src/app/examples/grid-clientside.component.ts similarity index 94% rename from demo/src/app/examples/grid-clientside.component.ts rename to src/app/examples/grid-clientside.component.ts index d42f989a0..e00a83136 100644 --- a/demo/src/app/examples/grid-clientside.component.ts +++ b/src/app/examples/grid-clientside.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { FieldType, Formatters, Column, Formatter, FormElementType, GridOption } from 'angular-slickgrid'; +import { Formatters } from './../modules/angular-slickgrid'; +import { Column, FieldType, Formatter, FormElementType, GridOption } from './../modules/angular-slickgrid/models'; function randomBetween(min, max) { return Math.floor(Math.random() * (max - min + 1) + min); @@ -41,7 +42,7 @@ export class GridClientSideComponent implements OnInit { { id: 'start', name: 'Start', field: 'start', formatter: Formatters.dateIso, filterable: true, sortable: true, type: FieldType.date }, { id: 'usDateShort', name: 'US Date Short', field: 'usDateShort', filterable: true, sortable: true, type: FieldType.dateUsShort }, { id: 'utcDate', name: 'UTC Date', field: 'utcDate', formatter: Formatters.dateTimeIsoAmPm, filterable: true, sortable: true, minWidth: 115, type: FieldType.dateUtc, filterSearchType: FieldType.dateTimeIso }, - { id: 'utcDate2', name: 'UTC Date (filterSearchType: dateUS)', field: 'utcDate', filterable: true, sortable: true, minWidth: 118, formatter: Formatters.dateUs, type: FieldType.dateUtc, filterSearchType: FieldType.dateUs }, + { id: 'utcDate2', name: 'UTC Date (filterSearchType: dateUS)', field: 'utcDate', filterable: true, sortable: true, minWidth: 115, type: FieldType.dateUtc, filterSearchType: FieldType.dateUs }, { id: 'effort-driven', name: 'Effort Driven', field: 'effortDriven', maxWidth: 80, formatter: Formatters.checkmark, type: FieldType.boolean, sortable: true, @@ -62,7 +63,7 @@ export class GridClientSideComponent implements OnInit { enableCellNavigation: true }; - // mock a dataset + // fake a dataset this.dataset = []; for (let i = 0; i < 1000; i++) { const randomYear = randomBetween(2000, 2025); diff --git a/demo/src/app/examples/grid-formatter.component.html b/src/app/examples/grid-formatter.component.html similarity index 100% rename from demo/src/app/examples/grid-formatter.component.html rename to src/app/examples/grid-formatter.component.html diff --git a/demo/src/app/examples/grid-formatter.component.scss b/src/app/examples/grid-formatter.component.scss similarity index 100% rename from demo/src/app/examples/grid-formatter.component.scss rename to src/app/examples/grid-formatter.component.scss diff --git a/demo/src/app/examples/grid-formatter.component.ts b/src/app/examples/grid-formatter.component.ts similarity index 93% rename from demo/src/app/examples/grid-formatter.component.ts rename to src/app/examples/grid-formatter.component.ts index c76651ce7..35517b44f 100644 --- a/demo/src/app/examples/grid-formatter.component.ts +++ b/src/app/examples/grid-formatter.component.ts @@ -1,5 +1,6 @@ import { Component, OnInit } from '@angular/core'; -import { FieldType, Formatters, Column, Formatter, FormElementType, GridOption } from 'angular-slickgrid'; +import { Formatters } from './../modules/angular-slickgrid'; +import { Column, FieldType, Formatter, GridOption } from './../modules/angular-slickgrid/models'; // create my custom Formatter with the Formatter type const myCustomCheckboxFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) => @@ -35,7 +36,7 @@ export class GridFormatterComponent implements OnInit { enableCellNavigation: true }; - // mock a dataset + // fake a dataset this.dataset = []; for (let i = 0; i < 1000; i++) { const randomYear = 2000 + Math.floor(Math.random() * 10); diff --git a/src/app/examples/grid-graphql.component.html b/src/app/examples/grid-graphql.component.html new file mode 100644 index 000000000..04fbd19ed --- /dev/null +++ b/src/app/examples/grid-graphql.component.html @@ -0,0 +1,42 @@ + +
    +

    {{title}}

    +
    + +
    +
    +
    + Status: {{status.text}} + + + +
    +
    + : + + + + +
    +
    +
    +
    + GraphQL Query: +
    +
    +
    +
    + + + +
    + diff --git a/demo/src/assets/.gitkeep b/src/app/examples/grid-graphql.component.scss similarity index 100% rename from demo/src/assets/.gitkeep rename to src/app/examples/grid-graphql.component.scss diff --git a/src/app/examples/grid-graphql.component.ts b/src/app/examples/grid-graphql.component.ts new file mode 100644 index 000000000..10502d1ce --- /dev/null +++ b/src/app/examples/grid-graphql.component.ts @@ -0,0 +1,279 @@ +import { Component, Input, OnInit, Output, EventEmitter, Pipe, PipeTransform } from '@angular/core'; +import { CaseType, Column, FormElementType, GridOption } from './../modules/angular-slickgrid/models'; +import { FieldType, Formatters } from './../modules/angular-slickgrid'; +import { GraphqlService } from './../modules/angular-slickgrid/services'; +import { HttpClient } from '@angular/common/http'; + +const defaultPageSize = 20; +const sampleDataRoot = '/assets/data'; + +@Pipe({name: 'prettyprint'}) +export class PrettyPrintPipe implements PipeTransform { + transform(val: string) { + return val + .replace(/,(?![^(]*\))/g, '
      ') + .replace(/},/g, '
    }') + .replace(/}/g, '
    }') + .replace(/{/g, '{
      '); + } +} + +@Component({ + templateUrl: './grid-graphql.component.html', + styleUrls: ['./grid-graphql.component.scss'] +}) +export class GridGraphqlComponent implements OnInit { + title = 'Grid connected to Backend Server with GraphQL'; + subTitle = ` + Sorting/Paging connected to a Backend GraphQL Service. +
    +
      +
    • Only "Name" field is sortable for the demo (because we use JSON files), however "multiColumnSort: true" is also supported
    • +
    • String column also support operator (>, >=, <, <=, <>, !=, =, ==, *) +
        +
      • The (*) can be used as startsWith (ex.: "abc*" => startsWith "abc") / endsWith (ex.: "*xyz" => endsWith "xyz")
      • +
      • The other operators can be used on column type number for example: ">=100" (bigger or equal than 100)
      • +
      +
    + `; + columnDefinitions: Column[]; + gridOptions: GridOption; + dataset = []; + + graphqlQuery = ''; + processing = false; + status = { text: '', class: '' }; + isWithCursor = false; + + constructor(private http: HttpClient, private graphqlService: GraphqlService) { + } + + ngOnInit(): void { + this.columnDefinitions = [ + { id: 'name', name: 'Name', field: 'name', filterable: true, sortable: true, type: FieldType.string }, + { id: 'gender', name: 'Gender', field: 'gender', filterable: true, sortable: false, + filter: { + searchTerm: '', // default selection + type: FormElementType.select, + selectOptions: [ { value: '', label: '' }, { value: 'male', label: 'male' }, { value: 'female', label: 'female' } ] + } + }, + { id: 'company', name: 'Company', field: 'company' } + ]; + + this.gridOptions = { + enableAutoResize: true, + autoResize: { + containerId: 'demo-container', + sidePadding: 15 + }, + enableFiltering: true, + enableCellNavigation: true, + enablePagination: true, + pagination: { + pageSizes: [10, 15, 20, 25, 30, 40, 50, 75, 100], + pageSize: defaultPageSize, + totalItems: 0 + }, + onFilterChanged: (event, args) => { + this.displaySpinner(true); + const query = this.graphqlService.onFilterChanged(event, args); + // this.getCustomerApiCall(query).then((data) => this.getCustomerCallback(data)); + }, + onPaginationChanged: (event, args) => { + this.displaySpinner(true); + const query = this.graphqlService.onPaginationChanged(event, args); + this.getCustomerApiCall(query).then((data) => this.getCustomerCallback(data)); + }, + onSortChanged: (event, args) => { + this.displaySpinner(true); + const query = this.graphqlService.onSortChanged(event, args); + // this.getCustomerApiCall(query).then((data) => this.getCustomerCallback(data)); + } + }; + + const paginationOption = this.getPaginationOption(this.isWithCursor); + this.graphqlService.initOptions(paginationOption); + + // get the data from backend on page load + this.displaySpinner(true); + this.getCustomerApiCall(this.graphqlService.buildQuery()).then((data) => this.getCustomerCallback(data)); + } + + displaySpinner(isProcessing) { + this.processing = isProcessing; + this.status = (isProcessing) + ? { text: 'processing...', class: 'alert alert-danger' } + : { text: 'done', class: 'alert alert-success' }; + } + + onWithCursorChange(isWithCursor) { + this.isWithCursor = isWithCursor; + const paginationOption = this.getPaginationOption(isWithCursor); + this.graphqlService.initOptions(paginationOption); + this.graphqlQuery = this.graphqlService.buildQuery(); + } + + getPaginationOption(isWithCursor: boolean) { + let paginationOption; + const columnIds = Array.isArray(this.columnDefinitions) ? this.columnDefinitions.map((column) => column.field) : []; + + // Slickgrid also requires the "id" field + columnIds.push('id'); + + if (isWithCursor) { + // with cursor, paginationOptions can be: { first, last, after, before } + paginationOption = { + datasetName: 'users', + dataFilters: columnIds, + isWithCursor: true, + paginationOptions: { + first: defaultPageSize + } + }; + } else { + // without cursor, paginationOptions can be: { first, last, offset } + paginationOption = { + datasetName: 'users', + dataFilters: columnIds, + isWithCursor: false, + paginationOptions: { + first: defaultPageSize, + offset: 0 + } + }; + } + return paginationOption; + } + + getCustomerCallback(data) { + this.displaySpinner(false); + + this.dataset = data['items']; + this.graphqlQuery = data['query']; + + // totalItems property needs to be filled for pagination to work correctly + this.gridOptions.pagination.totalItems = data['totalRecordCount']; + } + + getCustomerApiCall(query) { + // in your case, you will call your WebAPI function (wich needs to return a Promise) + // for the demo purpose, we will call a mock WebAPI function + return new Promise((resolve, reject) => { + this.graphqlQuery = this.graphqlService.buildQuery(); + resolve({ items: [], totalRecordCount: 100, query: query }); + }); + // return this.getCustomerDataApiMock(query); + } + + /** This function is only here to mock a WebAPI call (since we are using a JSON file for the demo) + * in your case the getCustomer() should be a WebAPI function returning a Promise + */ + getCustomerDataApiMock(query) { + // the mock is returning a Promise, just like a WebAPI typically does + return new Promise((resolve, reject) => { + const queryParams = query.toLowerCase().split('&'); + let top: number; + let skip = 0; + let orderBy = ''; + let countTotalItems = 100; + let columnFilters = {}; + + for (const param of queryParams) { + if (param.includes('$top=')) { + top = +(param.substring('$top='.length)); + } + if (param.includes('$skip=')) { + skip = +(param.substring('$skip='.length)); + } + if (param.includes('$orderby=')) { + orderBy = param.substring('$orderby='.length); + } + if (param.includes('$filter=')) { + const filterBy = param.substring('$filter='.length); + if (filterBy.includes('substringof')) { + const filterMatch = filterBy.match(/substringof\('(.*?)',([a-zA-Z ]*)/); + const fieldName = filterMatch[2].trim(); + columnFilters[fieldName] = { + type: 'substring', + term: filterMatch[1].trim() + }; + } + if (filterBy.includes('eq')) { + const filterMatch = filterBy.match(/([a-zA-Z ]*) eq '(.*?)'/); + const fieldName = filterMatch[1].trim(); + columnFilters[fieldName] = { + type: 'equal', + term: filterMatch[2].trim() + }; + } + if (filterBy.includes('startswith')) { + const filterMatch = filterBy.match(/startswith\(([a-zA-Z ]*),\s?'(.*?)'/); + const fieldName = filterMatch[1].trim(); + columnFilters[fieldName] = { + type: 'starts', + term: filterMatch[2].trim() + }; + } + if (filterBy.includes('endswith')) { + const filterMatch = filterBy.match(/endswith\(([a-zA-Z ]*),\s?'(.*?)'/); + const fieldName = filterMatch[1].trim(); + columnFilters[fieldName] = { + type: 'ends', + term: filterMatch[2].trim() + }; + } + } + } + + const sort = orderBy.includes('asc') + ? 'ASC' + : orderBy.includes('desc') + ? 'DESC' + : ''; + + let url; + switch (sort) { + case 'ASC': + url = `${sampleDataRoot}/customers_100_ASC.json`; + break; + case 'DESC': + url = `${sampleDataRoot}/customers_100_DESC.json`; + break; + default: + url = `${sampleDataRoot}/customers_100.json`; + break; + } + + this.http.get(url).subscribe(data => { + const dataArray = data; + + // Read the result field from the JSON response. + const firstRow = skip; + let filteredData = dataArray; + if (columnFilters) { + for (const columnId in columnFilters) { + if (columnFilters.hasOwnProperty(columnId)) { + filteredData = filteredData.filter(column => { + const filterType = columnFilters[columnId].type; + const searchTerm = columnFilters[columnId].term; + switch (filterType) { + case 'equal': return column[columnId] === searchTerm; + case 'ends': return column[columnId].toLowerCase().endsWith(searchTerm); + case 'starts': return column[columnId].toLowerCase().startsWith(searchTerm); + case 'substring': return column[columnId].toLowerCase().includes(searchTerm); + } + }); + } + } + countTotalItems = filteredData.length; + } + const updatedData = filteredData.slice(firstRow, firstRow + top); + + setTimeout(() => { + resolve({ items: updatedData, totalRecordCount: countTotalItems, query: query }); + }, 500); + }); + }); + } +} diff --git a/demo/src/app/examples/grid-odata.component.html b/src/app/examples/grid-odata.component.html similarity index 100% rename from demo/src/app/examples/grid-odata.component.html rename to src/app/examples/grid-odata.component.html diff --git a/demo/src/app/examples/grid-odata.component.scss b/src/app/examples/grid-odata.component.scss similarity index 100% rename from demo/src/app/examples/grid-odata.component.scss rename to src/app/examples/grid-odata.component.scss diff --git a/src/app/examples/grid-odata.component.spec.ts b/src/app/examples/grid-odata.component.spec.ts new file mode 100644 index 000000000..0bded68ce --- /dev/null +++ b/src/app/examples/grid-odata.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { GridOdataComponent } from './grid-odata.component'; + +describe('GridOdataComponent', () => { + let component: GridOdataComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ GridOdataComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(GridOdataComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/demo/src/app/examples/grid-odata.component.ts b/src/app/examples/grid-odata.component.ts similarity index 96% rename from demo/src/app/examples/grid-odata.component.ts rename to src/app/examples/grid-odata.component.ts index ac7d15f07..d7528f6b9 100644 --- a/demo/src/app/examples/grid-odata.component.ts +++ b/src/app/examples/grid-odata.component.ts @@ -1,5 +1,7 @@ import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core'; -import { CaseType, FieldType, Formatters, Column, Formatter, FormElementType, GridOption, GridOdataService } from 'angular-slickgrid'; +import { CaseType, Column, FormElementType, GridOption } from './../modules/angular-slickgrid/models'; +import { FieldType, Formatters } from './../modules/angular-slickgrid'; +import { GridOdataService } from './../modules/angular-slickgrid/services'; import { HttpClient } from '@angular/common/http'; const defaultPageSize = 20; @@ -42,7 +44,7 @@ export class GridOdataComponent implements OnInit { ngOnInit(): void { this.columnDefinitions = [ { id: 'name', name: 'Name', field: 'name', filterable: true, sortable: true, type: FieldType.string }, - { id: 'gender', name: 'Gender', field: 'gender', filterable: true, sortable: false, + { id: 'gender', name: 'Gender', field: 'gender', filterable: true, sortable: true, filter: { searchTerm: '', // default selection type: FormElementType.select, diff --git a/src/components/angular-slickgrid.component.ts b/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts similarity index 89% rename from src/components/angular-slickgrid.component.ts rename to src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts index 5c7386a8a..df11b7cf9 100644 --- a/src/components/angular-slickgrid.component.ts +++ b/src/app/modules/angular-slickgrid/components/angular-slickgrid.component.ts @@ -1,12 +1,6 @@ +import { Column, ColumnFilters, FormElementType, GridOption } from './../models'; import { AfterViewInit, Component, Injectable, Input, OnInit } from '@angular/core'; -import { Column } from './../models/column.interface'; -import { ColumnFilters } from './../models/columnFilters.interface'; -import { FormElementType } from './../models/formElementType'; -import { GridOption } from './../models/gridOption.interface'; -import { FilterService } from './../services/filter.service'; -import { MouseService } from './../services/mouse.service'; -import { SortService } from './../services/sort.service'; -import { ResizerService } from './../services/resizer.service'; +import { FilterService, MouseService, SortService, ResizerService } from './../services'; import { GlobalGridOptions } from './../global-grid-options'; // using external js modules in Angular @@ -75,10 +69,7 @@ export class AngularSlickgridComponent implements AfterViewInit, OnInit { this.grid = new Slick.Grid(`#${this.gridId}`, this._dataView, this.columnDefinitions, this._gridOptions); this.grid.setSelectionModel(new Slick.RowSelectionModel()); - - if (this._gridOptions.enableColumnPicker) { - const columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); - } + const columnpicker = new Slick.Controls.ColumnPicker(this.columnDefinitions, this.grid, this._gridOptions); this.grid.init(); this._dataView.beginUpdate(); diff --git a/src/app/modules/angular-slickgrid/components/slick-pagination.component.html b/src/app/modules/angular-slickgrid/components/slick-pagination.component.html new file mode 100644 index 000000000..3a84a9f61 --- /dev/null +++ b/src/app/modules/angular-slickgrid/components/slick-pagination.component.html @@ -0,0 +1,42 @@ +
    +
    + + +
    + page {{pageNumber}} of {{pageCount}} +
    + + +
    + + + items per page, + + {{dataFrom}}-{{dataTo}} of {{totalItems}} items + + +
    diff --git a/src/app/modules/angular-slickgrid/components/slick-pagination.component.scss b/src/app/modules/angular-slickgrid/components/slick-pagination.component.scss new file mode 100644 index 000000000..f9f7442d6 --- /dev/null +++ b/src/app/modules/angular-slickgrid/components/slick-pagination.component.scss @@ -0,0 +1,119 @@ +/* pagination/pagination variables */ +@import './../styles/variables.scss'; + +/* Pagination styling */ +.slick-pagination { + border-top: $pagination-border-top; + border-right: $pagination-border-right; + border-bottom: $pagination-border-bottom; + border-left: $pagination-border-left; + width: 100%; + height: 34px; + padding-top: 4px; + vertical-align: middle; + font-family: $font-family; + font-size: ($font-size-base - 1px); + font-weight: 400; + color: $pagination-text-color; + + .slick-pagination-status { + display: inline-block; + padding: 6px; + } + + .ui-icon-container { + display: inline-block; + border-color: $pagination-border-color; + } + + .slick-pagination-nav { + display: inline-block; + padding: 2px; + height: 34px; + + nav { + display: inline-block; + } + + .slick-page-number { + vertical-align: top; + margin-top: 6px; + display: inline-block; + padding: 0 5px; + } + + .pagination { + margin: 0; + + .page-link { + font-size: ($font-size-base - 1px); + border: $pagination-button-border; + } + + .page-item { + cursor: pointer; + + a[class*="icon-seek-"] { + text-decoration: none; + font-family: $icon-font-family; + font-size: $icon-font-size; + /*color: inherit;*/ + + border-color: rgb(196, 196, 196); + } + + .icon-seek-first { + &:before { + content: $pagination-icon-seek-first; + } + } + .icon-seek-prev { + &:before { + content: $pagination-icon-seek-prev; + } + } + .icon-seek-next { + &:before { + content: $pagination-icon-seek-next; + } + } + .icon-seek-end { + &:before { + content: $pagination-icon-seek-end; + } + } + } + .page-item.disabled { + cursor: not-allowed; + font-weight: normal; + + a[class*="icon-seek-"] { + color: #b8b8b8; + background-color: rgb(249, 249, 249); + border-color: #dedede; + } + } + } + } + + .slick-pagination-settings { + display: block; + float: right; + padding: 2px; + vertical-align: middle; + + select { + font-size: ($font-size-base - 2px); + line-height: 1.5; + height: 32px; + width: 62px; + padding: 5px; + border: $pagination-button-border; + border-radius: 3px; + } + + .slick-pagination-count { + padding-left: 10px; + } + } +} diff --git a/src/app/modules/angular-slickgrid/components/slick-pagination.component.ts b/src/app/modules/angular-slickgrid/components/slick-pagination.component.ts new file mode 100644 index 000000000..e31c737b1 --- /dev/null +++ b/src/app/modules/angular-slickgrid/components/slick-pagination.component.ts @@ -0,0 +1,117 @@ +import { Component, OnInit, Input, AfterViewInit } from '@angular/core'; +import { Column, GridOption } from './../models'; + +@Component({ + selector: 'slick-pagination', + templateUrl: './slick-pagination.component.html', + styleUrls: ['./slick-pagination.component.scss'] +}) +export class SlickPaginationComponent implements AfterViewInit, OnInit { + private _gridPaginationOptions: GridOption; + + @Input() + set gridPaginationOptions(gridPaginationOptions: GridOption) { + this._gridPaginationOptions = gridPaginationOptions; + if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) { + this.refreshPagination(); + } + } + get gridPaginationOptions(): GridOption { + return this._gridPaginationOptions; + } + @Input() grid: any; + dataFrom = 1; + dataTo = 1; + itemsPerPage = 25; + pageCount = 0; + pageNumber = 1; + totalItems = 0; + paginationCallback: Function; + paginationPageSizes = [25, 75, 100]; + + constructor() { } + + ngOnInit() { + } + + ngAfterViewInit() { + this._gridPaginationOptions = this._gridPaginationOptions; + if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) { + this.refreshPagination(); + } + } + + ceil(number: number) { + return Math.ceil(number); + } + onChangeItemPerPage(event: any) { + const itemsPerPage = event.target.value; + this.pageCount = Math.ceil(this.totalItems / itemsPerPage); + this.pageNumber = 1; + this.itemsPerPage = itemsPerPage; + this.onPageChanged(event, this.pageNumber); + } + + changeToFirstPage(event: any) { + this.pageNumber = 1; + this.onPageChanged(event, this.pageNumber); + } + changeToLastPage(event: any) { + this.pageNumber = this.pageCount; + this.onPageChanged(event, this.pageNumber); + } + changeToNextPage(event: any) { + if (this.pageNumber < this.pageCount) { + this.pageNumber++; + this.onPageChanged(event, this.pageNumber); + } + } + changeToPreviousPage(event: any) { + if (this.pageNumber > 0) { + this.pageNumber--; + this.onPageChanged(event, this.pageNumber); + } + } + + gotoFirstPage() { + this.pageNumber = 1; + this.onPageChanged(undefined, this.pageNumber); + } + + refreshPagination() { + if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) { + // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes + if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) { + this.pageNumber = 1; + this.recalculateFromToIndexes(); + } + + // calculate and refresh the multiple properties of the pagination UI + this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes; + this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize; + if (this._gridPaginationOptions.onPaginationChanged) { + this.paginationCallback = this._gridPaginationOptions.onPaginationChanged; + } + this.totalItems = this._gridPaginationOptions.pagination.totalItems; + this.dataTo = this.itemsPerPage; + } + this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage); + } + + onPageChanged(event?: Event, pageNumber?: number) { + this.recalculateFromToIndexes(); + + if (this.dataTo > this.totalItems) { + this.dataTo = this.totalItems; + } + if (typeof this.paginationCallback === 'function') { + const itemsPerPage = this.itemsPerPage; + this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage }); + } + } + + recalculateFromToIndexes() { + this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1; + this.dataTo = (this.pageNumber * this.itemsPerPage); + } +} diff --git a/src/filter-conditions/booleanFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.ts similarity index 61% rename from src/filter-conditions/booleanFilterCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.ts index b4513dbfb..e5d8159f3 100644 --- a/src/filter-conditions/booleanFilterCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/booleanFilterCondition.ts @@ -1,5 +1,5 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; +import { FilterCondition, FilterConditionOption } from './../models'; +import { testFilterCondition } from './filterUtilities'; function parseBoolean(str: string) { return /(true|1)/i.test(str); diff --git a/src/filter-conditions/dateFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.ts similarity index 83% rename from src/filter-conditions/dateFilterCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.ts index f4637d3ef..78477b76c 100644 --- a/src/filter-conditions/dateFilterCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/dateFilterCondition.ts @@ -1,8 +1,7 @@ import { FieldType } from '../models/fieldType'; -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; +import { FilterCondition, FilterConditionOption } from '../models'; import { testFilterCondition, mapDateFormatByFieldType } from './filterUtilities'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateFilterCondition: FilterCondition = (options: FilterConditionOption) => { diff --git a/src/filter-conditions/dateIsoFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.ts similarity index 81% rename from src/filter-conditions/dateIsoFilterCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.ts index 4821207df..4dbb2748d 100644 --- a/src/filter-conditions/dateIsoFilterCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/dateIsoFilterCondition.ts @@ -1,7 +1,6 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; +import { FilterCondition, FilterConditionOption } from '../models'; import { testFilterCondition } from './filterUtilities'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 const DATE_FORMAT = 'YYYY-MM-DD'; diff --git a/src/filter-conditions/dateUsFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.ts similarity index 81% rename from src/filter-conditions/dateUsFilterCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.ts index ecd774b03..ff8f80c72 100644 --- a/src/filter-conditions/dateUsFilterCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/dateUsFilterCondition.ts @@ -1,7 +1,6 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; +import { FilterCondition, FilterConditionOption } from '../models'; import { testFilterCondition } from './filterUtilities'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 const DATE_FORMAT = 'M/D/YYYY'; diff --git a/src/filter-conditions/dateUsShortFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.ts similarity index 81% rename from src/filter-conditions/dateUsShortFilterCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.ts index 33f2e5e9c..18a133f79 100644 --- a/src/filter-conditions/dateUsShortFilterCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/dateUsShortFilterCondition.ts @@ -1,7 +1,6 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; +import { FilterCondition, FilterConditionOption } from '../models'; import { testFilterCondition } from './filterUtilities'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 const DATE_FORMAT = 'M/D/YY'; diff --git a/src/filter-conditions/dateUtcFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.ts similarity index 85% rename from src/filter-conditions/dateUtcFilterCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.ts index 06e863149..0c6489a1f 100644 --- a/src/filter-conditions/dateUtcFilterCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/dateUtcFilterCondition.ts @@ -1,7 +1,6 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; +import { FilterCondition, FilterConditionOption } from '../models'; import { mapDateFormatByFieldType, testFilterCondition } from './filterUtilities'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateUtcFilterCondition: FilterCondition = (options: FilterConditionOption) => { diff --git a/src/filter-conditions/executeMappedCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.ts similarity index 96% rename from src/filter-conditions/executeMappedCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.ts index 6c6dd155d..6df97f176 100644 --- a/src/filter-conditions/executeMappedCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/executeMappedCondition.ts @@ -8,7 +8,7 @@ import { dateUsFilterCondition } from './dateUsFilterCondition'; import { dateFilterCondition } from './dateFilterCondition'; import { numberFilterCondition } from './numberFilterCondition'; import { stringFilterCondition } from './stringFilterCondition'; -import { FieldType } from '../models/fieldType'; +import { FieldType } from '../models'; export const executeMappedCondition: FilterCondition = (options: FilterConditionOption) => { // execute the mapped type, or default to String condition check diff --git a/src/filter-conditions/filterUtilities.ts b/src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.ts similarity index 94% rename from src/filter-conditions/filterUtilities.ts rename to src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.ts index 461179f43..1f3c9e8d3 100644 --- a/src/filter-conditions/filterUtilities.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/filterUtilities.ts @@ -1,4 +1,4 @@ -import { FieldType } from '../models/fieldType'; +import { FieldType } from '../models'; export const mapDateFormatByFieldType: Function = (fieldType: FieldType) => { switch (fieldType) { diff --git a/src/filter-conditions/index.ts b/src/app/modules/angular-slickgrid/filter-conditions/index.ts similarity index 100% rename from src/filter-conditions/index.ts rename to src/app/modules/angular-slickgrid/filter-conditions/index.ts diff --git a/src/filter-conditions/numberFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.ts similarity index 63% rename from src/filter-conditions/numberFilterCondition.ts rename to src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.ts index a9d14441a..7b44643df 100644 --- a/src/filter-conditions/numberFilterCondition.ts +++ b/src/app/modules/angular-slickgrid/filter-conditions/numberFilterCondition.ts @@ -1,5 +1,4 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; +import { FilterCondition, FilterConditionOption } from '../models'; import { testFilterCondition } from './filterUtilities'; export const numberFilterCondition: FilterCondition = (options: FilterConditionOption) => { diff --git a/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.ts b/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.ts new file mode 100644 index 000000000..e9a312bf2 --- /dev/null +++ b/src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.ts @@ -0,0 +1,16 @@ +import { FilterCondition, FilterConditionOption } from '../models'; +import { testFilterCondition } from './filterUtilities'; + +export const stringFilterCondition: FilterCondition = (options: FilterConditionOption) => { + // make sure the cell value is a string by casting it + options.cellValue = options.cellValue.toString(); + + if (options.operator === '*') { + return options.cellValue.startsWith(options.searchTerm); + } else if (options.operator === '' && options.cellValueLastChar === '*') { + return options.cellValue.endsWith(options.searchTerm); + } else if (options.operator === '') { + return options.cellValue.includes(options.searchTerm); + } + return testFilterCondition(options.operator || '==', options.cellValue.toLowerCase(), options.searchTerm.toLowerCase()); +}; diff --git a/src/filter-templates/index.ts b/src/app/modules/angular-slickgrid/filter-templates/index.ts similarity index 66% rename from src/filter-templates/index.ts rename to src/app/modules/angular-slickgrid/filter-templates/index.ts index 180f9e409..58736ac82 100644 --- a/src/filter-templates/index.ts +++ b/src/app/modules/angular-slickgrid/filter-templates/index.ts @@ -1,5 +1,4 @@ -import { Column } from './../models/column.interface'; -import { Filter } from './../models/filter.interface'; +import { Column, Filter } from './../models'; import { inputFilterTemplate } from './inputFilterTemplate'; import { selectFilterTemplate } from './selectFilterTemplate'; diff --git a/src/filter-templates/inputFilterTemplate.ts b/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.ts similarity index 66% rename from src/filter-templates/inputFilterTemplate.ts rename to src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.ts index 804aa4c63..af9b9b570 100644 --- a/src/filter-templates/inputFilterTemplate.ts +++ b/src/app/modules/angular-slickgrid/filter-templates/inputFilterTemplate.ts @@ -1,5 +1,4 @@ -import { Column } from './../models/column.interface'; -import { Filter } from './../models/filter.interface'; +import { Column, Filter } from './../models'; export const inputFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => { return ``; diff --git a/src/filter-templates/selectFilterTemplate.ts b/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.ts similarity index 84% rename from src/filter-templates/selectFilterTemplate.ts rename to src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.ts index 498f19ca7..ba458f710 100644 --- a/src/filter-templates/selectFilterTemplate.ts +++ b/src/app/modules/angular-slickgrid/filter-templates/selectFilterTemplate.ts @@ -1,5 +1,4 @@ -import { Column } from './../models/column.interface'; -import { Filter } from './../models/filter.interface'; +import { Column, Filter } from './../models'; export const selectFilterTemplate: Filter = (searchTerm: string, columnDef: Column) => { if (!columnDef.filter.selectOptions) { diff --git a/src/formatters/checkboxFormatter.ts b/src/app/modules/angular-slickgrid/formatters/checkboxFormatter.ts similarity index 100% rename from src/formatters/checkboxFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/checkboxFormatter.ts diff --git a/src/formatters/checkmarkFormatter.ts b/src/app/modules/angular-slickgrid/formatters/checkmarkFormatter.ts similarity index 100% rename from src/formatters/checkmarkFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/checkmarkFormatter.ts diff --git a/src/formatters/dateIsoFormatter.ts b/src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.ts similarity index 91% rename from src/formatters/dateIsoFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.ts index 99ef2151d..bae511a16 100644 --- a/src/formatters/dateIsoFormatter.ts +++ b/src/app/modules/angular-slickgrid/formatters/dateIsoFormatter.ts @@ -1,5 +1,5 @@ import { Formatter } from './../models/formatter.interface'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) => diff --git a/src/formatters/dateTimeIsoAmPmFormatter.ts b/src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.ts similarity index 91% rename from src/formatters/dateTimeIsoAmPmFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.ts index f3243e949..e72c313fe 100644 --- a/src/formatters/dateTimeIsoAmPmFormatter.ts +++ b/src/app/modules/angular-slickgrid/formatters/dateTimeIsoAmPmFormatter.ts @@ -1,5 +1,5 @@ import { Formatter } from './../models/formatter.interface'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateTimeIsoAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) => diff --git a/src/formatters/dateTimeIsoFormatter.ts b/src/app/modules/angular-slickgrid/formatters/dateTimeIsoFormatter.ts similarity index 91% rename from src/formatters/dateTimeIsoFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/dateTimeIsoFormatter.ts index c3d4d3e64..bc5338569 100644 --- a/src/formatters/dateTimeIsoFormatter.ts +++ b/src/app/modules/angular-slickgrid/formatters/dateTimeIsoFormatter.ts @@ -1,5 +1,5 @@ import { Formatter } from './../models/formatter.interface'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateTimeIsoFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) => diff --git a/src/formatters/dateTimeUsAmPmFormatter.ts b/src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.ts similarity index 91% rename from src/formatters/dateTimeUsAmPmFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.ts index 5219facf5..2531394c3 100644 --- a/src/formatters/dateTimeUsAmPmFormatter.ts +++ b/src/app/modules/angular-slickgrid/formatters/dateTimeUsAmPmFormatter.ts @@ -1,5 +1,5 @@ import { Formatter } from './../models/formatter.interface'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateTimeUsAmPmFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) => diff --git a/src/formatters/dateTimeUsFormatter.ts b/src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.ts similarity index 91% rename from src/formatters/dateTimeUsFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.ts index 2bbbe0b40..8b5d5907b 100644 --- a/src/formatters/dateTimeUsFormatter.ts +++ b/src/app/modules/angular-slickgrid/formatters/dateTimeUsFormatter.ts @@ -1,5 +1,5 @@ import { Formatter } from './../models/formatter.interface'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateTimeUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) => diff --git a/src/formatters/dateUsFormatter.ts b/src/app/modules/angular-slickgrid/formatters/dateUsFormatter.ts similarity index 91% rename from src/formatters/dateUsFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/dateUsFormatter.ts index a9068e477..207efccf0 100644 --- a/src/formatters/dateUsFormatter.ts +++ b/src/app/modules/angular-slickgrid/formatters/dateUsFormatter.ts @@ -1,5 +1,5 @@ import { Formatter } from './../models/formatter.interface'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateUsFormatter: Formatter = (row: number, cell: number, value: any, columnDef: any, dataContext: any) => diff --git a/src/formatters/index.ts b/src/app/modules/angular-slickgrid/formatters/index.ts similarity index 83% rename from src/formatters/index.ts rename to src/app/modules/angular-slickgrid/formatters/index.ts index ac3f7ff06..dc5a8b852 100644 --- a/src/formatters/index.ts +++ b/src/app/modules/angular-slickgrid/formatters/index.ts @@ -1,6 +1,8 @@ -import { Column } from './../models/column.interface'; -import { checkboxFormatter } from './checkboxFormatter'; -import { checkmarkFormatter } from './checkmarkFormatter'; +import { Column } from './../models'; +// import { Group, GroupTotals } from '../core' +// import { Item } from '../dataview' +import { checkboxFormatter } from './CheckboxFormatter'; +import { checkmarkFormatter } from './CheckmarkFormatter'; import { dateIsoFormatter } from './dateIsoFormatter'; import { dateTimeIsoAmPmFormatter } from './dateTimeIsoAmPmFormatter'; import { dateTimeUsAmPmFormatter } from './dateTimeUsAmPmFormatter'; @@ -8,10 +10,8 @@ import { dateTimeUsFormatter } from './dateTimeUsFormatter'; import { dateUsFormatter } from './dateUsFormatter'; import { percentCompleteFormatter } from './percentCompleteFormatter'; import { percentCompleteBarFormatter } from './percentCompleteBarFormatter'; -import { progressBarFormatter } from './progressBarFormatter'; +import { progressBarFormatter } from './ProgressBarFormatter'; import { yesNoFormatter } from './yesNoFormatter'; -// import { Group, GroupTotals } from '../core' -// import { Item } from '../dataview' /* @@ -35,5 +35,5 @@ export const Formatters = { percentComplete: percentCompleteFormatter, percentCompleteBar: percentCompleteBarFormatter, progressBar: progressBarFormatter, - yesNo: yesNoFormatter + yesNoFormatter: yesNoFormatter }; diff --git a/src/formatters/percentCompleteBarFormatter.ts b/src/app/modules/angular-slickgrid/formatters/percentCompleteBarFormatter.ts similarity index 100% rename from src/formatters/percentCompleteBarFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/percentCompleteBarFormatter.ts diff --git a/src/formatters/percentCompleteFormatter.ts b/src/app/modules/angular-slickgrid/formatters/percentCompleteFormatter.ts similarity index 100% rename from src/formatters/percentCompleteFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/percentCompleteFormatter.ts diff --git a/src/formatters/progressBarFormatter.ts b/src/app/modules/angular-slickgrid/formatters/progressBarFormatter.ts similarity index 100% rename from src/formatters/progressBarFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/progressBarFormatter.ts diff --git a/src/formatters/yesNoFormatter.ts b/src/app/modules/angular-slickgrid/formatters/yesNoFormatter.ts similarity index 100% rename from src/formatters/yesNoFormatter.ts rename to src/app/modules/angular-slickgrid/formatters/yesNoFormatter.ts diff --git a/src/global-grid-options.ts b/src/app/modules/angular-slickgrid/global-grid-options.ts similarity index 90% rename from src/global-grid-options.ts rename to src/app/modules/angular-slickgrid/global-grid-options.ts index 3664361fd..9e8021706 100644 --- a/src/global-grid-options.ts +++ b/src/app/modules/angular-slickgrid/global-grid-options.ts @@ -1,4 +1,4 @@ -import { GridOption } from './models/gridOption.interface'; +import { GridOption } from './models'; /** * Options that can be passed to the Bootstrap-Datetimepicker directly @@ -17,7 +17,6 @@ export const GlobalGridOptions: GridOption = { cellHighlightCssClass: 'slick-cell-modified', editable: false, enableCellNavigation: false, - enableColumnPicker: true, enableColumnReorder: true, enableMouseOverRow: true, enablePagination: false, diff --git a/src/angular-slickgrid.ts b/src/app/modules/angular-slickgrid/index.ts similarity index 94% rename from src/angular-slickgrid.ts rename to src/app/modules/angular-slickgrid/index.ts index 3874d890b..f29631960 100644 --- a/src/angular-slickgrid.ts +++ b/src/app/modules/angular-slickgrid/index.ts @@ -15,6 +15,7 @@ export { FilterService } from './services/filter.service'; export { MouseService } from './services/mouse.service'; export { ResizerService } from './services/resizer.service'; export { SortService } from './services/sort.service'; +export { GraphqlService } from './services/graphql.service'; export { GridOdataService } from './services/grid-odata.service'; export { SlickPaginationComponent } from './components/slick-pagination.component'; diff --git a/src/models/autoResizeOption.interface.ts b/src/app/modules/angular-slickgrid/models/autoResizeOption.interface.ts similarity index 100% rename from src/models/autoResizeOption.interface.ts rename to src/app/modules/angular-slickgrid/models/autoResizeOption.interface.ts diff --git a/src/models/caseType.ts b/src/app/modules/angular-slickgrid/models/caseType.ts similarity index 100% rename from src/models/caseType.ts rename to src/app/modules/angular-slickgrid/models/caseType.ts diff --git a/src/models/column.interface.ts b/src/app/modules/angular-slickgrid/models/column.interface.ts similarity index 100% rename from src/models/column.interface.ts rename to src/app/modules/angular-slickgrid/models/column.interface.ts diff --git a/src/models/columnFilter.interface.ts b/src/app/modules/angular-slickgrid/models/columnFilter.interface.ts similarity index 100% rename from src/models/columnFilter.interface.ts rename to src/app/modules/angular-slickgrid/models/columnFilter.interface.ts diff --git a/src/models/columnFilters.interface.ts b/src/app/modules/angular-slickgrid/models/columnFilters.interface.ts similarity index 100% rename from src/models/columnFilters.interface.ts rename to src/app/modules/angular-slickgrid/models/columnFilters.interface.ts diff --git a/src/models/fieldType.ts b/src/app/modules/angular-slickgrid/models/fieldType.ts similarity index 100% rename from src/models/fieldType.ts rename to src/app/modules/angular-slickgrid/models/fieldType.ts diff --git a/src/models/filter.interface.ts b/src/app/modules/angular-slickgrid/models/filter.interface.ts similarity index 100% rename from src/models/filter.interface.ts rename to src/app/modules/angular-slickgrid/models/filter.interface.ts diff --git a/src/models/filterChangedArgs.interface.ts b/src/app/modules/angular-slickgrid/models/filterChangedArgs.interface.ts similarity index 100% rename from src/models/filterChangedArgs.interface.ts rename to src/app/modules/angular-slickgrid/models/filterChangedArgs.interface.ts diff --git a/src/models/filterCondition.interface.ts b/src/app/modules/angular-slickgrid/models/filterCondition.interface.ts similarity index 100% rename from src/models/filterCondition.interface.ts rename to src/app/modules/angular-slickgrid/models/filterCondition.interface.ts diff --git a/src/models/filterConditionOption.interface.ts b/src/app/modules/angular-slickgrid/models/filterConditionOption.interface.ts similarity index 100% rename from src/models/filterConditionOption.interface.ts rename to src/app/modules/angular-slickgrid/models/filterConditionOption.interface.ts diff --git a/src/models/formElementType.ts b/src/app/modules/angular-slickgrid/models/formElementType.ts similarity index 100% rename from src/models/formElementType.ts rename to src/app/modules/angular-slickgrid/models/formElementType.ts diff --git a/src/models/formatter.interface.ts b/src/app/modules/angular-slickgrid/models/formatter.interface.ts similarity index 100% rename from src/models/formatter.interface.ts rename to src/app/modules/angular-slickgrid/models/formatter.interface.ts diff --git a/src/app/modules/angular-slickgrid/models/graphqlCursorPaginationOption.interface.ts b/src/app/modules/angular-slickgrid/models/graphqlCursorPaginationOption.interface.ts new file mode 100644 index 000000000..0347e2e7e --- /dev/null +++ b/src/app/modules/angular-slickgrid/models/graphqlCursorPaginationOption.interface.ts @@ -0,0 +1,6 @@ +export interface GraphqlCursorPaginationOption { + after?: string; + before?: string; + first?: number; + last?: number; +} diff --git a/src/app/modules/angular-slickgrid/models/graphqlPaginationOption.interface.ts b/src/app/modules/angular-slickgrid/models/graphqlPaginationOption.interface.ts new file mode 100644 index 000000000..92a6d3dc1 --- /dev/null +++ b/src/app/modules/angular-slickgrid/models/graphqlPaginationOption.interface.ts @@ -0,0 +1,5 @@ +export interface GraphqlPaginationOption { + first?: number; + last?: number; + offset?: number; +} diff --git a/src/app/modules/angular-slickgrid/models/graphqlServiceOption.interface.ts b/src/app/modules/angular-slickgrid/models/graphqlServiceOption.interface.ts new file mode 100644 index 000000000..9d0be9fd0 --- /dev/null +++ b/src/app/modules/angular-slickgrid/models/graphqlServiceOption.interface.ts @@ -0,0 +1,9 @@ +import { GraphqlCursorPaginationOption } from './graphqlCursorPaginationOption.interface'; +import { GraphqlPaginationOption } from './graphqlPaginationOption.interface'; + +export interface GraphqlServiceOption { + datasetName?: string; + isWithCursor?: boolean; + paginationOptions?: GraphqlPaginationOption | GraphqlCursorPaginationOption; + dataFilters?: string[]; +} diff --git a/src/models/gridOption.interface.ts b/src/app/modules/angular-slickgrid/models/gridOption.interface.ts similarity index 97% rename from src/models/gridOption.interface.ts rename to src/app/modules/angular-slickgrid/models/gridOption.interface.ts index f7271f87c..f61a131a3 100644 --- a/src/models/gridOption.interface.ts +++ b/src/app/modules/angular-slickgrid/models/gridOption.interface.ts @@ -11,7 +11,6 @@ export interface GridOption { cellHighlightCssClass?: string | null; editable?: boolean; enableAutoResize?: boolean; - enableColumnPicker?: boolean; enableCellNavigation?: boolean; enableColumnReorder?: boolean; enableFiltering?: boolean; diff --git a/src/models/index.ts b/src/app/modules/angular-slickgrid/models/index.ts similarity index 80% rename from src/models/index.ts rename to src/app/modules/angular-slickgrid/models/index.ts index ca0c64ff3..d59714acc 100644 --- a/src/models/index.ts +++ b/src/app/modules/angular-slickgrid/models/index.ts @@ -10,6 +10,9 @@ export { FilterCondition } from './filterCondition.interface'; export { FilterConditionOption } from './filterConditionOption.interface'; export { Formatter } from './formatter.interface'; export { FormElementType } from './formElementType'; +export { GraphqlPaginationOption } from './graphqlPaginationOption.interface'; +export { GraphqlCursorPaginationOption } from './graphqlCursorPaginationOption.interface'; +export { GraphqlServiceOption } from './graphqlServiceOption.interface'; export { GridOption } from './gridOption.interface'; export { OdataOption } from './odataOption.interface'; export { Pagination } from './pagination.interface'; diff --git a/src/models/odataOption.interface.ts b/src/app/modules/angular-slickgrid/models/odataOption.interface.ts similarity index 100% rename from src/models/odataOption.interface.ts rename to src/app/modules/angular-slickgrid/models/odataOption.interface.ts diff --git a/src/models/pagination.interface.ts b/src/app/modules/angular-slickgrid/models/pagination.interface.ts similarity index 100% rename from src/models/pagination.interface.ts rename to src/app/modules/angular-slickgrid/models/pagination.interface.ts diff --git a/src/models/paginationChangedArgs.interface.ts b/src/app/modules/angular-slickgrid/models/paginationChangedArgs.interface.ts similarity index 100% rename from src/models/paginationChangedArgs.interface.ts rename to src/app/modules/angular-slickgrid/models/paginationChangedArgs.interface.ts diff --git a/src/models/sortChangedArgs.interface.ts b/src/app/modules/angular-slickgrid/models/sortChangedArgs.interface.ts similarity index 100% rename from src/models/sortChangedArgs.interface.ts rename to src/app/modules/angular-slickgrid/models/sortChangedArgs.interface.ts diff --git a/src/models/sorter.interface.ts b/src/app/modules/angular-slickgrid/models/sorter.interface.ts similarity index 100% rename from src/models/sorter.interface.ts rename to src/app/modules/angular-slickgrid/models/sorter.interface.ts diff --git a/src/modules/angular-slickgrid.module.ts b/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts similarity index 92% rename from src/modules/angular-slickgrid.module.ts rename to src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts index b7fc5b56e..13016a5c5 100644 --- a/src/modules/angular-slickgrid.module.ts +++ b/src/app/modules/angular-slickgrid/modules/angular-slickgrid.module.ts @@ -3,6 +3,7 @@ import { NgModule } from '@angular/core'; import { Formatters } from './../formatters'; import { FilterService } from './../services/filter.service'; import { MouseService } from './../services/mouse.service'; +import { GraphqlService } from './../services/graphql.service'; import { OdataService } from './../services/odata.service'; import { ResizerService } from './../services/resizer.service'; import { AngularSlickgridComponent } from './../components/angular-slickgrid.component'; @@ -22,6 +23,7 @@ import { SortService } from './../services/sort.service'; SlickPaginationComponent ], providers: [ + GraphqlService, MouseService, OdataService, FilterService, diff --git a/src/services/filter.service.ts b/src/app/modules/angular-slickgrid/services/filter.service.ts similarity index 95% rename from src/services/filter.service.ts rename to src/app/modules/angular-slickgrid/services/filter.service.ts index 4d4d59102..805e2f701 100644 --- a/src/services/filter.service.ts +++ b/src/app/modules/angular-slickgrid/services/filter.service.ts @@ -1,10 +1,5 @@ import { FilterConditions } from '../filter-conditions'; -import { Column } from '../models/column.interface'; -import { ColumnFilters } from '../models/columnFilters.interface'; -import { FieldType } from '../models/fieldType'; -import { FilterChangedArgs } from '../models/filterChangedArgs.interface'; -import { FormElementType } from '../models/formElementType'; -import { GridOption } from '../models/gridOption.interface'; +import { Column, ColumnFilters, FieldType, FilterChangedArgs, FormElementType, GridOption } from '../models'; import { FilterTemplates } from './../filter-templates'; import { Injectable, Input, OnInit } from '@angular/core'; diff --git a/src/services/global-utilities.ts b/src/app/modules/angular-slickgrid/services/global-utilities.ts similarity index 96% rename from src/services/global-utilities.ts rename to src/app/modules/angular-slickgrid/services/global-utilities.ts index 427e449bf..ddb89e60a 100644 --- a/src/services/global-utilities.ts +++ b/src/app/modules/angular-slickgrid/services/global-utilities.ts @@ -7,7 +7,7 @@ declare interface StringConstructor { } -String.format = function(format: string, args: any): string { +String.format = function(format: string, args): string { // const args = (Array.isArray(arguments[1])) ? arguments[1] : Array.prototype.slice.call(arguments, 1); return format.replace(/{(\d+)}/g, function (match, number) { diff --git a/src/app/modules/angular-slickgrid/services/graphql.service.ts b/src/app/modules/angular-slickgrid/services/graphql.service.ts new file mode 100644 index 000000000..e953376a3 --- /dev/null +++ b/src/app/modules/angular-slickgrid/services/graphql.service.ts @@ -0,0 +1,129 @@ +import { CaseType, FilterChangedArgs, FieldType, GraphqlServiceOption, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models'; +import QueryBuilder from 'graphql-query-builder'; + +export class GraphqlService { + serviceOptions: GraphqlServiceOption = {}; + + /** + * Build the GraphQL query, since the service include/exclude cursor, the output query will be different. + * @param serviceOptions GraphqlServiceOption + */ + buildQuery(serviceOptions?: GraphqlServiceOption) { + if (!this.serviceOptions.datasetName || !this.serviceOptions.dataFilters) { + throw new Error('GraphQL Service requires "datasetName" & "dataFilters" properties for it to work'); + } + const pageFilterQb = new QueryBuilder(this.serviceOptions.datasetName); + const pageInfoQb = new QueryBuilder('pageInfo'); + const dataQb = (this.serviceOptions.isWithCursor) ? new QueryBuilder('edges') : new QueryBuilder('nodes'); + + if (this.serviceOptions.isWithCursor) { + pageInfoQb.find('hasNextPage', 'endCursor'); + dataQb.find(['cursor', {'node': this.serviceOptions.dataFilters}]); + } else { + pageInfoQb.find('hasNextPage'); + dataQb.find(this.serviceOptions.dataFilters); + } + pageFilterQb.find(['totalCount', pageInfoQb, dataQb]); + pageFilterQb.filter(this.serviceOptions.paginationOptions); + + return pageFilterQb.toString(); + } + + initOptions(serviceOptions?: GraphqlServiceOption): void { + this.serviceOptions = serviceOptions || {}; + } + + removeColumnFilter(fieldName: string): void { + + } + + /* + * Reset the pagination options + */ + resetPaginationOptions() { + let paginationOptions; + if (this.serviceOptions.isWithCursor) { + // first, last, after, before + paginationOptions = { + after: '', + before: undefined, + last: undefined + }; + } else { + // first, last, offset + paginationOptions = { + offset: 0 + }; + } + this.updateOptions({ paginationOptions: paginationOptions }); + } + + updateOptions(serviceOptions?: GraphqlServiceOption) { + this.serviceOptions = { ...this.serviceOptions, ...serviceOptions }; + } + + saveColumnFilter(fieldName: string, value: string, terms?: any[]) { + } + + /* + * FILTERING + */ + onFilterChanged(event: Event, args: FilterChangedArgs) { + } + + /* + * PAGINATION + * With cursor, the query can have 4 arguments (first, after, last, before), for example: + * users (first:20, after:"YXJyYXljb25uZWN0aW9uOjM=") { + * totalCount + * pageInfo { + * hasNextPage + * endCursor + * } + * edges { + * cursor + * node { + * name + * gender + * } + * } + * } + * Without cursor, the query can have 3 arguments (first, last, offset), for example: + * users (first:20, offset: 10) { + * totalCount + * pageInfo { + * hasNextPage + * } + * nodes { + * name + * gender + * } + * } + */ + onPaginationChanged(event: Event, args: PaginationChangedArgs) { + let paginationOptions; + if (this.serviceOptions.isWithCursor) { + paginationOptions = { + first: args.pageSize + }; + } else { + paginationOptions = { + first: args.pageSize, + offset: (args.newPage - 1) * args.pageSize + }; + } + + this.updateOptions({ paginationOptions: paginationOptions }); + + // build the OData query which we will use in the WebAPI callback + return this.buildQuery(); + } + + /* + * SORTING + */ + onSortChanged(event: Event, args: SortChangedArgs) { + // will use sorting as per a FB suggestion + // https://github.com/graphql/graphql-relay-js/issues/20#issuecomment-220494222 + } +} diff --git a/src/services/grid-odata.service.ts b/src/app/modules/angular-slickgrid/services/grid-odata.service.ts similarity index 94% rename from src/services/grid-odata.service.ts rename to src/app/modules/angular-slickgrid/services/grid-odata.service.ts index 05708f5a9..88b7a8ef3 100644 --- a/src/services/grid-odata.service.ts +++ b/src/app/modules/angular-slickgrid/services/grid-odata.service.ts @@ -1,13 +1,8 @@ import './global-utilities'; import { Injectable } from '@angular/core'; -import { CaseType } from './../models/caseType'; -import { FilterChangedArgs } from './../models/filterChangedArgs.interface'; -import { FieldType } from './../models/fieldType'; -import { OdataOption } from './../models/odataOption.interface'; -import { PaginationChangedArgs } from './../models/paginationChangedArgs.interface'; -import { SortChangedArgs } from './../models/sortChangedArgs.interface'; +import { CaseType, FilterChangedArgs, FieldType, OdataOption, PaginationChangedArgs, SortChangedArgs } from './../models'; import { OdataService } from './odata.service'; -import * as moment_ from 'moment'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 @Injectable() @@ -69,7 +64,7 @@ export class GridOdataService { fieldSearchValue = '' + fieldSearchValue; // make sure it's a string const matches = fieldSearchValue.match(/^([<>!=\*]{0,2})(.*[^<>!=\*])([\*]?)$/); // group 1: Operator, 2: searchValue, 3: last char is '*' (meaning starts with, ex.: abc*) const operator = columnFilter.operator || ((matches) ? matches[1] : ''); - let searchValue = (!!matches) ? matches[2] : fieldSearchValue; + let searchValue = (!!matches) ? matches[2] : ''; const lastValueChar = (!!matches) ? matches[3] : ''; const bypassOdataQuery = columnFilter.bypassBackendQuery || false; diff --git a/src/services/index.ts b/src/app/modules/angular-slickgrid/services/index.ts similarity index 85% rename from src/services/index.ts rename to src/app/modules/angular-slickgrid/services/index.ts index 594f0aa21..cf5aee4ec 100644 --- a/src/services/index.ts +++ b/src/app/modules/angular-slickgrid/services/index.ts @@ -1,5 +1,6 @@ export { FilterService } from './filter.service'; export { GridOdataService } from './grid-odata.service'; +export { GraphqlService } from './graphql.service'; export { MouseService } from './mouse.service'; export { OdataService } from './odata.service'; export { ResizerService } from './resizer.service'; diff --git a/src/services/mouse.service.spec.ts b/src/app/modules/angular-slickgrid/services/mouse.service.spec.ts similarity index 100% rename from src/services/mouse.service.spec.ts rename to src/app/modules/angular-slickgrid/services/mouse.service.spec.ts diff --git a/src/services/mouse.service.ts b/src/app/modules/angular-slickgrid/services/mouse.service.ts similarity index 74% rename from src/services/mouse.service.ts rename to src/app/modules/angular-slickgrid/services/mouse.service.ts index d56cda2c5..84446f5b2 100644 --- a/src/services/mouse.service.ts +++ b/src/app/modules/angular-slickgrid/services/mouse.service.ts @@ -1,13 +1,13 @@ export class MouseService { attachOnMouseHover(grid: any) { - grid.onMouseEnter.subscribe((e: any) => { + grid.onMouseEnter.subscribe(function (e: any) { const cell = grid.getCellFromEvent(e); if (cell && cell.row >= 0) { grid.setSelectedRows([cell.row]); e.preventDefault(); } }); - grid.onMouseLeave.subscribe((e: any) => { + grid.onMouseLeave.subscribe(function (e: any) { grid.setSelectedRows([]); e.preventDefault(); }); diff --git a/src/services/odata.service.ts b/src/app/modules/angular-slickgrid/services/odata.service.ts similarity index 99% rename from src/services/odata.service.ts rename to src/app/modules/angular-slickgrid/services/odata.service.ts index db98ff89f..b5730a1f9 100644 --- a/src/services/odata.service.ts +++ b/src/app/modules/angular-slickgrid/services/odata.service.ts @@ -1,7 +1,7 @@ +import { CaseType } from '../models/caseType'; import './global-utilities'; import { Injectable } from '@angular/core'; -import { CaseType } from '../models/caseType'; -import { OdataOption } from './../models/odataOption.interface'; +import { OdataOption } from './../models'; @Injectable() export class OdataService { diff --git a/src/services/resizer.service.ts b/src/app/modules/angular-slickgrid/services/resizer.service.ts similarity index 94% rename from src/services/resizer.service.ts rename to src/app/modules/angular-slickgrid/services/resizer.service.ts index c34246793..34e5669b9 100644 --- a/src/services/resizer.service.ts +++ b/src/app/modules/angular-slickgrid/services/resizer.service.ts @@ -1,6 +1,6 @@ +import { GridOption } from './../models'; import { Injectable } from '@angular/core'; import { Router, NavigationEnd, NavigationStart } from '@angular/router'; -import { GridOption } from './../models/gridOption.interface'; declare var $: any; @@ -18,7 +18,7 @@ export class ResizerService { /** Attach an auto resize trigger on the datagrid, if that is enable then it will resize itself to the available space * Options: we could also provide a % factor to resize on each height/width independently */ - attachAutoResizeDataGrid(grid: any, gridOptions: GridOption): any|void { + attachAutoResizeDataGrid(grid: any, gridOptions: GridOption) { // if we can't find the grid to resize, return without attaching anything const gridDomElm = $(`#${gridOptions.gridId}`); if (!gridDomElm || typeof gridDomElm.offset() === 'undefined') { @@ -44,7 +44,7 @@ export class ResizerService { * Calculate the datagrid new height/width from the available space, also consider that a % factor might be applied to calculation * object gridOptions */ - calculateGridNewDimensions(gridOptions: GridOption): any { + calculateGridNewDimensions(gridOptions: GridOption) { let bottomPadding = (gridOptions.autoResize && gridOptions.autoResize.bottomPadding) ? gridOptions.autoResize.bottomPadding : DATAGRID_BOTTOM_PADDING; if (bottomPadding && gridOptions.enablePagination) { bottomPadding += DATAGRID_PAGINATION_HEIGHT; // add pagination height to bottom padding @@ -80,7 +80,7 @@ export class ResizerService { } /** Resize the datagrid to fit the browser height & width */ - resizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}): void { + resizeGrid(grid: any, gridOptions: GridOption, newSizes?: { height: number, width: number}) { // calculate new available sizes but with minimum height of 220px newSizes = newSizes || this.calculateGridNewDimensions(gridOptions); diff --git a/src/services/sort.service.spec.ts b/src/app/modules/angular-slickgrid/services/sort.service.spec.ts similarity index 100% rename from src/services/sort.service.spec.ts rename to src/app/modules/angular-slickgrid/services/sort.service.spec.ts diff --git a/src/services/sort.service.ts b/src/app/modules/angular-slickgrid/services/sort.service.ts similarity index 100% rename from src/services/sort.service.ts rename to src/app/modules/angular-slickgrid/services/sort.service.ts diff --git a/src/sorters/dateIsoSorter.ts b/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.ts similarity index 87% rename from src/sorters/dateIsoSorter.ts rename to src/app/modules/angular-slickgrid/sorters/dateIsoSorter.ts index 131ca7291..4c85099a6 100644 --- a/src/sorters/dateIsoSorter.ts +++ b/src/app/modules/angular-slickgrid/sorters/dateIsoSorter.ts @@ -1,5 +1,5 @@ -import { Sorter } from './../models/sorter.interface'; -import * as moment_ from 'moment'; +import { Sorter } from './../models'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 const DATE_FORMAT = 'YYYY-MM-DD'; diff --git a/src/sorters/dateSorter.ts b/src/app/modules/angular-slickgrid/sorters/dateSorter.ts similarity index 86% rename from src/sorters/dateSorter.ts rename to src/app/modules/angular-slickgrid/sorters/dateSorter.ts index 6f1ee4899..723ef05ab 100644 --- a/src/sorters/dateSorter.ts +++ b/src/app/modules/angular-slickgrid/sorters/dateSorter.ts @@ -1,5 +1,5 @@ -import { Sorter } from './../models/sorter.interface'; -import * as moment_ from 'moment'; +import { Sorter } from './../models'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 export const dateSorter: Sorter = (value1, value2, sortDirection) => { diff --git a/src/sorters/dateUsShortSorter.ts b/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.ts similarity index 87% rename from src/sorters/dateUsShortSorter.ts rename to src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.ts index c42ec6a1b..ad037e06d 100644 --- a/src/sorters/dateUsShortSorter.ts +++ b/src/app/modules/angular-slickgrid/sorters/dateUsShortSorter.ts @@ -1,5 +1,5 @@ -import { Sorter } from './../models/sorter.interface'; -import * as moment_ from 'moment'; +import { Sorter } from './../models'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 const DATE_FORMAT = 'M/D/YY'; diff --git a/src/sorters/dateUsSorter.ts b/src/app/modules/angular-slickgrid/sorters/dateUsSorter.ts similarity index 87% rename from src/sorters/dateUsSorter.ts rename to src/app/modules/angular-slickgrid/sorters/dateUsSorter.ts index 17cdb889e..a712eed5e 100644 --- a/src/sorters/dateUsSorter.ts +++ b/src/app/modules/angular-slickgrid/sorters/dateUsSorter.ts @@ -1,5 +1,5 @@ -import { Sorter } from './../models/sorter.interface'; -import * as moment_ from 'moment'; +import { Sorter } from './../models'; +import * as moment_ from 'moment-mini'; const moment: any = (moment_).default || moment_; // patch to fix rollup "moment has no default export" issue, document here https://github.com/rollup/rollup/issues/670 const DATE_FORMAT = 'M/D/YYYY'; diff --git a/src/sorters/index.ts b/src/app/modules/angular-slickgrid/sorters/index.ts similarity index 100% rename from src/sorters/index.ts rename to src/app/modules/angular-slickgrid/sorters/index.ts diff --git a/src/sorters/numericSorter.ts b/src/app/modules/angular-slickgrid/sorters/numericSorter.ts similarity index 85% rename from src/sorters/numericSorter.ts rename to src/app/modules/angular-slickgrid/sorters/numericSorter.ts index d3ba4bb7c..dd57be610 100644 --- a/src/sorters/numericSorter.ts +++ b/src/app/modules/angular-slickgrid/sorters/numericSorter.ts @@ -1,4 +1,4 @@ -import { Sorter } from './../models/sorter.interface'; +import { Sorter } from './../models'; export const numericSorter: Sorter = (value1, value2, sortDirection) => { const x = (isNaN(value1) || value1 === '' || value1 === null) ? -99e+10 : parseFloat(value1); diff --git a/src/sorters/stringSorter.ts b/src/app/modules/angular-slickgrid/sorters/stringSorter.ts similarity index 73% rename from src/sorters/stringSorter.ts rename to src/app/modules/angular-slickgrid/sorters/stringSorter.ts index d10ac9379..6276c954d 100644 --- a/src/sorters/stringSorter.ts +++ b/src/app/modules/angular-slickgrid/sorters/stringSorter.ts @@ -1,4 +1,4 @@ -import { Sorter } from './../models/sorter.interface'; +import { Sorter } from './../models'; export const stringSorter: Sorter = (value1, value2, sortDirection) => { return sortDirection * (value1 === value2 ? 0 : (value1 > value2 ? 1 : -1)); diff --git a/demo/src/app/styles/_variables.scss b/src/app/modules/angular-slickgrid/styles/_variables.scss similarity index 100% rename from demo/src/app/styles/_variables.scss rename to src/app/modules/angular-slickgrid/styles/_variables.scss diff --git a/demo/src/app/styles/slick-bootstrap.scss b/src/app/modules/angular-slickgrid/styles/slick-bootstrap.scss similarity index 100% rename from demo/src/app/styles/slick-bootstrap.scss rename to src/app/modules/angular-slickgrid/styles/slick-bootstrap.scss diff --git a/demo/src/app/styles/slick-controls.scss b/src/app/modules/angular-slickgrid/styles/slick-controls.scss similarity index 100% rename from demo/src/app/styles/slick-controls.scss rename to src/app/modules/angular-slickgrid/styles/slick-controls.scss diff --git a/demo/src/app/styles/slick-default-theme.scss b/src/app/modules/angular-slickgrid/styles/slick-default-theme.scss similarity index 100% rename from demo/src/app/styles/slick-default-theme.scss rename to src/app/modules/angular-slickgrid/styles/slick-default-theme.scss diff --git a/demo/src/app/styles/slick-grid.scss b/src/app/modules/angular-slickgrid/styles/slick-grid.scss similarity index 100% rename from demo/src/app/styles/slick-grid.scss rename to src/app/modules/angular-slickgrid/styles/slick-grid.scss diff --git a/src/styles/slick-pagination.component.scss b/src/app/modules/angular-slickgrid/styles/slick-pagination.component.scss similarity index 100% rename from src/styles/slick-pagination.component.scss rename to src/app/modules/angular-slickgrid/styles/slick-pagination.component.scss diff --git a/demo/src/app/styles/slick-plugins.scss b/src/app/modules/angular-slickgrid/styles/slick-plugins.scss similarity index 100% rename from demo/src/app/styles/slick-plugins.scss rename to src/app/modules/angular-slickgrid/styles/slick-plugins.scss diff --git a/demo/src/app/styles/slickgrid-examples.scss b/src/app/modules/angular-slickgrid/styles/slickgrid-examples.scss similarity index 100% rename from demo/src/app/styles/slickgrid-examples.scss rename to src/app/modules/angular-slickgrid/styles/slickgrid-examples.scss diff --git a/demo/src/app/styles/slickgrid-theme-bootstrap.scss b/src/app/modules/angular-slickgrid/styles/slickgrid-theme-bootstrap.scss similarity index 100% rename from demo/src/app/styles/slickgrid-theme-bootstrap.scss rename to src/app/modules/angular-slickgrid/styles/slickgrid-theme-bootstrap.scss diff --git a/demo/src/app/styles/slickgrid-custom-variables.scss b/src/app/styles/slickgrid-custom-variables.scss similarity index 81% rename from demo/src/app/styles/slickgrid-custom-variables.scss rename to src/app/styles/slickgrid-custom-variables.scss index d7ff72a93..5e88b87bf 100644 --- a/demo/src/app/styles/slickgrid-custom-variables.scss +++ b/src/app/styles/slickgrid-custom-variables.scss @@ -4,7 +4,7 @@ */ /* for example, let's change the mouse hover color */ -$cell-odd-background-color: lightyellow; + /* make sure to add the @import the SlickGrid Bootstrap Theme AFTER the variables changes */ -@import './slickgrid-theme-bootstrap.scss'; +@import '../modules/angular-slickgrid/styles/slickgrid-theme-bootstrap.scss'; diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/demo/src/assets/data/customers_100.json b/src/assets/data/customers_100.json similarity index 100% rename from demo/src/assets/data/customers_100.json rename to src/assets/data/customers_100.json diff --git a/demo/src/assets/data/customers_100_ASC.json b/src/assets/data/customers_100_ASC.json similarity index 100% rename from demo/src/assets/data/customers_100_ASC.json rename to src/assets/data/customers_100_ASC.json diff --git a/demo/src/assets/data/customers_100_DESC.json b/src/assets/data/customers_100_DESC.json similarity index 100% rename from demo/src/assets/data/customers_100_DESC.json rename to src/assets/data/customers_100_DESC.json diff --git a/src/components/slick-pagination.component.ts b/src/components/slick-pagination.component.ts deleted file mode 100644 index d1779bdd3..000000000 --- a/src/components/slick-pagination.component.ts +++ /dev/null @@ -1,247 +0,0 @@ -import { Component, OnInit, Input, AfterViewInit } from '@angular/core'; -import { Column } from './../models/column.interface'; -import { GridOption } from './../models/gridOption.interface'; - -@Component({ - selector: 'slick-pagination', - template: ` -
    -
    - - -
    - page {{pageNumber}} of {{pageCount}} -
    - - -
    - - - items per page, - - {{dataFrom}}-{{dataTo}} of {{totalItems}} items - - -
    - `, - styles: [ - ` - /* Pagination styling */ - .slick-pagination { - border-top: 0 none; - border-right: 0 none; - border-bottom: 0 none; - border-left: 0 none; - width: 100%; - height: 34px; - padding-top: 4px; - vertical-align: middle; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; - font-size: 13px; - font-weight: 400; - color: #808080; - } - .slick-pagination .slick-pagination-status { - display: inline-block; - padding: 6px; - } - .slick-pagination .ui-icon-container { - display: inline-block; - border-color: #ddd; - } - .slick-pagination .slick-pagination-nav { - display: inline-block; - padding: 2px; - height: 34px; - } - .slick-pagination .slick-pagination-nav nav { - display: inline-block; - } - .slick-pagination .slick-pagination-nav .slick-page-number { - vertical-align: top; - margin-top: 6px; - display: inline-block; - padding: 0 5px; - } - .slick-pagination .slick-pagination-nav .pagination { - margin: 0; - } - .slick-pagination .slick-pagination-nav .pagination .page-link { - font-size: 13px; - font-weight: bold; - border: 1px solid #ccc; - } - .slick-pagination .slick-pagination-nav .pagination .page-item { - cursor: pointer; - font-weight: bold; - } - .slick-pagination .slick-pagination-nav .pagination .page-item a[class*="icon-seek-"] { - text-decoration: none; - font-size: 14px; - border-color: silver; - } - .slick-pagination .slick-pagination-nav .pagination .page-item.disabled { - cursor: not-allowed; - font-weight: normal; - } - .slick-pagination .slick-pagination-nav .pagination .page-item.disabled > .page-link { - font-weight: normal; - } - .slick-pagination .slick-pagination-nav .pagination .page-item.disabled a[class*="icon-seek-"] { - background-color: #f9f9f9; - border-color: #dedede; - } - .slick-pagination .slick-pagination-settings { - display: block; - float: right; - padding: 2px; - vertical-align: middle; - } - .slick-pagination .slick-pagination-settings select { - font-size: 12px; - line-height: 1.5; - height: 32px; - width: 62px; - padding: 5px; - border: 1px solid #ccc; - border-radius: 3px; - } - .slick-pagination .slick-pagination-settings .slick-pagination-count { - padding-left: 10px; - } - ` - ] -}) -export class SlickPaginationComponent implements AfterViewInit, OnInit { - private _gridPaginationOptions: GridOption; - - @Input() - set gridPaginationOptions(gridPaginationOptions: GridOption) { - this._gridPaginationOptions = gridPaginationOptions; - if (!gridPaginationOptions || !gridPaginationOptions.pagination || (gridPaginationOptions.pagination.totalItems !== this.totalItems)) { - this.refreshPagination(); - } - } - get gridPaginationOptions(): GridOption { - return this._gridPaginationOptions; - } - @Input() grid: any; - dataFrom = 1; - dataTo = 1; - itemsPerPage = 25; - pageCount = 0; - pageNumber = 1; - totalItems = 0; - paginationCallback: Function; - paginationPageSizes = [25, 75, 100]; - - constructor() { } - - ngOnInit() { - } - - ngAfterViewInit() { - this._gridPaginationOptions = this._gridPaginationOptions; - if (!this._gridPaginationOptions || !this._gridPaginationOptions.pagination || (this._gridPaginationOptions.pagination.totalItems !== this.totalItems)) { - this.refreshPagination(); - } - } - - ceil(number: number) { - return Math.ceil(number); - } - onChangeItemPerPage(event: any) { - const itemsPerPage = event.target.value; - this.pageCount = Math.ceil(this.totalItems / itemsPerPage); - this.pageNumber = 1; - this.itemsPerPage = itemsPerPage; - this.onPageChanged(event, this.pageNumber); - } - - changeToFirstPage(event: any) { - this.pageNumber = 1; - this.onPageChanged(event, this.pageNumber); - } - changeToLastPage(event: any) { - this.pageNumber = this.pageCount; - this.onPageChanged(event, this.pageNumber); - } - changeToNextPage(event: any) { - if (this.pageNumber < this.pageCount) { - this.pageNumber++; - this.onPageChanged(event, this.pageNumber); - } - } - changeToPreviousPage(event: any) { - if (this.pageNumber > 0) { - this.pageNumber--; - this.onPageChanged(event, this.pageNumber); - } - } - - gotoFirstPage() { - this.pageNumber = 1; - this.onPageChanged(undefined, this.pageNumber); - } - - refreshPagination() { - if (this._gridPaginationOptions && this._gridPaginationOptions.pagination) { - // if totalItems changed, we should always go back to the first page and recalculation the From-To indexes - if (this.totalItems !== this._gridPaginationOptions.pagination.totalItems) { - this.pageNumber = 1; - this.recalculateFromToIndexes(); - } - - // calculate and refresh the multiple properties of the pagination UI - this.paginationPageSizes = this._gridPaginationOptions.pagination.pageSizes; - this.itemsPerPage = this._gridPaginationOptions.pagination.pageSize; - if (this._gridPaginationOptions.onPaginationChanged) { - this.paginationCallback = this._gridPaginationOptions.onPaginationChanged; - } - this.totalItems = this._gridPaginationOptions.pagination.totalItems; - this.dataTo = this.itemsPerPage; - } - this.pageCount = Math.ceil(this.totalItems / this.itemsPerPage); - } - - onPageChanged(event?: Event, pageNumber?: number) { - this.recalculateFromToIndexes(); - - if (this.dataTo > this.totalItems) { - this.dataTo = this.totalItems; - } - if (typeof this.paginationCallback === 'function') { - const itemsPerPage = this.itemsPerPage; - this.paginationCallback(event, { newPage: pageNumber, pageSize: itemsPerPage }); - } - } - - recalculateFromToIndexes() { - this.dataFrom = (this.pageNumber * this.itemsPerPage) - this.itemsPerPage + 1; - this.dataTo = (this.pageNumber * this.itemsPerPage); - } -} diff --git a/demo/src/environments/environment.prod.ts b/src/environments/environment.prod.ts similarity index 100% rename from demo/src/environments/environment.prod.ts rename to src/environments/environment.prod.ts diff --git a/demo/src/environments/environment.ts b/src/environments/environment.ts similarity index 100% rename from demo/src/environments/environment.ts rename to src/environments/environment.ts diff --git a/demo/src/favicon.ico b/src/favicon.ico similarity index 100% rename from demo/src/favicon.ico rename to src/favicon.ico diff --git a/src/filter-conditions/stringFilterCondition.ts b/src/filter-conditions/stringFilterCondition.ts deleted file mode 100644 index e00bb5ab1..000000000 --- a/src/filter-conditions/stringFilterCondition.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { FilterCondition } from './../models/filterCondition.interface'; -import { FilterConditionOption } from './../models/filterConditionOption.interface'; -import { testFilterCondition } from './filterUtilities'; - -export const stringFilterCondition: FilterCondition = (options: FilterConditionOption) => { - // make sure the both search & cell value are string - // and make them lower case for case insensitive filtering - const cellValue = options.cellValue.toString().toLowerCase(); - const searchTerm = options.searchTerm.toString().toLowerCase(); - - if (options.operator === '*') { - return cellValue.endsWith(searchTerm); - } else if (options.operator === '' && options.cellValueLastChar === '*') { - return cellValue.startsWith(searchTerm); - } else if (options.operator === '') { - return cellValue.includes(searchTerm); - } - return testFilterCondition(options.operator || '==', cellValue, searchTerm); -}; diff --git a/demo/src/index.html b/src/index.html similarity index 89% rename from demo/src/index.html rename to src/index.html index 07f850b04..ccbd1fbae 100644 --- a/demo/src/index.html +++ b/src/index.html @@ -2,7 +2,7 @@ - TestSlickgrid + Datagrid diff --git a/demo/src/main.ts b/src/main.ts similarity index 76% rename from demo/src/main.ts rename to src/main.ts index 91ec6da5f..a9ca1caf8 100644 --- a/demo/src/main.ts +++ b/src/main.ts @@ -8,5 +8,4 @@ if (environment.production) { enableProdMode(); } -platformBrowserDynamic().bootstrapModule(AppModule) - .catch(err => console.log(err)); +platformBrowserDynamic().bootstrapModule(AppModule); diff --git a/demo/src/polyfills.ts b/src/polyfills.ts similarity index 81% rename from demo/src/polyfills.ts rename to src/polyfills.ts index 7831e97b7..98fd84126 100644 --- a/demo/src/polyfills.ts +++ b/src/polyfills.ts @@ -19,20 +19,20 @@ */ /** IE9, IE10 and IE11 requires all of the following polyfills. **/ -// import 'core-js/es6/symbol'; -// import 'core-js/es6/object'; -// import 'core-js/es6/function'; -// import 'core-js/es6/parse-int'; -// import 'core-js/es6/parse-float'; -// import 'core-js/es6/number'; -// import 'core-js/es6/math'; -// import 'core-js/es6/string'; -// import 'core-js/es6/date'; -// import 'core-js/es6/array'; -// import 'core-js/es6/regexp'; -// import 'core-js/es6/map'; -// import 'core-js/es6/weak-map'; -// import 'core-js/es6/set'; +import 'core-js/es6/symbol'; +import 'core-js/es6/object'; +import 'core-js/es6/function'; +import 'core-js/es6/parse-int'; +import 'core-js/es6/parse-float'; +import 'core-js/es6/number'; +import 'core-js/es6/math'; +import 'core-js/es6/string'; +import 'core-js/es6/date'; +import 'core-js/es6/array'; +import 'core-js/es6/regexp'; +import 'core-js/es6/map'; +import 'core-js/es6/weak-map'; +import 'core-js/es6/set'; /** IE10 and IE11 requires the following for NgClass support on SVG elements */ // import 'classlist.js'; // Run `npm install --save classlist.js`. diff --git a/src/styles.scss b/src/styles.scss new file mode 100644 index 000000000..f7a3ade83 --- /dev/null +++ b/src/styles.scss @@ -0,0 +1,10 @@ +/* You can add global styles to this file, and also import other style files */ +.italic { + font-style: italic; +} +.subtitle { + font-size: 20px; + font-style: italic; + color: grey; + margin-bottom: 10px; +} diff --git a/src/styles/_variables.scss b/src/styles/_variables.scss deleted file mode 100644 index 5ce786813..000000000 --- a/src/styles/_variables.scss +++ /dev/null @@ -1,87 +0,0 @@ -/*! - * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid) - * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE) - * @author: Ghislain B. (ghiscoding) - *//*! - -/* SlickGrid Bootstrap variables */ -/* Used by slick-bootstrap.scss */ -$border-color: #dddddd !default; -$font-size-base: 14px !default; -$font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default; - -/* Slickgrid container, including headers but excluding pagination */ -$container-border-top: 0 none !default; -$container-border-right: 0 none !default; -$container-border-bottom: 1px solid $border-color !default; -$container-border-left: 0 none !default; - -/* grid */ -$grid-border-color: fade(black, 3%) !default; -$grid-border-style: solid !default; -$grid-header-background: rgba(255, 255, 255, .6) !default; -$grid-cell-color: rgb(255, 255, 255) !default; - -/* cell */ -$cell-border-top: 1px solid $border-color !default; -$cell-border-right: 0 none !default; -$cell-border-bottom: 0 none !default; -$cell-border-left: 0 none !default; -$cell-odd-background-color: darken($grid-cell-color, 5%) !default; -$cell-odd-active-background-color: darken($grid-cell-color, 5%) !default; -$cell-padding: 5px 7.5834px !default; -$selected-hover-color: rgb(245, 245, 204) !default; - -/* cell default slickgrid values */ -$cell-padding-top: 4px !default; -$cell-padding-right: 4px !default; -$cell-padding-bottom: 4px !default; -$cell-padding-left: 4px !default; - -/* header */ -$header-input-height: 27px !default; // height of the filter form element (input, textarea, select) -$header-input-width: 100% !default; // width of the filter form element (input, textarea, select) -$header-input-padding: 0 6px !default; // padding of the filter form element (input, textarea, select) -$header-row-count: 2 !default; // how many rows to display on the header -$header-column-height: (16px * $header-row-count) !default; // header is calculated by rows to show -$header-border-top: 0 none !default; -$header-border-right: 0 none !default; -$header-border-bottom: 0 none !default; -$header-border-left: 0 none !default; -$header-resizable-hover: 1px solid #d0d0d0 !default; -$header-scroll-width-to-remove: 16px !default; // without this, the header (which doesn't have scrolling) will be wider than the data viewport - -/* icon font is using Font-Awesome by default but could be changed to any other icon package like Glyphicons, ... */ -$icon-font-family: "FontAwesome" !default; // or Glyphicons Halflings */ -$icon-font-size: 14px !default; -$icon-sort-asc: "\f0d8" !default; -$icon-sort-desc: "\f0d7" !default; -$table-background: transparent !default; -$container-border: 0px solid $border-color !default; -$link-color: #08c !default; -$link-color-hover: darker($link-color, 15%) !default; -$table-bg-accent: #f9f9f9 !default; // for striping every second row -$gray-dark: #333 !default; -$text-color: $gray-dark !default; -$navbar-default-link-hover-color: $gray-dark !default; - -/* Column picker */ -$column-picker-background-color: #f8f8f8 !default; -$column-picker-border: 1px solid #b8b8b8 !default; -$column-picker-border-radius: 3px !default; -$column-picker-close-background-color: 1px solid #9c9c9c !default; -$column-picker-close-border: 1px solid #9c9c9c !default; -$column-picker-close-opacity: 0.9 !default; - -/* pagination variables */ -$pagination-text-color: #808080 !default; -$pagination-border-color: #ddd !default; -$pagination-icon-seek-first: "\f100" !default; -$pagination-icon-seek-end: "\f101" !default; -$pagination-icon-seek-next: "\f105" !default; -$pagination-icon-seek-prev: "\f104" !default; -$pagination-button-border: 1px solid #ccc !default; -$pagination-border-top: 0 none !default; -$pagination-border-right: 0 none !default; -$pagination-border-bottom: 0 none !default; -$pagination-border-left: 0 none !default; diff --git a/src/styles/slick-bootstrap.scss b/src/styles/slick-bootstrap.scss deleted file mode 100644 index 22342c4a1..000000000 --- a/src/styles/slick-bootstrap.scss +++ /dev/null @@ -1,209 +0,0 @@ -/*! - * SlickGrid custom styling for Bootstrap (https://github.com/ghiscoding/angular-slickgrid) - * Licensed under MIT (https://github.com/ghiscoding/angular-slickgrid/blob/master/LICENSE) - * @author: Ghislain B. (ghiscoding) - *//*! - -/* Mixins for SlickGrid */ -@import './variables'; - -.slickgrid-container { - border-top: $container-border-top; - border-bottom: $container-border-bottom; - border-left: $container-border-left; - border-right: $container-border-right; - position: relative; - - @mixin resetSlickCell() { - padding: $cell-padding; - font-size: $font-size-base; - td { - font-size: $font-size-base; - } - body & { - line-height: 20px; - } - } - - // Reset the margin of the checkboxes. The grid - // needs a selection checbox column. Bootstrap gives - // these elements a 4px top margin, which we have to reset - // by aligning to baseline. - input[type="checkbox"] { - vertical-align: baseline; - margin: 0; - } - - .slick-viewport { - /*opacity: 0.95;*/ - } - - .grid-canvas { - .slick-row { - position: absolute; - width: 100%; - &.odd .slick-cell { - &.selected { - background-color: $selected-hover-color; - } - } - } - .slick-cell, .slick-headerrow-column { - border-top: $cell-border-top; - border-bottom: $cell-border-bottom; - border-left: $cell-border-left; - border-right: $cell-border-right; - } - .even { - background: $table-bg-accent; - } - - - .slick-cell { - @include resetSlickCell(); - - a, a:visited, .ui-widget-content a, .ui-widget-content a:visited { - color: $link-color; - text-decoration: none; - } - a:hover, .ui-widget-content a:hover { - color: $link-color-hover; - text-decoration: none; - border-bottom: none; - } - table { - height: 100%; - border: 0 none; - padding: 0; - background: none; - } - td { - border: 0 none; - padding: 0; - vertical-align: middle; - text-align: left; - } - &.selected { - background-color: $selected-hover-color; - } - &.odd .slick-cell { - &.selected { - background-color: $selected-hover-color; - } - } - } - } - - .slick-header { - border-top: $header-border-top; - border-right: $header-border-right; - border-bottom: $header-border-bottom; - border-left: $header-border-left; - width: calc(100% - #{$header-scroll-width-to-remove}); - } - - .slick-headerrow-columns { - .slick-headerrow-column { - border: none; - padding: 4px 5px; - } - .slick-headerrow-column input, - .slick-headerrow-column select, - .slick-headerrow-column textarea { - margin-right: 0; - padding: $header-input-padding; - width: $header-input-width; - height: $header-input-height; - -moz-box-sizing: border-box; - -webkit-box-sizing: border-box; - box-sizing: border-box; - } - } - - .slick-header-columns { - background: $table-background; - - - .slick-header-sortable { - .slick-column-name { - margin-left: 0; - } - } - .slick-header-column { - height: $header-column-height; - line-height: $font-size-base; - margin: 0; - border-top: $header-border-top; - border-right: $header-border-right; - border-bottom: $header-border-bottom; - border-left: $header-border-left; - white-space: normal; - &.ui-state-default { - @include resetSlickCell(); - } - - $slickgridHoverHeaderColor: $text-color; - $slickgridSortingHeaderColor: $text-color; - - @mixin ResetColumns () { - /* like TH */ - background: $table-background; - font-family: $font-family; - color: $text-color; - font-weight: bold; - a, a:visited { - color: $text-color; - } - a:hover { - color: $slickgridHoverHeaderColor; - } - } - - @include ResetColumns (); - &.ui-state-default { - @include ResetColumns (); - } - - &.slick-header-column-sorted { - font-style: normal; - color: $slickgridSortingHeaderColor; - } - &:hover { - color: $slickgridHoverHeaderColor; - } - - .slick-sort-indicator { - position: absolute; - display: inline-block; - width: 8px; - height: 5px; - left: auto; - right: 7px; - top: ((15px * $header-row-count) - 15px); - } - - [class*="slick-sort-"] { - background: none; - font-family: $icon-font-family; - font-size: $icon-font-size; - } - .slick-sort-indicator-asc { - &:before { - content: $icon-sort-asc; - } - } - .slick-sort-indicator-desc { - &:before { - content: $icon-sort-desc; - } - } - .slick-resizable-handle { - width: 5px; - right: 2px; - } - .slick-resizable-handle:hover { - border-right: $header-resizable-hover; - } - } - } -} diff --git a/src/styles/slick-controls.scss b/src/styles/slick-controls.scss deleted file mode 100644 index debcfdec6..000000000 --- a/src/styles/slick-controls.scss +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Column Picker Control - */ -@import './variables'; - - -.slick-columnpicker { - background-color: $column-picker-background-color; - border: $column-picker-border; - border-radius: $column-picker-border-radius; - padding: 6px; - -moz-box-shadow: 2px 2px 2px silver; - -webkit-box-shadow: 2px 2px 2px silver; - box-shadow: 2px 2px 2px silver; - min-width: 150px; - cursor: default; - position: absolute; - z-index: 20; - overflow: auto; - resize: both; - - > .close { - float: right; - width: 20px; - height: 25px; - padding: 2px; - background-color: $column-picker-close-background-color; - border: $column-picker-close-border; - - > span { - opacity: $column-picker-close-opacity; - } - } - - input { - margin: 4px; - } - li { - list-style: none; - margin: 0; - padding: 0; - background: none; - - a { - display: block; - padding: 4px; - font-weight: bold; - } - a:hover { - background: white; - } - } - .title { - font-size: 16px; - width: 60%; - border-bottom: solid 1px #d6d6d6; - margin-bottom: 10px; - } -} - -.slick-columnpicker-list > hr { - margin: 6px 0; - border: 0; - border-top: 1px solid #d5d5d5; -} diff --git a/src/styles/slick-default-theme.scss b/src/styles/slick-default-theme.scss deleted file mode 100644 index 645e441c1..000000000 --- a/src/styles/slick-default-theme.scss +++ /dev/null @@ -1,298 +0,0 @@ -/* - * IMPORTANT: - * In order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes. - * No built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS - * classes should alter those! - */ - @import './variables'; - -.pointer { - cursor: pointer; -} -.slickgrid-container { - .slick-header-columns, - .slick-header-column { - background: $grid-header-background; - // background-color: #EBECEE; - } - - .slick-header-columns { - border-bottom: 1px solid $grid-border-color; - background: linear-gradient(rgba(0,0,0,0) 60%, rgba(0,0,0,.1)); - } - - .slick-header-column { - border-right: 1px solid $grid-border-color; - border-bottom: 1px solid $grid-border-color; - } - - .slick-header-column:hover { - background: darken($grid-header-background, 2%); - } - - .slick-header-column-active { - background: darken($grid-header-background, 5%) !important; - } - - .slick-headerrow { - background: $grid-header-background; - } - - .slick-headerrow-column { - background: #fafafa; - border-bottom: 0; - } - - .grid-canvas { - background: white; - } - - .slick-row { - background: white; - border: 0; - line-height: 20px; - - .slick-cell { - background: white; - - padding-top: 3px; - padding-bottom: 4px; - padding-left: 4px; - padding-right: 4px; - box-sizing: border-box; - - &.invalid { - border-color: red; - -moz-animation-duration: 0.2s; - -webkit-animation-duration: 0.2s; - -moz-animation-name: slickgrid-invalid-hilite; - -webkit-animation-name: slickgrid-invalid-hilite; - animation-duration: 0.2s; - animation-name: slickgrid-invalid-hilite; - } - - &.selected { - background-color: rgb(231, 231, 195); // beige - } - - &.active { - border-color: black; - border-style: solid; - border-width: 1px; - - // We compensate for the all-around border (now 1px at top and left too!) by reducing the padding: - padding-top: 2px; - padding-left: 3px; - input.editor-text { - width: 100%; - height: 100%; - border: 0; - margin: 0; - outline: 0; - background: transparent; - padding: 0; - transform: translate(0, -2px); - } - - } - } - - &.odd .slick-cell { - background: $cell-odd-background-color; - - // make sure we override the regular background color: - &.selected { - background-color: rgb(214, 214, 178); // beige - } - } - - &.active-row .slick-cell { - background-color: rgb(226, 255, 253); - - // make sure we override the regular background color: - &.selected { - background-color: red; - } - } - - &.active-row.odd .slick-cell { - background-color: $cell-odd-active-background-color; - - // make sure we override the regular background color: - &.selected { - background-color: green; // beige - } - } - - &.loading { - opacity: 0.5; - } - } - - .slick-group { - border-bottom: 2px solid silver; - } - - .slick-group-toggle { - width: 9px; - height: 9px; - margin-right: 5px; - - &.expanded:before { - content: "\f196"; - } - - &.collapsed:before { - content: "\f147"; - } - } - - .slick-group-totals { - color: gray; - background: white; - } - - .slick-sortable-placeholder { - background: silver !important; - } - - @-moz-keyframes slickgrid-invalid-hilite { - from { - box-shadow: 0 0 6px red; - } - to { - box-shadow: none; - } - } - - @-webkit-keyframes slickgrid-invalid-hilite { - from { - box-shadow: 0 0 6px red; - } - to { - box-shadow: none; - } - } - - // ---------------------------------------------- - // Excel-like header - // ---------------------------------------------- - - .slick-header-menubutton { - background-position: center center; - background-repeat: no-repeat; - border-left: thin ridge silver; - cursor: pointer; - display: inline-block; - position: absolute; - - // The next few items are already defined in the slick-headermenu.less file and it should stay that way, *unless* you also replace the button image included there. - //bottom: 0; - //right: 0; - //top: 0; - //width: 14px; - } - - .slick-header-menu { - background: none repeat scroll 0 0 white; - border: 1px solid #BFBDBD; - min-width: 175px; - padding: 4px; - z-index: 100000; - cursor: default; - display: inline-block; - margin: 0; - position: absolute; - - button { - border: 1px solid #BFBDBD; - background-color: white; - width: 45px; - padding: 4px; - margin: 4px 4px 4px 0; - } - - .filter { - border: 1px solid #BFBDBD; - font-size: 8pt; - height: 400px; - margin-top: 6px; - overflow: scroll; - padding: 4px; - white-space: nowrap; - width: 200px; - } - - .textfilter { - & > label { - display: inline-block; - margin-left: 5px; - margin-right: 10px; - } - - & > input[type=text] { - width: 70%; - } - } - } - - label { - display: block; - margin-bottom: 5px; - } - - .slick-header-menuitem { - border: 1px solid transparent; - padding: 2px 4px; - cursor: pointer; - list-style: none outside none; - margin: 0; - } - - .slick-header-menuicon { - background-position: center center; - background-repeat: no-repeat; - display: inline-block; - height: 16px; - margin-right: 4px; - vertical-align: middle; - width: 16px; - } - - .slick-header-menucontent { - display: inline-block; - vertical-align: middle; - } - - .slick-header-menuitem:hover { - border-color: #BFBDBD; - } - - .header-overlay, - .cell-overlay, - .selection-cell-overlay { - display: block; - position: absolute; - z-index: 999; - } - - .slick-cell > .editor-select { - position: absolute; - left: 0; - right: 0; - width: auto; - top: 0; - bottom: 0; - max-width: 100%; - min-width: 0; - margin: 0; - } - - .slick-range-decorator { - z-index: 100; - pointer-events: none; - background: transparent; - border: none; - outline: black; - } -} diff --git a/src/styles/slick-grid.scss b/src/styles/slick-grid.scss deleted file mode 100644 index 027041db4..000000000 --- a/src/styles/slick-grid.scss +++ /dev/null @@ -1,303 +0,0 @@ -/* - * IMPORTANT: - * In order to preserve the uniform grid appearance, all cell styles need to have padding, margin and border sizes. - * No built-in (selected, editable, highlight, flashing, invalid, loading, :focus) or user-specified CSS - * classes should alter those! - */ - @import './variables'; - -.slickgrid-container { - overflow: hidden; - outline: 0; - position: relative; - box-sizing: content-box; - - .slick-group-header-columns { - position: relative; - white-space: nowrap; - cursor: default; - overflow: hidden; - } - - .slick-group-header { - width: 100%; - overflow: hidden; - border-left: 0px; - } - - .slick-group-header-column.ui-state-default { - position: relative; - display: inline-block; - overflow: hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - height: 16px; - line-height: 16px; - margin: 0; - padding: 4px; - border: 1px solid $grid-border-color; - border-left: 0px; - border-top: 0px; - border-bottom: 0px; - float: left; - } - - .slick-viewport, - .slick-top-panel-scroller, - .slick-header, - .slick-headerrow, - .slick-footerrow { - position: relative; - width: 100%; - border: 1px solid $grid-border-color; - border-right-color: transparent; - border-bottom-color: transparent; - border-right-width: 0; - border-bottom-width: 0; - margin: 0; - outline: 0; - } - .slick-viewport { - overflow: auto; - ::-webkit-scrollbar { - -webkit-appearance: none; - } - ::-webkit-scrollbar-thumb { - border-radius: 4px; - border: 2px solid white; /* should match background, can't be transparent */ - background-color: rgba(0, 0, 0, .5); - } - } - .slick-header, - .slick-headerrow, - .slick-footerrow { - overflow: hidden; - } - .slick-headerrow { - border-top-color: transparent; - border-top-width: 0; - } - - .slick-top-panel, - .slick-header-columns, - .slick-headerrow-columns, - .slick-footerrow-columns { - position: relative; - white-space: nowrap; - cursor: default; - overflow: hidden; - margin: 0; - padding: 0; - border: 0; - outline: 0; - } - - .slick-cell, - .slick-header-column, - .slick-headerrow-column, - .slick-footerrow-column { - position: absolute; - top: 0; - bottom: 0; - - border: 1px solid silver; - border-top-color: transparent; - border-left-color: transparent; - border-top-width: 0; - border-left-width: 0; - margin: 0; - padding: 0; - - overflow: hidden; - text-overflow: ellipsis; - vertical-align: middle; - z-index: 1; - white-space: nowrap; - cursor: default; - - // do not include a bottom border for the bottom-most = leaf header cells: - // that border will be provided by the rows container. - &.slick-header-is-leaf { - border-bottom-color: transparent; - border-bottom-width: 0; - } - } - - .slick-header-column.ui-state-default { - position: relative; - display: inline-block; - box-sizing: content-box !important; - overflow: hidden; - -o-text-overflow: ellipsis; - text-overflow: ellipsis; - height: 16px; - line-height: 16px; - margin: 0; - padding: 4px; - border-right: 1px solid $grid-border-color; - border-left: 0px !important; - border-top: 0px !important; - border-bottom: 0px !important; - float: left; - } - - - .slick-cell { - box-sizing: border-box; - border-style: $grid-border-style; - padding: 1px 2px 1px 2px; - } - - .slick-header-column { - padding: $cell-padding-top $cell-padding-right $cell-padding-bottom $cell-padding-left; - } - - .grid-canvas { - position: relative; - outline: 0; - } - - .slick-row { - position: absolute; - border: 0; - width: 100%; - } - - .slick-header-column-sorted { - font-style: italic; - } - - .slick-sort-indicator { - display: inline-block; - width: 8px; - height: 5px; - margin-left: 4px; - margin-top: 6px; - position: absolute; - left: 0; - //background: url('../images/sort-undetermined.png'); - } - - .slick-sort-indicator-desc:before { - content: "\f0d7"; - } - - .slick-sort-indicator-asc:before { - content: "\f0d8"; - } - - .slick-header-sortable .slick-column-name { - margin-left: 10px; - } - - .slick-header.ui-state-default { - box-shadow: 0 1px 2px rgba(0,0,0,.1); - } - - .slick-column-name { - text-overflow: ellipsis; - } - - .slick-resizable-handle { - position: absolute; - font-size: 0.1px; - display: block; - cursor: col-resize; - width: 4px; - right: 0; - top: 0; - height: 100%; - } - - .slick-resizable-handle-hover { - background-color: #ccc; - } - - .slick-sortable-placeholder { - background: silver; - } - - .slick-group { - } - - .slick-group-toggle { - display: inline-block; - } - - .slick-cell { - &.highlighted { - background: lightskyblue; - background: rgba(0, 0, 255, 0.2); - transition: all 0.5s; - } - - &.flashing { - border: 1px solid red !important; - } - - &.editable { - z-index: 11; - overflow: visible; - background: white; - border-color: black; - border-style: solid; - } - - &:focus { - outline: none; - } - } - - .slick-reorder-proxy { - display: inline-block; - background: blue; - opacity: 0.15; - cursor: move; - } - - .slick-reorder-guide { - display: inline-block; - height: 2px; - background: blue; - opacity: 0.7; - } - - .slick-selection { - z-index: 10; - position: absolute; - border: 2px dashed black; - } - - .slick-pane { - position: absolute; - outline: 0; - overflow: hidden; - width: 100%; - } -} - -.flatpickr-wrapper { - z-index: 10000; -} - -.interact-placeholder { - background: red !important; - display: inline-block; - float:left; - transform: translate(0px, -100%); -} - -.interact-drop-active { - box-shadow: inset 0 0 8px rgba(7, 67, 128, 0.5); -} - -.interact-can-drop { - opacity: .9; -} - - -.scrollbar-fix { - &::-webkit-scrollbar { - -webkit-appearance: none; - } -} diff --git a/src/styles/slick-plugins.scss b/src/styles/slick-plugins.scss deleted file mode 100644 index 61266e119..000000000 --- a/src/styles/slick-plugins.scss +++ /dev/null @@ -1,109 +0,0 @@ -/** - * Header Buttons Plugin - */ -.has-buttons .slick-column-name, -.slick-sort-indicator { - /** - * This makes all "float:right" elements after it that spill over to the next line - * display way below the lower boundary of the column thus hiding them. - */ - display: inline-block; - float: left; - margin-bottom: 100px; -} - -.slick-header-button { - display: inline-block; - float: right; - vertical-align: top; - margin: 1px; - /** - * This makes all "float:right" elements after it that spill over to the next line - * display way below the lower boundary of the column thus hiding them. - */ - margin-bottom: 100px; - height: 15px; - width: 15px; - background-repeat: no-repeat; - background-position: center center; - cursor: pointer; -} - -.slick-header-button-hidden { - width: 0; - - -webkit-transition: 0.2s width; - -ms-transition: 0.2s width; - transition: 0.2s width; -} - -.slick-header-column:hover > .slick-header-button { - width: 15px; -} - - -/** - * Header Menu Plugin - */ - /* Menu button */ - .slick-header-menubutton { - position: absolute; - right: 0; - top: 0; - bottom: 0; - width: 14px; - background-repeat: no-repeat; - background-position: left center; - cursor: pointer; - display: none; - border-left: thin ridge silver; - /*background-image: url(../../images/down.gif);*/ - } - .slick-header-menubutton:before { - font-size: 12px; - content: "\25bc"; - } - - .slick-header-column:hover > .slick-header-menubutton, - .slick-header-column-active .slick-header-menubutton { - display: inline-block; - } - - /* Menu */ - .slick-header-menu { - position: absolute; - display: inline-block; - margin: 0; - padding: 2px; - cursor: default; - } - - - /* Menu items */ - .slick-header-menuitem { - list-style: none; - margin: 0; - padding: 0; - cursor: pointer; - } - - .slick-header-menuicon { - display: inline-block; - width: 16px; - height: 16px; - vertical-align: middle; - margin-right: 4px; - background-repeat: no-repeat; - background-position: center center; - } - - .slick-header-menucontent { - display: inline-block; - vertical-align: middle; - } - - - /* Disabled */ - .slick-header-menuitem-disabled { - color: silver; - } diff --git a/src/styles/slickgrid-examples.scss b/src/styles/slickgrid-examples.scss deleted file mode 100644 index 9853d88ed..000000000 --- a/src/styles/slickgrid-examples.scss +++ /dev/null @@ -1,204 +0,0 @@ -@import './variables'; - -.full-height { - height: 100%; -} -.gridPane { - width: 100%; -} -.grid-header { - border: 1px solid gray; - border-bottom: 0; - border-top: 0; - /*background: url('../images/header-bg.gif') repeat-x center top;*/ - color: black; - height: 24px; - line-height: 24px; -} - -.grid-header label { - display: inline-block; - font-weight: bold; - margin: auto auto auto 6px; -} - -.grid-header .ui-icon { - margin: 4px 4px auto 6px; - background-color: transparent; - border-color: transparent; -} - -.grid-header .ui-icon.ui-state-hover { - background-color: white; -} - -.grid-header #txtSearch { - margin: 0 4px 0 4px; - padding: 2px 2px; - -moz-border-radius: 2px; - -webkit-border-radius: 2px; - border-radius: 2px; - border: 1px solid silver; -} - -.options-panel { - -moz-border-radius: 6px; - -webkit-border-radius: 6px; - border-radius: 6px; - border: 1px solid silver; - background: #f0f0f0; - padding: 4px; - margin-bottom: 20px; - width: 320px; - position: absolute; - top: 0px; - left: 650px; -} - -/* Individual cell styles */ -.slick-cell.task-name { - font-weight: bold; - text-align: right; -} - -.slick-cell.task-percent { - text-align: right; -} - -.slick-cell.cell-move-handle { - font-weight: bold; - text-align: right; - border-right: solid gray; - - background: #efefef; - cursor: move; -} - -.cell-move-handle:hover { - background: #b6b9bd; -} - -.slick-row.selected .cell-move-handle { - background: #D5DC8D; -} - -.slick-row .cell-actions { - text-align: left; -} - -.slick-row.complete { - background-color: #DFD; - color: #555; -} - -.percent-complete-bar { - display: inline-block; - height: 6px; - -moz-border-radius: 3px; - -webkit-border-radius: 3px; - border-radius: 3px; - background-color: transparent; -} - -/* Slick.Editors.Text, Slick.Editors.Date */ -.ui-datepicker-trigger { - margin-top: 2px; - padding: 0; - vertical-align: top; -} - -/* Slick.Editors.PercentComplete */ -input.editor-percentcomplete { - width: 100%; - height: 100%; - border: 0; - margin: 0; - background: transparent; - outline: 0; - padding: 0; - - float: left; -} - -.editor-percentcomplete-picker { - position: relative; - display: inline-block; - width: 16px; - height: 100%; - /*background: url("../images/pencil.gif") no-repeat center center;*/ - overflow: visible; - z-index: 1000; - float: right; -} - -.editor-percentcomplete-helper { - border: 0 solid gray; - position: absolute; - top: -2px; - left: -9px; - /*background: url("../images/editor-helper-bg.gif") no-repeat top left;*/ - padding-left: 9px; - - width: 120px; - height: 140px; - display: none; - overflow: visible; -} - -.editor-percentcomplete-wrapper { - background: beige; - padding: 20px 8px; - - width: 100%; - height: 98px; - border: 1px solid gray; - border-left: 0; -} - -.editor-percentcomplete-buttons { - float: right; -} - -.editor-percentcomplete-buttons button { - width: 80px; -} - -.editor-percentcomplete-slider { - float: left; -} - -.editor-percentcomplete-picker:hover .editor-percentcomplete-helper { - display: block; -} - -.editor-percentcomplete-helper:hover { - display: block; -} - -/* Slick.Editors.YesNoSelect */ -select.editor-yesno { - width: 100%; - margin: 0; - vertical-align: middle; -} - -/* Slick.Editors.Checkbox */ -input.editor-checkbox { - margin: 0; - height: 100%; - padding: 0; - border: 0; -} - - -.frozen { - background: #eeeeee; -} - -.slick-row .slick-cell.frozen:last-child, .slick-header-column.frozen:last-child, .slick-footerrow-column.frozen:last-child { - border-right: 1px solid #999; -} - -.slick-row.frozen:last-child .slick-cell { - border-bottom: 1px solid #999; -} diff --git a/src/styles/slickgrid-theme-bootstrap.scss b/src/styles/slickgrid-theme-bootstrap.scss deleted file mode 100644 index 347d04951..000000000 --- a/src/styles/slickgrid-theme-bootstrap.scss +++ /dev/null @@ -1,6 +0,0 @@ -@import './slick-grid'; -@import './slick-controls'; -@import './slick-plugins'; -@import './slick-default-theme'; -@import './slickgrid-examples'; -@import './slick-bootstrap'; diff --git a/demo/src/test.ts b/src/test.ts similarity index 100% rename from demo/src/test.ts rename to src/test.ts diff --git a/demo/src/tsconfig.app.json b/src/tsconfig.app.json similarity index 71% rename from demo/src/tsconfig.app.json rename to src/tsconfig.app.json index 39ba8dbac..e85f3b9e6 100644 --- a/demo/src/tsconfig.app.json +++ b/src/tsconfig.app.json @@ -1,10 +1,13 @@ { "extends": "../tsconfig.json", "compilerOptions": { + "allowSyntheticDefaultImports": true, "outDir": "../out-tsc/app", "baseUrl": "./", "module": "es2015", - "types": [] + "types": [ + "moment" + ] }, "exclude": [ "test.ts", diff --git a/demo/src/tsconfig.spec.json b/src/tsconfig.spec.json similarity index 100% rename from demo/src/tsconfig.spec.json rename to src/tsconfig.spec.json diff --git a/src/typings.d.ts b/src/typings.d.ts new file mode 100644 index 000000000..c10225d3d --- /dev/null +++ b/src/typings.d.ts @@ -0,0 +1,9 @@ +/* SystemJS module definition */ +declare var module: NodeModule; + +interface NodeModule { + id: string; +} +interface JQuery { + slickgrid: (options: any) => any; +} diff --git a/tests/services/sum.service.spec.ts b/tests/services/sum.service.spec.ts deleted file mode 100644 index a82b22cb7..000000000 --- a/tests/services/sum.service.spec.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { inject, TestBed } from '@angular/core/testing'; - -import { SumService } from './../../angular-slickgrid'; - -describe('SumService', () => { - - beforeEach(() => { - TestBed.configureTestingModule({ - providers: [ - SumService - ] - }); - }); - - it('should be calculate the sum', - inject([SumService], - (sumService: SumService) => { - sumService.calculate(45, 78, 90, 674); - expect(sumService.sum).toEqual(887); - }) - ); - -}); diff --git a/tsconfig-build.json b/tsconfig-build.json deleted file mode 100644 index 94e27d11a..000000000 --- a/tsconfig-build.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "baseUrl": ".", - "declaration": true, - "experimentalDecorators": true, - "strict": true, - "module": "es2015", - "moduleResolution": "node", - "noImplicitAny": true, - "suppressImplicitAnyIndexErrors": true, - "outDir": "dist", - "rootDir": ".", - "sourceMap": true, - "inlineSources": true, - "target": "es2015", - "skipLibCheck": true, - "lib": [ - "es2015", - "dom" - ] - }, - "exclude": [ - "node_modules", - "demo" - ], - "files": [ - "public_api.ts", - "node_modules/zone.js/dist/zone.js.d.ts" - ], - "angularCompilerOptions": { - "skipTemplateCodegen": true, - "annotateForClosureCompiler": true, - "strictMetadataEmit": true, - "flatModuleOutFile": "angular-slickgrid.js", - "flatModuleId": "angular-slickgrid" - } -} diff --git a/tsconfig.json b/tsconfig.json index 2d9946096..dc91c5194 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,29 +1,20 @@ { - "compilerOptions": { - "allowSyntheticDefaultImports": true, - "baseUrl": ".", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "strict": false, - "module": "commonjs", - "moduleResolution": "node", - "noImplicitAny": true, - "suppressImplicitAnyIndexErrors": true, - "rootDir": ".", - "sourceMap": true, - "inlineSources": true, - "target": "es5", - "skipLibCheck": true, - "lib": [ - "es2017", - "dom" - ], - "typeRoots": [ - "./node_modules/@types/" - ] - }, - "exclude": [ - "node_modules", - "demo" + "compileOnSave": false, + "compilerOptions": { + "allowSyntheticDefaultImports": true, + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "moduleResolution": "node", + "emitDecoratorMetadata": true, + "experimentalDecorators": true, + "target": "es5", + "typeRoots": [ + "node_modules/@types" + ], + "lib": [ + "es2017", + "dom" ] + } } diff --git a/tslint.json b/tslint.json index 9a167ed46..72b16bd1c 100644 --- a/tslint.json +++ b/tslint.json @@ -1,143 +1,142 @@ { - "rulesDirectory": [ - "node_modules/codelyzer" + "rulesDirectory": [ + "node_modules/codelyzer" + ], + "rules": { + "arrow-return-shorthand": true, + "callable-types": true, + "class-name": true, + "comment-format": [ + true, + "check-space" ], - "rules": { - "arrow-return-shorthand": true, - "callable-types": true, - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "curly": true, - "eofline": true, - "forin": true, - "import-blacklist": [ - true, - "rxjs" - ], - "import-spacing": true, - "indent": [ - true, - "spaces" - ], - "interface-over-type-literal": true, - "label-position": true, - "max-line-length": [ - false, - 140 - ], - "member-access": false, - "member-ordering": [ - true, - { - "order": [ - "static-field", - "instance-field", - "static-method", - "instance-method" - ] - } - ], - "no-arg": true, - "no-bitwise": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-super": true, - "no-empty": false, - "no-empty-interface": true, - "no-eval": true, - "no-inferrable-types": [ - true, - "ignore-params" - ], - "no-implicit": false, - "no-misused-new": true, - "no-non-null-assertion": true, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-string-throw": true, - "no-switch-case-fall-through": true, - "no-trailing-whitespace": true, - "no-unnecessary-initializer": true, - "no-unused-expression": true, - "no-use-before-declare": false, - "no-var-keyword": true, - "object-literal-sort-keys": false, - "one-line": [ - true, - "check-open-brace", - "check-catch", - "check-else", - "check-whitespace" - ], - "prefer-const": true, - "quotemark": [ - true, - "single" - ], - "radix": true, - "semicolon": [ - true, - "always" - ], - "triple-equals": [ - true, - "allow-null-check" - ], - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - } - ], - "typeof-compare": true, - "unified-signatures": true, - "variable-name": false, - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ], - "directive-selector": [ - true, - "attribute", - "app", - "camelCase" - ], - "component-selector": [ - true, - "element", - "app", - "kebab-case" - ], - "use-input-property-decorator": true, - "use-output-property-decorator": true, - "use-host-property-decorator": true, - "no-input-rename": true, - "no-output-rename": true, - "use-life-cycle-interface": true, - "use-pipe-transform-interface": true, - "component-class-suffix": true, - "directive-class-suffix": true, - "no-access-missing-member": true, - "templates-use-public": true, - "invoke-injectable": true - } + "curly": true, + "eofline": true, + "forin": true, + "import-blacklist": [ + true, + "rxjs" + ], + "import-spacing": true, + "indent": [ + true, + "spaces" + ], + "interface-over-type-literal": true, + "label-position": true, + "max-line-length": [ + false, + 140 + ], + "member-access": false, + "member-ordering": [ + true, + { + "order": [ + "static-field", + "instance-field", + "static-method", + "instance-method" + ] + } + ], + "no-arg": true, + "no-bitwise": true, + "no-console": [ + true, + "debug", + "info", + "time", + "timeEnd", + "trace" + ], + "no-construct": true, + "no-debugger": true, + "no-duplicate-super": true, + "no-empty": false, + "no-empty-interface": true, + "no-eval": true, + "no-inferrable-types": [ + true, + "ignore-params" + ], + "no-misused-new": true, + "no-non-null-assertion": true, + "no-shadowed-variable": true, + "no-string-literal": false, + "no-string-throw": true, + "no-switch-case-fall-through": true, + "no-trailing-whitespace": true, + "no-unnecessary-initializer": true, + "no-unused-expression": true, + "no-use-before-declare": true, + "no-var-keyword": true, + "object-literal-sort-keys": false, + "one-line": [ + true, + "check-open-brace", + "check-catch", + "check-else", + "check-whitespace" + ], + "prefer-const": true, + "quotemark": [ + true, + "single" + ], + "radix": true, + "semicolon": [ + true, + "always" + ], + "triple-equals": [ + true, + "allow-null-check" + ], + "typedef-whitespace": [ + true, + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + } + ], + "typeof-compare": true, + "unified-signatures": true, + "variable-name": false, + "whitespace": [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type" + ], + "directive-selector": [ + true, + "attribute", + "app", + "camelCase" + ], + "component-selector": [ + true, + "element", + "app", + "kebab-case" + ], + "use-input-property-decorator": true, + "use-output-property-decorator": true, + "use-host-property-decorator": true, + "no-input-rename": true, + "no-output-rename": true, + "use-life-cycle-interface": true, + "use-pipe-transform-interface": true, + "component-class-suffix": true, + "directive-class-suffix": true, + "no-access-missing-member": true, + "templates-use-public": true, + "invoke-injectable": true } +} diff --git a/vscode.code-workspace b/vscode.code-workspace new file mode 100644 index 000000000..60b24d855 --- /dev/null +++ b/vscode.code-workspace @@ -0,0 +1,11 @@ +{ + "folders": [ + { + "path": "./" + }, + { + "path": "../Angular-Slickgrid-PackageTest" + } + ], + "settings": {} +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 000000000..946ecf926 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,7862 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@angular-devkit/build-optimizer@~0.0.23": + version "0.0.23" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-optimizer/-/build-optimizer-0.0.23.tgz#2fe39f11460b27e3ebd007af7432e44646ea8816" + dependencies: + loader-utils "^1.1.0" + source-map "^0.5.6" + typescript "^2.3.3" + webpack-sources "^1.0.1" + +"@angular-devkit/core@0.0.15": + version "0.0.15" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-0.0.15.tgz#f237b4b27743d3a5e6dac60503596daa14442516" + dependencies: + source-map "^0.5.6" + +"@angular-devkit/schematics@~0.0.25": + version "0.0.25" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-0.0.25.tgz#993e63c2398ce0bcd61172627bc6e44ed4c98a99" + dependencies: + "@angular-devkit/core" "0.0.15" + "@ngtools/json-schema" "^1.1.0" + minimist "^1.2.0" + rxjs "^5.4.2" + +"@angular/animations@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-4.4.5.tgz#5a5a551d757e5a5560098f6f8535c102d93954d7" + dependencies: + tslib "^1.7.1" + +"@angular/cli@1.4.4": + version "1.4.4" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-1.4.4.tgz#d267580412813942a0d84772b56d2bf0239338d4" + dependencies: + "@angular-devkit/build-optimizer" "~0.0.23" + "@angular-devkit/schematics" "~0.0.25" + "@ngtools/json-schema" "1.1.0" + "@ngtools/webpack" "1.7.2" + "@schematics/angular" "~0.0.38" + autoprefixer "^6.5.3" + chalk "^2.0.1" + circular-dependency-plugin "^3.0.0" + common-tags "^1.3.1" + copy-webpack-plugin "^4.0.1" + core-object "^3.1.0" + css-loader "^0.28.1" + cssnano "^3.10.0" + denodeify "^1.2.1" + ember-cli-string-utils "^1.0.0" + exports-loader "^0.6.3" + extract-text-webpack-plugin "3.0.0" + file-loader "^0.10.0" + fs-extra "^4.0.0" + glob "^7.0.3" + html-webpack-plugin "^2.29.0" + istanbul-instrumenter-loader "^2.0.0" + karma-source-map-support "^1.2.0" + less "^2.7.2" + less-loader "^4.0.5" + license-webpack-plugin "^1.0.0" + lodash "^4.11.1" + memory-fs "^0.4.1" + node-modules-path "^1.0.0" + nopt "^4.0.1" + opn "~5.1.0" + portfinder "~1.0.12" + postcss-loader "^1.3.3" + postcss-url "^5.1.2" + raw-loader "^0.5.1" + resolve "^1.1.7" + rxjs "^5.4.2" + sass-loader "^6.0.3" + semver "^5.1.0" + silent-error "^1.0.0" + source-map-loader "^0.2.0" + source-map-support "^0.4.1" + style-loader "^0.13.1" + stylus "^0.54.5" + stylus-loader "^3.0.1" + typescript ">=2.0.0 <2.6.0" + url-loader "^0.5.7" + webpack "~3.5.5" + webpack-concat-plugin "1.4.0" + webpack-dev-middleware "~1.12.0" + webpack-dev-server "~2.7.1" + webpack-merge "^4.1.0" + zone.js "^0.8.14" + optionalDependencies: + node-sass "^4.3.0" + +"@angular/common@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-4.4.5.tgz#bd5179dc922adbf4c3ea6dfb19e73cb849ffdc37" + dependencies: + tslib "^1.7.1" + +"@angular/compiler-cli@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-4.4.5.tgz#61fa0336acd1a208c5f1c5c6d4df679e99953248" + dependencies: + "@angular/tsc-wrapped" "4.4.5" + minimist "^1.2.0" + reflect-metadata "^0.1.2" + +"@angular/compiler@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-4.4.5.tgz#8721a5910f2bb52f09e2d404cad264f35ede5902" + dependencies: + tslib "^1.7.1" + +"@angular/core@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-4.4.5.tgz#54acbcbda11719f883c786a906974abeb132f1a0" + dependencies: + tslib "^1.7.1" + +"@angular/forms@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-4.4.5.tgz#e9552086232aab2ce1d08ef198b62204ea13c43b" + dependencies: + tslib "^1.7.1" + +"@angular/http@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/http/-/http-4.4.5.tgz#2c735ed842401fc2356419268e288dcf2396e84f" + dependencies: + tslib "^1.7.1" + +"@angular/language-service@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-4.4.5.tgz#ccef139b8d3e1684b01afa35c6fbf2172e2bb676" + +"@angular/platform-browser-dynamic@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-4.4.5.tgz#774dbdc1d90f775dbf1e319f6ed42b260623b61f" + dependencies: + tslib "^1.7.1" + +"@angular/platform-browser@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-4.4.5.tgz#74eb91c0b758126f26d53ee56c7cf4668bd9cac5" + dependencies: + tslib "^1.7.1" + +"@angular/router@^4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-4.4.5.tgz#f73130cf487d9a32cc1988afda59665f44a28a89" + dependencies: + tslib "^1.7.1" + +"@angular/tsc-wrapped@4.4.5": + version "4.4.5" + resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.4.5.tgz#30a0cbb43a663aa75dca984894be4813778ddc9c" + dependencies: + tsickle "^0.21.0" + +"@angular/tsc-wrapped@^4.2.0": + version "4.4.3" + resolved "https://registry.yarnpkg.com/@angular/tsc-wrapped/-/tsc-wrapped-4.4.3.tgz#2d3f38210a1d4db03fc86dcf1e095812b85cd119" + dependencies: + tsickle "^0.21.0" + +"@ngtools/json-schema@1.1.0", "@ngtools/json-schema@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@ngtools/json-schema/-/json-schema-1.1.0.tgz#c3a0c544d62392acc2813a42c8a0dc6f58f86922" + +"@ngtools/webpack@1.7.2": + version "1.7.2" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-1.7.2.tgz#3fc4de01786dcc2f50d8cbaaa117311e56799977" + dependencies: + enhanced-resolve "^3.1.0" + loader-utils "^1.0.2" + magic-string "^0.22.3" + source-map "^0.5.6" + +"@schematics/angular@~0.0.38": + version "0.0.38" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-0.0.38.tgz#6131569a9fe21fe7bad8abf4a3174ea5a8647bbd" + +"@types/jasmine@*": + version "2.5.54" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.5.54.tgz#a6b5f2ae2afb6e0307774e8c7c608e037d491c63" + +"@types/jasmine@~2.6.0": + version "2.6.0" + resolved "https://registry.yarnpkg.com/@types/jasmine/-/jasmine-2.6.0.tgz#997b41a27752b4850af2683bc4a8d8222c25bd02" + +"@types/jasminewd2@~2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/jasminewd2/-/jasminewd2-2.0.3.tgz#0d2886b0cbdae4c0eeba55e30792f584bf040a95" + dependencies: + "@types/jasmine" "*" + +"@types/moment@^2.13.0": + version "2.13.0" + resolved "https://registry.yarnpkg.com/@types/moment/-/moment-2.13.0.tgz#604ebd189bc3bc34a1548689404e61a2a4aac896" + dependencies: + moment "*" + +"@types/node@^6.0.46": + version "6.0.88" + resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.88.tgz#f618f11a944f6a18d92b5c472028728a3e3d4b66" + +"@types/node@^8.0.39": + version "8.0.39" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.0.39.tgz#992696d6a7ac571bb26b3482bb775642eef9a7d5" + +"@types/q@^0.0.32": + version "0.0.32" + resolved "https://registry.yarnpkg.com/@types/q/-/q-0.0.32.tgz#bd284e57c84f1325da702babfc82a5328190c0c5" + +"@types/selenium-webdriver@^2.53.35", "@types/selenium-webdriver@~2.53.39": + version "2.53.42" + resolved "https://registry.yarnpkg.com/@types/selenium-webdriver/-/selenium-webdriver-2.53.42.tgz#74cb77fb6052edaff2a8984ddafd88d419f25cac" + +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +accepts@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" + dependencies: + mime-types "~2.1.11" + negotiator "0.6.1" + +accepts@~1.3.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.4.tgz#86246758c7dd6d21a6474ff084a4740ec05eb21f" + dependencies: + mime-types "~2.1.16" + negotiator "0.6.1" + +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.2.tgz#911cb53e036807cf0fa778dc5d370fbd864246d7" + +adm-zip@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.4.tgz#a61ed5ae6905c3aea58b3a657d25033091052736" + +adm-zip@^0.4.7: + version "0.4.7" + resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + +agent-base@2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-2.1.1.tgz#d6de10d5af6132d5bd692427d46fc538539094c7" + dependencies: + extend "~3.0.0" + semver "~5.0.1" + +ajv-keywords@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" + +ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + +ajv@^5.0.0, ajv@^5.1.5: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + +align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + +alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + +amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + +ansi-align@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" + dependencies: + string-width "^2.0.0" + +ansi-cyan@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" + dependencies: + ansi-wrap "0.1.0" + +ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + +ansi-red@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" + dependencies: + ansi-wrap "0.1.0" + +ansi-regex@^0.2.0, ansi-regex@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-0.2.1.tgz#0d8e946967a3d8143f93e24e298525fc1b2235f9" + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + +ansi-styles@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.1.0.tgz#eaecbf66cd706882760b2f4691582b8f55d7a7de" + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + +ansi-styles@^3.1.0, ansi-styles@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.0.tgz#c159b8d5be0f9e5a6f346dab94f16ce022161b88" + dependencies: + color-convert "^1.9.0" + +ansi-styles@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-1.0.0.tgz#cb102df1c56f5123eab8b67cd7b98027a0279178" + +ansi-wrap@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ansi-wrap/-/ansi-wrap-0.1.0.tgz#a82250ddb0015e9a27ca82e82ea603bbfa45efaf" + +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + +app-root-path@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.0.1.tgz#cd62dcf8e4fd5a417efc664d2e5b10653c651b46" + +append-transform@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-0.4.0.tgz#d76ebf8ca94d276e247a36bad44a4b74ab611991" + dependencies: + default-require-extensions "^1.0.0" + +aproba@^1.0.3: + version "1.1.2" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" + +archy@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + +are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.9" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.9.tgz#73d83bc263f86e97f8cc4f6bae1b0e90a7d22c86" + dependencies: + sprintf-js "~1.0.2" + +arr-diff@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-1.1.0.tgz#687c32758163588fef7de7b36fabe495eb1a399a" + dependencies: + arr-flatten "^1.0.1" + array-slice "^0.2.3" + +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + +arr-union@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" + +array-differ@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" + +array-each@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + +array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + +array-slice@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" + +array-slice@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.0.0.tgz#e73034f00dcc1f40876008fd20feae77bd4b7c2f" + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + +array-uniq@^1.0.1, array-uniq@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + +arraybuffer.slice@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + +asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +asn1@0.1.11: + version "0.1.11" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7" + +asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + +assert-plus@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.1.2.tgz#d93ffdbb67ac5507779be316a7d65146417beef8" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + +assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + +ast-types@0.9.6: + version "0.9.6" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.9.6.tgz#102c9e9e9005d3e7e3829bf0c4fa24ee862ee9b9" + +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + +async@^0.9.0: + version "0.9.2" + resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" + +async@^1.4.0, async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + +async@^2.0.0-rc.5, async@^2.1.2, async@^2.1.4, async@^2.1.5, async@^2.4.1: + version "2.5.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" + dependencies: + lodash "^4.14.0" + +async@~0.2.6, async@~0.2.7: + version "0.2.10" + resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + +autoprefixer@^6.3.1, autoprefixer@^6.5.3: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + +autoprefixer@^7.1.1: + version "7.1.4" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.1.4.tgz#960847dbaa4016bc8e8e52ec891cbf8f1257a748" + dependencies: + browserslist "^2.4.0" + caniuse-lite "^1.0.30000726" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^6.0.11" + postcss-value-parser "^3.2.3" + +aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + +aws-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/aws-sign/-/aws-sign-0.3.0.tgz#3d81ca69b474b1e16518728b51c24ff0bbedc6e9" + +aws4@^1.2.1: + version "1.6.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" + +babel-code-frame@^6.11.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-generator@^6.18.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.0.tgz#ac1ae20070b79f6e3ca1d3269613053774f20dc5" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.6" + trim-right "^1.0.1" + +babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + +babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0, babel-runtime@^6.9.2: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +babel-template@^6.16.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + +babel-traverse@^6.18.0, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + +babel-types@^6.18.0, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + +babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + +backo2@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + +balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + +base64-js@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + +base64id@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + +bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + +beeper@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/beeper/-/beeper-1.1.1.tgz#e6d5ea8c5dad001304a70b22638447f69cb2f809" + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + dependencies: + callsite "1.0.0" + +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + +binary-extensions@^1.0.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.10.0.tgz#9aeb9a6c5e88638aad171e167f5900abe24835d0" + +blob@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" + +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + +blocking-proxy@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blocking-proxy/-/blocking-proxy-0.0.5.tgz#462905e0dcfbea970f41aa37223dda9c07b1912b" + dependencies: + minimist "^1.2.0" + +bluebird@^2.10.2: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + +bluebird@^3.3.0, bluebird@^3.4.7: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + +body-parser@^1.16.1: + version "1.18.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.0.tgz#d3b224d467fa2ce8d43589c0245043267c093634" + dependencies: + bytes "3.0.0" + content-type "~1.0.2" + debug "2.6.8" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.18" + on-finished "~2.3.0" + qs "6.5.0" + raw-body "2.3.1" + type-is "~1.6.15" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + +boom@0.4.x: + version "0.4.2" + resolved "https://registry.yarnpkg.com/boom/-/boom-0.4.2.tgz#7a636e9ded4efcefb19cef4947a3c67dfaee911b" + dependencies: + hoek "0.9.x" + +boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + +bootstrap@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-3.3.7.tgz#5a389394549f23330875a3b150656574f8a9eb71" + +boxen@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.2.2.tgz#3f1d4032c30ffea9d4b02c322eaf2ea741dcbce5" + dependencies: + ansi-align "^2.0.0" + camelcase "^4.0.0" + chalk "^2.0.1" + cli-boxes "^1.0.0" + string-width "^2.0.0" + term-size "^1.2.0" + widest-line "^1.0.0" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^0.1.2: + version "0.1.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-0.1.5.tgz#c085711085291d8b75fdd74eab0f8597280711e6" + dependencies: + expand-range "^0.1.0" + +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + +browser-resolve@^1.11.0: + version "1.11.2" + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.2.tgz#8ff09b0a2c421718a1051c260b32e48f442938ce" + dependencies: + resolve "1.1.7" + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.0.8" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.8.tgz#c8fa3b1b7585bb7ba77c5560b60996ddec6d5309" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + +browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + +browserslist@^2.1.5, browserslist@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.4.0.tgz#693ee93d01e66468a6348da5498e011f578f87f8" + dependencies: + caniuse-lite "^1.0.30000718" + electron-to-chromium "^1.3.18" + +buffer-crc32@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.1.1.tgz#7e110dc9953908ab7c32acdc70c9f945b1cbc526" + +buffer-crc32@^0.2.5, buffer-crc32@~0.2.1: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^1.0.0, builtin-modules@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + +bump-regex@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/bump-regex/-/bump-regex-2.7.0.tgz#4a21e2537113476c026be588b8a7dddef1934641" + dependencies: + semver "^5.1.0" + xtend "^4.0.1" + +bytes@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-0.2.0.tgz#aad33ec14e3dc2ca74e8e7d451f9ba053ad4f7a0" + +bytes@2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-2.5.0.tgz#4c9423ea2d252c270c41b2bdefeff9bb6b62c06a" + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + +camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + +camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + +camelcase@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + +camelcase@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + +camelcase@^4.0.0, camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + +caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000727" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000727.tgz#4e22593089b0f35c1b2adcfc28234493a21a4b2e" + +caniuse-lite@^1.0.30000718, caniuse-lite@^1.0.30000726: + version "1.0.30000739" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000739.tgz#9ee8c7016f5c522dbb0c0863d55c61efb453ae95" + +capture-stack-trace@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + +center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + +chalk@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.5.1.tgz#663b3a648b68b55d04690d49167aa837858f2174" + dependencies: + ansi-styles "^1.1.0" + escape-string-regexp "^1.0.0" + has-ansi "^0.1.0" + strip-ansi "^0.3.0" + supports-color "^0.2.0" + +chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + +chalk@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-0.4.0.tgz#5199a3ddcd0c1efe23bc08c1b027b06176e0c64f" + dependencies: + ansi-styles "~1.0.0" + has-color "~0.1.0" + strip-ansi "~0.1.0" + +charenc@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + +chokidar@^1.4.1, chokidar@^1.6.0, chokidar@^1.6.1, chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +circular-dependency-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/circular-dependency-plugin/-/circular-dependency-plugin-3.0.0.tgz#9b68692e35b0e3510998d0164b6ae5011bea5760" + +clap@^1.0.9: + version "1.2.0" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.0.tgz#59c90fe3e137104746ff19469a27a634ff68c857" + dependencies: + chalk "^1.1.3" + +clean-css@4.1.x: + version "4.1.8" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.8.tgz#061455b2494a750ac98f46d8d5ebb17c679ea9d1" + dependencies: + source-map "0.5.x" + +cli-boxes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + dependencies: + restore-cursor "^2.0.0" + +cli-spinners@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.1.0.tgz#f1847b168844d917a671eb9d147e3df497c90d06" + +cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + +clone-deep@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-0.3.0.tgz#348c61ae9cdbe0edfe053d91ff4cc521d790ede8" + dependencies: + for-own "^1.0.0" + is-plain-object "^2.0.1" + kind-of "^3.2.2" + shallow-clone "^0.1.2" + +clone-stats@^0.0.1, clone-stats@~0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-0.0.1.tgz#b88f94a82cf38b8791d58046ea4029ad88ca99d1" + +clone@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" + +clone@^1.0.0, clone@^1.0.2, clone@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.2.tgz#260b7a99ebb1edfe247538175f783243cb19d149" + +clone@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.1.tgz#d217d1e961118e3ac9a4b8bba3285553bf647cdb" + +co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + +coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + +codelyzer@~3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/codelyzer/-/codelyzer-3.2.0.tgz#68eb0a67771ea73006b517053c3035c1838abf14" + dependencies: + app-root-path "^2.0.1" + css-selector-tokenizer "^0.7.0" + cssauron "^1.4.0" + semver-dsl "^1.0.1" + source-map "^0.5.6" + sprintf-js "^1.0.3" + +color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.0.tgz#1accf97dd739b983bf994d56fec8f95853641b7a" + dependencies: + color-name "^1.1.1" + +color-name@^1.0.0, color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + +color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + +color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + +colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + +colors@1.1.2, colors@^1.1.0, colors@^1.1.2, colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + +combine-lists@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/combine-lists/-/combine-lists-1.0.1.tgz#458c07e09e0d900fc28b70a3fec2dacd1d2cb7f6" + dependencies: + lodash "^4.5.0" + +combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" + dependencies: + delayed-stream "~1.0.0" + +combined-stream@~0.0.4: + version "0.0.7" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" + dependencies: + delayed-stream "0.0.5" + +commander@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-0.6.1.tgz#fa68a14f6a945d54dbbe50d8cdb3320e9e3b1a06" + +commander@2.11.x, commander@^2.9.0, commander@~2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + +common-tags@^1.3.1: + version "1.4.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.4.0.tgz#1187be4f3d4cf0c0427d43f74eef1f73501614c0" + dependencies: + babel-runtime "^6.18.0" + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + +component-emitter@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + +compressible@~2.0.10: + version "2.0.11" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.11.tgz#16718a75de283ed8e604041625a2064586797d8a" + dependencies: + mime-db ">= 1.29.0 < 2" + +compression@^1.5.2: + version "1.7.0" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.0.tgz#030c9f198f1643a057d776a738e922da4373012d" + dependencies: + accepts "~1.3.3" + bytes "2.5.0" + compressible "~2.0.10" + debug "2.6.8" + on-headers "~1.0.1" + safe-buffer "5.1.1" + vary "~1.1.1" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + +configstore@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.1.tgz#094ee662ab83fad9917678de114faaea8fcdca90" + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +connect-history-api-fallback@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.3.0.tgz#e51d17f8f0ef0db90a64fdb47de3051556e9f169" + +connect@2.7.5: + version "2.7.5" + resolved "https://registry.yarnpkg.com/connect/-/connect-2.7.5.tgz#139111b4b03f0533a524927a88a646ae467b2c02" + dependencies: + buffer-crc32 "0.1.1" + bytes "0.2.0" + cookie "0.0.5" + cookie-signature "1.0.0" + debug "*" + formidable "1.0.11" + fresh "0.1.0" + pause "0.0.1" + qs "0.5.1" + send "0.1.0" + +connect@^3.6.0: + version "3.6.3" + resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.3.tgz#f7320d46a25b4be7b483a2236517f24b1e27e301" + dependencies: + debug "2.6.8" + finalhandler "1.0.4" + parseurl "~1.3.1" + utils-merge "1.0.0" + +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + +content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + +content-type@~1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + +convert-source-map@^1.1.1, convert-source-map@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" + +cookie-jar@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/cookie-jar/-/cookie-jar-0.3.0.tgz#bc9a27d4e2b97e186cd57c9e2063cb99fa68cccc" + +cookie-signature@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.0.tgz#0044f332ac623df851c914e88eacc57f0c9704fe" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + +cookie@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.0.5.tgz#f9acf9db57eb7568c9fcc596256b7bb22e307c81" + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + +copy-webpack-plugin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.0.1.tgz#9728e383b94316050d0c7463958f2b85c0aa8200" + dependencies: + bluebird "^2.10.2" + fs-extra "^0.26.4" + glob "^6.0.4" + is-glob "^3.1.0" + loader-utils "^0.2.15" + lodash "^4.3.0" + minimatch "^3.0.0" + node-dir "^0.1.10" + +copyfiles@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-1.2.0.tgz#a8da3ac41aa2220ae29bd3c58b6984294f2c593c" + dependencies: + glob "^7.0.5" + ltcdr "^2.2.1" + minimatch "^3.0.3" + mkdirp "^0.5.1" + noms "0.0.0" + through2 "^2.0.1" + +core-js@^2.2.0, core-js@^2.4.0, core-js@^2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.1.tgz#ae6874dc66937789b80754ff5428df66819ca50b" + +core-object@^3.1.0: + version "3.1.5" + resolved "https://registry.yarnpkg.com/core-object/-/core-object-3.1.5.tgz#fa627b87502adc98045e44678e9a8ec3b9c0d2a9" + dependencies: + chalk "^2.0.0" + +core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + +cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + +cpx@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/cpx/-/cpx-1.5.0.tgz#185be018511d87270dedccc293171e37655ab88f" + dependencies: + babel-runtime "^6.9.2" + chokidar "^1.6.0" + duplexer "^0.1.1" + glob "^7.0.5" + glob2base "^0.0.12" + minimatch "^3.0.2" + mkdirp "^0.5.1" + resolve "^1.1.7" + safe-buffer "^5.0.1" + shell-quote "^1.6.1" + subarg "^1.0.0" + +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-error-class@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" + dependencies: + capture-stack-trace "^1.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + ripemd160 "^2.0.0" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.6" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +cross-env@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-5.1.0.tgz#1f12d6b3777d5847dcf9cf39fbee3c6a76dd5058" + dependencies: + cross-spawn "^5.1.0" + is-windows "^1.0.0" + +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^5.0.1, cross-spawn@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +crypt@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + +cryptiles@0.2.x: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" + dependencies: + boom "0.4.x" + +cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + +crypto-browserify@^3.11.0: + version "3.11.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + +css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + +css-loader@^0.28.1: + version "0.28.7" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.7.tgz#5f2ee989dd32edd907717f953317656160999c1b" + dependencies: + babel-code-frame "^6.11.0" + css-selector-tokenizer "^0.7.0" + cssnano ">=2.6.1 <4" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.0.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.0.0" + postcss-modules-local-by-default "^1.0.1" + postcss-modules-scope "^1.0.0" + postcss-modules-values "^1.1.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-parse@1.7.x: + version "1.7.0" + resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-1.7.0.tgz#321f6cf73782a6ff751111390fc05e2c657d8c9b" + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + +css-what@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + +cssauron@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/cssauron/-/cssauron-1.4.0.tgz#a6602dff7e04a8306dc0db9a551e92e8b5662ad8" + dependencies: + through X.X.X + +cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + +"cssnano@>=2.6.1 <4", cssnano@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + +csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + +ctype@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/ctype/-/ctype-0.5.2.tgz#fe8091d468a373a0b0c9ff8bbfb3425c00973a1d" + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + +custom-event@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/custom-event/-/custom-event-1.0.1.tgz#5d02a46850adf1b4a317946a3928fccb5bfd0425" + +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +dateformat@^1.0.11, dateformat@^1.0.7-1.2.3: + version "1.0.12" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" + dependencies: + get-stdin "^4.0.1" + meow "^3.3.0" + +dateformat@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-2.2.0.tgz#4065e2013cf9fb916ddfd82efb506ad4c6769062" + +debug@*: + version "3.0.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.0.1.tgz#0564c612b521dc92d9f2988f0549e34f9c98db64" + dependencies: + ms "2.0.0" + +debug@2, debug@2.6.8, debug@^2.2.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.8: + version "2.6.8" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" + dependencies: + ms "2.0.0" + +debug@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" + dependencies: + ms "0.7.1" + +debug@2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" + dependencies: + ms "0.7.2" + +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + +deep-equal@^1.0.1, deep-equal@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + +deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + +default-require-extensions@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-1.0.0.tgz#f37ea15d3e13ffd9b437d33e1a75b5fb97874cb8" + dependencies: + strip-bom "^2.0.0" + +defaults@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" + dependencies: + clone "^1.0.2" + +define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + +defined@^1.0.0, defined@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + +del-cli@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/del-cli/-/del-cli-1.1.0.tgz#27557d69a0b7df99dcbaa1e34a09e6ac6591d2c4" + dependencies: + del "^3.0.0" + meow "^3.6.0" + update-notifier "^2.1.0" + +del@^2.2.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" + dependencies: + globby "^5.0.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + rimraf "^2.2.8" + +del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + +delayed-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-0.0.5.tgz#d4b1f43a93e8296dfe02694f4680bc37a313c73f" + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + +denodeify@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/denodeify/-/denodeify-1.2.1.tgz#3a36287f5034e699e7577901052c2e6c94251631" + +depd@1.1.1, depd@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + +dependency-graph@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/dependency-graph/-/dependency-graph-0.5.1.tgz#98d018f8ba54524a2272cf19a276af2c4ffcc996" + +deprecated@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" + +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + +detect-file@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-0.1.0.tgz#4935dedfd9488648e006b0129566e9386711ea63" + dependencies: + fs-exists-sync "^0.1.0" + +detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + +detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + +di@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/di/-/di-0.0.1.tgz#806649326ceaa7caa3306d75d985ea2748ba913c" + +diff@^3.1.0, diff@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" + +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +directory-encoder@^0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/directory-encoder/-/directory-encoder-0.7.2.tgz#59b4e2aa4f25422f6c63b527b462f5e2d0dd2c58" + dependencies: + fs-extra "^0.23.1" + handlebars "^1.3.0" + img-stats "^0.5.2" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + +dns-packet@^1.0.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.2.2.tgz#a8a26bec7646438963fc86e06f8f8b16d6c8bf7a" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + +dom-converter@~0.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + +dom-serialize@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/dom-serialize/-/dom-serialize-2.2.1.tgz#562ae8999f44be5ea3076f5419dcd59eb43ac95b" + dependencies: + custom-event "~1.0.0" + ent "~2.2.0" + extend "^3.0.0" + void-elements "^2.0.0" + +dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + +domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + +domhandler@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + +domutils@1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + dependencies: + is-obj "^1.0.0" + +duplexer2@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" + dependencies: + readable-stream "~1.1.9" + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + +duplexer@^0.1.1, duplexer@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + +duplexify@^3.2.0: + version "3.5.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.1.tgz#4e1516be68838bc90a49994f0b39a6e5960befcd" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + +ejs@^2.5.7: + version "2.5.7" + resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.5.7.tgz#cc872c168880ae3c7189762fd5ffc00896c9518a" + +electron-to-chromium@^1.2.7: + version "1.3.21" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.21.tgz#a967ebdcfe8ed0083fc244d1894022a8e8113ea2" + +electron-to-chromium@^1.3.18: + version "1.3.23" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.23.tgz#e6668ab18cb69afb8f577c8a9fc23d002788be74" + +elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +ember-cli-string-utils@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ember-cli-string-utils/-/ember-cli-string-utils-1.1.0.tgz#39b677fc2805f55173735376fcef278eaa4452a1" + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + +encodeurl@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" + +end-of-stream@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" + dependencies: + once "^1.4.0" + +end-of-stream@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" + dependencies: + once "~1.3.0" + +engine.io-client@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.3.tgz#1798ed93451246453d4c6f635d7a201fe940d5ab" + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "2.3.3" + engine.io-parser "1.3.2" + has-cors "1.1.0" + indexof "0.0.1" + parsejson "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + ws "1.1.2" + xmlhttprequest-ssl "1.5.3" + yeast "0.1.2" + +engine.io-parser@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" + dependencies: + after "0.8.2" + arraybuffer.slice "0.0.6" + base64-arraybuffer "0.1.5" + blob "0.0.4" + has-binary "0.1.7" + wtf-8 "1.0.0" + +engine.io@1.8.3: + version "1.8.3" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.3.tgz#8de7f97895d20d39b85f88eeee777b2bd42b13d4" + dependencies: + accepts "1.3.3" + base64id "1.0.0" + cookie "0.3.1" + debug "2.3.3" + engine.io-parser "1.3.2" + ws "1.1.2" + +enhanced-resolve@^3.1.0, enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +ent@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ent/-/ent-2.2.0.tgz#e964219325a21d05f44466a2f686ed6ce5f5dd1d" + +entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + +errno@^0.1.1, errno@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" + dependencies: + prr "~0.0.0" + +error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + +es-abstract@^1.4.3: + version "1.9.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.9.0.tgz#690829a07cae36b222e7fd9b75c0d0573eb25227" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-abstract@^1.5.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.2.tgz#25103263dc4decbda60e0c737ca32313518027ee" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + +es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.30" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.30.tgz#7141a16836697dbabfaaaeee41495ce29f52c939" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-templates@~0.2.2: + version "0.2.3" + resolved "https://registry.yarnpkg.com/es6-templates/-/es6-templates-0.2.3.tgz#5cb9ac9fb1ded6eb1239342b81d792bbb4078ee4" + dependencies: + recast "~0.11.12" + through "~2.3.6" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + +escape-string-regexp@^1.0.0, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + +esprima@~3.1.0: + version "3.1.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + +estree-walker@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.3.1.tgz#e6b1a51cf7292524e7237c312e5fe6660c1ce1aa" + +estree-walker@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.5.0.tgz#aae3b57c42deb8010e349c892462f0e71c5dd1aa" + +esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + +etag@~1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" + +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + +event-stream@~3.3.0: + version "3.3.4" + resolved "https://registry.yarnpkg.com/event-stream/-/event-stream-3.3.4.tgz#4ab4c9a0f5a54db9338b4c34d86bfce8f4b35571" + dependencies: + duplexer "~0.1.1" + from "~0" + map-stream "~0.1.0" + pause-stream "0.0.11" + split "0.3" + stream-combiner "~0.0.4" + through "~2.3.1" + +eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +exit@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" + +expand-braces@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/expand-braces/-/expand-braces-0.1.2.tgz#488b1d1d2451cb3d3a6b192cfc030f44c5855fea" + dependencies: + array-slice "^0.2.3" + array-unique "^0.2.1" + braces "^0.1.2" + +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-0.1.1.tgz#4cb8eda0993ca56fa4f41fc42f3cbb4ccadff044" + dependencies: + is-number "^0.1.1" + repeat-string "^0.2.2" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + +expand-tilde@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-1.2.2.tgz#0b81eba897e5a3d31d1c3d102f8f01441e559449" + dependencies: + os-homedir "^1.0.1" + +expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + dependencies: + homedir-polyfill "^1.0.1" + +exports-loader@^0.6.3: + version "0.6.4" + resolved "https://registry.yarnpkg.com/exports-loader/-/exports-loader-0.6.4.tgz#d70fc6121975b35fc12830cf52754be2740fc886" + dependencies: + loader-utils "^1.0.2" + source-map "0.5.x" + +express@^4.13.3: + version "4.15.4" + resolved "https://registry.yarnpkg.com/express/-/express-4.15.4.tgz#032e2253489cf8fce02666beca3d11ed7a2daed1" + dependencies: + accepts "~1.3.3" + array-flatten "1.1.1" + content-disposition "0.5.2" + content-type "~1.0.2" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.8" + depd "~1.1.1" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + finalhandler "~1.0.4" + fresh "0.5.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.1" + path-to-regexp "0.1.7" + proxy-addr "~1.1.5" + qs "6.5.0" + range-parser "~1.2.0" + send "0.15.4" + serve-static "1.12.4" + setprototypeof "1.0.3" + statuses "~1.3.1" + type-is "~1.6.15" + utils-merge "1.0.0" + vary "~1.1.1" + +express@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/express/-/express-3.1.2.tgz#52a02c8db8f22bbfa0d7478d847cd45161f985f7" + dependencies: + buffer-crc32 "~0.2.1" + commander "0.6.1" + connect "2.7.5" + cookie "0.0.5" + cookie-signature "1.0.0" + debug "*" + fresh "0.1.0" + methods "0.0.1" + mkdirp "~0.3.4" + range-parser "0.0.4" + send "0.1.0" + +extend-shallow@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" + dependencies: + kind-of "^1.1.0" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + +extend@3, extend@^3.0.0, extend@~3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + +extract-text-webpack-plugin@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.0.tgz#90caa7907bc449f335005e3ac7532b41b00de612" + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.3.0" + webpack-sources "^1.0.1" + +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + +fancy-log@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/fancy-log/-/fancy-log-1.3.0.tgz#45be17d02bb9917d60ccffd4995c999e6c8c9948" + dependencies: + chalk "^1.1.1" + time-stamp "^1.0.0" + +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" + +fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + +file-loader@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-0.10.1.tgz#815034119891fc6441fb5a64c11bc93c22ddd842" + dependencies: + loader-utils "^1.0.2" + +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fileset@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/fileset/-/fileset-2.0.3.tgz#8e7548a96d3cc2327ee5e674168723a333bba2a0" + dependencies: + glob "^7.0.3" + minimatch "^3.0.3" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + +finalhandler@1.0.4, finalhandler@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.0.4.tgz#18574f2e7c4b98b8ae3b230c21f201f31bdb3fb7" + dependencies: + debug "2.6.8" + encodeurl "~1.0.1" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.1" + statuses "~1.3.1" + unpipe "~1.0.0" + +find-index@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + +findup-sync@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.4.3.tgz#40043929e7bc60adf0b7f4827c4c6e75a0deca12" + dependencies: + detect-file "^0.1.0" + is-glob "^2.0.1" + micromatch "^2.3.7" + resolve-dir "^0.1.0" + +fined@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fined/-/fined-1.1.0.tgz#b37dc844b76a2f5e7081e884f7c0ae344f153476" + dependencies: + expand-tilde "^2.0.2" + is-plain-object "^2.0.3" + object.defaults "^1.1.0" + object.pick "^1.2.0" + parse-filepath "^1.0.1" + +first-chunk-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz#59bfb50cd905f60d7c394cd3d9acaab4e6ad934e" + +flagged-respawn@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-0.3.2.tgz#ff191eddcd7088a675b2610fffc976be9b8074b5" + +flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + +font-awesome@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/font-awesome/-/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" + +for-each@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" + dependencies: + is-function "~1.0.0" + +for-in@^0.1.3: + version "0.1.8" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-0.1.8.tgz#d8773908e31256109952b1fdb9b3fa867d2775e1" + +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + +for-own@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" + dependencies: + for-in "^1.0.1" + +foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + +forever-agent@~0.5.0: + version "0.5.2" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.5.2.tgz#6d0e09c4921f94a27f63d3b49c5feff1ea4c5130" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + +form-data@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-0.0.8.tgz#0890cd1005c5ccecc0b9d24a88052c92442d0db5" + dependencies: + async "~0.2.7" + combined-stream "~0.0.4" + mime "~1.2.2" + +form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + +formidable@1.0.11: + version "1.0.11" + resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.0.11.tgz#68f63325a035e644b6f7bb3d11243b9761de1b30" + +forwarded@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.1.tgz#8a4e30c640b05395399a3549c730257728048961" + +fresh@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.1.0.tgz#03e4b0178424e4c2d5d19a54d8814cdc97934850" + +fresh@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" + +from@~0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/from/-/from-0.1.7.tgz#83c60afc58b9c56997007ed1a768b3ab303a44fe" + +fs-access@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fs-access/-/fs-access-1.0.1.tgz#d6a87f262271cefebec30c553407fb995da8777a" + dependencies: + null-check "^1.0.0" + +fs-exists-sync@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/fs-exists-sync/-/fs-exists-sync-0.1.0.tgz#982d6893af918e72d08dec9e8673ff2b5a8d6add" + +fs-extra@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.23.1.tgz#6611dba6adf2ab8dc9c69fab37cddf8818157e3d" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^0.26.4: + version "0.26.7" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.26.7.tgz#9ae1fdd94897798edab76d0918cf42d0c3184fa9" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + +fs-extra@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.1.tgz#7fc0c6c8957f983f57f306a24e5b9ddd8d0dd880" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^3.0.0" + universalify "^0.1.0" + +fs-extra@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.2.tgz#f91704c53d1b461f893452b0c307d9997647ab6b" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + +fsevents@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + +function-bind@^1.0.2, function-bind@^1.1.1, function-bind@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gaze@^0.5.1: + version "0.5.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" + dependencies: + globule "~0.1.0" + +gaze@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + dependencies: + globule "^1.0.0" + +get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + +glob-parent@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-stream@^3.1.5: + version "3.1.18" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" + dependencies: + glob "^4.3.1" + glob2base "^0.0.12" + minimatch "^2.0.1" + ordered-read-streams "^0.1.0" + through2 "^0.6.1" + unique-stream "^1.0.0" + +glob-stream@^5.3.2: + version "5.3.5" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-5.3.5.tgz#a55665a9a8ccdc41915a87c701e32d4e016fad22" + dependencies: + extend "^3.0.0" + glob "^5.0.3" + glob-parent "^3.0.0" + micromatch "^2.3.7" + ordered-read-streams "^0.3.0" + through2 "^0.6.0" + to-absolute-glob "^0.1.1" + unique-stream "^2.0.2" + +glob-watcher@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" + dependencies: + gaze "^0.5.1" + +glob2base@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" + dependencies: + find-index "^0.1.1" + +glob@7.0.x: + version "7.0.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.2" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^4.3.1: + version "4.5.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "^2.0.1" + once "^1.3.0" + +glob@^5.0.3: + version "5.0.15" + resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.0.6, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1, glob@~7.1.2: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~3.1.21: + version "3.1.21" + resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" + dependencies: + graceful-fs "~1.2.0" + inherits "1" + minimatch "~0.2.11" + +global-dirs@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.0.tgz#10d34039e0df04272e262cf24224f7209434df4f" + dependencies: + ini "^1.3.4" + +global-modules@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-0.2.3.tgz#ea5a3bed42c6d6ce995a4f8a1269b5dae223828d" + dependencies: + global-prefix "^0.1.4" + is-windows "^0.2.0" + +global-prefix@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-0.1.5.tgz#8d3bc6b8da3ca8112a160d8d496ff0462bfef78f" + dependencies: + homedir-polyfill "^1.0.0" + ini "^1.3.4" + is-windows "^0.2.0" + which "^1.2.12" + +globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + +globby@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" + dependencies: + array-union "^1.0.1" + arrify "^1.0.0" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +globule@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" + dependencies: + glob "~7.1.1" + lodash "~4.17.4" + minimatch "~3.0.2" + +globule@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" + dependencies: + glob "~3.1.21" + lodash "~1.0.1" + minimatch "~0.2.11" + +glogg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.0.tgz#7fe0f199f57ac906cf512feead8f90ee4a284fc5" + dependencies: + sparkles "^1.0.0" + +got@^6.7.1: + version "6.7.1" + resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" + dependencies: + create-error-class "^3.0.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + is-redirect "^1.0.0" + is-retry-allowed "^1.0.0" + is-stream "^1.0.0" + lowercase-keys "^1.0.0" + safe-buffer "^5.0.1" + timed-out "^4.0.0" + unzip-response "^2.0.1" + url-parse-lax "^1.0.0" + +graceful-fs@2.x, graceful-fs@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-2.0.3.tgz#7cd2cdb228a4a3f36e95efa6cc142de7d1a136d0" + +graceful-fs@^3.0.0: + version "3.0.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" + dependencies: + natives "^1.1.0" + +graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + +graceful-fs@~1.2.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" + +graphql-query-builder@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/graphql-query-builder/-/graphql-query-builder-1.0.7.tgz#5356c4fa72f8b363cb1677f0e0f2cb1dcf6f7043" + +gulp-bump@^2.7.0: + version "2.7.0" + resolved "https://registry.yarnpkg.com/gulp-bump/-/gulp-bump-2.7.0.tgz#4c3750bce93c5d816fe9a154e6619dd509a852d8" + dependencies: + bump-regex "^2.7.0" + plugin-error "^0.1.2" + plugin-log "^0.1.0" + semver "^5.3.0" + through2 "^2.0.1" + +gulp-inline-ng2-template@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/gulp-inline-ng2-template/-/gulp-inline-ng2-template-4.0.0.tgz#a145f216f79a0da6c9c6b17bce47e199018cd838" + dependencies: + async "^2.0.0-rc.5" + clone "~1.0.2" + es6-templates "~0.2.2" + extend "~3.0.0" + gulp-util "~3.0.6" + isarray "0.0.1" + through2 "~2.0.0" + +gulp-sass@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/gulp-sass/-/gulp-sass-3.1.0.tgz#53dc4b68a1f5ddfe4424ab4c247655269a8b74b7" + dependencies: + gulp-util "^3.0" + lodash.clonedeep "^4.3.2" + node-sass "^4.2.0" + through2 "^2.0.0" + vinyl-sourcemaps-apply "^0.2.0" + +gulp-sourcemaps@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/gulp-sourcemaps/-/gulp-sourcemaps-1.6.0.tgz#b86ff349d801ceb56e1d9e7dc7bbcb4b7dee600c" + dependencies: + convert-source-map "^1.1.1" + graceful-fs "^4.1.2" + strip-bom "^2.0.0" + through2 "^2.0.0" + vinyl "^1.0.0" + +gulp-util@^3.0, gulp-util@^3.0.0, gulp-util@^3.0.8, gulp-util@~3.0.6: + version "3.0.8" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-3.0.8.tgz#0054e1e744502e27c04c187c3ecc505dd54bbb4f" + dependencies: + array-differ "^1.0.0" + array-uniq "^1.0.2" + beeper "^1.0.0" + chalk "^1.0.0" + dateformat "^2.0.0" + fancy-log "^1.1.0" + gulplog "^1.0.0" + has-gulplog "^0.1.0" + lodash._reescape "^3.0.0" + lodash._reevaluate "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.template "^3.0.0" + minimist "^1.1.0" + multipipe "^0.1.2" + object-assign "^3.0.0" + replace-ext "0.0.1" + through2 "^2.0.0" + vinyl "^0.5.0" + +gulp-util@~2.2.0: + version "2.2.20" + resolved "https://registry.yarnpkg.com/gulp-util/-/gulp-util-2.2.20.tgz#d7146e5728910bd8f047a6b0b1e549bc22dbd64c" + dependencies: + chalk "^0.5.0" + dateformat "^1.0.7-1.2.3" + lodash._reinterpolate "^2.4.1" + lodash.template "^2.4.1" + minimist "^0.2.0" + multipipe "^0.1.0" + through2 "^0.5.0" + vinyl "^0.2.1" + +gulp-yuidoc@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/gulp-yuidoc/-/gulp-yuidoc-0.1.2.tgz#ed10b156322242acbe8a0d47976a4bb7968024ef" + dependencies: + chalk "~0.4.0" + gulp-util "~2.2.0" + text-table "~0.2.0" + through2 "0.4.1" + vinyl-fs "~0.1.2" + yuidocjs "~0.3.47" + +gulp@^3.9.1: + version "3.9.1" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" + dependencies: + archy "^1.0.0" + chalk "^1.0.0" + deprecated "^0.0.1" + gulp-util "^3.0.0" + interpret "^1.0.0" + liftoff "^2.1.0" + minimist "^1.1.0" + orchestrator "^0.3.0" + pretty-hrtime "^1.0.0" + semver "^4.1.0" + tildify "^1.0.0" + v8flags "^2.0.2" + vinyl-fs "^0.3.0" + +gulplog@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gulplog/-/gulplog-1.0.0.tgz#e28c4d45d05ecbbed818363ce8f9c5926229ffe5" + dependencies: + glogg "^1.0.0" + +handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + +handlebars@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-1.3.0.tgz#9e9b130a93e389491322d975cf3ec1818c37ce34" + dependencies: + optimist "~0.3" + optionalDependencies: + uglify-js "~2.3" + +handlebars@^4.0.3: + version "4.0.10" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.0.10.tgz#3d30c718b09a3d96f23ea4cc1f403c4d3ba9ff4f" + dependencies: + async "^1.4.0" + optimist "^0.6.1" + source-map "^0.4.4" + optionalDependencies: + uglify-js "^2.6" + +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + +has-ansi@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-0.1.0.tgz#84f265aae8c0e6a88a12d7022894b7568894c62e" + dependencies: + ansi-regex "^0.2.0" + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + +has-binary@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" + dependencies: + isarray "0.0.1" + +has-color@~0.1.0: + version "0.1.7" + resolved "https://registry.yarnpkg.com/has-color/-/has-color-0.1.7.tgz#67144a5260c34fc3cca677d041daf52fe7b78b2f" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + +has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + +has-gulplog@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/has-gulplog/-/has-gulplog-0.1.0.tgz#6414c82913697da51590397dafb12f22967811ce" + dependencies: + sparkles "^1.0.0" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + +has@^1.0.1, has@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + +hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + +hawk@~0.13.0: + version "0.13.1" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-0.13.1.tgz#3617958821f58311e4d7f6de291fca662b412ef4" + dependencies: + boom "0.4.x" + cryptiles "0.2.x" + hoek "0.8.x" + sntp "0.2.x" + +hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + +he@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoek@0.8.x: + version "0.8.5" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.8.5.tgz#1e9fd770ef7ebe0274adfcb5b0806a025a5e4e9f" + +hoek@0.9.x: + version "0.9.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" + +hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + +homedir-polyfill@^1.0.0, homedir-polyfill@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz#4c2bbc8a758998feebf5ed68580f76d46768b4bc" + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +html-comment-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + +html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + +html-minifier@^3.2.3: + version "3.5.4" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.4.tgz#e9bbcca964a6815617ed7c31f1f20b476b50b807" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.11.x" + he "1.1.x" + ncname "1.0.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.1.x" + +html-webpack-plugin@^2.29.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + +htmlparser2@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + +http-errors@1.6.2, http-errors@~1.6.1, http-errors@~1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + +http-parser-js@>=0.4.0: + version "0.4.5" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.5.tgz#a3ecf39a667481a38ca60882ab57a2db578b9970" + +http-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" + dependencies: + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" + micromatch "^2.3.11" + +http-proxy@^1.13.0, http-proxy@^1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + +http-signature@~0.9.11: + version "0.9.11" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-0.9.11.tgz#9e882714572315e6790a5d0a7955efff1f19e653" + dependencies: + asn1 "0.1.11" + assert-plus "0.1.2" + ctype "0.5.2" + +http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + +https-proxy-agent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-1.0.0.tgz#35f7da6c48ce4ddbfa264891ac593ee5ff8671e6" + dependencies: + agent-base "2" + debug "2" + extend "3" + +iconv-lite@0.4.18: + version "0.4.18" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" + +image-size@~0.5.0: + version "0.5.5" + resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" + +img-stats@^0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/img-stats/-/img-stats-0.5.2.tgz#c203496c42f2d9eb2e5ab8232fa756bab32c9e2b" + dependencies: + xmldom "^0.1.19" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + +in-publish@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + +indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" + +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + +ini@^1.3.4, ini@~1.3.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" + +internal-ip@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" + +interpret@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" + +invariant@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" + dependencies: + loose-envify "^1.0.0" + +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + +ipaddr.js@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.4.0.tgz#296aca878a821816e5b85d0a285a99bcff4582f0" + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + +is-absolute@^0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-0.2.6.tgz#20de69f3db942ef2d87b9c2da36f172235b1b5eb" + dependencies: + is-relative "^0.2.1" + is-windows "^0.2.0" + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + +is-buffer@^1.0.2, is-buffer@^1.1.5, is-buffer@~1.1.1: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" + +is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + +is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + +is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + +is-extglob@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + +is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + +is-function@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" + +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + +is-npm@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" + +is-number@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-0.1.1.tgz#69a7af116963d47206ec9bd9b48a14216f1e3806" + +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + +is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + +is-path-in-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" + dependencies: + is-path-inside "^1.0.0" + +is-path-inside@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" + dependencies: + path-is-inside "^1.0.1" + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + +is-plain-object@^2.0.1, is-plain-object@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + +is-redirect@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" + +is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + +is-relative@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-0.2.1.tgz#d27f4c7d516d175fb610db84bbeef23c3bc97aa5" + dependencies: + is-unc-path "^0.1.1" + +is-retry-allowed@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" + +is-stream@^1.0.0, is-stream@^1.0.1, is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + +is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + +is-unc-path@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-0.1.2.tgz#6ab053a72573c10250ff416a3814c35178af39b9" + dependencies: + unc-path-regex "^0.1.0" + +is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + +is-valid-glob@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-0.3.0.tgz#d4b55c69f51886f9b65c70d6c2622d37e29f48fe" + +is-windows@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-0.2.0.tgz#de1aa6d63ea29dd248737b69f1ff8b8002d2108c" + +is-windows@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.1.tgz#310db70f742d259a16a369202b51af84233310d9" + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + +isbinaryfile@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-3.0.2.tgz#4a3e974ec0cba9004d3fc6cde7209ea69368a621" + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + +istanbul-api@^1.1.8: + version "1.1.14" + resolved "https://registry.yarnpkg.com/istanbul-api/-/istanbul-api-1.1.14.tgz#25bc5701f7c680c0ffff913de46e3619a3a6e680" + dependencies: + async "^2.1.4" + fileset "^2.0.2" + istanbul-lib-coverage "^1.1.1" + istanbul-lib-hook "^1.0.7" + istanbul-lib-instrument "^1.8.0" + istanbul-lib-report "^1.1.1" + istanbul-lib-source-maps "^1.2.1" + istanbul-reports "^1.1.2" + js-yaml "^3.7.0" + mkdirp "^0.5.1" + once "^1.4.0" + +istanbul-instrumenter-loader@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/istanbul-instrumenter-loader/-/istanbul-instrumenter-loader-2.0.0.tgz#e5492900ab0bba835efa8024cb00be9b3eea2700" + dependencies: + convert-source-map "^1.3.0" + istanbul-lib-instrument "^1.1.3" + loader-utils "^0.2.16" + object-assign "^4.1.0" + +istanbul-lib-coverage@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-1.1.1.tgz#73bfb998885299415c93d38a3e9adf784a77a9da" + +istanbul-lib-hook@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-1.0.7.tgz#dd6607f03076578fe7d6f2a630cf143b49bacddc" + dependencies: + append-transform "^0.4.0" + +istanbul-lib-instrument@^1.1.3, istanbul-lib-instrument@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-1.8.0.tgz#66f6c9421cc9ec4704f76f2db084ba9078a2b532" + dependencies: + babel-generator "^6.18.0" + babel-template "^6.16.0" + babel-traverse "^6.18.0" + babel-types "^6.18.0" + babylon "^6.18.0" + istanbul-lib-coverage "^1.1.1" + semver "^5.3.0" + +istanbul-lib-report@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-1.1.1.tgz#f0e55f56655ffa34222080b7a0cd4760e1405fc9" + dependencies: + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + path-parse "^1.0.5" + supports-color "^3.1.2" + +istanbul-lib-source-maps@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.1.tgz#a6fe1acba8ce08eebc638e572e294d267008aa0c" + dependencies: + debug "^2.6.3" + istanbul-lib-coverage "^1.1.1" + mkdirp "^0.5.1" + rimraf "^2.6.1" + source-map "^0.5.3" + +istanbul-reports@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-1.1.2.tgz#0fb2e3f6aa9922bd3ce45d05d8ab4d5e8e07bd4f" + dependencies: + handlebars "^4.0.3" + +jasmine-core@~2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-2.8.0.tgz#bcc979ae1f9fd05701e45e52e65d3a5d63f1a24e" + +jasmine-spec-reporter@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz#1d632aec0341670ad324f92ba84b4b32b35e9e22" + dependencies: + colors "1.1.2" + +jasmine@^2.5.3: + version "2.8.0" + resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-2.8.0.tgz#6b089c0a11576b1f16df11b80146d91d4e8b8a3e" + dependencies: + exit "^0.1.2" + glob "^7.0.6" + jasmine-core "~2.8.0" + +jasminewd2@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/jasminewd2/-/jasminewd2-2.1.0.tgz#da595275d1ae631de736ac0a7c7d85c9f73ef652" + +jquery-ui@>=1.8.0: + version "1.12.1" + resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.12.1.tgz#bcb4045c8dd0539c134bc1488cdd3e768a7a9e51" + +jquery@>=1.8.0, jquery@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.2.1.tgz#5c4d9de652af6cd0a770154a631bba12b015c787" + +js-base64@^2.1.5, js-base64@^2.1.8, js-base64@^2.1.9: + version "2.3.1" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.3.1.tgz#3705897c35fce0e202132630e750d8a17cd220ec" + +js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + +js-yaml@^3.4.3, js-yaml@^3.7.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.10.0.tgz#2e78441646bd4682e963f22b6e92823c309c62dc" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + +jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + +json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + +json-stringify-safe@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-4.0.0.tgz#77c271aaea54302e68efeaccb56abbf06a9b1a54" + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + +json3@3.3.2, json3@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + +json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + +jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + +jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + +karma-chrome-launcher@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/karma-chrome-launcher/-/karma-chrome-launcher-2.2.0.tgz#cf1b9d07136cc18fe239327d24654c3dbc368acf" + dependencies: + fs-access "^1.0.0" + which "^1.2.1" + +karma-cli@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/karma-cli/-/karma-cli-1.0.1.tgz#ae6c3c58a313a1d00b45164c455b9b86ce17f960" + dependencies: + resolve "^1.1.6" + +karma-coverage-istanbul-reporter@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.3.0.tgz#d142cd9c55731c9e363ef7374e8ef1a31bebfadb" + dependencies: + istanbul-api "^1.1.8" + minimatch "^3.0.4" + +karma-jasmine-html-reporter@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-0.2.2.tgz#48a8e5ef18807617ee2b5e33c1194c35b439524c" + dependencies: + karma-jasmine "^1.0.2" + +karma-jasmine@^1.0.2, karma-jasmine@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/karma-jasmine/-/karma-jasmine-1.1.0.tgz#22e4c06bf9a182e5294d1f705e3733811b810acf" + +karma-source-map-support@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/karma-source-map-support/-/karma-source-map-support-1.2.0.tgz#1bf81e7bb4b089627ab352ec4179e117c406a540" + dependencies: + source-map-support "^0.4.1" + +karma@~1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/karma/-/karma-1.7.1.tgz#85cc08e9e0a22d7ce9cca37c4a1be824f6a2b1ae" + dependencies: + bluebird "^3.3.0" + body-parser "^1.16.1" + chokidar "^1.4.1" + colors "^1.1.0" + combine-lists "^1.0.0" + connect "^3.6.0" + core-js "^2.2.0" + di "^0.0.1" + dom-serialize "^2.2.0" + expand-braces "^0.1.1" + glob "^7.1.1" + graceful-fs "^4.1.2" + http-proxy "^1.13.0" + isbinaryfile "^3.0.0" + lodash "^3.8.0" + log4js "^0.6.31" + mime "^1.3.4" + minimatch "^3.0.2" + optimist "^0.6.1" + qjobs "^1.1.4" + range-parser "^1.2.0" + rimraf "^2.6.0" + safe-buffer "^5.0.1" + socket.io "1.7.3" + source-map "^0.5.3" + tmp "0.0.31" + useragent "^2.1.12" + +kind-of@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" + +kind-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-2.0.1.tgz#018ec7a4ce7e3a86cb9141be519d24c8faa981b5" + dependencies: + is-buffer "^1.0.2" + +kind-of@^3.0.2, kind-of@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + +klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + +latest-version@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" + dependencies: + package-json "^4.0.0" + +lazy-cache@^0.2.3: + version "0.2.7" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-0.2.7.tgz#7feddf2dcb6edb77d11ef1d117ab5ffdf0ab1b65" + +lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + +less-loader@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-4.0.5.tgz#ae155a7406cac6acd293d785587fcff0f478c4dd" + dependencies: + clone "^2.1.1" + loader-utils "^1.1.0" + pify "^2.3.0" + +less@^2.7.2: + version "2.7.2" + resolved "https://registry.yarnpkg.com/less/-/less-2.7.2.tgz#368d6cc73e1fb03981183280918743c5dcf9b3df" + optionalDependencies: + errno "^0.1.1" + graceful-fs "^4.1.2" + image-size "~0.5.0" + mime "^1.2.11" + mkdirp "^0.5.0" + promise "^7.1.1" + request "^2.72.0" + source-map "^0.5.3" + +license-webpack-plugin@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/license-webpack-plugin/-/license-webpack-plugin-1.0.0.tgz#9515229075bacce8ec420cadf99a54a5f78cc7df" + dependencies: + ejs "^2.5.7" + +liftoff@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.3.0.tgz#a98f2ff67183d8ba7cfaca10548bd7ff0550b385" + dependencies: + extend "^3.0.0" + findup-sync "^0.4.2" + fined "^1.0.1" + flagged-respawn "^0.3.2" + lodash.isplainobject "^4.0.4" + lodash.isstring "^4.0.1" + lodash.mapvalues "^4.4.0" + rechoir "^0.6.2" + resolve "^1.1.7" + +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^0.2.15, loader-utils@^0.2.16, loader-utils@~0.2.2: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + +loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + +lodash._basetostring@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz#d1861d877f824a52f669832dcaf3ee15566a07d5" + +lodash._basevalues@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz#5b775762802bde3d3297503e26300820fdf661b7" + +lodash._escapehtmlchar@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._escapehtmlchar/-/lodash._escapehtmlchar-2.4.1.tgz#df67c3bb6b7e8e1e831ab48bfa0795b92afe899d" + dependencies: + lodash._htmlescapes "~2.4.1" + +lodash._escapestringchar@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._escapestringchar/-/lodash._escapestringchar-2.4.1.tgz#ecfe22618a2ade50bfeea43937e51df66f0edb72" + +lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + +lodash._htmlescapes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._htmlescapes/-/lodash._htmlescapes-2.4.1.tgz#32d14bf0844b6de6f8b62a051b4f67c228b624cb" + +lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + +lodash._isnative@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._isnative/-/lodash._isnative-2.4.1.tgz#3ea6404b784a7be836c7b57580e1cdf79b14832c" + +lodash._objecttypes@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz#7c0b7f69d98a1f76529f890b0cdb1b4dfec11c11" + +lodash._reescape@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reescape/-/lodash._reescape-3.0.0.tgz#2b1d6f5dfe07c8a355753e5f27fac7f1cde1616a" + +lodash._reevaluate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz#58bc74c40664953ae0b124d806996daca431e2ed" + +lodash._reinterpolate@^2.4.1, lodash._reinterpolate@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-2.4.1.tgz#4f1227aa5a8711fc632f5b07a1f4607aab8b3222" + +lodash._reinterpolate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + +lodash._reunescapedhtml@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._reunescapedhtml/-/lodash._reunescapedhtml-2.4.1.tgz#747c4fc40103eb3bb8a0976e571f7a2659e93ba7" + dependencies: + lodash._htmlescapes "~2.4.1" + lodash.keys "~2.4.1" + +lodash._root@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._root/-/lodash._root-3.0.1.tgz#fba1c4524c19ee9a5f8136b4609f017cf4ded692" + +lodash._shimkeys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz#6e9cc9666ff081f0b5a6c978b83e242e6949d203" + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + +lodash.clonedeep@^4.3.2, lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + +lodash.defaults@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-2.4.1.tgz#a7e8885f05e68851144b6e12a8f3678026bc4c54" + dependencies: + lodash._objecttypes "~2.4.1" + lodash.keys "~2.4.1" + +lodash.escape@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-3.2.0.tgz#995ee0dc18c1b48cc92effae71a10aab5b487698" + dependencies: + lodash._root "^3.0.0" + +lodash.escape@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-2.4.1.tgz#2ce12c5e084db0a57dda5e5d1eeeb9f5d175a3b4" + dependencies: + lodash._escapehtmlchar "~2.4.1" + lodash._reunescapedhtml "~2.4.1" + lodash.keys "~2.4.1" + +lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + +lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + +lodash.isobject@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.isobject/-/lodash.isobject-2.4.1.tgz#5a2e47fe69953f1ee631a7eba1fe64d2d06558f5" + dependencies: + lodash._objecttypes "~2.4.1" + +lodash.isplainobject@^4.0.4: + version "4.0.6" + resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + +lodash.isstring@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/lodash.isstring/-/lodash.isstring-4.0.1.tgz#d527dfb5456eca7cc9bb95d5daeaf88ba54a5451" + +lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + +lodash.keys@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-2.4.1.tgz#48dea46df8ff7632b10d706b8acb26591e2b3727" + dependencies: + lodash._isnative "~2.4.1" + lodash._shimkeys "~2.4.1" + lodash.isobject "~2.4.1" + +lodash.mapvalues@^4.4.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mapvalues/-/lodash.mapvalues-4.6.0.tgz#1bafa5005de9dd6f4f26668c30ca37230cc9689c" + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + +lodash.mergewith@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz#150cf0a16791f5903b8891eab154609274bdea55" + +lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + +lodash.tail@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.tail/-/lodash.tail-4.1.1.tgz#d2333a36d9e7717c8ad2f7cacafec7c32b444664" + +lodash.template@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-2.4.1.tgz#9e611007edf629129a974ab3c48b817b3e1cf20d" + dependencies: + lodash._escapestringchar "~2.4.1" + lodash._reinterpolate "~2.4.1" + lodash.defaults "~2.4.1" + lodash.escape "~2.4.1" + lodash.keys "~2.4.1" + lodash.templatesettings "~2.4.1" + lodash.values "~2.4.1" + +lodash.template@^3.0.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-3.6.2.tgz#f8cdecc6169a255be9098ae8b0c53d378931d14f" + dependencies: + lodash._basecopy "^3.0.0" + lodash._basetostring "^3.0.0" + lodash._basevalues "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + lodash.keys "^3.0.0" + lodash.restparam "^3.0.0" + lodash.templatesettings "^3.0.0" + +lodash.templatesettings@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz#fb307844753b66b9f1afa54e262c745307dba8e5" + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.escape "^3.0.0" + +lodash.templatesettings@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-2.4.1.tgz#ea76c75d11eb86d4dbe89a83893bb861929ac699" + dependencies: + lodash._reinterpolate "~2.4.1" + lodash.escape "~2.4.1" + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + +lodash.values@~2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-2.4.1.tgz#abf514436b3cb705001627978cbcf30b1280eea4" + dependencies: + lodash.keys "~2.4.1" + +lodash@^3.8.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.0.0, lodash@^4.11.1, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.3.0, lodash@^4.5.0, lodash@~4.17.4: + version "4.17.4" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" + +lodash@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" + +log-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" + dependencies: + chalk "^1.0.0" + +log-symbols@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.1.0.tgz#f35fa60e278832b538dc4dddcbb478a45d3e3be6" + dependencies: + chalk "^2.0.1" + +log4js@^0.6.31: + version "0.6.38" + resolved "https://registry.yarnpkg.com/log4js/-/log4js-0.6.38.tgz#2c494116695d6fb25480943d3fc872e662a522fd" + dependencies: + readable-stream "~1.0.2" + semver "~4.3.3" + +loglevel@^1.4.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.5.0.tgz#3863984a2c326b986fbb965f378758a6dc8a4324" + +longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + +loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + +loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + +lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + +lowercase-keys@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + +lru-cache@2: + version "2.7.3" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" + +lru-cache@2.2.x: + version "2.2.4" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.2.4.tgz#6c658619becf14031d0d0b594b16042ce4dc063d" + +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +ltcdr@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ltcdr/-/ltcdr-2.2.1.tgz#5ab87ad1d4c1dab8e8c08bbf037ee0c1902287cf" + +macaddress@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + +magic-string@^0.22.3, magic-string@^0.22.4: + version "0.22.4" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.4.tgz#31039b4e40366395618c1d6cf8193c53917475ff" + dependencies: + vlq "^0.2.1" + +make-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" + dependencies: + pify "^2.3.0" + +make-error@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.0.tgz#52ad3a339ccf10ce62b4040b708fe707244b8b96" + +map-cache@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + +map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + +map-stream@^0.1.0, map-stream@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/map-stream/-/map-stream-0.1.0.tgz#e56aa94c4c8055a16404a0674b78f215f7c8e194" + +marked@~0.2.8: + version "0.2.10" + resolved "https://registry.yarnpkg.com/marked/-/marked-0.2.10.tgz#d5fd68271caae61c55d291d07bd5034cff5e73ee" + +math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + +md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +md5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" + dependencies: + charenc "~0.0.1" + crypt "~0.0.1" + is-buffer "~1.1.1" + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + +memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-streams@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/memory-streams/-/memory-streams-0.1.2.tgz#273ff777ab60fec599b116355255282cca2c50c2" + dependencies: + readable-stream "~1.0.2" + +meow@^3.3.0, meow@^3.6.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + +merge-stream@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-1.0.1.tgz#4041202d508a342ba00174008df0c251b8c135e1" + dependencies: + readable-stream "^2.0.1" + +methods@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/methods/-/methods-0.0.1.tgz#277c90f8bef39709645a8371c51c3b6c648e068c" + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + +micromatch@^2.1.5, micromatch@^2.3.11, micromatch@^2.3.7: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +"mime-db@>= 1.29.0 < 2", mime-db@~1.30.0: + version "1.30.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.30.0.tgz#74c643da2dd9d6a45399963465b26d5ca7d71f01" + +mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.15, mime-types@~2.1.16, mime-types@~2.1.7: + version "2.1.17" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.17.tgz#09d7a393f03e995a79f8af857b70a9e0ab16557a" + dependencies: + mime-db "~1.30.0" + +mime@1.2.6: + version "1.2.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.6.tgz#b1f86c768c025fa87b48075f1709f28aeaf20365" + +mime@1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" + +mime@1.3.x: + version "1.3.6" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.6.tgz#591d84d3653a6b0b4a3b9df8de5aa8108e72e5e0" + +mime@^1.2.11, mime@^1.3.4: + version "1.4.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.0.tgz#69e9e0db51d44f2a3b56e48b7817d7d137f1a343" + +mime@~1.2.2, mime@~1.2.9: + version "1.2.11" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.2.11.tgz#58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10" + +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + +minimalistic-assert@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz#702be2dda6b37f4836bcb3f5db56641b64a1d3d3" + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + +minimatch@^2.0.1: + version "2.0.10" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" + dependencies: + brace-expansion "^1.0.0" + +minimatch@~0.2.11: + version "0.2.14" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" + dependencies: + lru-cache "2" + sigmund "~1.0.0" + +minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + +minimist@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.2.0.tgz#4dffe525dae2b864c66c2e23c6271d7afdecefce" + +minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + +mixin-object@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mixin-object/-/mixin-object-2.0.1.tgz#4fb949441dab182540f1fe035ba60e1947a5e57e" + dependencies: + for-in "^0.1.3" + is-extendable "^0.1.1" + +mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + +mkdirp@^0.3.5, mkdirp@~0.3.4: + version "0.3.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.5.tgz#de3e5f8961c88c787ee1368df849ac4413eca8d7" + +moment-mini@^2.18.1: + version "2.18.1" + resolved "https://registry.yarnpkg.com/moment-mini/-/moment-mini-2.18.1.tgz#2734cc2cd7bfd40d598c2071cc9c96cb399789d7" + +moment@*: + version "2.19.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.19.1.tgz#56da1a2d1cbf01d38b7e1afc31c10bcfa1929167" + +ms@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" + +ms@0.7.2: + version "0.7.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + +multicast-dns@^6.0.1: + version "6.1.1" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.1.1.tgz#6e7de86a570872ab17058adea7160bbeca814dde" + dependencies: + dns-packet "^1.0.1" + thunky "^0.1.0" + +multipipe@^0.1.0, multipipe@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/multipipe/-/multipipe-0.1.2.tgz#2a8f2ddf70eed564dff2d57f1e1a137d9f05078b" + dependencies: + duplexer2 "0.0.2" + +nan@^2.3.0, nan@^2.3.2: + version "2.7.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.7.0.tgz#d95bf721ec877e08db276ed3fc6eb78f9083ad46" + +natives@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.0.tgz#e9ff841418a6b2ec7a495e939984f78f163e6e31" + +ncname@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ncname/-/ncname-1.0.0.tgz#5b57ad18b1ca092864ef62b0b1ed8194f383b71c" + dependencies: + xml-char-classes "^1.0.0" + +negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + +ng-packagr@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/ng-packagr/-/ng-packagr-1.4.1.tgz#c2a7211cf683d9c99bc79e8ed0204145f7cf04b7" + dependencies: + "@angular/tsc-wrapped" "^4.2.0" + "@ngtools/json-schema" "^1.1.0" + autoprefixer "^7.1.1" + browserslist "^2.1.5" + cpx "^1.5.0" + glob "^7.1.2" + gulp-inline-ng2-template "^4.0.0" + less "^2.7.2" + lodash "^4.17.4" + minimist "^1.2.0" + node-sass "^4.5.3" + postcss "^6.0.2" + read-file "^0.2.0" + rimraf "^2.6.1" + rollup "^0.50.0" + rollup-plugin-commonjs "^8.2.1" + rollup-plugin-node-resolve "^3.0.0" + sorcery "^0.10.0" + stylus "^0.54.5" + ts-node "^3.0.4" + typescript "^2.3.2" + uglify-js "^3.0.7" + vinyl-fs "^2.4.4" + +no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + dependencies: + lower-case "^1.1.1" + +node-dir@^0.1.10: + version "0.1.17" + resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" + dependencies: + minimatch "^3.0.2" + +node-forge@0.6.33: + version "0.6.33" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.6.33.tgz#463811879f573d45155ad6a9f43dc296e8e85ebc" + +node-gyp@^3.3.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-modules-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/node-modules-path/-/node-modules-path-1.0.1.tgz#40096b08ce7ad0ea14680863af449c7c75a5d1c8" + +node-pre-gyp@^0.6.36: + version "0.6.37" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.37.tgz#3c872b236b2e266e4140578fe1ee88f693323a05" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tape "^4.6.3" + tar "^2.2.1" + tar-pack "^3.4.0" + +node-sass@^4.2.0, node-sass@^4.3.0, node-sass@^4.5.3: + version "4.5.3" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.5.3.tgz#d09c9d1179641239d1b97ffc6231fdcec53e1568" + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash.assign "^4.2.0" + lodash.clonedeep "^4.3.2" + lodash.mergewith "^4.6.0" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.3.2" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "^2.79.0" + sass-graph "^2.1.1" + stdout-stream "^1.4.0" + +node-uuid@~1.4.0: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + +normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +npm-run-all@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/npm-run-all/-/npm-run-all-4.1.1.tgz#3095cf3f3cacf57fcb662b210ab10c609af6ddbb" + dependencies: + ansi-styles "^3.2.0" + chalk "^2.1.0" + cross-spawn "^5.1.0" + memory-streams "^0.1.2" + minimatch "^3.0.4" + ps-tree "^1.1.0" + read-pkg "^2.0.0" + shell-quote "^1.6.1" + string.prototype.padend "^3.0.0" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + +null-check@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/null-check/-/null-check-1.0.0.tgz#977dffd7176012b9ec30d2a39db5cf72a0439edd" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + +oauth-sign@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.3.0.tgz#cb540f93bb2b22a7d5941691a288d60e8ea9386e" + +oauth-sign@~0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + +object-assign@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" + +object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + +object-inspect@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.3.0.tgz#5b1eb8e6742e2ee83342a637034d844928ba2f6d" + +object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + +object-keys@~0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" + +object.defaults@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" + dependencies: + array-each "^1.0.1" + array-slice "^1.0.0" + for-own "^1.0.0" + isobject "^3.0.0" + +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +object.pick@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + +obuf@^1.0.0, obuf@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + +once@^1.3.0, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + +once@~1.3.0: + version "1.3.3" + resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + dependencies: + mimic-fn "^1.0.0" + +opn@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/opn/-/opn-4.0.2.tgz#7abc22e644dff63b0a96d5ab7f2790c0f01abc95" + dependencies: + object-assign "^4.0.1" + pinkie-promise "^2.0.0" + +opn@~5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" + dependencies: + is-wsl "^1.1.0" + +optimist@^0.6.1, optimist@~0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" + dependencies: + minimist "~0.0.1" + wordwrap "~0.0.2" + +optimist@~0.3, optimist@~0.3.5: + version "0.3.7" + resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" + dependencies: + wordwrap "~0.0.2" + +options@>=0.0.5: + version "0.0.6" + resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" + +ora@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/ora/-/ora-1.3.0.tgz#80078dd2b92a934af66a3ad72a5b910694ede51a" + dependencies: + chalk "^1.1.1" + cli-cursor "^2.1.0" + cli-spinners "^1.0.0" + log-symbols "^1.0.2" + +orchestrator@^0.3.0: + version "0.3.8" + resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" + dependencies: + end-of-stream "~0.1.5" + sequencify "~0.0.7" + stream-consume "~0.1.0" + +ordered-read-streams@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + +ordered-read-streams@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.3.0.tgz#7137e69b3298bb342247a1bbee3881c80e2fd78b" + dependencies: + is-stream "^1.0.1" + readable-stream "^2.0.1" + +original@>=0.0.5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + +os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.1, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + +osenv@0, osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + +package-json@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" + dependencies: + got "^6.7.1" + registry-auth-token "^3.0.1" + registry-url "^3.0.3" + semver "^5.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-filepath@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.1.tgz#159d6155d43904d16c10ef698911da1e91969b73" + dependencies: + is-absolute "^0.2.3" + map-cache "^0.2.0" + path-root "^0.1.1" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + +parsejson@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" + dependencies: + better-assert "~1.0.0" + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + dependencies: + better-assert "~1.0.0" + +parseurl@~1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + +path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" + +path-root@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" + dependencies: + path-root-regex "^0.1.0" + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + +pause-stream@0.0.11: + version "0.0.11" + resolved "https://registry.yarnpkg.com/pause-stream/-/pause-stream-0.0.11.tgz#fe5a34b0cbce12b5aa6a2b403ee2e73b602f1445" + dependencies: + through "~2.3" + +pause@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/pause/-/pause-0.0.1.tgz#1d408b3fdb76923b9543d96fb4c9dfd535d9cb5d" + +pbkdf2@^3.0.3: + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + +pify@^2.0.0, pify@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + +plugin-error@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/plugin-error/-/plugin-error-0.1.2.tgz#3b9bb3335ccf00f425e07437e19276967da47ace" + dependencies: + ansi-cyan "^0.1.1" + ansi-red "^0.1.1" + arr-diff "^1.0.1" + arr-union "^2.0.1" + extend-shallow "^1.1.2" + +plugin-log@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/plugin-log/-/plugin-log-0.1.0.tgz#86049cf6ab10833398a931f3689cbaee7b5e1333" + dependencies: + chalk "^1.1.1" + dateformat "^1.0.11" + +portfinder@^1.0.9, portfinder@~1.0.12: + version "1.0.13" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + +postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + +postcss-cli@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/postcss-cli/-/postcss-cli-4.1.1.tgz#b94bd8fffbb7ac1f62f2607e78fc9397f7f63a5d" + dependencies: + chalk "^2.1.0" + chokidar "^1.6.1" + dependency-graph "^0.5.0" + fs-extra "^4.0.1" + get-stdin "^5.0.1" + globby "^6.1.0" + ora "^1.1.0" + postcss "^6.0.1" + postcss-load-config "^1.1.0" + postcss-reporter "^5.0.0" + pretty-hrtime "^1.0.3" + read-cache "^1.0.0" + yargs "^8.0.1" + +postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + +postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + +postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + +postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + +postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + +postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + +postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + +postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + +postcss-load-config@^1.1.0, postcss-load-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + +postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + +postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + +postcss-loader@^1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-1.3.3.tgz#a621ea1fa29062a83972a46f54486771301916eb" + dependencies: + loader-utils "^1.0.2" + object-assign "^4.1.1" + postcss "^5.2.15" + postcss-load-config "^1.2.0" + +postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + +postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + +postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + +postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + +postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + +postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + +postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + +postcss-modules-extract-imports@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.0.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + +postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + +postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + +postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + +postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + +postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + +postcss-reporter@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/postcss-reporter/-/postcss-reporter-5.0.0.tgz#a14177fd1342829d291653f2786efd67110332c3" + dependencies: + chalk "^2.0.1" + lodash "^4.17.4" + log-symbols "^2.0.0" + postcss "^6.0.8" + +postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + +postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss-url@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-url/-/postcss-url-5.1.2.tgz#98b3165be8d592471cb0caadde2c0d1f832f133e" + dependencies: + directory-encoder "^0.7.2" + js-base64 "^2.1.5" + mime "^1.2.11" + minimatch "^3.0.0" + mkdirp "^0.5.0" + path-is-absolute "^1.0.0" + postcss "^5.0.0" + +postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + +postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + +postcss@^5.0.0, postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.15, postcss@^5.2.16: + version "5.2.17" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.17.tgz#cf4f597b864d65c8a492b2eabe9d706c879c388b" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + +postcss@^6.0.1: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.11.tgz#f48db210b1d37a7f7ab6499b7a54982997ab6f72" + dependencies: + chalk "^2.1.0" + source-map "^0.5.7" + supports-color "^4.4.0" + +postcss@^6.0.11, postcss@^6.0.2: + version "6.0.12" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.12.tgz#6b0155089d2d212f7bd6a0cecd4c58c007403535" + dependencies: + chalk "^2.1.0" + source-map "^0.5.7" + supports-color "^4.4.0" + +postcss@^6.0.8: + version "6.0.13" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.13.tgz#b9ecab4ee00c89db3ec931145bd9590bbf3f125f" + dependencies: + chalk "^2.1.0" + source-map "^0.6.1" + supports-color "^4.4.0" + +prepend-http@^1.0.0, prepend-http@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + +pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-hrtime@^1.0.0, pretty-hrtime@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" + +private@~0.1.5: + version "0.1.7" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" + +process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + +process@^0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + +promise@^7.1.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.3.1.tgz#064b72602b18f90f29192b8b1bc418ffd1ebd3bf" + dependencies: + asap "~2.0.3" + +protractor@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/protractor/-/protractor-5.1.2.tgz#9b221741709a4c62d5cd53c6aadd54a71137e95f" + dependencies: + "@types/node" "^6.0.46" + "@types/q" "^0.0.32" + "@types/selenium-webdriver" "~2.53.39" + blocking-proxy "0.0.5" + chalk "^1.1.3" + glob "^7.0.3" + jasmine "^2.5.3" + jasminewd2 "^2.1.0" + optimist "~0.6.0" + q "1.4.1" + saucelabs "~1.3.0" + selenium-webdriver "3.0.1" + source-map-support "~0.4.0" + webdriver-js-extender "^1.0.0" + webdriver-manager "^12.0.6" + +proxy-addr@~1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-1.1.5.tgz#71c0ee3b102de3f202f3b64f608d173fcba1a918" + dependencies: + forwarded "~0.1.0" + ipaddr.js "1.4.0" + +prr@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" + +ps-tree@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" + dependencies: + event-stream "~3.3.0" + +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + +q@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.4.1.tgz#55705bcd93c5f3673530c2c2cbc0c2b3addc286e" + +q@^1.1.2, q@^1.4.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" + +qjobs@^1.1.4: + version "1.1.5" + resolved "https://registry.yarnpkg.com/qjobs/-/qjobs-1.1.5.tgz#659de9f2cf8dcc27a1481276f205377272382e73" + +qs@0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.5.1.tgz#9f6bf5d9ac6c76384e95d36d15b48980e5e4add0" + +qs@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.0.tgz#8d04954d364def3efc55b5a0793e1e2c8b1e6e49" + +qs@~0.6.0: + version "0.6.6" + resolved "https://registry.yarnpkg.com/qs/-/qs-0.6.6.tgz#6e015098ff51968b8a3c819001d5f2c89bc4b107" + +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +querystringify@0.0.x: + version "0.0.4" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" + dependencies: + safe-buffer "^5.1.0" + +range-parser@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-0.0.4.tgz#c0427ffef51c10acba0782a46c9602e744ff620b" + +range-parser@^1.0.3, range-parser@^1.2.0, range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + +raw-body@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.1.tgz#30f95e2a67a14e2e4413d8d51fdd92c877e8f2ed" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.18" + unpipe "1.0.0" + +raw-loader@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" + +rc@^1.0.1, rc@^1.1.6: + version "1.2.2" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.2.tgz#d8ce9cb57e8d64d9c7badd9876c7c34cbe3c7077" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +rc@^1.1.7: + version "1.2.1" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +read-cache@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + dependencies: + pify "^2.3.0" + +read-file@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/read-file/-/read-file-0.2.0.tgz#70c6baf8842ec7d1540f981fd0e6aed4c81bd545" + +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@1.0, "readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17, readable-stream@~1.0.2, readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.6, readable-stream@^2.2.9: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~1.1.9: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + +recast@~0.11.12: + version "0.11.23" + resolved "https://registry.yarnpkg.com/recast/-/recast-0.11.23.tgz#451fd3004ab1e4df9b4e4b66376b2a21912462d3" + dependencies: + ast-types "0.9.6" + esprima "~3.1.0" + private "~0.1.5" + source-map "~0.5.0" + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + dependencies: + resolve "^1.1.6" + +redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + +reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + +reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + +reflect-metadata@^0.1.2: + version "0.1.10" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.10.tgz#b4f83704416acad89988c9b15635d47e03b9344a" + +regenerate@^1.2.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.2.tgz#d1941c67bad437e1be76433add5b385f95b19260" + +regenerator-runtime@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz#7e54fe5b5ccd5d6624ea6255c3473be090b802e1" + +regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + +regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + +registry-auth-token@^3.0.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" + dependencies: + rc "^1.1.6" + safe-buffer "^5.0.1" + +registry-url@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" + dependencies: + rc "^1.0.1" + +regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + +regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + +relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + +renderkid@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + +repeat-string@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-0.2.2.tgz#c7a8d3236068362059a7e4651fc6884e8b1fb4ae" + +repeat-string@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + +repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + +replace-ext@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-0.0.1.tgz#29bbd92078a739f0bcce2b4ee41e837953522924" + +request@2, request@^2.72.0, request@^2.78.0, request@^2.79.0, request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + +request@~2.21.0: + version "2.21.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.21.0.tgz#5728ab9c45e5a87c99daccd530298b6673a868d7" + dependencies: + aws-sign "~0.3.0" + cookie-jar "~0.3.0" + forever-agent "~0.5.0" + form-data "0.0.8" + hawk "~0.13.0" + http-signature "~0.9.11" + json-stringify-safe "~4.0.0" + mime "~1.2.9" + node-uuid "~1.4.0" + oauth-sign "~0.3.0" + qs "~0.6.0" + tunnel-agent "~0.3.0" + +require-dir@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/require-dir/-/require-dir-0.3.2.tgz#c1d5c75e9fbffde9f2e6b33e383db4f594b5a6a9" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + +require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + +requires-port@1.0.x, requires-port@1.x.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + +resolve-dir@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-0.1.1.tgz#b219259a5602fac5c5c496ad894a6e8cc430261e" + dependencies: + expand-tilde "^1.2.2" + global-modules "^0.2.3" + +resolve@1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + +resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.4.0, resolve@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" + dependencies: + path-parse "^1.0.5" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +resumer@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + dependencies: + through "~2.3.4" + +right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + +rimraf@2, rimraf@2.x, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.2, rimraf@^2.5.4, rimraf@^2.6.0, rimraf@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + +rollup-plugin-commonjs@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.2.1.tgz#5e40c78375eb163c14c76bce69da1750e5905a2e" + dependencies: + acorn "^5.1.1" + estree-walker "^0.5.0" + magic-string "^0.22.4" + resolve "^1.4.0" + rollup-pluginutils "^2.0.1" + +rollup-plugin-node-resolve@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-3.0.0.tgz#8b897c4c3030d5001277b0514b25d2ca09683ee0" + dependencies: + browser-resolve "^1.11.0" + builtin-modules "^1.1.0" + is-module "^1.0.0" + resolve "^1.1.6" + +rollup-pluginutils@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz#7ec95b3573f6543a46a6461bd9a7c544525d0fc0" + dependencies: + estree-walker "^0.3.0" + micromatch "^2.3.11" + +rollup@^0.50.0: + version "0.50.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-0.50.0.tgz#4c158f4e780e6cb33ff0dbfc184a52cc58cd5f3b" + +run-sequence@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/run-sequence/-/run-sequence-2.2.0.tgz#b3f8d42836db89d08b2fe704eaf0c93dfd8335e2" + dependencies: + chalk "^1.1.3" + gulp-util "^3.0.8" + +rxjs@^5.4.2: + version "5.4.3" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-5.4.3.tgz#0758cddee6033d68e0fd53676f0f3596ce3d483f" + dependencies: + symbol-observable "^1.0.1" + +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + +sander@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" + dependencies: + es6-promise "^3.1.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + +sass-graph@^2.1.1: + version "2.2.4" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^7.0.0" + +sass-loader@^6.0.3: + version "6.0.6" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-6.0.6.tgz#e9d5e6c1f155faa32a4b26d7a9b7107c225e40f9" + dependencies: + async "^2.1.5" + clone-deep "^0.3.0" + loader-utils "^1.0.1" + lodash.tail "^4.1.1" + pify "^3.0.0" + +saucelabs@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/saucelabs/-/saucelabs-1.3.0.tgz#d240e8009df7fa87306ec4578a69ba3b5c424fee" + dependencies: + https-proxy-agent "^1.0.0" + +sax@0.5.x: + version "0.5.8" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.5.8.tgz#d472db228eb331c2506b0e8c15524adb939d12c1" + +sax@0.6.x: + version "0.6.1" + resolved "https://registry.yarnpkg.com/sax/-/sax-0.6.1.tgz#563b19c7c1de892e09bfc4f2fc30e3c27f0952b9" + +sax@>=0.6.0, sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + +schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + +scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + +selenium-webdriver@3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-3.0.1.tgz#a2dea5da4a97f6672e89e7ca7276cefa365147a7" + dependencies: + adm-zip "^0.4.7" + rimraf "^2.5.4" + tmp "0.0.30" + xml2js "^0.4.17" + +selenium-webdriver@^2.53.2: + version "2.53.3" + resolved "https://registry.yarnpkg.com/selenium-webdriver/-/selenium-webdriver-2.53.3.tgz#d29ff5a957dff1a1b49dc457756e4e4bfbdce085" + dependencies: + adm-zip "0.4.4" + rimraf "^2.2.8" + tmp "0.0.24" + ws "^1.0.1" + xml2js "0.4.4" + +selfsigned@^1.9.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.1.tgz#bf8cb7b83256c4551e31347c6311778db99eec52" + dependencies: + node-forge "0.6.33" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + dependencies: + semver "^5.0.3" + +semver-dsl@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/semver-dsl/-/semver-dsl-1.0.1.tgz#d3678de5555e8a61f629eed025366ae5f27340a0" + dependencies: + semver "^5.3.0" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" + +semver@^4.1.0, semver@~4.3.3: + version "4.3.6" + resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" + +semver@~5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.0.3.tgz#77466de589cd5d3c95f138aa78bc569a3cb5d27a" + +semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + +send@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.1.0.tgz#cfb08ebd3cec9b7fc1a37d9ff9e875a971cf4640" + dependencies: + debug "*" + fresh "0.1.0" + mime "1.2.6" + range-parser "0.0.4" + +send@0.15.4: + version "0.15.4" + resolved "https://registry.yarnpkg.com/send/-/send-0.15.4.tgz#985faa3e284b0273c793364a35c6737bd93905b9" + dependencies: + debug "2.6.8" + depd "~1.1.1" + destroy "~1.0.4" + encodeurl "~1.0.1" + escape-html "~1.0.3" + etag "~1.8.0" + fresh "0.5.0" + http-errors "~1.6.2" + mime "1.3.4" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.3.1" + +sequencify@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" + +serve-index@^1.7.2: + version "1.9.0" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.0.tgz#d2b280fc560d616ee81b48bf0fa82abed2485ce7" + dependencies: + accepts "~1.3.3" + batch "0.6.1" + debug "2.6.8" + escape-html "~1.0.3" + http-errors "~1.6.1" + mime-types "~2.1.15" + parseurl "~1.3.1" + +serve-static@1.12.4: + version "1.12.4" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.4.tgz#9b6aa98eeb7253c4eedc4c1f6fdbca609901a961" + dependencies: + encodeurl "~1.0.1" + escape-html "~1.0.3" + parseurl "~1.3.1" + send "0.15.4" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + +setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.8" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" + dependencies: + inherits "^2.0.1" + +shallow-clone@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-0.1.2.tgz#5909e874ba77106d73ac414cfec1ffca87d97060" + dependencies: + is-extendable "^0.1.1" + kind-of "^2.0.1" + lazy-cache "^0.2.3" + mixin-object "^2.0.1" + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + +shell-quote@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +sigmund@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + +silent-error@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/silent-error/-/silent-error-1.1.0.tgz#2209706f1c850a9f1d10d0d840918b46f26e1bc9" + dependencies: + debug "^2.2.0" + +slickgrid@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/slickgrid/-/slickgrid-2.3.3.tgz#6cf82c3109220cfb389a0094285883cc2a28e0d7" + dependencies: + jquery ">=1.8.0" + jquery-ui ">=1.8.0" + +sntp@0.2.x: + version "0.2.4" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-0.2.4.tgz#fb885f18b0f3aad189f824862536bceeec750900" + dependencies: + hoek "0.9.x" + +sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + +socket.io-adapter@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" + dependencies: + debug "2.3.3" + socket.io-parser "2.3.1" + +socket.io-client@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.3.tgz#b30e86aa10d5ef3546601c09cde4765e381da377" + dependencies: + backo2 "1.0.2" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "2.3.3" + engine.io-client "1.8.3" + has-binary "0.1.7" + indexof "0.0.1" + object-component "0.0.3" + parseuri "0.0.5" + socket.io-parser "2.3.1" + to-array "0.1.4" + +socket.io-parser@2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" + dependencies: + component-emitter "1.1.2" + debug "2.2.0" + isarray "0.0.1" + json3 "3.3.2" + +socket.io@1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.3.tgz#b8af9caba00949e568e369f1327ea9be9ea2461b" + dependencies: + debug "2.3.3" + engine.io "1.8.3" + has-binary "0.1.7" + object-assign "4.1.0" + socket.io-adapter "0.5.0" + socket.io-client "1.7.3" + socket.io-parser "2.3.1" + +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs@0.3.18: + version "0.3.18" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.18.tgz#d9b289316ca7df77595ef299e075f0f937eb4207" + dependencies: + faye-websocket "^0.10.0" + uuid "^2.0.2" + +sorcery@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" + dependencies: + buffer-crc32 "^0.2.5" + minimist "^1.2.0" + sander "^0.5.0" + sourcemap-codec "^1.3.0" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + +source-map-loader@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-0.2.1.tgz#48126be9230bd47fad05e46a8c3c2e3d2dabe507" + dependencies: + async "^0.9.0" + loader-utils "~0.2.2" + source-map "~0.1.33" + +source-map-support@^0.4.0, source-map-support@^0.4.1, source-map-support@^0.4.2, source-map-support@~0.4.0: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + +source-map@0.1.x, source-map@~0.1.33, source-map@~0.1.7: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + +source-map@0.5.x, source-map@^0.5.1, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.0, source-map@~0.5.1, source-map@~0.5.3: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + +source-map@^0.4.2, source-map@^0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + +source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + +sourcemap-codec@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.3.1.tgz#9ad6f9bdbd691931016e30939dbc868673323146" + dependencies: + vlq "^0.2.1" + +sparkles@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.0.tgz#1acbbfb592436d10bbe8f785b7cc6f82815012c3" + +spdx-correct@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" + dependencies: + spdx-license-ids "^1.0.2" + +spdx-expression-parse@~1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz#9bdf2f20e1f40ed447fbe273266191fced51626c" + +spdx-license-ids@^1.0.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" + +spdy-transport@^2.0.18: + version "2.0.20" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + +spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + +split@0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/split/-/split-0.3.3.tgz#cd0eea5e63a211dfff7eb0f091c4133e2d0dd28f" + dependencies: + through "2" + +sprintf-js@^1.0.3: + version "1.1.1" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + +sshpk@^1.7.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.13.1.tgz#512df6da6287144316dc4c18fe1cf1d940739be3" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + +"statuses@>= 1.3.1 < 2", statuses@~1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" + +stdout-stream@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" + dependencies: + readable-stream "^2.0.1" + +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-combiner@~0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" + dependencies: + duplexer "~0.1.1" + +stream-consume@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.0.tgz#a41ead1a6d6081ceb79f65b061901b6d8f3d1d0f" + +stream-http@^2.3.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + +string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +string-width@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string.prototype.padend@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/string.prototype.padend/-/string.prototype.padend-3.0.0.tgz#f3aaef7c1719f170c5eab1c32bf780d96e21f2f0" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.4.3" + function-bind "^1.0.2" + +string.prototype.trim@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.5.0" + function-bind "^1.0.2" + +string_decoder@^0.10.25, string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" + dependencies: + safe-buffer "~5.1.0" + +stringstream@~0.0.4: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + +strip-ansi@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.3.0.tgz#25f48ea22ca79187f3174a4db8759347bb126220" + dependencies: + ansi-regex "^0.2.1" + +strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-0.1.1.tgz#39e8a98d044d150660abe4a6808acf70bb7bc991" + +strip-bom-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-1.0.0.tgz#e7144398577d51a6bed0fa1994fa05f43fd988ee" + dependencies: + first-chunk-stream "^1.0.0" + strip-bom "^2.0.0" + +strip-bom@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-1.0.0.tgz#85b8862f3844b5a6d5ec8467a93598173a36f794" + dependencies: + first-chunk-stream "^1.0.0" + is-utf8 "^0.2.0" + +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + +strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + +strip-json-comments@^2.0.0, strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + +style-loader@^0.13.1: + version "0.13.2" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.13.2.tgz#74533384cf698c7104c7951150b49717adc2f3bb" + dependencies: + loader-utils "^1.0.2" + +stylus-loader@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.1.tgz#77f4b34fd030d25b2617bcf5513db5b0730c4089" + dependencies: + loader-utils "^1.0.2" + lodash.clonedeep "^4.5.0" + when "~3.6.x" + +stylus@^0.54.5: + version "0.54.5" + resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.5.tgz#42b9560931ca7090ce8515a798ba9e6aa3d6dc79" + dependencies: + css-parse "1.7.x" + debug "*" + glob "7.0.x" + mkdirp "0.5.x" + sax "0.5.x" + source-map "0.1.x" + +subarg@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" + dependencies: + minimist "^1.1.0" + +supports-color@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-0.2.0.tgz#d92de2694eb3f67323973d7ae3d8b55b4c22190a" + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + +supports-color@^3.1.1, supports-color@^3.1.2, supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + +supports-color@^4.0.0, supports-color@^4.2.1, supports-color@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.4.0.tgz#883f7ddabc165142b2a61427f3352ded195d1a3e" + dependencies: + has-flag "^2.0.0" + +svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + +symbol-observable@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.0.4.tgz#29bf615d4aa7121bdd898b22d4b3f9bc4e2aa03d" + +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + +tape@^4.6.3: + version "4.8.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.8.0.tgz#f6a9fec41cc50a1de50fa33603ab580991f6068e" + dependencies: + deep-equal "~1.0.1" + defined "~1.0.0" + for-each "~0.3.2" + function-bind "~1.1.0" + glob "~7.1.2" + has "~1.0.1" + inherits "~2.0.3" + minimist "~1.2.0" + object-inspect "~1.3.0" + resolve "~1.4.0" + resumer "~0.0.0" + string.prototype.trim "~1.1.2" + through "~2.3.8" + +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + +tar@^2.0.0, tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + dependencies: + execa "^0.7.0" + +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + +through2-filter@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-2.0.0.tgz#60bc55a0dacb76085db1f9dae99ab43f83d622ec" + dependencies: + through2 "~2.0.0" + xtend "~4.0.0" + +through2@0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.1.tgz#afd849c65af513c2541a98a7cfbcfec3a15a9686" + dependencies: + readable-stream "~1.0.17" + xtend "~2.1.1" + +through2@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.5.1.tgz#dfdd012eb9c700e2323fd334f38ac622ab372da7" + dependencies: + readable-stream "~1.0.17" + xtend "~3.0.0" + +through2@^0.6.0, through2@^0.6.1: + version "0.6.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" + dependencies: + readable-stream ">=1.0.33-1 <1.1.0-0" + xtend ">=4.0.0 <4.1.0-0" + +through2@^2.0.0, through2@^2.0.1, through2@~2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + +through@2, through@X.X.X, through@~2.3, through@~2.3.1, through@~2.3.4, through@~2.3.6, through@~2.3.8: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + +thunky@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-0.1.0.tgz#bf30146824e2b6e67b0f2d7a4ac8beb26908684e" + +tildify@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" + dependencies: + os-homedir "^1.0.0" + +time-stamp@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" + +time-stamp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" + +timed-out@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + +timers-browserify@^2.0.2: + version "2.0.4" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6" + dependencies: + setimmediate "^1.0.4" + +tmp@0.0.24: + version "0.0.24" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.24.tgz#d6a5e198d14a9835cc6f2d7c3d9e302428c8cf12" + +tmp@0.0.30: + version "0.0.30" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.30.tgz#72419d4a8be7d6ce75148fd8b324e593a711c2ed" + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.31: + version "0.0.31" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" + dependencies: + os-tmpdir "~1.0.1" + +tmp@0.0.x: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + dependencies: + os-tmpdir "~1.0.2" + +to-absolute-glob@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-0.1.1.tgz#1cdfa472a9ef50c239ee66999b662ca0eb39937f" + dependencies: + extend-shallow "^2.0.1" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + +to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + +toposort@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.3.tgz#f02cd8a74bd8be2fc0e98611c3bacb95a171869c" + +tough-cookie@~2.3.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" + dependencies: + punycode "^1.4.1" + +trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + +trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + +ts-node@^3.0.4, ts-node@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-3.3.0.tgz#c13c6a3024e30be1180dd53038fc209289d4bf69" + dependencies: + arrify "^1.0.0" + chalk "^2.0.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.4.0" + tsconfig "^6.0.0" + v8flags "^3.0.0" + yn "^2.0.0" + +tsconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/tsconfig/-/tsconfig-6.0.0.tgz#6b0e8376003d7af1864f8df8f89dd0059ffcd032" + dependencies: + strip-bom "^3.0.0" + strip-json-comments "^2.0.0" + +tsickle@^0.21.0: + version "0.21.6" + resolved "https://registry.yarnpkg.com/tsickle/-/tsickle-0.21.6.tgz#53b01b979c5c13fdb13afb3fb958177e5991588d" + dependencies: + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map "^0.5.6" + source-map-support "^0.4.2" + +tslib@^1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" + +tslint@~5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/tslint/-/tslint-5.7.0.tgz#c25e0d0c92fa1201c2bc30e844e08e682b4f3552" + dependencies: + babel-code-frame "^6.22.0" + colors "^1.1.2" + commander "^2.9.0" + diff "^3.2.0" + glob "^7.1.1" + minimatch "^3.0.4" + resolve "^1.3.2" + semver "^5.3.0" + tslib "^1.7.1" + tsutils "^2.8.1" + +tsutils@^2.8.1: + version "2.8.2" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-2.8.2.tgz#2c1486ba431260845b0ac6f902afd9d708a8ea6a" + dependencies: + tslib "^1.7.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + +tunnel-agent@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.3.0.tgz#ad681b68f5321ad2827c4cfb1b7d5df2cfe942ee" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + +type-is@~1.6.15: + version "1.6.15" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.15.tgz#cab10fb4909e441c82842eafe1ad646c81804410" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.15" + +"typescript@>=2.0.0 <2.6.0", typescript@^2.3.3: + version "2.5.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.2.tgz#038a95f7d9bbb420b1bf35ba31d4c5c1dd3ffe34" + +typescript@^2.3.2: + version "2.5.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.5.3.tgz#df3dcdc38f3beb800d4bc322646b04a3f6ca7f0d" + +typescript@~2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.4.2.tgz#f8395f85d459276067c988aa41837a8f82870844" + +uglify-js@3.1.x: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.0.tgz#92fae17b88dfbc3c394175a935044cdbcf4085ae" + dependencies: + commander "~2.11.0" + source-map "~0.5.1" + +uglify-js@^2.6, uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + +uglify-js@^3.0.7: + version "3.1.2" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.1.2.tgz#b50bcf15a5fd9e9ed40afbcdef3b59d6891b291f" + dependencies: + commander "~2.11.0" + source-map "~0.5.1" + +uglify-js@~2.3: + version "2.3.6" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.3.6.tgz#fa0984770b428b7a9b2a8058f46355d14fef211a" + dependencies: + async "~0.2.6" + optimist "~0.3.5" + source-map "~0.1.7" + +uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + +ultron@1.0.x: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" + +unc-path-regex@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + +uniqid@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" + dependencies: + macaddress "^0.2.8" + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + +unique-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" + +unique-stream@^2.0.2: + version "2.2.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.2.1.tgz#5aa003cfbe94c5ff866c4e7d668bb1c4dbadb369" + dependencies: + json-stable-stringify "^1.0.0" + through2-filter "^2.0.0" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + dependencies: + crypto-random-string "^1.0.0" + +universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + +unzip-response@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" + +update-notifier@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.3.0.tgz#4e8827a6bb915140ab093559d7014e3ebb837451" + dependencies: + boxen "^1.2.1" + chalk "^2.0.1" + configstore "^3.0.0" + import-lazy "^2.1.0" + is-installed-globally "^0.1.0" + is-npm "^1.0.0" + latest-version "^3.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + +url-loader@^0.5.7: + version "0.5.9" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.5.9.tgz#cc8fea82c7b906e7777019250869e569e995c295" + dependencies: + loader-utils "^1.0.2" + mime "1.3.x" + +url-parse-lax@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" + dependencies: + prepend-http "^1.0.1" + +url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + +url-parse@^1.1.8: + version "1.1.9" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.1.9.tgz#c67f1d775d51f0a18911dd7b3ffad27bb9e5bd19" + dependencies: + querystringify "~1.0.0" + requires-port "1.0.x" + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +user-home@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" + +useragent@^2.1.12: + version "2.2.1" + resolved "https://registry.yarnpkg.com/useragent/-/useragent-2.2.1.tgz#cf593ef4f2d175875e8bb658ea92e18a4fd06d8e" + dependencies: + lru-cache "2.2.x" + tmp "0.0.x" + +util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + +utila@~0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + +utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + +utils-merge@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.0.tgz#0294fb922bb9375153541c4f7096231f287c8af8" + +uuid@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" + +uuid@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" + +v8flags@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" + dependencies: + user-home "^1.1.1" + +v8flags@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.0.0.tgz#4be9604488e0c4123645def705b1848d16b8e01f" + dependencies: + user-home "^1.1.1" + +vali-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/vali-date/-/vali-date-1.0.0.tgz#1b904a59609fb328ef078138420934f6b86709a6" + +validate-npm-package-license@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" + dependencies: + spdx-correct "~1.0.0" + spdx-expression-parse "~1.0.0" + +vary@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.1.tgz#67535ebb694c1d52257457984665323f587e8d37" + +vendors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +vinyl-fs@^0.3.0: + version "0.3.14" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" + dependencies: + defaults "^1.0.0" + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^3.0.0" + mkdirp "^0.5.0" + strip-bom "^1.0.0" + through2 "^0.6.1" + vinyl "^0.4.0" + +vinyl-fs@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-2.4.4.tgz#be6ff3270cb55dfd7d3063640de81f25d7532239" + dependencies: + duplexify "^3.2.0" + glob-stream "^5.3.2" + graceful-fs "^4.0.0" + gulp-sourcemaps "1.6.0" + is-valid-glob "^0.3.0" + lazystream "^1.0.0" + lodash.isequal "^4.0.0" + merge-stream "^1.0.0" + mkdirp "^0.5.0" + object-assign "^4.0.0" + readable-stream "^2.0.4" + strip-bom "^2.0.0" + strip-bom-stream "^1.0.0" + through2 "^2.0.0" + through2-filter "^2.0.0" + vali-date "^1.0.0" + vinyl "^1.0.0" + +vinyl-fs@~0.1.2: + version "0.1.4" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.1.4.tgz#436f7818b68854cb7425cd32fabd75f2cc6d321f" + dependencies: + glob-stream "^3.1.5" + glob-watcher "^0.0.6" + graceful-fs "^2.0.1" + map-stream "^0.1.0" + mkdirp "^0.3.5" + vinyl "^0.2.0" + +vinyl-paths@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/vinyl-paths/-/vinyl-paths-2.1.0.tgz#00820437cba38262cef8802d840f93e3392ee44b" + dependencies: + through2 "^2.0.0" + +vinyl-sourcemaps-apply@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705" + dependencies: + source-map "^0.5.1" + +vinyl@^0.2.0, vinyl@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.2.3.tgz#bca938209582ec5a49ad538a00fa1f125e513252" + dependencies: + clone-stats "~0.0.1" + +vinyl@^0.4.0: + version "0.4.6" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" + dependencies: + clone "^0.2.0" + clone-stats "^0.0.1" + +vinyl@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vinyl@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-1.2.0.tgz#5c88036cf565e5df05558bfc911f8656df218884" + dependencies: + clone "^1.0.0" + clone-stats "^0.0.1" + replace-ext "0.0.1" + +vlq@^0.2.1: + version "0.2.2" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.2.tgz#e316d5257b40b86bb43cb8d5fea5d7f54d6b0ca1" + +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +void-elements@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec" + +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + +wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" + dependencies: + minimalistic-assert "^1.0.0" + +webdriver-js-extender@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/webdriver-js-extender/-/webdriver-js-extender-1.0.0.tgz#81c533a9e33d5bfb597b4e63e2cdb25b54777515" + dependencies: + "@types/selenium-webdriver" "^2.53.35" + selenium-webdriver "^2.53.2" + +webdriver-manager@^12.0.6: + version "12.0.6" + resolved "https://registry.yarnpkg.com/webdriver-manager/-/webdriver-manager-12.0.6.tgz#3df1a481977010b4cbf8c9d85c7a577828c0e70b" + dependencies: + adm-zip "^0.4.7" + chalk "^1.1.1" + del "^2.2.0" + glob "^7.0.3" + ini "^1.3.4" + minimist "^1.2.0" + q "^1.4.1" + request "^2.78.0" + rimraf "^2.5.2" + semver "^5.3.0" + xml2js "^0.4.17" + +webpack-concat-plugin@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/webpack-concat-plugin/-/webpack-concat-plugin-1.4.0.tgz#a6eb3f0082d03c79d8ee2f1518c7f48e44ee12c5" + dependencies: + md5 "^2.2.1" + uglify-js "^2.8.29" + +webpack-dev-middleware@^1.11.0, webpack-dev-middleware@~1.12.0: + version "1.12.0" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.0.tgz#d34efefb2edda7e1d3b5dbe07289513219651709" + dependencies: + memory-fs "~0.4.1" + mime "^1.3.4" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + +webpack-dev-server@~2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.7.1.tgz#21580f5a08cd065c71144cf6f61c345bca59a8b8" + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^1.6.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + del "^3.0.0" + express "^4.13.3" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + internal-ip "^1.2.0" + ip "^1.1.5" + loglevel "^1.4.1" + opn "4.0.2" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.18" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^3.1.1" + webpack-dev-middleware "^1.11.0" + yargs "^6.0.0" + +webpack-merge@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.0.tgz#6ad72223b3e0b837e531e4597c199f909361511e" + dependencies: + lodash "^4.17.4" + +webpack-sources@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" + dependencies: + source-list-map "^2.0.0" + source-map "~0.5.3" + +webpack@~3.5.5: + version "3.5.6" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.6.tgz#a492fb6c1ed7f573816f90e00c8fbb5a20cc5c36" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + +websocket-driver@>=0.5.1: + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + dependencies: + http-parser-js ">=0.4.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.2.tgz#0e18781de629a18308ce1481650f67ffa2693a5d" + +when@~3.6.x: + version "3.6.4" + resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e" + +whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@1, which@^1.2.1, which@^1.2.12, which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + +widest-line@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" + dependencies: + string-width "^1.0.1" + +window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + +wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + +wordwrap@~0.0.2: + version "0.0.3" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.3.tgz#a3d5da6cd5c0bc0008d37234bbaf1bed63059107" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + +write-file-atomic@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.3.0.tgz#1ff61575c2e2a4e8e510d6fa4e243cce183999ab" + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +ws@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +ws@^1.0.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" + dependencies: + options ">=0.0.5" + ultron "1.0.x" + +wtf-8@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + +xml-char-classes@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/xml-char-classes/-/xml-char-classes-1.0.0.tgz#64657848a20ffc5df583a42ad8a277b4512bbc4d" + +xml2js@0.4.4: + version "0.4.4" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.4.tgz#3111010003008ae19240eba17497b57c729c555d" + dependencies: + sax "0.6.x" + xmlbuilder ">=1.0.0" + +xml2js@^0.4.17: + version "0.4.19" + resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" + dependencies: + sax ">=0.6.0" + xmlbuilder "~9.0.1" + +xmlbuilder@>=1.0.0, xmlbuilder@~9.0.1: + version "9.0.4" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-9.0.4.tgz#519cb4ca686d005a8420d3496f3f0caeecca580f" + +xmldom@^0.1.19: + version "0.1.27" + resolved "https://registry.yarnpkg.com/xmldom/-/xmldom-0.1.27.tgz#d501f97b3bdb403af8ef9ecc20573187aadac0e9" + +xmlhttprequest-ssl@1.5.3: + version "1.5.3" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" + +"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + +xtend@~2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" + dependencies: + object-keys "~0.4.0" + +xtend@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" + +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + +yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + +yargs@^6.0.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + +yargs@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + +yargs@^8.0.1, yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@^9.0.1: + version "9.0.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-9.0.1.tgz#52acc23feecac34042078ee78c0c007f5085db4c" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + +yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + +yui@3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/yui/-/yui-3.14.1.tgz#87ec1c20d91c12f579ff64f638eeb91900129183" + dependencies: + request "~2.21.0" + +yuidocjs@~0.3.47: + version "0.3.50" + resolved "https://registry.yarnpkg.com/yuidocjs/-/yuidocjs-0.3.50.tgz#9060a5f765a883b100b563ec6ad105c5d53369c1" + dependencies: + express "~3.1.2" + graceful-fs "2.x" + marked "~0.2.8" + minimatch "~0.2.11" + rimraf "2.x" + yui "3.14.1" + +zone.js@^0.8.14, zone.js@^0.8.17: + version "0.8.17" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.8.17.tgz#4c5e5185a857da8da793daf3919371c5a36b2a0b"