From 7b859c663dde1a38ca6c4593fc4d70ab7caf1704 Mon Sep 17 00:00:00 2001 From: Ghislain Beaulac Date: Tue, 17 Oct 2017 16:52:44 -0400 Subject: [PATCH] replace packaging library with ng-packagr --- demo/.angular-cli.json => .angular-cli.json | 26 +- .angulardoc.json | 2 +- .editorconfig | 11 +- .gitignore | 51 +- .npmignore | 26 +- .travis.yml | 24 - .vscode/launch.json | 19 + CHANGELOG.md | 5 - LICENSE | 21 - README.md | 173 +- angular-slickgrid.ts | 1 - build.js | 67 - demo/.angulardoc.json | 4 - demo/.editorconfig | 13 - demo/.gitignore | 42 - demo/README.md | 28 - demo/karma.conf.js | 33 - demo/package.json | 56 - demo/src/styles.scss | 23 - demo/tsconfig.json | 20 - demo/tslint.json | 142 - dist/LICENSE | 21 - dist/README.md | 163 +- dist/angular-slickgrid.d.ts | 3 +- dist/angular-slickgrid.metadata.json | 2 +- dist/bundles/angular-slickgrid.umd.js | 982 +- dist/bundles/angular-slickgrid.umd.js.map | 2 +- dist/bundles/angular-slickgrid.umd.min.js | 3 - dist/bundles/angular-slickgrid.umd.min.js.map | 1 - dist/modules/angular-slickgrid.es5.js | 1760 -- dist/modules/angular-slickgrid.es5.js.map | 1 - dist/modules/angular-slickgrid.js | 1910 --- dist/modules/angular-slickgrid.js.map | 1 - dist/package.json | 193 +- dist/public_api.d.ts | 12 +- dist/src/angular-slickgrid.d.ts | 18 - .../angular-slickgrid.component.d.ts | 40 - .../slick-pagination.component.d.ts | 28 - .../booleanFilterCondition.d.ts | 2 - .../dateFilterCondition.d.ts | 2 - .../dateIsoFilterCondition.d.ts | 2 - .../dateUsFilterCondition.d.ts | 2 - .../dateUsShortFilterCondition.d.ts | 2 - .../dateUtcFilterCondition.d.ts | 2 - .../executeMappedCondition.d.ts | 2 - .../filter-conditions/filterUtilities.d.ts | 2 - dist/src/filter-conditions/index.d.ts | 13 - .../numberFilterCondition.d.ts | 2 - .../stringFilterCondition.d.ts | 2 - dist/src/filter-templates/index.d.ts | 5 - .../filter-templates/inputFilterTemplate.d.ts | 2 - .../selectFilterTemplate.d.ts | 2 - dist/src/formatters/CheckboxFormatter.d.ts | 2 - dist/src/formatters/CheckmarkFormatter.d.ts | 2 - dist/src/formatters/ProgressBarFormatter.d.ts | 2 - dist/src/formatters/dateIsoFormatter.d.ts | 2 - .../formatters/dateTimeIsoAmPmFormatter.d.ts | 2 - .../formatters/dateTimeUsAmPmFormatter.d.ts | 2 - dist/src/formatters/dateTimeUsFormatter.d.ts | 2 - dist/src/formatters/dateUsFormatter.d.ts | 2 - dist/src/formatters/index.d.ts | 15 - .../percentCompleteBarFormatter.d.ts | 2 - .../formatters/percentCompleteFormatter.d.ts | 2 - dist/src/formatters/yesNoFormatter.d.ts | 2 - dist/src/global-grid-options.d.ts | 5 - .../models/autoResizeOption.interface.d.ts | 7 - dist/src/models/caseType.d.ts | 5 - dist/src/models/column.interface.d.ts | 38 - dist/src/models/columnFilter.interface.d.ts | 9 - dist/src/models/columnFilters.interface.d.ts | 4 - dist/src/models/fieldType.d.ts | 15 - dist/src/models/filter.interface.d.ts | 2 - .../models/filterChangedArgs.interface.d.ts | 6 - .../src/models/filterCondition.interface.d.ts | 2 - .../filterConditionOption.interface.d.ts | 9 - dist/src/models/formElementType.d.ts | 6 - dist/src/models/formatter.interface.d.ts | 2 - dist/src/models/gridoption.interface.d.ts | 34 - dist/src/models/odataOption.interface.d.ts | 12 - dist/src/models/pagination.interface.d.ts | 5 - .../paginationChangedArgs.interface.d.ts | 4 - .../src/models/sortChangedArgs.interface.d.ts | 6 - dist/src/models/sorter.interface.d.ts | 1 - .../src/modules/angular-slickgrid.module.d.ts | 2 - dist/src/services/filter.service.d.ts | 33 - dist/src/services/global-utilities.d.ts | 7 - dist/src/services/grid-odata.service.d.ts | 32 - dist/src/services/mouse.service.d.ts | 3 - dist/src/services/odata.service.d.ts | 27 - dist/src/services/resizer.service.d.ts | 20 - dist/src/services/sort.service.d.ts | 19 - dist/src/sorters/dateIsoSorter.d.ts | 2 - dist/src/sorters/dateSorter.d.ts | 2 - dist/src/sorters/dateUsShortSorter.d.ts | 2 - dist/src/sorters/dateUsSorter.d.ts | 2 - dist/src/sorters/index.d.ts | 8 - dist/src/sorters/numericSorter.d.ts | 2 - dist/src/sorters/stringSorter.d.ts | 2 - dist/styles/css/slick-bootstrap.css | 3 +- dist/styles/css/slick-bootstrap.css.map | 4 +- dist/styles/css/slick-controls.css | 3 +- dist/styles/css/slick-controls.css.map | 4 +- dist/styles/css/slick-default-theme.css | 12 +- dist/styles/css/slick-default-theme.css.map | 4 +- dist/styles/css/slick-grid.css | 18 +- dist/styles/css/slick-grid.css.map | 4 +- .../styles/css/slick-pagination.component.css | 2 +- .../css/slick-pagination.component.css.map | 4 +- dist/styles/css/slick-plugins.css | 3 +- dist/styles/css/slick-plugins.css.map | 2 +- dist/styles/css/slickgrid-examples.css | 2 +- dist/styles/css/slickgrid-examples.css.map | 4 +- dist/styles/css/slickgrid-theme-bootstrap.css | 31 +- .../css/slickgrid-theme-bootstrap.css.map | 16 +- {demo/e2e => e2e}/app.e2e-spec.ts | 2 +- {demo/e2e => e2e}/app.po.ts | 0 {demo/e2e => e2e}/tsconfig.e2e.json | 0 karma.conf.js | 126 +- ng-package.json | 8 + package-lock.json | 13270 +++++++++++----- package.json | 186 +- demo/protractor.conf.js => protractor.conf.js | 0 public_api.ts | 13 +- rollup.config.js | 27 - screenshots/columnPicker.png | Bin 23478 -> 0 bytes screenshots/filter_and_sort.png | Bin 27615 -> 0 bytes screenshots/formatters.png | Bin 35759 -> 0 bytes screenshots/pagination.png | Bin 20178 -> 0 bytes scripts/map-sources.js | 9 - spec.bundle.js | 29 - src/angular-slickgrid.ts | 22 - {demo/src => src}/app/app-routing.module.ts | 6 +- {demo/src => src}/app/app.component.html | 3 + {demo/src => src}/app/app.component.scss | 0 {demo/src => src}/app/app.component.spec.ts | 11 +- {demo/src => src}/app/app.component.ts | 2 +- {demo/src => src}/app/app.module.ts | 26 +- .../app/examples/grid-backend.component.html | 0 .../app/examples/grid-backend.component.scss | 0 .../examples/grid-backend.component.spec.ts | 25 + .../app/examples/grid-backend.component.ts | 4 +- .../app/examples/grid-basic.component.html | 0 .../app/examples/grid-basic.component.scss | 0 .../app/examples/grid-basic.component.ts | 9 +- .../examples/grid-clientside.component.html | 0 .../examples/grid-clientside.component.scss | 0 .../app/examples/grid-clientside.component.ts | 7 +- .../examples/grid-formatter.component.html | 0 .../examples/grid-formatter.component.scss | 0 .../app/examples/grid-formatter.component.ts | 5 +- src/app/examples/grid-graphql.component.html | 42 + .../app/examples/grid-graphql.component.scss | 0 src/app/examples/grid-graphql.component.ts | 279 + .../app/examples/grid-odata.component.html | 0 .../app/examples/grid-odata.component.scss | 0 src/app/examples/grid-odata.component.spec.ts | 25 + .../app/examples/grid-odata.component.ts | 6 +- src/app/modules/angular-slickgrid.ts | 23 + .../components/angular-slickgrid.component.ts | 15 +- .../slick-pagination.component.html | 42 + .../slick-pagination.component.scss | 119 + .../components/slick-pagination.component.ts | 117 + .../booleanFilterCondition.ts | 4 +- .../filter-conditions/dateFilterCondition.ts | 5 +- .../dateIsoFilterCondition.ts | 5 +- .../dateUsFilterCondition.ts | 5 +- .../dateUsShortFilterCondition.ts | 5 +- .../dateUtcFilterCondition.ts | 5 +- .../executeMappedCondition.ts | 2 +- .../filter-conditions/filterUtilities.ts | 2 +- .../filter-conditions/index.ts | 0 .../numberFilterCondition.ts | 3 +- .../stringFilterCondition.ts | 16 + .../filter-templates/index.ts | 3 +- .../filter-templates/inputFilterTemplate.ts | 3 +- .../filter-templates/selectFilterTemplate.ts | 3 +- .../formatters/checkboxFormatter.ts | 0 .../formatters/checkmarkFormatter.ts | 0 .../formatters/dateIsoFormatter.ts | 2 +- .../formatters/dateTimeIsoAmPmFormatter.ts | 2 +- .../formatters/dateTimeIsoFormatter.ts | 2 +- .../formatters/dateTimeUsAmPmFormatter.ts | 2 +- .../formatters/dateTimeUsFormatter.ts | 2 +- .../formatters/dateUsFormatter.ts | 2 +- .../angular-slickgrid}/formatters/index.ts | 14 +- .../formatters/percentCompleteBarFormatter.ts | 0 .../formatters/percentCompleteFormatter.ts | 0 .../formatters/progressBarFormatter.ts | 0 .../formatters/yesNoFormatter.ts | 0 .../angular-slickgrid}/global-grid-options.ts | 3 +- .../models/autoResizeOption.interface.ts | 0 .../angular-slickgrid}/models/caseType.ts | 0 .../models/column.interface.ts | 0 .../models/columnFilter.interface.ts | 0 .../models/columnFilters.interface.ts | 0 .../angular-slickgrid}/models/fieldType.ts | 0 .../models/filter.interface.ts | 0 .../models/filterChangedArgs.interface.ts | 0 .../models/filterCondition.interface.ts | 0 .../models/filterConditionOption.interface.ts | 0 .../models/formElementType.ts | 0 .../models/formatter.interface.ts | 0 ...graphqlCursorPaginationOption.interface.ts | 6 + .../graphqlPaginationOption.interface.ts | 5 + .../models/graphqlServiceOption.interface.ts | 9 + .../models/gridOption.interface.ts | 1 - .../angular-slickgrid}/models/index.ts | 3 + .../models/odataOption.interface.ts | 0 .../models/pagination.interface.ts | 0 .../models/paginationChangedArgs.interface.ts | 0 .../models/sortChangedArgs.interface.ts | 0 .../models/sorter.interface.ts | 0 .../modules/angular-slickgrid.module.ts | 2 + .../services/filter.service.ts | 7 +- .../services/global-utilities.ts | 2 +- .../services/graphql.service.ts | 129 + .../services/grid-odata.service.ts | 11 +- .../angular-slickgrid}/services/index.ts | 1 + .../services/mouse.service.spec.ts | 0 .../services/mouse.service.ts | 4 +- .../services/odata.service.ts | 4 +- .../services/resizer.service.ts | 8 +- .../services/sort.service.spec.ts | 0 .../services/sort.service.ts | 0 .../sorters/dateIsoSorter.ts | 4 +- .../angular-slickgrid}/sorters/dateSorter.ts | 4 +- .../sorters/dateUsShortSorter.ts | 4 +- .../sorters/dateUsSorter.ts | 4 +- .../angular-slickgrid}/sorters/index.ts | 0 .../sorters/numericSorter.ts | 2 +- .../sorters/stringSorter.ts | 2 +- .../angular-slickgrid}/styles/_variables.scss | 0 .../styles/slick-bootstrap.scss | 0 .../styles/slick-controls.scss | 0 .../styles/slick-default-theme.scss | 0 .../angular-slickgrid}/styles/slick-grid.scss | 0 .../styles/slick-pagination.component.scss | 0 .../styles/slick-plugins.scss | 0 .../styles/slickgrid-examples.scss | 0 .../styles/slickgrid-theme-bootstrap.scss | 0 .../styles/slickgrid-custom-variables.scss | 4 +- src/assets/.gitkeep | 0 .../assets/data/customers_100.json | 0 .../assets/data/customers_100_ASC.json | 0 .../assets/data/customers_100_DESC.json | 0 src/components/slick-pagination.component.ts | 247 - .../environments/environment.prod.ts | 0 {demo/src => src}/environments/environment.ts | 0 {demo/src => src}/favicon.ico | Bin .../stringFilterCondition.ts | 19 - {demo/src => src}/index.html | 2 +- {demo/src => src}/main.ts | 3 +- {demo/src => src}/polyfills.ts | 28 +- src/styles.scss | 10 + src/styles/_variables.scss | 87 - src/styles/slick-bootstrap.scss | 209 - src/styles/slick-controls.scss | 65 - src/styles/slick-default-theme.scss | 298 - src/styles/slick-grid.scss | 303 - src/styles/slick-plugins.scss | 109 - src/styles/slickgrid-examples.scss | 204 - src/styles/slickgrid-theme-bootstrap.scss | 6 - {demo/src => src}/test.ts | 0 {demo/src => src}/tsconfig.app.json | 5 +- {demo/src => src}/tsconfig.spec.json | 0 {demo/src => src}/typings.d.ts | 4 + tests/services/sum.service.spec.ts | 23 - tsconfig-build.json | 38 - tsconfig.json | 43 +- tslint.json | 279 +- vscode.code-workspace | 11 + yarn.lock | 7862 +++++++++ 272 files changed, 19440 insertions(+), 11636 deletions(-) rename demo/.angular-cli.json => .angular-cli.json (60%) delete mode 100644 .travis.yml create mode 100644 .vscode/launch.json delete mode 100644 CHANGELOG.md delete mode 100644 LICENSE delete mode 100644 angular-slickgrid.ts delete mode 100644 build.js delete mode 100644 demo/.angulardoc.json delete mode 100644 demo/.editorconfig delete mode 100644 demo/.gitignore delete mode 100644 demo/README.md delete mode 100644 demo/karma.conf.js delete mode 100644 demo/package.json delete mode 100644 demo/src/styles.scss delete mode 100644 demo/tsconfig.json delete mode 100644 demo/tslint.json delete mode 100644 dist/LICENSE delete mode 100644 dist/bundles/angular-slickgrid.umd.min.js delete mode 100644 dist/bundles/angular-slickgrid.umd.min.js.map delete mode 100644 dist/modules/angular-slickgrid.es5.js delete mode 100644 dist/modules/angular-slickgrid.es5.js.map delete mode 100644 dist/modules/angular-slickgrid.js delete mode 100644 dist/modules/angular-slickgrid.js.map delete mode 100644 dist/src/angular-slickgrid.d.ts delete mode 100644 dist/src/components/angular-slickgrid.component.d.ts delete mode 100644 dist/src/components/slick-pagination.component.d.ts delete mode 100644 dist/src/filter-conditions/booleanFilterCondition.d.ts delete mode 100644 dist/src/filter-conditions/dateFilterCondition.d.ts delete mode 100644 dist/src/filter-conditions/dateIsoFilterCondition.d.ts delete mode 100644 dist/src/filter-conditions/dateUsFilterCondition.d.ts delete mode 100644 dist/src/filter-conditions/dateUsShortFilterCondition.d.ts delete mode 100644 dist/src/filter-conditions/dateUtcFilterCondition.d.ts delete mode 100644 dist/src/filter-conditions/executeMappedCondition.d.ts delete mode 100644 dist/src/filter-conditions/filterUtilities.d.ts delete mode 100644 dist/src/filter-conditions/index.d.ts delete mode 100644 dist/src/filter-conditions/numberFilterCondition.d.ts delete mode 100644 dist/src/filter-conditions/stringFilterCondition.d.ts delete mode 100644 dist/src/filter-templates/index.d.ts delete mode 100644 dist/src/filter-templates/inputFilterTemplate.d.ts delete mode 100644 dist/src/filter-templates/selectFilterTemplate.d.ts delete mode 100644 dist/src/formatters/CheckboxFormatter.d.ts delete mode 100644 dist/src/formatters/CheckmarkFormatter.d.ts delete mode 100644 dist/src/formatters/ProgressBarFormatter.d.ts delete mode 100644 dist/src/formatters/dateIsoFormatter.d.ts delete mode 100644 dist/src/formatters/dateTimeIsoAmPmFormatter.d.ts delete mode 100644 dist/src/formatters/dateTimeUsAmPmFormatter.d.ts delete mode 100644 dist/src/formatters/dateTimeUsFormatter.d.ts delete mode 100644 dist/src/formatters/dateUsFormatter.d.ts delete mode 100644 dist/src/formatters/index.d.ts delete mode 100644 dist/src/formatters/percentCompleteBarFormatter.d.ts delete mode 100644 dist/src/formatters/percentCompleteFormatter.d.ts delete mode 100644 dist/src/formatters/yesNoFormatter.d.ts delete mode 100644 dist/src/global-grid-options.d.ts delete mode 100644 dist/src/models/autoResizeOption.interface.d.ts delete mode 100644 dist/src/models/caseType.d.ts delete mode 100644 dist/src/models/column.interface.d.ts delete mode 100644 dist/src/models/columnFilter.interface.d.ts delete mode 100644 dist/src/models/columnFilters.interface.d.ts delete mode 100644 dist/src/models/fieldType.d.ts delete mode 100644 dist/src/models/filter.interface.d.ts delete mode 100644 dist/src/models/filterChangedArgs.interface.d.ts delete mode 100644 dist/src/models/filterCondition.interface.d.ts delete mode 100644 dist/src/models/filterConditionOption.interface.d.ts delete mode 100644 dist/src/models/formElementType.d.ts delete mode 100644 dist/src/models/formatter.interface.d.ts delete mode 100644 dist/src/models/gridoption.interface.d.ts delete mode 100644 dist/src/models/odataOption.interface.d.ts delete mode 100644 dist/src/models/pagination.interface.d.ts delete mode 100644 dist/src/models/paginationChangedArgs.interface.d.ts delete mode 100644 dist/src/models/sortChangedArgs.interface.d.ts delete mode 100644 dist/src/models/sorter.interface.d.ts delete mode 100644 dist/src/modules/angular-slickgrid.module.d.ts delete mode 100644 dist/src/services/filter.service.d.ts delete mode 100644 dist/src/services/global-utilities.d.ts delete mode 100644 dist/src/services/grid-odata.service.d.ts delete mode 100644 dist/src/services/mouse.service.d.ts delete mode 100644 dist/src/services/odata.service.d.ts delete mode 100644 dist/src/services/resizer.service.d.ts delete mode 100644 dist/src/services/sort.service.d.ts delete mode 100644 dist/src/sorters/dateIsoSorter.d.ts delete mode 100644 dist/src/sorters/dateSorter.d.ts delete mode 100644 dist/src/sorters/dateUsShortSorter.d.ts delete mode 100644 dist/src/sorters/dateUsSorter.d.ts delete mode 100644 dist/src/sorters/index.d.ts delete mode 100644 dist/src/sorters/numericSorter.d.ts delete mode 100644 dist/src/sorters/stringSorter.d.ts rename {demo/e2e => e2e}/app.e2e-spec.ts (86%) rename {demo/e2e => e2e}/app.po.ts (100%) rename {demo/e2e => e2e}/tsconfig.e2e.json (100%) create mode 100644 ng-package.json rename demo/protractor.conf.js => protractor.conf.js (100%) delete mode 100644 rollup.config.js delete mode 100644 screenshots/columnPicker.png delete mode 100644 screenshots/filter_and_sort.png delete mode 100644 screenshots/formatters.png delete mode 100644 screenshots/pagination.png delete mode 100644 scripts/map-sources.js delete mode 100644 spec.bundle.js delete mode 100644 src/angular-slickgrid.ts rename {demo/src => src}/app/app-routing.module.ts (82%) rename {demo/src => src}/app/app.component.html (91%) rename {demo/src => src}/app/app.component.scss (100%) rename {demo/src => src}/app/app.component.spec.ts (88%) rename {demo/src => src}/app/app.component.ts (84%) rename {demo/src => src}/app/app.module.ts (63%) rename {demo/src => src}/app/examples/grid-backend.component.html (100%) rename {demo/src => src}/app/examples/grid-backend.component.scss (100%) create mode 100644 src/app/examples/grid-backend.component.spec.ts rename {demo/src => src}/app/examples/grid-backend.component.ts (93%) rename {demo/src => src}/app/examples/grid-basic.component.html (100%) rename {demo/src => src}/app/examples/grid-basic.component.scss (100%) rename {demo/src => src}/app/examples/grid-basic.component.ts (87%) rename {demo/src => src}/app/examples/grid-clientside.component.html (100%) rename {demo/src => src}/app/examples/grid-clientside.component.scss (100%) rename {demo/src => src}/app/examples/grid-clientside.component.ts (94%) rename {demo/src => src}/app/examples/grid-formatter.component.html (100%) rename {demo/src => src}/app/examples/grid-formatter.component.scss (100%) rename {demo/src => src}/app/examples/grid-formatter.component.ts (93%) create mode 100644 src/app/examples/grid-graphql.component.html rename demo/src/assets/.gitkeep => src/app/examples/grid-graphql.component.scss (100%) create mode 100644 src/app/examples/grid-graphql.component.ts rename {demo/src => src}/app/examples/grid-odata.component.html (100%) rename {demo/src => src}/app/examples/grid-odata.component.scss (100%) create mode 100644 src/app/examples/grid-odata.component.spec.ts rename {demo/src => src}/app/examples/grid-odata.component.ts (96%) create mode 100644 src/app/modules/angular-slickgrid.ts rename src/{ => app/modules/angular-slickgrid}/components/angular-slickgrid.component.ts (89%) create mode 100644 src/app/modules/angular-slickgrid/components/slick-pagination.component.html create mode 100644 src/app/modules/angular-slickgrid/components/slick-pagination.component.scss create mode 100644 src/app/modules/angular-slickgrid/components/slick-pagination.component.ts rename src/{ => app/modules/angular-slickgrid}/filter-conditions/booleanFilterCondition.ts (61%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/dateFilterCondition.ts (83%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/dateIsoFilterCondition.ts (81%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/dateUsFilterCondition.ts (81%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/dateUsShortFilterCondition.ts (81%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/dateUtcFilterCondition.ts (85%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/executeMappedCondition.ts (96%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/filterUtilities.ts (94%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/index.ts (100%) rename src/{ => app/modules/angular-slickgrid}/filter-conditions/numberFilterCondition.ts (63%) create mode 100644 src/app/modules/angular-slickgrid/filter-conditions/stringFilterCondition.ts rename src/{ => app/modules/angular-slickgrid}/filter-templates/index.ts (66%) rename src/{ => app/modules/angular-slickgrid}/filter-templates/inputFilterTemplate.ts (66%) rename src/{ => app/modules/angular-slickgrid}/filter-templates/selectFilterTemplate.ts (84%) rename src/{ => app/modules/angular-slickgrid}/formatters/checkboxFormatter.ts (100%) rename src/{ => app/modules/angular-slickgrid}/formatters/checkmarkFormatter.ts (100%) rename src/{ => app/modules/angular-slickgrid}/formatters/dateIsoFormatter.ts (91%) rename src/{ => app/modules/angular-slickgrid}/formatters/dateTimeIsoAmPmFormatter.ts (91%) rename src/{ => app/modules/angular-slickgrid}/formatters/dateTimeIsoFormatter.ts (91%) rename src/{ => app/modules/angular-slickgrid}/formatters/dateTimeUsAmPmFormatter.ts (91%) rename src/{ => app/modules/angular-slickgrid}/formatters/dateTimeUsFormatter.ts (91%) rename src/{ => app/modules/angular-slickgrid}/formatters/dateUsFormatter.ts (91%) rename src/{ => app/modules/angular-slickgrid}/formatters/index.ts (83%) rename src/{ => app/modules/angular-slickgrid}/formatters/percentCompleteBarFormatter.ts (100%) rename src/{ => app/modules/angular-slickgrid}/formatters/percentCompleteFormatter.ts (100%) rename src/{ => app/modules/angular-slickgrid}/formatters/progressBarFormatter.ts (100%) rename src/{ => app/modules/angular-slickgrid}/formatters/yesNoFormatter.ts (100%) rename src/{ => app/modules/angular-slickgrid}/global-grid-options.ts (90%) rename src/{ => app/modules/angular-slickgrid}/models/autoResizeOption.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/caseType.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/column.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/columnFilter.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/columnFilters.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/fieldType.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/filter.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/filterChangedArgs.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/filterCondition.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/filterConditionOption.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/formElementType.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/formatter.interface.ts (100%) create mode 100644 src/app/modules/angular-slickgrid/models/graphqlCursorPaginationOption.interface.ts create mode 100644 src/app/modules/angular-slickgrid/models/graphqlPaginationOption.interface.ts create mode 100644 src/app/modules/angular-slickgrid/models/graphqlServiceOption.interface.ts rename src/{ => app/modules/angular-slickgrid}/models/gridOption.interface.ts (97%) rename src/{ => app/modules/angular-slickgrid}/models/index.ts (80%) rename src/{ => app/modules/angular-slickgrid}/models/odataOption.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/pagination.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/paginationChangedArgs.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/sortChangedArgs.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/models/sorter.interface.ts (100%) rename src/{ => app/modules/angular-slickgrid}/modules/angular-slickgrid.module.ts (92%) rename src/{ => app/modules/angular-slickgrid}/services/filter.service.ts (95%) rename src/{ => app/modules/angular-slickgrid}/services/global-utilities.ts (96%) create mode 100644 src/app/modules/angular-slickgrid/services/graphql.service.ts rename src/{ => app/modules/angular-slickgrid}/services/grid-odata.service.ts (94%) rename src/{ => app/modules/angular-slickgrid}/services/index.ts (85%) rename src/{ => app/modules/angular-slickgrid}/services/mouse.service.spec.ts (100%) rename src/{ => app/modules/angular-slickgrid}/services/mouse.service.ts (74%) rename src/{ => app/modules/angular-slickgrid}/services/odata.service.ts (99%) rename src/{ => app/modules/angular-slickgrid}/services/resizer.service.ts (94%) rename src/{ => app/modules/angular-slickgrid}/services/sort.service.spec.ts (100%) rename src/{ => app/modules/angular-slickgrid}/services/sort.service.ts (100%) rename src/{ => app/modules/angular-slickgrid}/sorters/dateIsoSorter.ts (87%) rename src/{ => app/modules/angular-slickgrid}/sorters/dateSorter.ts (86%) rename src/{ => app/modules/angular-slickgrid}/sorters/dateUsShortSorter.ts (87%) rename src/{ => app/modules/angular-slickgrid}/sorters/dateUsSorter.ts (87%) rename src/{ => app/modules/angular-slickgrid}/sorters/index.ts (100%) rename src/{ => app/modules/angular-slickgrid}/sorters/numericSorter.ts (85%) rename src/{ => app/modules/angular-slickgrid}/sorters/stringSorter.ts (73%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/_variables.scss (100%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/slick-bootstrap.scss (100%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/slick-controls.scss (100%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/slick-default-theme.scss (100%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/slick-grid.scss (100%) rename src/{ => app/modules/angular-slickgrid}/styles/slick-pagination.component.scss (100%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/slick-plugins.scss (100%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/slickgrid-examples.scss (100%) rename {demo/src/app => src/app/modules/angular-slickgrid}/styles/slickgrid-theme-bootstrap.scss (100%) rename {demo/src => src}/app/styles/slickgrid-custom-variables.scss (81%) create mode 100644 src/assets/.gitkeep rename {demo/src => src}/assets/data/customers_100.json (100%) rename {demo/src => src}/assets/data/customers_100_ASC.json (100%) rename {demo/src => src}/assets/data/customers_100_DESC.json (100%) delete mode 100644 src/components/slick-pagination.component.ts rename {demo/src => src}/environments/environment.prod.ts (100%) rename {demo/src => src}/environments/environment.ts (100%) rename {demo/src => src}/favicon.ico (100%) delete mode 100644 src/filter-conditions/stringFilterCondition.ts rename {demo/src => src}/index.html (89%) rename {demo/src => src}/main.ts (76%) rename {demo/src => src}/polyfills.ts (81%) create mode 100644 src/styles.scss delete mode 100644 src/styles/_variables.scss delete mode 100644 src/styles/slick-bootstrap.scss delete mode 100644 src/styles/slick-controls.scss delete mode 100644 src/styles/slick-default-theme.scss delete mode 100644 src/styles/slick-grid.scss delete mode 100644 src/styles/slick-plugins.scss delete mode 100644 src/styles/slickgrid-examples.scss delete mode 100644 src/styles/slickgrid-theme-bootstrap.scss rename {demo/src => src}/test.ts (100%) rename {demo/src => src}/tsconfig.app.json (71%) rename {demo/src => src}/tsconfig.spec.json (100%) rename {demo/src => src}/typings.d.ts (64%) delete mode 100644 tests/services/sum.service.spec.ts delete mode 100644 tsconfig-build.json create mode 100644 vscode.code-workspace create mode 100644 yarn.lock 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..44361f80c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,13 +1,46 @@ -$ cat .gitignore -node_modules -bower_components +# See http://help.github.com/ignore-files/ for more about ignoring files. + +# compiled output +/dist +/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..0dd23315c 100644 --- a/README.md +++ b/README.md @@ -2,68 +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 was closed some time ago by his author 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 (and more) 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) -- Integrated Plugins - - Column Picker (show/hide any column by doing `right+click` in the header, click [here to see print screen](/screenshots/columnPicker.png)). -- Server side - - Filtering - - Sorting - - Pagination (which is in itself another Angular component) - - All of these functionalities are expandables and currently ships with a simple OData service - - customizable with your own services by using `onFilterChanged()`, `onPaginationChanged()` and `onSortChanged()`. - - extra services might come in the future (you could add yours and if you do, please make PR) -- 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 which brings a lot of functionalities (sort, grouping, and more) - - 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, not in necessarily in order of execution) -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) -- Row selection, will probably provide a `onRowsChanged()` in the `gridOptions` object -- Cell click, will probably provide a `onCellClicked()` in the `gridOptions` object - -## 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 other theme if you wish to. If you create a new theme, please submit a PR). - -### Slickgrid example with Formatters (last column shown is a custom Formatter) - -![Default Slickgrid Example](/screenshots/formatters.png) - -### Filter and Sort (clientside with DataView) - -![Slickgrid Server Side](/screenshots/filter_and_sort.png) - -### Slickgrid Example with Server Side (Filter/Sort/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/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/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..5586b242a 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.0-beta", + "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" +} \ No newline at end of file diff --git a/dist/public_api.d.ts b/dist/public_api.d.ts index 892cf34d9..2b5a3f571 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'; diff --git a/dist/src/angular-slickgrid.d.ts b/dist/src/angular-slickgrid.d.ts deleted file mode 100644 index 6b93e5ae3..000000000 --- a/dist/src/angular-slickgrid.d.ts +++ /dev/null @@ -1,18 +0,0 @@ -export { CaseType } from './models/caseType'; -export { Column } from './models/column.interface'; -export { Formatter } from './models/formatter.interface'; -export { GridOption } from './models/gridOption.interface'; -export { FormElementType } from './models/formElementType'; -export { FieldType } from './models/fieldType'; -export { FilterConditions } from './filter-conditions'; -export { FilterTemplates } from './filter-templates'; -export { Formatters } from './formatters'; -export { Sorters } from './sorters'; -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 { GridOdataService } from './services/grid-odata.service'; -export { SlickPaginationComponent } from './components/slick-pagination.component'; -export { AngularSlickgridComponent } from './components/angular-slickgrid.component'; -export { AngularSlickgridModule } from './modules/angular-slickgrid.module'; diff --git a/dist/src/components/angular-slickgrid.component.d.ts b/dist/src/components/angular-slickgrid.component.d.ts deleted file mode 100644 index 804301ea2..000000000 --- a/dist/src/components/angular-slickgrid.component.d.ts +++ /dev/null @@ -1,40 +0,0 @@ -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'; -export declare class AngularSlickgridComponent implements AfterViewInit, OnInit { - private resizer; - private mouseService; - private filterService; - private sortService; - private _dataset; - private _dataView; - private _gridOptions; - private _columnFilters; - grid: any; - gridPaginationOptions: GridOption; - gridHeightString: string; - gridWidthString: string; - showPagination: boolean; - onFilter: any; - gridId: string; - columnDefinitions: Column[]; - gridOptions: GridOption; - gridHeight: number; - gridWidth: number; - dataset: any[]; - constructor(resizer: ResizerService, mouseService: MouseService, filterService: FilterService, sortService: SortService); - ngOnInit(): void; - ngAfterViewInit(): void; - attachDifferentHooks(grid: any, options: GridOption, dataView: any): void; - attachResizeHook(grid: any, options: GridOption): void; - mergeGridOptions(): GridOption; - /** Toggle the filter row displayed on first row */ - showHeaderRow(isShowing: boolean): boolean; - /** Toggle the filter row displayed on first row */ - toggleHeaderRow(): boolean; - refreshGridData(dataset: any): void; -} diff --git a/dist/src/components/slick-pagination.component.d.ts b/dist/src/components/slick-pagination.component.d.ts deleted file mode 100644 index 02642044e..000000000 --- a/dist/src/components/slick-pagination.component.d.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { OnInit, AfterViewInit } from '@angular/core'; -import { GridOption } from './../models/gridOption.interface'; -export declare class SlickPaginationComponent implements AfterViewInit, OnInit { - private _gridPaginationOptions; - gridPaginationOptions: GridOption; - grid: any; - dataFrom: number; - dataTo: number; - itemsPerPage: number; - pageCount: number; - pageNumber: number; - totalItems: number; - paginationCallback: Function; - paginationPageSizes: number[]; - constructor(); - ngOnInit(): void; - ngAfterViewInit(): void; - ceil(number: number): number; - onChangeItemPerPage(event: any): void; - changeToFirstPage(event: any): void; - changeToLastPage(event: any): void; - changeToNextPage(event: any): void; - changeToPreviousPage(event: any): void; - gotoFirstPage(): void; - refreshPagination(): void; - onPageChanged(event?: Event, pageNumber?: number): void; - recalculateFromToIndexes(): void; -} 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/executeMappedCondition.d.ts b/dist/src/filter-conditions/executeMappedCondition.d.ts deleted file mode 100644 index dd0b32466..000000000 --- a/dist/src/filter-conditions/executeMappedCondition.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterCondition } from '../models/filterCondition.interface'; -export declare const executeMappedCondition: FilterCondition; diff --git a/dist/src/filter-conditions/filterUtilities.d.ts b/dist/src/filter-conditions/filterUtilities.d.ts deleted file mode 100644 index 7f7d89211..000000000 --- a/dist/src/filter-conditions/filterUtilities.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare const mapDateFormatByFieldType: Function; -export declare const testFilterCondition: Function; diff --git a/dist/src/filter-conditions/index.d.ts b/dist/src/filter-conditions/index.d.ts deleted file mode 100644 index 1925c6b11..000000000 --- a/dist/src/filter-conditions/index.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { FilterConditionOption } from './../models/filterConditionOption.interface'; -export declare const FilterConditions: { - executeMappedCondition: (options: FilterConditionOption) => boolean; - booleanFilter: (options: FilterConditionOption) => boolean; - dateFilter: (options: FilterConditionOption) => boolean; - dateIsoFilter: (options: FilterConditionOption) => boolean; - dateUtcFilter: (options: FilterConditionOption) => boolean; - dateUsFilter: (options: FilterConditionOption) => boolean; - dateUsShortFilter: (options: FilterConditionOption) => boolean; - numberFilter: (options: FilterConditionOption) => boolean; - stringFilter: (options: FilterConditionOption) => boolean; - testFilter: Function; -}; 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/index.d.ts b/dist/src/filter-templates/index.d.ts deleted file mode 100644 index 3cdc52d94..000000000 --- a/dist/src/filter-templates/index.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { Filter } from './../models/filter.interface'; -export declare const FilterTemplates: { - input: Filter; - select: Filter; -}; 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/formatters/CheckboxFormatter.d.ts b/dist/src/formatters/CheckboxFormatter.d.ts deleted file mode 100644 index affed49f0..000000000 --- a/dist/src/formatters/CheckboxFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const checkboxFormatter: Formatter; diff --git a/dist/src/formatters/CheckmarkFormatter.d.ts b/dist/src/formatters/CheckmarkFormatter.d.ts deleted file mode 100644 index 1e46e42db..000000000 --- a/dist/src/formatters/CheckmarkFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const checkmarkFormatter: Formatter; diff --git a/dist/src/formatters/ProgressBarFormatter.d.ts b/dist/src/formatters/ProgressBarFormatter.d.ts deleted file mode 100644 index 7d965b875..000000000 --- a/dist/src/formatters/ProgressBarFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const progressBarFormatter: Formatter; diff --git a/dist/src/formatters/dateIsoFormatter.d.ts b/dist/src/formatters/dateIsoFormatter.d.ts deleted file mode 100644 index 5c492d64f..000000000 --- a/dist/src/formatters/dateIsoFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const dateIsoFormatter: Formatter; diff --git a/dist/src/formatters/dateTimeIsoAmPmFormatter.d.ts b/dist/src/formatters/dateTimeIsoAmPmFormatter.d.ts deleted file mode 100644 index d596cfb61..000000000 --- a/dist/src/formatters/dateTimeIsoAmPmFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const dateTimeIsoAmPmFormatter: Formatter; diff --git a/dist/src/formatters/dateTimeUsAmPmFormatter.d.ts b/dist/src/formatters/dateTimeUsAmPmFormatter.d.ts deleted file mode 100644 index 65cae48e2..000000000 --- a/dist/src/formatters/dateTimeUsAmPmFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const dateTimeUsAmPmFormatter: Formatter; diff --git a/dist/src/formatters/dateTimeUsFormatter.d.ts b/dist/src/formatters/dateTimeUsFormatter.d.ts deleted file mode 100644 index d06c38850..000000000 --- a/dist/src/formatters/dateTimeUsFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const dateTimeUsFormatter: Formatter; diff --git a/dist/src/formatters/dateUsFormatter.d.ts b/dist/src/formatters/dateUsFormatter.d.ts deleted file mode 100644 index a69fb53f1..000000000 --- a/dist/src/formatters/dateUsFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const dateUsFormatter: Formatter; diff --git a/dist/src/formatters/index.d.ts b/dist/src/formatters/index.d.ts deleted file mode 100644 index 32d7526d7..000000000 --- a/dist/src/formatters/index.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Column } from './../models/column.interface'; -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; - dateIso: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; - dateTimeIso: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; - dateTimeIsoAmPm: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; - dateUs: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; - dateTimeUs: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; - dateTimeUsAmPm: (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; - 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; -}; diff --git a/dist/src/formatters/percentCompleteBarFormatter.d.ts b/dist/src/formatters/percentCompleteBarFormatter.d.ts deleted file mode 100644 index b13aec950..000000000 --- a/dist/src/formatters/percentCompleteBarFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const percentCompleteBarFormatter: Formatter; diff --git a/dist/src/formatters/percentCompleteFormatter.d.ts b/dist/src/formatters/percentCompleteFormatter.d.ts deleted file mode 100644 index c629cba6c..000000000 --- a/dist/src/formatters/percentCompleteFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const percentCompleteFormatter: Formatter; diff --git a/dist/src/formatters/yesNoFormatter.d.ts b/dist/src/formatters/yesNoFormatter.d.ts deleted file mode 100644 index de3705b54..000000000 --- a/dist/src/formatters/yesNoFormatter.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Formatter } from './../models/formatter.interface'; -export declare const yesNoFormatter: Formatter; diff --git a/dist/src/global-grid-options.d.ts b/dist/src/global-grid-options.d.ts deleted file mode 100644 index be82183f5..000000000 --- a/dist/src/global-grid-options.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { GridOption } from './models/gridOption.interface'; -/** - * Options that can be passed to the Bootstrap-Datetimepicker directly - */ -export declare const GlobalGridOptions: GridOption; diff --git a/dist/src/models/autoResizeOption.interface.d.ts b/dist/src/models/autoResizeOption.interface.d.ts deleted file mode 100644 index d394331b9..000000000 --- a/dist/src/models/autoResizeOption.interface.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -export interface AutoResizeOption { - bottomPadding?: number; - containerId?: string; - minHeight?: any; - minWidth?: any; - sidePadding?: number; -} diff --git a/dist/src/models/caseType.d.ts b/dist/src/models/caseType.d.ts deleted file mode 100644 index 1b0778848..000000000 --- a/dist/src/models/caseType.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export declare enum CaseType { - camelCase = 0, - pascalCase = 1, - snakeCase = 2, -} diff --git a/dist/src/models/column.interface.d.ts b/dist/src/models/column.interface.d.ts deleted file mode 100644 index e58c5291d..000000000 --- a/dist/src/models/column.interface.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { FieldType } from './fieldType'; -import { Formatter } from './formatter.interface'; -import { Sorter } from './sorter.interface'; -export interface Column { - cannotTriggerInsert?: boolean; - cssClass?: string; - colspan?: number | '*'; - defaultSortAsc?: boolean; - editor?: any; - field: string; - filter?: any; - filterable?: boolean; - filterSearchType?: FieldType; - filterTemplate?: any; - focusable?: boolean; - formatter?: Formatter; - headerCssClass?: string; - id: number | string; - isEditable?: boolean; - isHidden?: boolean; - json?: any; - key?: string; - manuallySized?: boolean; - maxWidth?: number; - minWidth?: number; - name?: string; - previousWidth?: number; - resizable?: boolean; - rerenderOnResize?: boolean; - showHidden?: boolean; - selectable?: boolean; - sortable?: boolean; - sorter?: Sorter; - toolTip?: string; - type?: FieldType; - validator?: any; - width?: number; -} diff --git a/dist/src/models/columnFilter.interface.d.ts b/dist/src/models/columnFilter.interface.d.ts deleted file mode 100644 index dfe1da24c..000000000 --- a/dist/src/models/columnFilter.interface.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Column } from './column.interface'; -export interface ColumnFilter { - bypassBackendQuery?: boolean; - columnId?: string; - columnDef: Column; - searchTerm: string | number; - listTerm?: any[]; - operator?: string; -} diff --git a/dist/src/models/columnFilters.interface.d.ts b/dist/src/models/columnFilters.interface.d.ts deleted file mode 100644 index 47ca0c65a..000000000 --- a/dist/src/models/columnFilters.interface.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { ColumnFilter } from './columnFilter.interface'; -export interface ColumnFilters { - [key: string]: ColumnFilter; -} diff --git a/dist/src/models/fieldType.d.ts b/dist/src/models/fieldType.d.ts deleted file mode 100644 index e65599670..000000000 --- a/dist/src/models/fieldType.d.ts +++ /dev/null @@ -1,15 +0,0 @@ -export declare enum 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, -} diff --git a/dist/src/models/filter.interface.d.ts b/dist/src/models/filter.interface.d.ts deleted file mode 100644 index 4c4918222..000000000 --- a/dist/src/models/filter.interface.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Column } from './column.interface'; -export declare type Filter = (searchTerm: string, columnDef: Column) => string; diff --git a/dist/src/models/filterChangedArgs.interface.d.ts b/dist/src/models/filterChangedArgs.interface.d.ts deleted file mode 100644 index 31bfcf49d..000000000 --- a/dist/src/models/filterChangedArgs.interface.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { ColumnFilters } from './columnFilters.interface'; -export interface FilterChangedArgs { - columnFilters: ColumnFilters; - grid: any; - searchTerm: string | number; -} diff --git a/dist/src/models/filterCondition.interface.d.ts b/dist/src/models/filterCondition.interface.d.ts deleted file mode 100644 index 00bb0cd12..000000000 --- a/dist/src/models/filterCondition.interface.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { FilterConditionOption } from './filterConditionOption.interface'; -export declare type FilterCondition = (options: FilterConditionOption) => boolean; diff --git a/dist/src/models/filterConditionOption.interface.d.ts b/dist/src/models/filterConditionOption.interface.d.ts deleted file mode 100644 index 4dc8e3e46..000000000 --- a/dist/src/models/filterConditionOption.interface.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { FieldType } from './fieldType'; -export interface FilterConditionOption { - operator: string; - cellValue: any; - fieldType: FieldType; - searchTerm: string; - filterSearchType?: FieldType; - cellValueLastChar?: string; -} diff --git a/dist/src/models/formElementType.d.ts b/dist/src/models/formElementType.d.ts deleted file mode 100644 index c07092e91..000000000 --- a/dist/src/models/formElementType.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export declare enum FormElementType { - input = 0, - multiSelect = 1, - select = 2, - textarea = 3, -} diff --git a/dist/src/models/formatter.interface.d.ts b/dist/src/models/formatter.interface.d.ts deleted file mode 100644 index b3c55f32f..000000000 --- a/dist/src/models/formatter.interface.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -import { Column } from './column.interface'; -export declare type Formatter = (row: number, cell: number, value: any, columnDef: Column, dataContext: any) => string; diff --git a/dist/src/models/gridoption.interface.d.ts b/dist/src/models/gridoption.interface.d.ts deleted file mode 100644 index 98466404e..000000000 --- a/dist/src/models/gridoption.interface.d.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { AutoResizeOption } from './autoResizeOption.interface'; -import { Pagination } from './pagination.interface'; -import { PaginationChangedArgs } from './paginationChangedArgs.interface'; -import { SortChangedArgs } from './sortChangedArgs.interface'; -export interface GridOption { - asyncEditorLoading?: boolean; - autoEdit?: boolean; - autoFitColumnsOnFirstLoad?: boolean; - autoResize?: AutoResizeOption; - cellHighlightCssClass?: string | null; - editable?: boolean; - enableAutoResize?: boolean; - enableColumnPicker?: boolean; - enableCellNavigation?: boolean; - enableColumnReorder?: boolean; - enableFiltering?: boolean; - enableMouseOverRow?: boolean; - enablePagination?: boolean; - enableSorting?: boolean; - enableTextSelectionOnCells?: boolean; - explicitInitialization?: boolean; - forceFitColumns?: boolean; - gridContainerId?: string; - gridId?: string; - headerRowHeight?: number; - multiColumnSort?: boolean; - pagination?: Pagination; - rowHeight?: number; - showHeaderRow?: boolean; - topPanelHeight?: number; - onFilterChanged?: (event: Event, args: any) => void; - onPaginationChanged?: (event: Event, args: PaginationChangedArgs) => void; - onSortChanged?: (event: Event, args: SortChangedArgs) => void; -} diff --git a/dist/src/models/odataOption.interface.d.ts b/dist/src/models/odataOption.interface.d.ts deleted file mode 100644 index edee4df65..000000000 --- a/dist/src/models/odataOption.interface.d.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { CaseType } from './caseType'; -export interface OdataOption { - caseType?: CaseType; - top?: number; - skip?: number; - filter?: string; - filterBy?: any; - filterBySeparator?: string; - filterQueue?: any[]; - orderBy?: string; - [key: string]: any; -} diff --git a/dist/src/models/pagination.interface.d.ts b/dist/src/models/pagination.interface.d.ts deleted file mode 100644 index 59cd45273..000000000 --- a/dist/src/models/pagination.interface.d.ts +++ /dev/null @@ -1,5 +0,0 @@ -export interface Pagination { - pageSizes: number[]; - pageSize: number; - totalItems: number; -} diff --git a/dist/src/models/paginationChangedArgs.interface.d.ts b/dist/src/models/paginationChangedArgs.interface.d.ts deleted file mode 100644 index 4645a0ae1..000000000 --- a/dist/src/models/paginationChangedArgs.interface.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -export interface PaginationChangedArgs { - newPage: number; - pageSize: number; -} diff --git a/dist/src/models/sortChangedArgs.interface.d.ts b/dist/src/models/sortChangedArgs.interface.d.ts deleted file mode 100644 index 9ce67fedf..000000000 --- a/dist/src/models/sortChangedArgs.interface.d.ts +++ /dev/null @@ -1,6 +0,0 @@ -export interface SortChangedArgs { - multiColumnSort?: boolean; - sortAsc: boolean; - sortCol?: any; - sortCols?: any[]; -} diff --git a/dist/src/models/sorter.interface.d.ts b/dist/src/models/sorter.interface.d.ts deleted file mode 100644 index e2b4d3478..000000000 --- a/dist/src/models/sorter.interface.d.ts +++ /dev/null @@ -1 +0,0 @@ -export declare type Sorter = (value1: any, value2: any, sortDirection: number) => number; diff --git a/dist/src/modules/angular-slickgrid.module.d.ts b/dist/src/modules/angular-slickgrid.module.d.ts deleted file mode 100644 index e436bfbc6..000000000 --- a/dist/src/modules/angular-slickgrid.module.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -export declare class AngularSlickgridModule { -} diff --git a/dist/src/services/filter.service.d.ts b/dist/src/services/filter.service.d.ts deleted file mode 100644 index ad06cee2d..000000000 --- a/dist/src/services/filter.service.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Column } from '../models/column.interface'; -import { ColumnFilters } from '../models/columnFilters.interface'; -import { GridOption } from '../models/gridOption.interface'; -export declare class FilterService { - _columnDefinitions: Column[]; - _columnFilters: ColumnFilters; - _dataView: any; - _grid: any; - _gridOptions: GridOption; - subscriber: any; - constructor(); - init(grid: any, gridOptions: GridOption, columnDefinitions: Column[], columnFilters: any): void; - /** - * Attach a backend filter hook to the grid - * @param grid SlickGrid Grid object - * @param gridOptions Grid Options object - */ - attachBackendOnFilter(): void; - testFilterCondition(operator: string, value1: any, value2: any): boolean | undefined; - /** - * Attach a local filter hook to the grid - * @param grid SlickGrid Grid object - * @param gridOptions Grid Options object - * @param dataView - */ - attachLocalOnFilter(dataView: any): void; - customFilter(item: any, args: any): boolean; - destroy(): void; - callbackSearchEvent(e: any, args: any): void; - addFilterTemplateToHeaderRow(): void; - private keepColumnFilters(searchTerm, listTerm, columnDef); - private triggerEvent(evt, args, e); -} diff --git a/dist/src/services/global-utilities.d.ts b/dist/src/services/global-utilities.d.ts deleted file mode 100644 index 5e7d1d077..000000000 --- a/dist/src/services/global-utilities.d.ts +++ /dev/null @@ -1,7 +0,0 @@ -interface StringConstructor { - allTitleCase(inputStr: string): string; - format(inputStr: string, args: any): string; - padZero(length: number): string; - trim(inputStr: string): string; - titleCase(inputStr: string): string; -} diff --git a/dist/src/services/grid-odata.service.d.ts b/dist/src/services/grid-odata.service.d.ts deleted file mode 100644 index ca38e4e7c..000000000 --- a/dist/src/services/grid-odata.service.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -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 { OdataService } from './odata.service'; -export declare class GridOdataService { - private odataService; - defaultSortBy: string; - minUserInactivityOnFilter: number; - constructor(odataService: OdataService); - buildQuery(): string; - initOptions(options: OdataOption): void; - removeColumnFilter(fieldName: string): void; - resetPaginationOptions(): void; - saveColumnFilter(fieldName: string, value: string, terms?: any[]): void; - onFilterChanged(event: Event, args: FilterChangedArgs): string; - onPaginationChanged(event: Event, args: PaginationChangedArgs): string; - onSortChanged(event: Event, args: SortChangedArgs): string; - /** - * Mapper for mathematical operators (ex.: <= is "le", > is "gt") - * @param string operator - * @returns string map - */ - private mapOperator(operator); - /** - * Parse a date passed as a string and return a Date object (if valid) - * @param string inputDateString - * @returns object Date - */ - private parseUtcDate(inputDateString, useUtc); -} diff --git a/dist/src/services/mouse.service.d.ts b/dist/src/services/mouse.service.d.ts deleted file mode 100644 index 5f97e3b91..000000000 --- a/dist/src/services/mouse.service.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare class MouseService { - attachOnMouseHover(grid: any): void; -} diff --git a/dist/src/services/odata.service.d.ts b/dist/src/services/odata.service.d.ts deleted file mode 100644 index 87125f50b..000000000 --- a/dist/src/services/odata.service.d.ts +++ /dev/null @@ -1,27 +0,0 @@ -import './global-utilities'; -import { OdataOption } from './../models/odataOption.interface'; -export declare class OdataService { - _columnFilters: any; - _defaultSortBy: string; - _odataOptions: OdataOption; - constructor(); - buildQuery(): string; - getFilterByColumn(columnName: string): string; - getFilterCount(): number; - readonly columnFilters: any[]; - options: OdataOption; - removeColumnFilter(fieldName: string): void; - saveColumnFilter(fieldName: string, value: any, searchTerms?: any[]): void; - /** - * Update the filter by a list of terms usually passed manually by the user as default filters - * @param {} filterOptions - * @returns {} - */ - updateFilterFromListTerms(filterOptions: any): void; - updateFilterFromTerm(filterOptions: any): void; - /** - * Change any OData options that will be used to build the query - * @param object options - */ - updateOptions(options: OdataOption): void; -} diff --git a/dist/src/services/resizer.service.d.ts b/dist/src/services/resizer.service.d.ts deleted file mode 100644 index c211c5eb9..000000000 --- a/dist/src/services/resizer.service.d.ts +++ /dev/null @@ -1,20 +0,0 @@ -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; - /** - * 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; - /** Resize the datagrid to fit the browser height & width */ - resizeGrid(grid: any, gridOptions: GridOption, newSizes?: { - height: number; - width: number; - }): void; -} diff --git a/dist/src/services/sort.service.d.ts b/dist/src/services/sort.service.d.ts deleted file mode 100644 index 7b13669ad..000000000 --- a/dist/src/services/sort.service.d.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { GridOption } from './../models/gridOption.interface'; -export declare class SortService { - subscriber: any; - constructor(); - /** - * Attach a backend sort (single/multi) hook to the grid - * @param grid SlickGrid Grid object - * @param gridOptions Grid Options object - */ - attachBackendOnSort(grid: any, gridOptions: GridOption): void; - /** - * Attach a local sort (single/multi) hook to the grid - * @param grid SlickGrid Grid object - * @param gridOptions Grid Options object - * @param dataView - */ - attachLocalOnSort(grid: any, gridOptions: GridOption, dataView: any): void; - destroy(): void; -} 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/index.d.ts b/dist/src/sorters/index.d.ts deleted file mode 100644 index 5c0d12084..000000000 --- a/dist/src/sorters/index.d.ts +++ /dev/null @@ -1,8 +0,0 @@ -export declare const Sorters: { - date: (value1: any, value2: any, sortDirection: number) => number; - dateIso: (value1: any, value2: any, sortDirection: number) => number; - dateUs: (value1: any, value2: any, sortDirection: number) => number; - dateUsShort: (value1: any, value2: any, sortDirection: number) => number; - numeric: (value1: any, value2: any, sortDirection: number) => number; - string: (value1: any, value2: any, sortDirection: number) => number; -}; 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/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": "AAAA;;;;;GAKG;ACLH;;;;GAIG;AAAA;;mCAEgC;AACnC,kCAAkC;AAKlC,qEAAqE;AAMrE,UAAU;AAMV,UAAU;AAUV,mCAAmC;AAMnC,YAAY;AAaZ,oHAAoH;AAcpH,mBAAmB;AAQnB,0BAA0B;ADnE1B,AAAA,QAAQ,CAAC;EACP,MAAM,EAAE,OAAO,GAChB;;AACD,AACE,oBADkB,CAClB,qBAAqB;AADvB,AAEE,oBAFkB,CAElB,oBAAoB,CAAC;EACnB,UAAU,ECO0B,wBAAuB,GDL5D;;AALH,AAOE,oBAPkB,CAOlB,qBAAqB,CAAC;EACpB,aAAa,EAAE,GAAG,CAAC,KAAK,CCAY,eAAe;EDCnD,UAAU,EAAE,oDAAkD,GAC/D;;AAVH,AAYE,oBAZkB,CAYlB,oBAAoB,CAAC;EACnB,YAAY,EAAE,GAAG,CAAC,KAAK,CCLa,eAAe;EDMnD,aAAa,EAAE,GAAG,CAAC,KAAK,CCNY,eAAe,GDOpD;;AAfH,AAiBE,oBAjBkB,CAiBlB,oBAAoB,AAAA,MAAM,CAAC;EACzB,UAAU,EAAE,wBAAmC,GAChD;;AAnBH,AAqBE,oBArBkB,CAqBlB,2BAA2B,CAAC;EAC1B,UAAU,EAAE,wBAAmC,CAAC,UAAU,GAC3D;;AAvBH,AAyBE,oBAzBkB,CAyBlB,gBAAgB,CAAC;EACf,UAAU,EChB0B,wBAAuB,GDiB5D;;AA3BH,AA6BE,oBA7BkB,CA6BlB,uBAAuB,CAAC;EACtB,UAAU,EAAE,OAAO;EACnB,aAAa,EAAE,CAAC,GACjB;;AAhCH,AAkCE,oBAlCkB,CAkClB,YAAY,CAAC;EACX,UAAU,EAAE,KAAK,GAClB;;AApCH,AAsCE,oBAtCkB,CAsClB,UAAU,CAAC;EACT,UAAU,EAAE,KAAK;EACjB,MAAM,EAAE,CAAC;EACT,WAAW,EAAE,IAAI,GA6ElB;EAtHH,AA2CI,oBA3CgB,CAsClB,UAAU,CAKR,WAAW,CAAC;IACV,UAAU,EAAE,KAAK;IAEjB,WAAW,EAAE,GAAG;IAChB,cAAc,EAAE,GAAG;IACnB,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,GAAG;IAClB,UAAU,EAAE,UAAU,GAoCvB;IAtFL,AA2CI,oBA3CgB,CAsClB,UAAU,CAKR,WAAW,AAST,QAAS,CAAC;MACR,YAAY,EAAE,GAAG;MACjB,uBAAuB,EAAE,IAAI;MAC7B,0BAA0B,EAAE,IAAI;MAChC,mBAAmB,EAAE,wBAAwB;MAC7C,sBAAsB,EAAE,wBAAwB;MAChD,kBAAkB,EAAE,IAAI;MACxB,cAAc,EAAE,wBAAwB,GACzC;IA5DP,AA2CI,oBA3CgB,CAsClB,UAAU,CAKR,WAAW,AAmBT,SAAU,CAAC;MACT,gBAAgB,EAAE,OAAkB,GACrC;IAhEP,AA2CI,oBA3CgB,CAsClB,UAAU,CAKR,WAAW,AAuBT,OAAQ,CAAC;MACP,YAAY,EAAE,KAAK;MACnB,YAAY,EAAE,KAAK;MACnB,YAAY,EAAE,GAAG;MAGjB,WAAW,EAAE,GAAG;MAChB,YAAY,EAAE,GAAG,GAYlB;MArFP,AA0EQ,oBA1EY,CAsClB,UAAU,CAKR,WAAW,AAuBT,OAAQ,CAQN,KAAK,AAAA,YAAY,CAAC;QAChB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,MAAM,EAAE,CAAC;QACT,MAAM,EAAE,CAAC;QACT,OAAO,EAAE,CAAC;QACV,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,CAAC;QACV,SAAS,EAAE,kBAAkB,GAC9B;EAnFT,AAwFU,oBAxFU,CAsClB,UAAU,AAkDR,IAAK,CAAC,WAAW,CAAC;IAChB,UAAU,ECvEwB,OAA4B,GD6E/D;IA/FL,AAwFU,oBAxFU,CAsClB,UAAU,AAkDR,IAAK,CAAC,WAAW,AAIf,SAAU,CAAC;MACT,gBAAgB,EAAE,OAAkB,GACrC;EA9FP,AAiGiB,oBAjGG,CAsClB,UAAU,AA2DR,WAAY,CAAC,WAAW,CAAC;IACvB,gBAAgB,EAAE,OAAkB,GAMrC;IAxGL,AAiGiB,oBAjGG,CAsClB,UAAU,AA2DR,WAAY,CAAC,WAAW,AAItB,SAAU,CAAC;MACT,gBAAgB,EAAE,GAAG,GACtB;EAvGP,AA0GqB,oBA1GD,CAsClB,UAAU,AAoER,WAAY,AAAA,IAAI,CAAC,WAAW,CAAC;IAC3B,gBAAgB,ECxFkB,OAA4B,GD8F/D;IAjHL,AA0GqB,oBA1GD,CAsClB,UAAU,AAoER,WAAY,AAAA,IAAI,CAAC,WAAW,AAI1B,SAAU,CAAC;MACT,gBAAgB,EAAE,KAAK,GACxB;EAhHP,AAsCE,oBAtCkB,CAsClB,UAAU,AA6ER,QAAS,CAAC;IACR,OAAO,EAAE,GAAG,GACb;;AArHL,AAwHE,oBAxHkB,CAwHlB,YAAY,CAAC;EACX,aAAa,EAAE,gBAAgB,GAChC;;AA1HH,AA4HE,oBA5HkB,CA4HlB,mBAAmB,CAAC;EAClB,KAAK,EAAE,GAAG;EACV,MAAM,EAAE,GAAG;EACX,YAAY,EAAE,GAAG,GASlB;EAxIH,AA4HE,oBA5HkB,CA4HlB,mBAAmB,AAKjB,SAAU,AAAA,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,GACjB;EAnIL,AA4HE,oBA5HkB,CA4HlB,mBAAmB,AASjB,UAAW,AAAA,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,GACjB;;AAvIL,AA0IE,oBA1IkB,CA0IlB,mBAAmB,CAAC;EAClB,KAAK,EAAE,IAAI;EACX,UAAU,EAAE,KAAK,GAClB;;AA7IH,AA+IE,oBA/IkB,CA+IlB,2BAA2B,CAAC;EAC1B,UAAU,EAAE,iBAAiB,GAC9B;;AAED,eAAe,CAAf,wBAAe;EACb,AAAA,IAAI;IACF,UAAU,EAAE,WAAW;EAEzB,AAAA,EAAE;IACA,UAAU,EAAE,IAAI;;AAIpB,kBAAkB,CAAlB,wBAAkB;EAChB,AAAA,IAAI;IACF,UAAU,EAAE,WAAW;EAEzB,AAAA,EAAE;IACA,UAAU,EAAE,IAAI;;AAjKtB,AAyKE,oBAzKkB,CAyKlB,wBAAwB,CAAC;EACvB,mBAAmB,EAAE,aAAa;EAClC,iBAAiB,EAAE,SAAS;EAC5B,WAAW,EAAE,iBAAiB;EAC9B,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,YAAY;EACrB,QAAQ,EAAE,QAAQ,GAOnB;;AAtLH,AAwLE,oBAxLkB,CAwLlB,kBAAkB,CAAC;EACjB,UAAU,EAAE,4BAA4B;EACxC,MAAM,EAAE,iBAAiB;EACzB,SAAS,EAAE,KAAK;EAChB,OAAO,EAAE,GAAG;EACZ,OAAO,EAAE,MAAM;EACf,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,QAAQ,GAgCnB;EAjOH,AAmMI,oBAnMgB,CAwLlB,kBAAkB,CAWhB,MAAM,CAAC;IACL,MAAM,EAAE,iBAAiB;IACzB,gBAAgB,EAAE,KAAK;IACvB,KAAK,EAAE,IAAI;IACX,OAAO,EAAE,GAAG;IACZ,MAAM,EAAE,aAAa,GACtB;EAzML,AA2MI,oBA3MgB,CAwLlB,kBAAkB,CAmBhB,OAAO,CAAC;IACN,MAAM,EAAE,iBAAiB;IACzB,SAAS,EAAE,GAAG;IACd,MAAM,EAAE,KAAK;IACb,UAAU,EAAE,GAAG;IACf,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,GAAG;IACZ,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,KAAK,GACb;EApNL,AAuNU,oBAvNU,CAwLlB,kBAAkB,CA8BhB,WAAW,GACL,KAAK,CAAC;IACR,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,GAAG;IAChB,YAAY,EAAE,IAAI,GACnB;EA3NP,AA6NU,oBA7NU,CAwLlB,kBAAkB,CA8BhB,WAAW,GAOL,KAAK,CAAA,AAAA,IAAC,CAAD,IAAC,AAAA,EAAW;IACnB,KAAK,EAAE,GAAG,GACX;;AA/NP,AAmOE,oBAnOkB,CAmOlB,KAAK,CAAC;EACJ,OAAO,EAAE,KAAK;EACd,aAAa,EAAE,GAAG,GACnB;;AAtOH,AAwOE,oBAxOkB,CAwOlB,sBAAsB,CAAC;EACrB,MAAM,EAAE,qBAAqB;EAC7B,OAAO,EAAE,OAAO;EAChB,MAAM,EAAE,OAAO;EACf,UAAU,EAAE,iBAAiB;EAC7B,MAAM,EAAE,CAAC,GACV;;AA9OH,AAgPE,oBAhPkB,CAgPlB,sBAAsB,CAAC;EACrB,mBAAmB,EAAE,aAAa;EAClC,iBAAiB,EAAE,SAAS;EAC5B,OAAO,EAAE,YAAY;EACrB,MAAM,EAAE,IAAI;EACZ,YAAY,EAAE,GAAG;EACjB,cAAc,EAAE,MAAM;EACtB,KAAK,EAAE,IAAI,GACZ;;AAxPH,AA0PE,oBA1PkB,CA0PlB,yBAAyB,CAAC;EACxB,OAAO,EAAE,YAAY;EACrB,cAAc,EAAE,MAAM,GACvB;;AA7PH,AA+PE,oBA/PkB,CA+PlB,sBAAsB,AAAA,MAAM,CAAC;EAC3B,YAAY,EAAE,OAAO,GACtB;;AAjQH,AAmQE,oBAnQkB,CAmQlB,eAAe;AAnQjB,AAoQE,oBApQkB,CAoQlB,aAAa;AApQf,AAqQE,oBArQkB,CAqQlB,uBAAuB,CAAC;EACtB,OAAO,EAAE,KAAK;EACd,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,GAAG,GACb;;AAzQH,AA2QgB,oBA3QI,CA2QlB,WAAW,GAAG,cAAc,CAAC;EAC3B,QAAQ,EAAE,QAAQ;EAClB,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,KAAK,EAAE,IAAI;EACX,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,SAAS,EAAE,IAAI;EACf,SAAS,EAAE,CAAC;EACZ,MAAM,EAAE,CAAC,GACV;;AArRH,AAuRE,oBAvRkB,CAuRlB,sBAAsB,CAAC;EACrB,OAAO,EAAE,GAAG;EACZ,cAAc,EAAE,IAAI;EACpB,UAAU,EAAE,WAAW;EACvB,MAAM,EAAE,IAAI;EACZ,OAAO,EAAE,KAAK,GACf" 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..ef9d2c955 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.0-beta", + "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..2b5a3f571 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'; 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 9b7315ba0ebeda21fd12ef3430e81b5084200ebe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23478 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 b#RX3Ku`yrn^#jh!&B#1cd|LeEmGA!nQnyeX diff --git a/screenshots/formatters.png b/screenshots/formatters.png deleted file mode 100644 index ae10fea71b16e44effca117997bb7e042171e3bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35759 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 diff --git a/screenshots/pagination.png b/screenshots/pagination.png deleted file mode 100644 index 7b1dbb115265584a76ca499e8bcb068f0d95764d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20178 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 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/src/angular-slickgrid.ts b/src/angular-slickgrid.ts deleted file mode 100644 index 3874d890b..000000000 --- a/src/angular-slickgrid.ts +++ /dev/null @@ -1,22 +0,0 @@ -// Public classes. -export { CaseType } from './models/caseType'; -export { Column } from './models/column.interface'; -export { Formatter } from './models/formatter.interface'; -export { GridOption } from './models/gridOption.interface'; -export { FormElementType } from './models/formElementType'; -export { FieldType } from './models/fieldType'; - -export { FilterConditions } from './filter-conditions'; -export { FilterTemplates } from './filter-templates'; -export { Formatters } from './formatters'; -export { Sorters } from './sorters'; - -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 { GridOdataService } from './services/grid-odata.service'; - -export { SlickPaginationComponent } from './components/slick-pagination.component'; -export { AngularSlickgridComponent } from './components/angular-slickgrid.component'; -export { AngularSlickgridModule } from './modules/angular-slickgrid.module'; 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/app/modules/angular-slickgrid.ts b/src/app/modules/angular-slickgrid.ts new file mode 100644 index 000000000..fb15eb529 --- /dev/null +++ b/src/app/modules/angular-slickgrid.ts @@ -0,0 +1,23 @@ +// Public classes. +export { CaseType } from './angular-slickgrid/models/caseType'; +export { Column } from './angular-slickgrid/models/column.interface'; +export { Formatter } from './angular-slickgrid/models/formatter.interface'; +export { GridOption } from './angular-slickgrid/models/gridOption.interface'; +export { FormElementType } from './angular-slickgrid/models/formElementType'; +export { FieldType } from './angular-slickgrid/models/fieldType'; + +export { FilterConditions } from './angular-slickgrid/filter-conditions'; +export { FilterTemplates } from './angular-slickgrid/filter-templates'; +export { Formatters } from './angular-slickgrid/formatters'; +export { Sorters } from './angular-slickgrid/sorters'; + +export { FilterService } from './angular-slickgrid/services/filter.service'; +export { MouseService } from './angular-slickgrid/services/mouse.service'; +export { ResizerService } from './angular-slickgrid/services/resizer.service'; +export { SortService } from './angular-slickgrid/services/sort.service'; +export { GraphqlService } from './angular-slickgrid/services/graphql.service'; +export { GridOdataService } from './angular-slickgrid/services/grid-odata.service'; + +export { SlickPaginationComponent } from './angular-slickgrid/components/slick-pagination.component'; +export { AngularSlickgridComponent } from './angular-slickgrid/components/angular-slickgrid.component'; +export { AngularSlickgridModule } from './angular-slickgrid/modules/angular-slickgrid.module'; 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/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/demo/src/typings.d.ts b/src/typings.d.ts similarity index 64% rename from demo/src/typings.d.ts rename to src/typings.d.ts index ef5c7bd62..c10225d3d 100644 --- a/demo/src/typings.d.ts +++ b/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/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"