diff --git a/LICENSE b/LICENSE index 8f456d3..d07bf85 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,6 @@ (The MIT License) -Copyright (c) 2012-2014 Marcin Warpechowski -Copyright (c) 2015 Handsoncode sp. z o.o. +Copyright (c) Handsoncode sp. z o.o. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/README.md b/README.md index 7b69ff6..5e368a6 100644 --- a/README.md +++ b/README.md @@ -1,47 +1,97 @@ -# angular-handsontable [![Build Status](https://travis-ci.org/handsontable/angular-handsontable.png?branch=master)](https://travis-ci.org/handsontable/angular-handsontable) -Official Angular module for [Handsontable](https://github.com/handsontable/handsontable). +Handsontable for Angular + +
+ +**Handsontable for Angular** is the official wrapper for [**Handsontable**](//github.com/handsontable/handsontable), a JavaScript data grid component with a spreadsheet look & feel. It easily integrates with any data source and comes with lots of useful features like data binding, validation, sorting or powerful context menu. + +[![Build status](https://travis-ci.org/handsontable/angular-handsontable.png?branch=master)](//travis-ci.org/handsontable/angular-handsontable) + +
## Table of contents + 1. [Installation](#installation) -2. [Basic usage](#basic-usage) -3. [Documentation](https://handsontable.github.io/angular-handsontable/) -4. [License](#license) -5. [Contact](#contact) -6. [Other wrappers](#other-wrappers) +2. [Getting Started](#getting-started) +3. [Documentation](#documentation) +4. [What to use it for?](#what-to-use-it-for) +5. [Features](#features) +6. [Screenshot](#screenshot) +7. [Resources](#resources) +8. [Support](#support) +9. [Contributing](#contributing) +10. [Licensing](#licensing) -## Installation -To install a wrapper for Handsontable Community Edition (CE): +
+## Installation +Use npm to download the project. +```bash +npm install handsontable @handsontable/angular ``` -npm install @handsontable/angular handsontable +A package scope for Handsontable Pro users: +```bash +npm install handsontable-pro @handsontable-pro/angular ``` -To install a wrapper for Handsontable PRO: -``` -npm install @handsontable-pro/angular handsontable-pro -``` +
+ +## Getting Started +Assuming that you have installed the wrapper with npm, now you just need to include Handsontable styles into your build system and use `` just like any other Angular component. -## Basic usage +### Handsontable Community Edition: -styles.css -```scss +**Styles** +```js @import '~handsontable/dist/handsontable.full.css'; ``` -app/app.module.ts -```javascript +**Component** +```js import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { HotTableModule } from '@handsontable/angular'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + HotTableModule.forRoot() + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } +``` + +**Template** +```html + +``` +### Handsontable Pro: + +**Styles** +```js +@import '~handsontable-pro/dist/handsontable.full.css'; +``` + +**Angular Component** +```js +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { AppComponent } from './app.component'; +import { HotTableModule } from '@handsontable-pro/angular'; + @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, - HotTableModule + HotTableModule.forRoot() ], providers: [], bootstrap: [AppComponent] @@ -49,25 +99,83 @@ import { HotTableModule } from '@handsontable/angular'; export class AppModule { } ``` -app/app.component.html +**Template** ```html ``` -## Examples -- [A basic implementation for Handsontable CE](https://stackblitz.com/edit/angular-handsontable-ce) -## License -@handsontable/angular is released under the [MIT license](https://github.com/handsontable/angular-handsontable/blob/master/LICENSE). -@handsontable-pro/angular is released under the [MIT license](https://github.com/handsontable/angular-handsontable/blob/master/LICENSE). -Copyrights belong to Handsoncode sp. z o.o. +
+ +## Documentation +Visit [docs.handsontable.com](https://docs.handsontable.com/angular) to get more Handsontable for Angular examples and guides. + +
+ +## What to use it for? +The list below gives a rough idea on what you can do with Handsontable, but it shouldn't limit you in any way: + +- Database editing +- Configuration controlling +- Data merging +- Team scheduling +- Sales reporting +- Financial analysis + +
+ +## Features -## Contact -Feel free to give us feedback on this wrapper using this [contact form](https://handsontable.com/contact.html). +Some of the most popular features include: -## Other Wrappers -Handsontable is available for other popular frameworks: +- Sorting data +- Data validation +- Conditional formatting +- Freezing rows/columns +- Merging cells +- Defining custom cell types +- Moving rows/columns +- Resizing rows/columns +- Context menu +- Adding comments to cells +- Dragging fill handle to populate data +- Internationalization +- Non-contiguous selection -- [hot-table](https://github.com/handsontable/hot-table) (Polymer - WebComponents) -- [ngHandsontable](https://github.com/handsontable/ngHandsontable) (Angular 1) -- [vue-handsontable-official](https://github.com/handsontable/vue-handsontable-official) (Vue.js) -- [react-handsotable](https://github.com/handsontable/react-handsontable) (React) +
+ +## Screenshot +
+ +Handsontable for Angular + +
+ +
+ +## Resources +- [Guides](//docs.handsontable.com/angular) +- [API Reference](//docs.handsontable.com/Core.html) +- [Release notes](//github.com/handsontable/angular-handsontable/releases) +- [Roadmap](//trello.com/b/PztR4hpj) +- [Twitter](//twitter.com/handsontable) + +
+ +## Support +You can report your issues here on [GitHub](//github.com/handsontable/angular-handsontable/issues). + +An open source version of Handsontable doesn't include technical support. You need to purchase the [Handsontable Pro](//handsontable.com/pricing) license or [contact us](//handsontable.com/contact) directly in order to obtain a technical support from the Handsontable team. + +
+ +## Contributing +If you would like to help us to develop this wrapper for Angular, please read the [guide for contributors](//github.com/handsontable/angular-handsontable/blob/master/CONTRIBUTING.md) first. + +
+ +## Licensing +This wrapper is released under [the MIT license](//github.com/handsontable/angular-handsontable/blob/master/LICENSE). + +
+ +Copyrights belong to Handsoncode sp. z o.o. diff --git a/lib/ce/README.md b/lib/ce/README.md new file mode 100644 index 0000000..f82fdd7 --- /dev/null +++ b/lib/ce/README.md @@ -0,0 +1,142 @@ +Handsontable Community Edition for Angular + +
+ +**Handsontable Community Edition for Angular** is the official wrapper for [**Handsontable Community Edition**](//github.com/handsontable/handsontable), an open source data grid component with a spreadsheet look & feel. It easily integrates with any data source and comes with lots of useful features like data binding, validation, sorting or powerful context menu. + +[![Build status](https://travis-ci.org/handsontable/angular-handsontable.png?branch=master)](//travis-ci.org/handsontable/angular-handsontable) + +
+ +## Table of contents + +1. [Installation](#installation) +2. [Getting Started](#getting-started) +4. [Documentation](#documentation) +5. [What to use it for?](#what-to-use-it-for) +6. [Features](#features) +7. [Screenshot](#screenshot) +8. [Resources](#resources) +9. [Support](#support) +10. [Contributing](#contributing) +11. [Licensing](#licensing) + +
+ +## Installation +Use npm to download the project. +```bash +npm install handsontable @handsontable/angular +``` + +
+ +## Getting Started +Assuming that you have installed the wrapper with npm, now you just need to include Handsontable styles into your build system and use `` just like any other Angular component. + +**Styles** +```js +@import '~handsontable/dist/handsontable.full.css'; +``` + +**Angular Component** +```js +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { AppComponent } from './app.component'; +import { HotTableModule } from '@handsontable/angular'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + HotTableModule.forRoot() + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } +``` + +**Template** +```html + +``` + +
+ +## Documentation +Visit [docs.handsontable.com](https://docs.handsontable.com/angular) to get more Handsontable for Angular examples and guides. + +
+ +## What to use it for? +The list below gives a rough idea on what you can do with Handsontable, but it shouldn't limit you in any way: + +- Database editing +- Configuration controlling +- Data merging +- Team scheduling +- Sales reporting +- Financial analysis + +
+ +## Features + +Some of the most popular features include: + +- Sorting data +- Data validation +- Conditional formatting +- Freezing rows/columns +- Merging cells +- Defining custom cell types +- Moving rows/columns +- Resizing rows/columns +- Context menu +- Adding comments to cells +- Dragging fill handle to populate data +- Internationalization +- Non-contiguous selection + +
+ +## Screenshot +
+ +Handsontable Community Edition for Angular + +
+ +
+ +## Resources +- [Guides](//docs.handsontable.com/angular) +- [API Reference](//docs.handsontable.com/Core.html) +- [Release notes](//github.com/handsontable/angular-handsontable/releases) +- [Roadmap](//trello.com/b/PztR4hpj) +- [Twitter](//twitter.com/handsontable) + +
+ +## Support +You can report your issues here on [GitHub](//github.com/handsontable/angular-handsontable/issues). + +An open source version of Handsontable doesn't include technical support. You need to purchase the [Handsontable Pro](//handsontable.com/pricing) license or [contact us](//handsontable.com/contact) directly in order to obtain a technical support from the Handsontable team. + +
+ +## Contributing +If you would like to help us to develop this wrapper for Angular, please read the [guide for contributors](//github.com/handsontable/angular-handsontable/blob/master/CONTRIBUTING.md) first. + +
+ +## Licensing +This wrapper is released under [the MIT license](//github.com/handsontable/angular-handsontable/blob/master/LICENSE). + +
+ +Copyrights belong to Handsoncode sp. z o.o. diff --git a/lib/ce/package.json b/lib/ce/package.json index c8c540a..83ce51b 100644 --- a/lib/ce/package.json +++ b/lib/ce/package.json @@ -1,8 +1,9 @@ { "name": "@handsontable/angular", "version": "1.0.0-beta4", + "keywords": [], "peerDependencies": { - "handsontable": "0.35.1", + "handsontable": "^4.0.0", "zone.js": "^0.8.19" }, "ngPackage": { diff --git a/lib/ce/src/hot-column.component.ts b/lib/ce/src/hot-column.component.ts index 9cadf4f..788f0cc 100644 --- a/lib/ce/src/hot-column.component.ts +++ b/lib/ce/src/hot-column.component.ts @@ -1,10 +1,8 @@ import { Component, - Injector, OnInit, OnChanges, OnDestroy, - SimpleChanges, Input, } from '@angular/core'; @@ -17,125 +15,56 @@ import { HotTableComponent } from './hot-table.component'; }) export class HotColumnComponent implements OnInit, OnChanges, OnDestroy { - private parentComponent: HotTableComponent; private firstRun = true; @Input() allowEmpty: boolean; @Input() allowHtml: boolean; - @Input() allowInsertColumn: boolean; - @Input() allowInsertRow: boolean; @Input() allowInvalid: boolean; - @Input() allowRemoveColumn: boolean; - @Input() allowRemoveRow: boolean; - @Input() autoColumnSize: boolean | object; - @Input() autoComplete: any[]; - @Input() autoRowSize: boolean | object; - @Input() autoWrapCol: boolean; - @Input() autoWrapRow: boolean; - @Input() cell: any[]; - @Input() cells: (row: number, column: number, prop: object) => object; @Input() checkedTemplate: boolean | string; @Input() className: string | string[]; - @Input() colHeaders: boolean | string[] | ((column: number) => string); - @Input() columnHeaderHeight: number | number[]; - @Input() columns: object[] | ((column: number) => object); @Input() columnSorting: boolean | object; @Input() colWidths: number | number[] | string | ((column: number) => number); @Input() commentedCellClassName: string; - @Input() comments: boolean | object[]; - @Input() contextMenu: boolean | object | object[]; @Input() copyable: boolean; - @Input() copyPaste: boolean; @Input() correctFormat: boolean; - @Input() currentColClassName: string; - @Input() currentHeaderClassName: string; - @Input() currentRowClassName: string; - @Input() customBorders: boolean | object[]; - @Input() data: any[]; - @Input() dataSchema: object; + @Input() data: string | (() => void); @Input() dateFormat: string; - @Input() debug: boolean; @Input() defaultDate: string; - @Input() disableVisualSelection: boolean | string | string[]; - @Input() dragToScroll: boolean; @Input() editor: boolean | string | (() => void); - @Input() enterBeginsEditing: boolean; - @Input() enterMoves: object | (() => void); - @Input() fillHandle: boolean | string | object; - @Input() filter: boolean; @Input() filteringCaseSensitive: boolean; - @Input() fixedColumnsLeft: number; - @Input() fixedRowsTop: number; - @Input() fragmentSelection: boolean | string; - @Input() height: number | (() => number); @Input() invalidCellClassName: string; @Input() label: object; - @Input() language: string; - @Input() manualColumnFreeze: boolean; - @Input() manualColumnMove: boolean | number[]; - @Input() manualColumnResize: boolean | number[]; - @Input() manualRowMove: boolean | number[]; - @Input() manualRowResize: boolean | number[]; - @Input() maxCols: number; - @Input() maxRows: number; - @Input() mergeCells: boolean | object[]; - @Input() minCols: number; - @Input() minRows: number; - @Input() minSpareCols: number; - @Input() minSpareRows: number; - @Input() multiSelect: boolean; @Input() noWordWrapClassName: string; @Input() numericFormat: any; - @Input() observeChanges: boolean; - @Input() observeDOMVisibility: boolean; - @Input() outsideClickDeselects: boolean | ((event: Event) => boolean); - @Input() persistentState: boolean; @Input() placeholder: any; @Input() placeholderCellClassName: string; - @Input() preventOverflow: boolean | string; @Input() readOnly: boolean; @Input() readOnlyCellClassName: string; - @Input() renderAllRows: boolean; @Input() renderer: string | (() => void); - @Input() rowHeaders: boolean | string[] | (() => string); - @Input() rowHeaderWidth: number | number[]; - @Input() rowHeights: number | number[] | string | ((row: number) => number); - @Input() search: boolean; @Input() selectOptions: string[] | number[]; @Input() skipColumnOnPaste: boolean; @Input() sortByRelevance: boolean; @Input() sortFunction: (sortOrder: boolean) => void; @Input() sortIndicator: boolean; @Input() source: any[] | (() => void); - @Input() startCols: number; - @Input() startRows: number; - @Input() stretchH: string; @Input() strict: boolean; - @Input() tableClassName: string | string[]; - @Input() tabMoves: object; @Input() title: string; @Input() trimDropdown: boolean; - @Input() trimWhitespace: boolean; @Input() type: string; @Input() uncheckedTemplate: boolean | string; - @Input() undo: boolean; @Input() validator: string | RegExp | (() => void); - @Input() viewportColumnRenderingOffset: number | string; - @Input() viewportRowRenderingOffset: number | string; @Input() visibleRows: number; @Input() width: number| (() => number); @Input() wordWrap: boolean; - constructor(private inj: Injector) { - this.parentComponent = this.inj.get(HotTableComponent); - } + constructor(private parentComponent: HotTableComponent) {} ngOnInit() { this.firstRun = false; this.parentComponent.addColumn(this); } - ngOnChanges(changes: SimpleChanges) { + ngOnChanges() { if (this.firstRun) { return; } diff --git a/lib/ce/src/hot-settings-resolver.service.ts b/lib/ce/src/hot-settings-resolver.service.ts index 0141f71..63ca864 100644 --- a/lib/ce/src/hot-settings-resolver.service.ts +++ b/lib/ce/src/hot-settings-resolver.service.ts @@ -1,6 +1,6 @@ import { Injectable, SimpleChanges } from '@angular/core'; -const AVAILABLE_OPTIONS: string[] = ['allowEmpty', 'allowHtml', 'allowInsertColumn', 'allowInsertRow', +const AVAILABLE_OPTIONS: string[] = ['activeHeaderClassName', 'allowEmpty', 'allowHtml', 'allowInsertColumn', 'allowInsertRow', 'allowInvalid', 'allowRemoveColumn', 'allowRemoveRow', 'autoColumnSize', 'autoComplete', 'autoRowSize', 'autoWrapCol', 'autoWrapRow', 'cell', 'cells', 'checkedTemplate', 'className', 'colHeaders', 'columnHeaderHeight', 'columns', 'columnSorting', 'colWidths', 'commentedCellClassName', 'comments', 'contextMenu', 'copyable', @@ -13,7 +13,7 @@ const AVAILABLE_OPTIONS: string[] = ['allowEmpty', 'allowHtml', 'allowInsertColu 'noWordWrapClassName', 'numericFormat', 'observeChanges', 'observeDOMVisibility', 'outsideClickDeselects', 'persistentState', 'placeholder', 'placeholderCellClassName', 'preventOverflow', 'readOnly', 'readOnlyCellClassName', 'renderAllRows', 'renderer', 'rowHeaders', 'rowHeaderWidth', 'rowHeights', -'search', 'selectOptions', 'skipColumnOnPaste', 'sortByRelevance', 'sortFunction', 'sortIndicator', +'search', 'selectionMode', 'selectOptions', 'skipColumnOnPaste', 'sortByRelevance', 'sortFunction', 'sortIndicator', 'source', 'startCols', 'startRows', 'stretchH', 'strict', 'tableClassName', 'tabMoves', 'title', 'trimDropdown', 'trimWhitespace', 'type', 'uncheckedTemplate', 'undo', 'validator', 'viewportColumnRenderingOffset', 'viewportRowRenderingOffset', 'visibleRows', 'width', 'wordWrap']; @@ -38,7 +38,7 @@ const AVAILABLE_HOOKS: string[] = ['afterBeginEditing', 'afterCellMetaReset', 'a 'beforeInitWalkontable', 'beforeKeyDown', 'beforeLanguageChange', 'beforeOnCellMouseDown', 'beforeOnCellMouseOut', 'beforeOnCellMouseOver', 'beforePaste', 'beforeRedo', 'beforeRemoveCellMeta', 'beforeRemoveCol', 'beforeRemoveRow', 'beforeRender', 'beforeRenderer', 'beforeRowMove', 'beforeRowResize', 'beforeSetRangeEnd', -'beforeSetRangeEnd', 'beforeStretchingColumnWidth', 'beforeTouchScroll', 'beforeUndo', 'beforeValidate', +'beforeSetRangeStart', 'beforeStretchingColumnWidth', 'beforeTouchScroll', 'beforeUndo', 'beforeValidate', 'beforeValueRender', 'construct', 'init', 'manualRowHeights', 'modifyAutofillRange', 'modifyCol', 'modifyColHeader', 'modifyColumnHeaderHeight', 'modifyColWidth', 'modifyCopyableRange', 'modifyData', 'modifyRow', 'modifyRowData', 'modifyRowHeader', 'modifyRowHeaderWidth', 'modifyRowHeight', 'modifyTransformEnd', @@ -47,44 +47,34 @@ const AVAILABLE_HOOKS: string[] = ['afterBeginEditing', 'afterCellMetaReset', 'a @Injectable() export class HotSettingsResolver { - private hooks = AVAILABLE_HOOKS; - private options = AVAILABLE_OPTIONS; mergeSettings(component): object { const mergedSettings: object = {}; + const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS); - if (component['settings'] !== void 0) { - Object.keys(component['settings']).forEach((key) => { - if (this.hooks.indexOf(key) > -1) { - mergedSettings[key] = (p1, p2, p3, p4, p5, p6) => { - return component._ngZone.run(() => { - return component['settings'][key].call(component.hotInstance, p1, p2, p3, p4, p5, p6); - }) - }; + options.forEach((key) => { + let option; - } else { - mergedSettings[key] = component['settings'][key]; - } - }); - } - - this.options.forEach((key) => { - const option = component[key]; + if (typeof component['settings'] === 'object') { + option = component['settings'][key]; + } - if (option !== void 0) { - mergedSettings[key] = option; + if (component[key] !== void 0) { + option = component[key]; } - }); - this.hooks.forEach((key) => { - const hook = component[key]; + if (option === void 0) { + return; - if (hook && hook.observers.length > 0) { - mergedSettings[key] = (p1, p2, p3, p4, p5, p6) => { - component._ngZone.run(() => { - component[key].emit({ hotInstance: component.hotInstance, params: [p1, p2, p3, p4, p5, p6] }); + } else if (typeof option === 'function' && AVAILABLE_HOOKS.indexOf(key) > -1) { + mergedSettings[key] = function(...args) { + return component._ngZone.run(() => { + return option(this, ...args); }); }; + + } else { + mergedSettings[key] = option; } }); diff --git a/lib/ce/src/hot-table.component.ts b/lib/ce/src/hot-table.component.ts index e28ed6d..c3f7d9c 100644 --- a/lib/ce/src/hot-table.component.ts +++ b/lib/ce/src/hot-table.component.ts @@ -9,8 +9,6 @@ import { SimpleChanges, ViewEncapsulation, Input, - Output, - EventEmitter, } from '@angular/core'; import * as Handsontable from 'handsontable'; @@ -32,9 +30,10 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy private container: HTMLElement; private columnsComponents: HotColumnComponent[] = []; - @Input() settings: object; + @Input() settings: Handsontable.GridSettings; @Input() hotId: string; + @Input() activeHeaderClassName: string; @Input() allowEmpty: boolean; @Input() allowHtml: boolean; @Input() allowInsertColumn: boolean; @@ -99,7 +98,6 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy @Input() minRows: number; @Input() minSpareCols: number; @Input() minSpareRows: number; - @Input() multiSelect: boolean; @Input() noWordWrapClassName: string; @Input() numericFormat: any; @Input() observeChanges: boolean; @@ -118,6 +116,7 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy @Input() rowHeaderWidth: number | number[]; @Input() rowHeights: number | number[] | string | ((row: number) => number); @Input() search: boolean; + @Input() selectionMode: string; @Input() selectOptions: string[] | number[]; @Input() skipColumnOnPaste: boolean; @Input() sortByRelevance: boolean; @@ -143,127 +142,124 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy @Input() width: number| (() => number); @Input() wordWrap: boolean; - @Output() afterBeginEditing: EventEmitter = new EventEmitter(); - @Output() afterCellMetaReset: EventEmitter = new EventEmitter(); - @Output() afterChange: EventEmitter = new EventEmitter(); - @Output() afterChangesObserved: EventEmitter = new EventEmitter(); - @Output() afterColumnMove: EventEmitter = new EventEmitter(); - @Output() afterColumnResize: EventEmitter = new EventEmitter(); - @Output() afterColumnSort: EventEmitter = new EventEmitter(); - @Output() afterContextMenuDefaultOptions: EventEmitter = new EventEmitter(); - @Output() afterContextMenuHide: EventEmitter = new EventEmitter(); - @Output() afterContextMenuShow: EventEmitter = new EventEmitter(); - @Output() afterCopy: EventEmitter = new EventEmitter(); - @Output() afterCopyLimit: EventEmitter = new EventEmitter(); - @Output() afterCreateCol: EventEmitter = new EventEmitter(); - @Output() afterCreateRow: EventEmitter = new EventEmitter(); - @Output() afterCut: EventEmitter = new EventEmitter(); - @Output() afterDeselect: EventEmitter = new EventEmitter(); - @Output() afterDestroy: EventEmitter = new EventEmitter(); - @Output() afterDocumentKeyDown: EventEmitter = new EventEmitter(); - @Output() afterGetCellMeta: EventEmitter = new EventEmitter(); - @Output() afterGetColHeader: EventEmitter = new EventEmitter(); - @Output() afterGetColumnHeaderRenderers: EventEmitter = new EventEmitter(); - @Output() afterGetRowHeader: EventEmitter = new EventEmitter(); - @Output() afterGetRowHeaderRenderers: EventEmitter = new EventEmitter(); - @Output() afterInit: EventEmitter = new EventEmitter(); - @Output() afterLanguageChange: EventEmitter = new EventEmitter(); - @Output() afterListen: EventEmitter = new EventEmitter(); - @Output() afterLoadData: EventEmitter = new EventEmitter(); - @Output() afterModifyTransformEnd: EventEmitter = new EventEmitter(); - @Output() afterModifyTransformStart: EventEmitter = new EventEmitter(); - @Output() afterMomentumScroll: EventEmitter = new EventEmitter(); - @Output() afterOnCellCornerDblClick: EventEmitter = new EventEmitter(); - @Output() afterOnCellCornerMouseDown: EventEmitter = new EventEmitter(); - @Output() afterOnCellMouseDown: EventEmitter = new EventEmitter(); - @Output() afterOnCellMouseOut: EventEmitter = new EventEmitter(); - @Output() afterOnCellMouseOver: EventEmitter = new EventEmitter(); - @Output() afterPaste: EventEmitter = new EventEmitter(); - @Output() afterPluginsInitialized: EventEmitter = new EventEmitter(); - @Output() afterRedo: EventEmitter = new EventEmitter(); - @Output() afterRemoveCellMeta: EventEmitter = new EventEmitter(); - @Output() afterRemoveCol: EventEmitter = new EventEmitter(); - @Output() afterRemoveRow: EventEmitter = new EventEmitter(); - @Output() afterRender: EventEmitter = new EventEmitter(); - @Output() afterRenderer: EventEmitter = new EventEmitter(); - @Output() afterRowMove: EventEmitter = new EventEmitter(); - @Output() afterRowResize: EventEmitter = new EventEmitter(); - @Output() afterScrollHorizontally: EventEmitter = new EventEmitter(); - @Output() afterScrollVertically: EventEmitter = new EventEmitter(); - @Output() afterSelection: EventEmitter = new EventEmitter(); - @Output() afterSelectionByProp: EventEmitter = new EventEmitter(); - @Output() afterSelectionEnd: EventEmitter = new EventEmitter(); - @Output() afterSelectionEndByProp: EventEmitter = new EventEmitter(); - @Output() afterSetCellMeta: EventEmitter = new EventEmitter(); - @Output() afterSetDataAtCell: EventEmitter = new EventEmitter(); - @Output() afterSetDataAtRowProp: EventEmitter = new EventEmitter(); - @Output() afterUndo: EventEmitter = new EventEmitter(); - @Output() afterUnlisten: EventEmitter = new EventEmitter(); - @Output() afterUpdateSettings: EventEmitter = new EventEmitter(); - @Output() afterValidate: EventEmitter = new EventEmitter(); - @Output() afterViewportColumnCalculatorOverride: EventEmitter = new EventEmitter(); - @Output() afterViewportRowCalculatorOverride: EventEmitter = new EventEmitter(); - @Output() beforeAutofill: EventEmitter = new EventEmitter(); - @Output() beforeAutofillInsidePopulate: EventEmitter = new EventEmitter(); - @Output() beforeCellAlignment: EventEmitter = new EventEmitter(); - @Output() beforeChange: EventEmitter = new EventEmitter(); - @Output() beforeChangeRender: EventEmitter = new EventEmitter(); - @Output() beforeColumnMove: EventEmitter = new EventEmitter(); - @Output() beforeColumnResize: EventEmitter = new EventEmitter(); - @Output() beforeColumnSort: EventEmitter = new EventEmitter(); - @Output() beforeContextMenuSetItems: EventEmitter = new EventEmitter(); - @Output() beforeCopy: EventEmitter = new EventEmitter(); - @Output() beforeCreateCol: EventEmitter = new EventEmitter(); - @Output() beforeCreateRow: EventEmitter = new EventEmitter(); - @Output() beforeCut: EventEmitter = new EventEmitter(); - @Output() beforeDrawBorders: EventEmitter = new EventEmitter(); - @Output() beforeGetCellMeta: EventEmitter = new EventEmitter(); - @Output() beforeInit: EventEmitter = new EventEmitter(); - @Output() beforeInitWalkontable: EventEmitter = new EventEmitter(); - @Output() beforeKeyDown: EventEmitter = new EventEmitter(); - @Output() beforeLanguageChange: EventEmitter = new EventEmitter(); - @Output() beforeOnCellMouseDown: EventEmitter = new EventEmitter(); - @Output() beforeOnCellMouseOut: EventEmitter = new EventEmitter(); - @Output() beforeOnCellMouseOver: EventEmitter = new EventEmitter(); - @Output() beforePaste: EventEmitter = new EventEmitter(); - @Output() beforeRedo: EventEmitter = new EventEmitter(); - @Output() beforeRemoveCellMeta: EventEmitter = new EventEmitter(); - @Output() beforeRemoveCol: EventEmitter = new EventEmitter(); - @Output() beforeRemoveRow: EventEmitter = new EventEmitter(); - @Output() beforeRender: EventEmitter = new EventEmitter(); - @Output() beforeRenderer: EventEmitter = new EventEmitter(); - @Output() beforeRowMove: EventEmitter = new EventEmitter(); - @Output() beforeRowResize: EventEmitter = new EventEmitter(); - @Output() beforeSetRangeEnd: EventEmitter = new EventEmitter(); - @Output() beforeSetRangeStart: EventEmitter = new EventEmitter(); - @Output() beforeStretchingColumnWidth: EventEmitter = new EventEmitter(); - @Output() beforeTouchScroll: EventEmitter = new EventEmitter(); - @Output() beforeUndo: EventEmitter = new EventEmitter(); - @Output() beforeValidate: EventEmitter = new EventEmitter(); - @Output() beforeValueRender: EventEmitter = new EventEmitter(); - @Output() construct: EventEmitter = new EventEmitter(); - @Output() init: EventEmitter = new EventEmitter(); - @Output() manualRowHeights: EventEmitter = new EventEmitter(); - @Output() modifyAutofillRange: EventEmitter = new EventEmitter(); - @Output() modifyCol: EventEmitter = new EventEmitter(); - @Output() modifyColHeader: EventEmitter = new EventEmitter(); - @Output() modifyColumnHeaderHeight: EventEmitter = new EventEmitter(); - @Output() modifyColWidth: EventEmitter = new EventEmitter(); - @Output() modifyCopyableRange: EventEmitter = new EventEmitter(); - @Output() modifyData: EventEmitter = new EventEmitter(); - @Output() modifyRow: EventEmitter = new EventEmitter(); - @Output() modifyRowData: EventEmitter = new EventEmitter(); - @Output() modifyRowHeader: EventEmitter = new EventEmitter(); - @Output() modifyRowHeaderWidth: EventEmitter = new EventEmitter(); - @Output() modifyRowHeight: EventEmitter = new EventEmitter(); - @Output() modifyTransformEnd: EventEmitter = new EventEmitter(); - @Output() modifyTransformStart: EventEmitter = new EventEmitter(); - @Output() persistentStateLoad: EventEmitter = new EventEmitter(); - @Output() persistentStateReset: EventEmitter = new EventEmitter(); - @Output() persistentStateSave: EventEmitter = new EventEmitter(); - @Output() skipLengthCache: EventEmitter = new EventEmitter(); - @Output() unmodifyCol: EventEmitter = new EventEmitter(); - @Output() unmodifyRow: EventEmitter = new EventEmitter(); + @Input() afterBeginEdting: (row: number, column: number) => void; + @Input() afterCellMetaReset: () => void; + @Input() afterChange: (changes: any[], source: string) => void; + @Input() afterChangesObserved: () => void; + @Input() afterColumnMove: (startColumn: number, endColumn: number) => void; + @Input() afterColumnResize: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void; + @Input() afterColumnSort: (column: number, order: boolean) => void; + @Input() afterContextMenuDefaultOptions: (predefinedItems: any[]) => void; + @Input() afterContextMenuHide: (context: object) => void; + @Input() beforeContextMenuShow: (context: object) => void; + @Input() afterContextMenuShow: (context: object) => void; + @Input() afterCopy: (data: any[], coords: any[]) => void; + @Input() afterCopyLimit: (selectedRows: number, selectedColumnds: number, copyRowsLimit: number, copyColumnsLimit: number) => void; + @Input() afterCreateCol: (index: number, amount: number) => void; + @Input() afterCreateRow: (index: number, amount: number) => void; + @Input() afterCut: (data: any[], coords: any[]) => void; + @Input() afterDeselect: () => void; + @Input() afterDestroy: () => void; + @Input() afterDocumentKeyDown: (event: Event) => void; + @Input() afterGetCellMeta: (row: number, col: number, cellProperties: Handsontable.GridSettings) => void; + @Input() afterGetColHeader: (col: number, TH: Element) => void; + @Input() afterGetColumnHeaderRenderers: (array: any[]) => void; + @Input() afterGetRowHeader: (row: number, TH: Element) => void; + @Input() afterGetRowHeaderRenderers: (array: any[]) => void; + @Input() afterInit: () => void; + @Input() afterLoadData: (firstTime: boolean) => void; + @Input() afterModifyTransformEnd: (coords: Handsontable.wot.CellCoords, rowTransformDir: number, colTransformDir: number) => void; + @Input() afterModifyTransformStart: (coords: Handsontable.wot.CellCoords, rowTransformDir: number, colTransformDir: number) => void; + @Input() afterMomentumScroll: () => void; + @Input() afterOnCellCornerDblClick: (event: object) => void; + @Input() afterOnCellCornerMouseDown: (event: object) => void; + @Input() afterOnCellMouseDown: (event: object, coords: object, TD: Element) => void; + @Input() afterOnCellMouseOver: (event: object, coords: object, TD: Element) => void; + @Input() afterOnCellMouseOut: (event: object, coords: object, TD: Element) => void; + @Input() afterPaste: (data: any[], coords: any[]) => void; + @Input() afterPluginsInitialized: () => void; + @Input() afterRedo: (action: object) => void; + @Input() afterRemoveCol: (index: number, amount: number) => void; + @Input() afterRemoveRow: (index: number, amount: number) => void; + @Input() afterRender: (isForced: boolean) => void; + @Input() afterRenderer: (TD: Element, row: number, col: number, + prop: string | number, value: string, cellProperties: Handsontable.GridSettings) => void; + @Input() afterRowMove: (startRow: number, endRow: number) => void; + @Input() afterRowResize: (currentRow: number, newSize: number, isDoubleClick: boolean) => void; + @Input() afterScrollHorizontally: () => void; + @Input() afterScrollVertically: () => void; + @Input() afterSelection: (r: number, c: number, r2: number, c2: number, preventScrolling: object, selectionLayerLevel: number) => void; + @Input() afterSelectionByProp: (r: number, p: string, r2: number, p2: string, + preventScrolling: object, selectionLayerLevel: number) => void; + @Input() afterSelectionEnd: (r: number, c: number, r2: number, c2: number, selectionLayerLevel: number) => void; + @Input() afterSelectionEndByProp: (r: number, p: string, r2: number, p2: string, selectionLayerLevel: number) => void; + @Input() afterSetCellMeta: (row: number, col: number, key: string, value: any) => void; + @Input() afterSetDataAtCell: (changes: any[], source: string) => void; + @Input() afterSetDataAtRowProp: (changes: any[], source: string) => void; + @Input() afterUndo: (action: object) => void; + @Input() afterUpdateSettings: () => void; + @Input() afterValidate: (isValid: boolean, value: any, row: number, prop: string | number, source: string) => void | boolean; + @Input() afterViewportColumnCalculatorOverride: (calc: object) => void; + @Input() afterViewportRowCalculatorOverride: (calc: object) => void; + @Input() beforeAutofill: (start: object, end: object, data: any[]) => void; + @Input() beforeAutofillInsidePopulate: (index: object, direction: string, input: any[], deltas: any[]) => void; + @Input() beforeCellAlignment: (stateBefore: any, range: any, type: string, alignmentClass: string) => void; + @Input() beforeChange: (changes: any[], source: string) => void; + @Input() beforeChangeRender: (changes: any[], source: string) => void; + @Input() beforeColumnMove: (startColumn: number, endColumn: number) => void; + @Input() beforeColumnResize: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void; + @Input() beforeColumnSort: (column: number, order: boolean) => void; + @Input() beforeContextMenuSetItems: (menuItems: any[]) => void; + @Input() beforeCopy: (data: any[], coords: any[]) => any; + @Input() beforeCreateCol: (index: number, amount: number, source: string) => void; + @Input() beforeCreateRow: (index: number, amount: number, source: string) => void; + @Input() beforeCut: (data: any[], coords: any[]) => any; + @Input() beforeDrawBorders: (corners: any[], borderClassName: string) => void; + @Input() beforeGetCellMeta: (row: number, col: number, cellProperties: Handsontable.GridSettings) => void; + @Input() beforeInit: () => void; + @Input() beforeInitWalkontable: (walkontableConfig: object) => void; + @Input() beforeKeyDown: (event: Event) => void; + @Input() beforeOnCellMouseDown: (event: Event, coords: object, TD: Element) => void; + @Input() beforeOnCellMouseOut: (event: Event, coords: Handsontable.wot.CellCoords, TD: Element) => void; + @Input() beforeOnCellMouseOver: (event: Event, coords: Handsontable.wot.CellCoords, TD: Element, blockCalculations: object) => void; + @Input() beforePaste: (data: any[], coords: any[]) => any; + @Input() beforeRedo: (action: object) => void; + @Input() beforeRemoveCol: (index: number, amount: number, logicalCols: any[]) => void; + @Input() beforeRemoveRow: (index: number, amount: number, logicalRows: any[]) => void; + @Input() beforeRender: (isForced: boolean, skipRender: object) => void; + @Input() beforeRenderer: (TD: Element, row: number, col: number, + prop: string | number, value: string, cellProperties: Handsontable.GridSettings) => void; + @Input() beforeRowMove: (startRow: number, endRow: number) => void; + @Input() beforeRowResize: (currentRow: number, newSize: number, isDoubleClick: boolean) => any; + @Input() beforeSetRangeEnd: (coords: Handsontable.wot.CellCoords) => void; + @Input() beforeSetRangeStart: (coords: Handsontable.wot.CellCoords) => void; + @Input() beforeStretchingColumnWidth: (stretchedWidth: number, column: number) => void; + @Input() beforeTouchScroll: () => void; + @Input() beforeUndo: (action: object) => void; + @Input() beforeValidate: (value: any, row: number, prop: string | number, source: string) => void; + @Input() beforeValueRender: (value: any, cellProperties: object) => void; + @Input() construct: () => void; + @Input() init: () => void; + @Input() manualRowHeights: (state: any[]) => void; + @Input() modifyAutofillRange: (startArea: any[], entireArea: any[]) => void; + @Input() modifyCol: (col: number) => void; + @Input() modifyColHeader: (column: number) => void; + @Input() modifyColWidth: (width: number, col: number) => void; + @Input() modifyCopyableRange: (copyableRanges: any[]) => void; + @Input() modifyData: (row: number, column: number, valueHolder: object, ioMode: string) => void; + @Input() modifyRow: (row: number) => void; + @Input() modifyRowHeader: (row: number) => void; + @Input() modifyRowHeaderWidth: (rowHeaderWidth: number) => void; + @Input() modifyRowHeight: (height: number, row: number) => void; + @Input() modifyRowSourceData: (row: number) => void; + @Input() modifyTransformEnd: (delta: Handsontable.wot.CellCoords) => void; + @Input() modifyTransformStart: (delta: Handsontable.wot.CellCoords) => void; + @Input() persistentStateLoad: (key: string, valuePlaceholder: object) => void; + @Input() persistentStateReset: (key: string) => void; + @Input() persistentStateSave: (key: string, value: any) => void; + @Input() skipLengthCache: (delay: number) => void; + @Input() unmodifyCol: (col: number) => void; + @Input() unmodifyRow: (row: number) => void; constructor( private el: ElementRef, diff --git a/lib/pro/README.md b/lib/pro/README.md new file mode 100644 index 0000000..168c2e0 --- /dev/null +++ b/lib/pro/README.md @@ -0,0 +1,161 @@ +Handsontable Pro for Angular + +
+ +**Handsontable Pro for Angular** is the official wrapper for [**Handsontable Pro**](//github.com/handsontable/handsontable-pro), a commercial data grid component with a spreadsheet look & feel. It easily integrates with any data source and comes with lots of useful features like data binding, validation, sorting or powerful context menu. + +[![Build status](https://travis-ci.org/handsontable/angular-handsontable.png?branch=master)](//travis-ci.org/handsontable/angular-handsontable) + +
+ +## Table of contents + +1. [Installation](#installation) +2. [Getting Started](#getting-started) +3. [Documentation](#documentation) +4. [What to use it for?](#what-to-use-it-for) +5. [Features](#features) +6. [Screenshot](#screenshot) +7. [Resources](#resources) +8. [License Key](#license-key) +9. [Support](#support) +10. [Contributing](#contributing) +11. [License and Pricing](#license-and-pricing) + +
+ +## Installation +Use npm to download the project. +```bash +npm install handsontable-pro @handsontable-pro/angular +``` + +
+ +## Getting Started +Assuming that you have installed the wrapper with npm, now you just need to include Handsontable styles into your build system and use `` just like any other Angular component. + +**Styles** +```js +@import '~handsontable-pro/dist/handsontable.full.css'; +``` + +**Angular Component** +```js +import { BrowserModule } from '@angular/platform-browser'; +import { NgModule } from '@angular/core'; +import { AppComponent } from './app.component'; +import { HotTableModule } from '@handsontable-pro/angular'; + +@NgModule({ + declarations: [ + AppComponent + ], + imports: [ + BrowserModule, + HotTableModule.forRoot() + ], + providers: [], + bootstrap: [AppComponent] +}) +export class AppModule { } +``` + +**Template** +```html + +``` + +
+ +## Documentation +Visit [docs.handsontable.com](https://docs.handsontable.com/pro/angular) to get more Handsontable for Angular examples and guides. + +
+ +## What to use it for? +The list below gives a rough idea on what you can do with Handsontable Pro, but it shouldn't limit you in any way: + +- Database editing +- Configuration controlling +- Data merging +- Team scheduling +- Sales reporting +- Financial analysis + +
+ +## Features + +Some of the most popular features include: + +- Filtering data **(Pro)** +- Nested headers **(Pro)** +- Export to file **(Pro)** +- Column summary **(Pro)** +- Sorting data +- Data validation +- Conditional formatting +- Context menu +- Adding comments to cells +- Dragging fill handle to populate data +- Internationalization +- Non-contiguous selection + +
+ +## Screenshot +
+ +Handsontable Pro for Angular + +
+ +
+ +## Resources +- [Guides](//docs.handsontable.com/pro/angular) +- [API Reference](//docs.handsontable.com/pro/Core.html) +- [Release notes](//github.com/handsontable/angular-handsontable/releases) +- [Roadmap](//trello.com/b/PztR4hpj) +- [Twitter](//twitter.com/handsontable) + +
+ +## License Key + +After you buy the license for Handsontable Pro, you should receive a license key of your copy of the software. It will be available in your account at [my.handsontable.com](//my.handsontable.com). + +Paste your license key to the configuration section, just like in the example below. + +```js +const settings = { + data: data, + rowHeaders: true, + colHeaders: true, + licenseKey: '00000-00000-00000-00000-00000' +}; +``` + +Note that the license key is passed as a string so you need to wrap it in quotes (''). + +
+ +## Support +If you have a valid license of Handsontable Pro then your primary contact is through support team at [support@handsontable.com](mailto:support@handsontable.com) + +You can also report your issues here on [GitHub](//github.com/handsontable/angular-handsontable/issues). + +
+ +## Contributing +If you would like to help us to develop this wrapper for Angular, please read the [guide for contributors](//github.com/handsontable/angular-handsontable/blob/master/CONTRIBUTING.md) first. + +
+ +## License and Pricing +This wrapper is released under [the MIT license](//github.com/handsontable/angular-handsontable/blob/master/LICENSE) but under the hood it uses Handsontable Pro, which is a commercial and paid software. You need to [purchase a license](//handsontable.com/pricing) in order to use it in production environment. + +
+ +Copyrights belong to Handsoncode sp. z o.o. diff --git a/lib/pro/package.json b/lib/pro/package.json index 1faf6d8..1258789 100644 --- a/lib/pro/package.json +++ b/lib/pro/package.json @@ -1,8 +1,11 @@ { "name": "@handsontable-pro/angular", "version": "1.0.0-beta4", + "keywords": [ + "pro", "enterprise", "sort", "formulas", "filter", "search", "conditional formatting", "csv" + ], "peerDependencies": { - "handsontable-pro": "1.15.1", + "handsontable-pro": "^4.0.0", "zone.js": "^0.8.19" }, "ngPackage": { diff --git a/lib/pro/src/hot-column.component.ts b/lib/pro/src/hot-column.component.ts index 4c18d7d..788f0cc 100644 --- a/lib/pro/src/hot-column.component.ts +++ b/lib/pro/src/hot-column.component.ts @@ -1,14 +1,11 @@ import { Component, - Injector, OnInit, OnChanges, OnDestroy, - SimpleChanges, Input, } from '@angular/core'; - import { HotTableComponent } from './hot-table.component'; @Component({ @@ -18,139 +15,56 @@ import { HotTableComponent } from './hot-table.component'; }) export class HotColumnComponent implements OnInit, OnChanges, OnDestroy { - private parentComponent: HotTableComponent; private firstRun = true; @Input() allowEmpty: boolean; @Input() allowHtml: boolean; - @Input() allowInsertColumn: boolean; - @Input() allowInsertRow: boolean; @Input() allowInvalid: boolean; - @Input() allowRemoveColumn: boolean; - @Input() allowRemoveRow: boolean; - @Input() autoColumnSize: boolean | object; - @Input() autoComplete: any[]; - @Input() autoRowSize: boolean | object; - @Input() autoWrapCol: boolean; - @Input() autoWrapRow: boolean; - @Input() cell: any[]; - @Input() cells: (row: number, column: number, prop: object) => object; @Input() checkedTemplate: boolean | string; @Input() className: string | string[]; - @Input() colHeaders: boolean | string[] | ((column: number) => string); - @Input() columnHeaderHeight: number | number[]; - @Input() columns: object[] | ((column: number) => object); @Input() columnSorting: boolean | object; @Input() colWidths: number | number[] | string | ((column: number) => number); @Input() commentedCellClassName: string; - @Input() comments: boolean | object[]; - @Input() contextMenu: boolean | object | object[]; @Input() copyable: boolean; - @Input() copyPaste: boolean; @Input() correctFormat: boolean; - @Input() currentColClassName: string; - @Input() currentHeaderClassName: string; - @Input() currentRowClassName: string; - @Input() customBorders: boolean | object[]; - @Input() data: any[]; - @Input() dataSchema: object; + @Input() data: string | (() => void); @Input() dateFormat: string; - @Input() debug: boolean; @Input() defaultDate: string; - @Input() disableVisualSelection: boolean | string | string[]; - @Input() dragToScroll: boolean; @Input() editor: boolean | string | (() => void); - @Input() enterBeginsEditing: boolean; - @Input() enterMoves: object | (() => void); - @Input() fillHandle: boolean | string | object; - @Input() filter: boolean; @Input() filteringCaseSensitive: boolean; - @Input() fixedColumnsLeft: number; - @Input() fixedRowsTop: number; - @Input() fragmentSelection: boolean | string; - @Input() height: number | (() => number); @Input() invalidCellClassName: string; @Input() label: object; - @Input() language: string; - @Input() manualColumnFreeze: boolean; - @Input() manualColumnMove: boolean | number[]; - @Input() manualColumnResize: boolean | number[]; - @Input() manualRowMove: boolean | number[]; - @Input() manualRowResize: boolean | number[]; - @Input() maxCols: number; - @Input() maxRows: number; - @Input() mergeCells: boolean | object[]; - @Input() minCols: number; - @Input() minRows: number; - @Input() minSpareCols: number; - @Input() minSpareRows: number; - @Input() multiSelect: boolean; @Input() noWordWrapClassName: string; @Input() numericFormat: any; - @Input() observeChanges: boolean; - @Input() observeDOMVisibility: boolean; - @Input() outsideClickDeselects: boolean | ((event: Event) => boolean); - @Input() persistentState: boolean; @Input() placeholder: any; @Input() placeholderCellClassName: string; - @Input() preventOverflow: boolean | string; @Input() readOnly: boolean; @Input() readOnlyCellClassName: string; - @Input() renderAllRows: boolean; @Input() renderer: string | (() => void); - @Input() rowHeaders: boolean | string[] | (() => string); - @Input() rowHeaderWidth: number | number[]; - @Input() rowHeights: number | number[] | string | ((row: number) => number); - @Input() search: boolean; @Input() selectOptions: string[] | number[]; @Input() skipColumnOnPaste: boolean; @Input() sortByRelevance: boolean; @Input() sortFunction: (sortOrder: boolean) => void; @Input() sortIndicator: boolean; @Input() source: any[] | (() => void); - @Input() startCols: number; - @Input() startRows: number; - @Input() stretchH: string; @Input() strict: boolean; - @Input() tableClassName: string | string[]; - @Input() tabMoves: object; @Input() title: string; @Input() trimDropdown: boolean; - @Input() trimWhitespace: boolean; @Input() type: string; @Input() uncheckedTemplate: boolean | string; - @Input() undo: boolean; @Input() validator: string | RegExp | (() => void); - @Input() viewportColumnRenderingOffset: number | string; - @Input() viewportRowRenderingOffset: number | string; @Input() visibleRows: number; @Input() width: number| (() => number); @Input() wordWrap: boolean; - @Input() bindRowsWithHeaders: boolean | string; - @Input() collapsibleColumns: boolean | object[]; - @Input() columnSummary: object; - @Input() dropdownMenu: boolean | object | object[]; - @Input() filters: boolean; - @Input() fixedRowsBottom: number; - @Input() formulas: boolean; - @Input() ganttChart: object; - @Input() headerTooltips: boolean | object; - @Input() hiddenColumns: boolean | object; - @Input() hiddenRows: boolean | object; - @Input() licenseKey: string; - @Input() trimRows: boolean | number[]; - - constructor(private inj: Injector) { - this.parentComponent = this.inj.get(HotTableComponent); - } + constructor(private parentComponent: HotTableComponent) {} ngOnInit() { this.firstRun = false; this.parentComponent.addColumn(this); } - ngOnChanges(changes: SimpleChanges) { + ngOnChanges() { if (this.firstRun) { return; } diff --git a/lib/pro/src/hot-settings-resolver.service.ts b/lib/pro/src/hot-settings-resolver.service.ts index 09471c6..b81bec9 100644 --- a/lib/pro/src/hot-settings-resolver.service.ts +++ b/lib/pro/src/hot-settings-resolver.service.ts @@ -1,120 +1,38 @@ import { Injectable, SimpleChanges } from '@angular/core'; +import * as Handsontable from 'handsontable-pro'; -const AVAILABLE_OPTIONS: string[] = ['allowEmpty', 'allowHtml', 'allowInsertColumn', 'allowInsertRow', -'allowInvalid', 'allowRemoveColumn', 'allowRemoveRow', 'autoColumnSize', 'autoComplete', 'autoRowSize', -'autoWrapCol', 'autoWrapRow', 'cell', 'cells', 'checkedTemplate', 'className', 'colHeaders', 'columnHeaderHeight', -'columns', 'columnSorting', 'colWidths', 'commentedCellClassName', 'comments', 'contextMenu', 'copyable', -'copyPaste', 'correctFormat', 'currentColClassName', 'currentHeaderClassName', 'currentRowClassName', -'customBorders', 'data', 'dataSchema', 'dateFormat', 'debug', 'defaultDate', 'disableVisualSelection', -'dragToScroll', 'editor', 'enterBeginsEditing', 'enterMoves', 'fillHandle', 'filter', 'filteringCaseSensitive', -'fixedColumnsLeft', 'fixedRowsTop', 'fragmentSelection', 'height', 'invalidCellClassName', 'label', -'language', 'manualColumnFreeze', 'manualColumnMove', 'manualColumnResize', 'manualRowMove', 'manualRowResize', -'maxCols', 'maxRows', 'mergeCells', 'minCols', 'minRows', 'minSpareCols', 'minSpareRows', 'multiSelect', -'noWordWrapClassName', 'numericFormat', 'observeChanges', 'observeDOMVisibility', 'outsideClickDeselects', -'persistentState', 'placeholder', 'placeholderCellClassName', 'preventOverflow', 'readOnly', -'readOnlyCellClassName', 'renderAllRows', 'renderer', 'rowHeaders', 'rowHeaderWidth', 'rowHeights', -'search', 'selectOptions', 'skipColumnOnPaste', 'sortByRelevance', 'sortFunction', 'sortIndicator', -'source', 'startCols', 'startRows', 'stretchH', 'strict', 'tableClassName', 'tabMoves', 'title', -'trimDropdown', 'trimWhitespace', 'type', 'uncheckedTemplate', 'undo', 'validator', -'viewportColumnRenderingOffset', 'viewportRowRenderingOffset', 'visibleRows', 'width', 'wordWrap']; - -const AVAILABLE_HOOKS: string[] = ['afterBeginEditing', 'afterCellMetaReset', 'afterChange', -'afterChangesObserved', 'afterColumnMove', 'afterColumnResize', 'afterColumnSort', -'afterContextMenuDefaultOptions', 'afterContextMenuHide', 'afterContextMenuShow', 'afterCopy', -'afterCopyLimit', 'afterCreateCol', 'afterCreateRow', 'afterCut', 'afterDeselect', 'afterDestroy', -'afterDocumentKeyDown', 'afterGetCellMeta', 'afterGetColHeader', 'afterGetColumnHeaderRenderers', -'afterGetRowHeader', 'afterGetRowHeaderRenderers', 'afterInit', 'afterLanguageChange', 'afterListen', -'afterLoadData', 'afterModifyTransformEnd', 'afterModifyTransformStart', 'afterMomentumScroll', -'afterOnCellCornerDblClick', 'afterOnCellCornerMouseDown', 'afterOnCellMouseDown', -'afterOnCellMouseOut', 'afterOnCellMouseOver', 'afterPaste', 'afterPluginsInitialized', 'afterRedo', -'afterRemoveCellMeta', 'afterRemoveCol', 'afterRemoveRow', 'afterRender', 'afterRenderer', -'afterRowMove', 'afterRowResize', 'afterScrollHorizontally', 'afterScrollVertically', 'afterSelection', -'afterSelectionByProp', 'afterSelectionEnd', 'afterSelectionEndByProp', 'afterSetCellMeta', -'afterSetDataAtCell', 'afterSetDataAtRowProp', 'afterUndo', 'afterUnlisten', 'afterUpdateSettings', -'afterValidate', 'afterViewportColumnCalculatorOverride', 'afterViewportRowCalculatorOverride', -'beforeAutofill', 'beforeAutofillInsidePopulate', 'beforeCellAlignment', 'beforeChange', 'beforeChangeRender', -'beforeColumnMove', 'beforeColumnResize', 'beforeColumnSort', 'beforeContextMenuSetItems', 'beforeCopy', -'beforeCreateCol', 'beforeCreateRow', 'beforeCut', 'beforeDrawBorders', 'beforeGetCellMeta', 'beforeInit', -'beforeInitWalkontable', 'beforeKeyDown', 'beforeLanguageChange', 'beforeOnCellMouseDown', 'beforeOnCellMouseOut', -'beforeOnCellMouseOver', 'beforePaste', 'beforeRedo', 'beforeRemoveCellMeta', 'beforeRemoveCol', -'beforeRemoveRow', 'beforeRender', 'beforeRenderer', 'beforeRowMove', 'beforeRowResize', 'beforeSetRangeEnd', -'beforeSetRangeEnd', 'beforeStretchingColumnWidth', 'beforeTouchScroll', 'beforeUndo', 'beforeValidate', -'beforeValueRender', 'construct', 'init', 'manualRowHeights', 'modifyAutofillRange', 'modifyCol', -'modifyColHeader', 'modifyColumnHeaderHeight', 'modifyColWidth', 'modifyCopyableRange', 'modifyData', -'modifyRow', 'modifyRowData', 'modifyRowHeader', 'modifyRowHeaderWidth', 'modifyRowHeight', 'modifyTransformEnd', -'modifyTransformStart', 'persistentStateLoad', 'persistentStateReset', 'persistentStateSave', -'skipLengthCache', 'unmodifyCol', 'unmodifyRow']; +const AVAILABLE_OPTIONS: string[] = Object.keys(Handsontable.DefaultSettings.prototype); +const AVAILABLE_HOOKS: string[] = Handsontable.hooks.getRegistered(); @Injectable() export class HotSettingsResolver { - private hooks = AVAILABLE_HOOKS.concat([ - 'afterAddChild', - 'afterDetachChild', - 'afterDropdownMenuDefaultOptions', - 'afterDropdownMenuHide', - 'afterDropdownMenuShow', - 'afterFilter', - 'afterTrimRow', - 'afterUntrimRow', - 'beforeAddChild', - 'beforeDetachChild', - 'beforeDropdownMenuSetItems', - 'beforeFilter', - 'hiddenColumn', - 'hiddenRow', - ]); - private options = AVAILABLE_OPTIONS.concat([ - 'bindRowsWithHeaders', - 'collapsibleColumns', - 'columnSummary', - 'dropdownMenu', - 'filters', - 'fixedRowsBottom', - 'formulas', - 'ganttChart', - 'headerTooltips', - 'hiddenColumns', - 'hiddenRows', - 'licenseKey', - 'nestedHeaders', - 'trimRows', - ]); - mergeSettings(component): object { const mergedSettings: object = {}; + const options = AVAILABLE_HOOKS.concat(AVAILABLE_OPTIONS); - if (component['settings'] !== void 0) { - Object.keys(component['settings']).forEach((key) => { - if (this.hooks.indexOf(key) > -1) { - mergedSettings[key] = (p1, p2, p3, p4, p5, p6) => { - return component._ngZone.run(() => { - return component['settings'][key].call(component.hotInstance, p1, p2, p3, p4, p5, p6); - }) - }; + options.forEach((key) => { + let option; - } else { - mergedSettings[key] = component['settings'][key]; - } - }); - } - - this.options.forEach((key) => { - const option = component[key]; + if (typeof component['settings'] === 'object') { + option = component['settings'][key]; + } - if (option !== void 0) { - mergedSettings[key] = option; + if (component[key] !== void 0) { + option = component[key]; } - }); - this.hooks.forEach((key) => { - const hook = component[key]; + if (option === void 0) { + return; - if (hook && hook.observers.length > 0) { - mergedSettings[key] = (p1, p2, p3, p4, p5, p6) => { - component._ngZone.run(() => { - component[key].emit({ hotInstance: component.hotInstance, params: [p1, p2, p3, p4, p5, p6] }); + } else if (typeof option === 'function' && AVAILABLE_HOOKS.indexOf(key) > -1) { + mergedSettings[key] = function(...args) { + return component._ngZone.run(() => { + return option(this, ...args); }); }; + + } else { + mergedSettings[key] = option; } }); diff --git a/lib/pro/src/hot-table.component.ts b/lib/pro/src/hot-table.component.ts index 6ff5341..a884878 100644 --- a/lib/pro/src/hot-table.component.ts +++ b/lib/pro/src/hot-table.component.ts @@ -8,10 +8,9 @@ import { OnInit, SimpleChanges, ViewEncapsulation, - EventEmitter, Input, - Output, } from '@angular/core'; + import * as Handsontable from 'handsontable-pro'; import { HotTableRegisterer } from './hot-table-registerer.service'; @@ -31,9 +30,10 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy private container: HTMLElement; private columnsComponents: HotColumnComponent[] = []; - @Input() settings: object; + @Input() settings: Handsontable.GridSettings; @Input() hotId: string; + @Input() activeHeaderClassName: string; @Input() allowEmpty: boolean; @Input() allowHtml: boolean; @Input() allowInsertColumn: boolean; @@ -98,7 +98,6 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy @Input() minRows: number; @Input() minSpareCols: number; @Input() minSpareRows: number; - @Input() multiSelect: boolean; @Input() noWordWrapClassName: string; @Input() numericFormat: any; @Input() observeChanges: boolean; @@ -117,6 +116,7 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy @Input() rowHeaderWidth: number | number[]; @Input() rowHeights: number | number[] | string | ((row: number) => number); @Input() search: boolean; + @Input() selectionMode: string; @Input() selectOptions: string[] | number[]; @Input() skipColumnOnPaste: boolean; @Input() sortByRelevance: boolean; @@ -142,127 +142,124 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy @Input() width: number| (() => number); @Input() wordWrap: boolean; - @Output() afterBeginEditing: EventEmitter = new EventEmitter(); - @Output() afterCellMetaReset: EventEmitter = new EventEmitter(); - @Output() afterChange: EventEmitter = new EventEmitter(); - @Output() afterChangesObserved: EventEmitter = new EventEmitter(); - @Output() afterColumnMove: EventEmitter = new EventEmitter(); - @Output() afterColumnResize: EventEmitter = new EventEmitter(); - @Output() afterColumnSort: EventEmitter = new EventEmitter(); - @Output() afterContextMenuDefaultOptions: EventEmitter = new EventEmitter(); - @Output() afterContextMenuHide: EventEmitter = new EventEmitter(); - @Output() afterContextMenuShow: EventEmitter = new EventEmitter(); - @Output() afterCopy: EventEmitter = new EventEmitter(); - @Output() afterCopyLimit: EventEmitter = new EventEmitter(); - @Output() afterCreateCol: EventEmitter = new EventEmitter(); - @Output() afterCreateRow: EventEmitter = new EventEmitter(); - @Output() afterCut: EventEmitter = new EventEmitter(); - @Output() afterDeselect: EventEmitter = new EventEmitter(); - @Output() afterDestroy: EventEmitter = new EventEmitter(); - @Output() afterDocumentKeyDown: EventEmitter = new EventEmitter(); - @Output() afterGetCellMeta: EventEmitter = new EventEmitter(); - @Output() afterGetColHeader: EventEmitter = new EventEmitter(); - @Output() afterGetColumnHeaderRenderers: EventEmitter = new EventEmitter(); - @Output() afterGetRowHeader: EventEmitter = new EventEmitter(); - @Output() afterGetRowHeaderRenderers: EventEmitter = new EventEmitter(); - @Output() afterInit: EventEmitter = new EventEmitter(); - @Output() afterLanguageChange: EventEmitter = new EventEmitter(); - @Output() afterListen: EventEmitter = new EventEmitter(); - @Output() afterLoadData: EventEmitter = new EventEmitter(); - @Output() afterModifyTransformEnd: EventEmitter = new EventEmitter(); - @Output() afterModifyTransformStart: EventEmitter = new EventEmitter(); - @Output() afterMomentumScroll: EventEmitter = new EventEmitter(); - @Output() afterOnCellCornerDblClick: EventEmitter = new EventEmitter(); - @Output() afterOnCellCornerMouseDown: EventEmitter = new EventEmitter(); - @Output() afterOnCellMouseDown: EventEmitter = new EventEmitter(); - @Output() afterOnCellMouseOut: EventEmitter = new EventEmitter(); - @Output() afterOnCellMouseOver: EventEmitter = new EventEmitter(); - @Output() afterPaste: EventEmitter = new EventEmitter(); - @Output() afterPluginsInitialized: EventEmitter = new EventEmitter(); - @Output() afterRedo: EventEmitter = new EventEmitter(); - @Output() afterRemoveCellMeta: EventEmitter = new EventEmitter(); - @Output() afterRemoveCol: EventEmitter = new EventEmitter(); - @Output() afterRemoveRow: EventEmitter = new EventEmitter(); - @Output() afterRender: EventEmitter = new EventEmitter(); - @Output() afterRenderer: EventEmitter = new EventEmitter(); - @Output() afterRowMove: EventEmitter = new EventEmitter(); - @Output() afterRowResize: EventEmitter = new EventEmitter(); - @Output() afterScrollHorizontally: EventEmitter = new EventEmitter(); - @Output() afterScrollVertically: EventEmitter = new EventEmitter(); - @Output() afterSelection: EventEmitter = new EventEmitter(); - @Output() afterSelectionByProp: EventEmitter = new EventEmitter(); - @Output() afterSelectionEnd: EventEmitter = new EventEmitter(); - @Output() afterSelectionEndByProp: EventEmitter = new EventEmitter(); - @Output() afterSetCellMeta: EventEmitter = new EventEmitter(); - @Output() afterSetDataAtCell: EventEmitter = new EventEmitter(); - @Output() afterSetDataAtRowProp: EventEmitter = new EventEmitter(); - @Output() afterUndo: EventEmitter = new EventEmitter(); - @Output() afterUnlisten: EventEmitter = new EventEmitter(); - @Output() afterUpdateSettings: EventEmitter = new EventEmitter(); - @Output() afterValidate: EventEmitter = new EventEmitter(); - @Output() afterViewportColumnCalculatorOverride: EventEmitter = new EventEmitter(); - @Output() afterViewportRowCalculatorOverride: EventEmitter = new EventEmitter(); - @Output() beforeAutofill: EventEmitter = new EventEmitter(); - @Output() beforeAutofillInsidePopulate: EventEmitter = new EventEmitter(); - @Output() beforeCellAlignment: EventEmitter = new EventEmitter(); - @Output() beforeChange: EventEmitter = new EventEmitter(); - @Output() beforeChangeRender: EventEmitter = new EventEmitter(); - @Output() beforeColumnMove: EventEmitter = new EventEmitter(); - @Output() beforeColumnResize: EventEmitter = new EventEmitter(); - @Output() beforeColumnSort: EventEmitter = new EventEmitter(); - @Output() beforeContextMenuSetItems: EventEmitter = new EventEmitter(); - @Output() beforeCopy: EventEmitter = new EventEmitter(); - @Output() beforeCreateCol: EventEmitter = new EventEmitter(); - @Output() beforeCreateRow: EventEmitter = new EventEmitter(); - @Output() beforeCut: EventEmitter = new EventEmitter(); - @Output() beforeDrawBorders: EventEmitter = new EventEmitter(); - @Output() beforeGetCellMeta: EventEmitter = new EventEmitter(); - @Output() beforeInit: EventEmitter = new EventEmitter(); - @Output() beforeInitWalkontable: EventEmitter = new EventEmitter(); - @Output() beforeKeyDown: EventEmitter = new EventEmitter(); - @Output() beforeLanguageChange: EventEmitter = new EventEmitter(); - @Output() beforeOnCellMouseDown: EventEmitter = new EventEmitter(); - @Output() beforeOnCellMouseOut: EventEmitter = new EventEmitter(); - @Output() beforeOnCellMouseOver: EventEmitter = new EventEmitter(); - @Output() beforePaste: EventEmitter = new EventEmitter(); - @Output() beforeRedo: EventEmitter = new EventEmitter(); - @Output() beforeRemoveCellMeta: EventEmitter = new EventEmitter(); - @Output() beforeRemoveCol: EventEmitter = new EventEmitter(); - @Output() beforeRemoveRow: EventEmitter = new EventEmitter(); - @Output() beforeRender: EventEmitter = new EventEmitter(); - @Output() beforeRenderer: EventEmitter = new EventEmitter(); - @Output() beforeRowMove: EventEmitter = new EventEmitter(); - @Output() beforeRowResize: EventEmitter = new EventEmitter(); - @Output() beforeSetRangeEnd: EventEmitter = new EventEmitter(); - @Output() beforeSetRangeStart: EventEmitter = new EventEmitter(); - @Output() beforeStretchingColumnWidth: EventEmitter = new EventEmitter(); - @Output() beforeTouchScroll: EventEmitter = new EventEmitter(); - @Output() beforeUndo: EventEmitter = new EventEmitter(); - @Output() beforeValidate: EventEmitter = new EventEmitter(); - @Output() beforeValueRender: EventEmitter = new EventEmitter(); - @Output() construct: EventEmitter = new EventEmitter(); - @Output() init: EventEmitter = new EventEmitter(); - @Output() manualRowHeights: EventEmitter = new EventEmitter(); - @Output() modifyAutofillRange: EventEmitter = new EventEmitter(); - @Output() modifyCol: EventEmitter = new EventEmitter(); - @Output() modifyColHeader: EventEmitter = new EventEmitter(); - @Output() modifyColumnHeaderHeight: EventEmitter = new EventEmitter(); - @Output() modifyColWidth: EventEmitter = new EventEmitter(); - @Output() modifyCopyableRange: EventEmitter = new EventEmitter(); - @Output() modifyData: EventEmitter = new EventEmitter(); - @Output() modifyRow: EventEmitter = new EventEmitter(); - @Output() modifyRowData: EventEmitter = new EventEmitter(); - @Output() modifyRowHeader: EventEmitter = new EventEmitter(); - @Output() modifyRowHeaderWidth: EventEmitter = new EventEmitter(); - @Output() modifyRowHeight: EventEmitter = new EventEmitter(); - @Output() modifyTransformEnd: EventEmitter = new EventEmitter(); - @Output() modifyTransformStart: EventEmitter = new EventEmitter(); - @Output() persistentStateLoad: EventEmitter = new EventEmitter(); - @Output() persistentStateReset: EventEmitter = new EventEmitter(); - @Output() persistentStateSave: EventEmitter = new EventEmitter(); - @Output() skipLengthCache: EventEmitter = new EventEmitter(); - @Output() unmodifyCol: EventEmitter = new EventEmitter(); - @Output() unmodifyRow: EventEmitter = new EventEmitter(); + @Input() afterBeginEdting: (row: number, column: number) => void; + @Input() afterCellMetaReset: () => void; + @Input() afterChange: (changes: any[], source: string) => void; + @Input() afterChangesObserved: () => void; + @Input() afterColumnMove: (startColumn: number, endColumn: number) => void; + @Input() afterColumnResize: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void; + @Input() afterColumnSort: (column: number, order: boolean) => void; + @Input() afterContextMenuDefaultOptions: (predefinedItems: any[]) => void; + @Input() afterContextMenuHide: (context: object) => void; + @Input() beforeContextMenuShow: (context: object) => void; + @Input() afterContextMenuShow: (context: object) => void; + @Input() afterCopy: (data: any[], coords: any[]) => void; + @Input() afterCopyLimit: (selectedRows: number, selectedColumnds: number, copyRowsLimit: number, copyColumnsLimit: number) => void; + @Input() afterCreateCol: (index: number, amount: number) => void; + @Input() afterCreateRow: (index: number, amount: number) => void; + @Input() afterCut: (data: any[], coords: any[]) => void; + @Input() afterDeselect: () => void; + @Input() afterDestroy: () => void; + @Input() afterDocumentKeyDown: (event: Event) => void; + @Input() afterGetCellMeta: (row: number, col: number, cellProperties: Handsontable.GridSettings) => void; + @Input() afterGetColHeader: (col: number, TH: Element) => void; + @Input() afterGetColumnHeaderRenderers: (array: any[]) => void; + @Input() afterGetRowHeader: (row: number, TH: Element) => void; + @Input() afterGetRowHeaderRenderers: (array: any[]) => void; + @Input() afterInit: () => void; + @Input() afterLoadData: (firstTime: boolean) => void; + @Input() afterModifyTransformEnd: (coords: Handsontable.wot.CellCoords, rowTransformDir: number, colTransformDir: number) => void; + @Input() afterModifyTransformStart: (coords: Handsontable.wot.CellCoords, rowTransformDir: number, colTransformDir: number) => void; + @Input() afterMomentumScroll: () => void; + @Input() afterOnCellCornerDblClick: (event: object) => void; + @Input() afterOnCellCornerMouseDown: (event: object) => void; + @Input() afterOnCellMouseDown: (event: object, coords: object, TD: Element) => void; + @Input() afterOnCellMouseOver: (event: object, coords: object, TD: Element) => void; + @Input() afterOnCellMouseOut: (event: object, coords: object, TD: Element) => void; + @Input() afterPaste: (data: any[], coords: any[]) => void; + @Input() afterPluginsInitialized: () => void; + @Input() afterRedo: (action: object) => void; + @Input() afterRemoveCol: (index: number, amount: number) => void; + @Input() afterRemoveRow: (index: number, amount: number) => void; + @Input() afterRender: (isForced: boolean) => void; + @Input() afterRenderer: (TD: Element, row: number, col: number, prop: string | number, + value: string, cellProperties: Handsontable.GridSettings) => void; + @Input() afterRowMove: (startRow: number, endRow: number) => void; + @Input() afterRowResize: (currentRow: number, newSize: number, isDoubleClick: boolean) => void; + @Input() afterScrollHorizontally: () => void; + @Input() afterScrollVertically: () => void; + @Input() afterSelection: (r: number, c: number, r2: number, c2: number, preventScrolling: object, selectionLayerLevel: number) => void; + @Input() afterSelectionByProp: (r: number, p: string, r2: number, p2: string, + preventScrolling: object, selectionLayerLevel: number) => void; + @Input() afterSelectionEnd: (r: number, c: number, r2: number, c2: number, selectionLayerLevel: number) => void; + @Input() afterSelectionEndByProp: (r: number, p: string, r2: number, p2: string, selectionLayerLevel: number) => void; + @Input() afterSetCellMeta: (row: number, col: number, key: string, value: any) => void; + @Input() afterSetDataAtCell: (changes: any[], source: string) => void; + @Input() afterSetDataAtRowProp: (changes: any[], source: string) => void; + @Input() afterUndo: (action: object) => void; + @Input() afterUpdateSettings: () => void; + @Input() afterValidate: (isValid: boolean, value: any, row: number, prop: string | number, source: string) => void | boolean; + @Input() afterViewportColumnCalculatorOverride: (calc: object) => void; + @Input() afterViewportRowCalculatorOverride: (calc: object) => void; + @Input() beforeAutofill: (start: object, end: object, data: any[]) => void; + @Input() beforeAutofillInsidePopulate: (index: object, direction: string, input: any[], deltas: any[]) => void; + @Input() beforeCellAlignment: (stateBefore: any, range: any, type: string, alignmentClass: string) => void; + @Input() beforeChange: (changes: any[], source: string) => void; + @Input() beforeChangeRender: (changes: any[], source: string) => void; + @Input() beforeColumnMove: (startColumn: number, endColumn: number) => void; + @Input() beforeColumnResize: (currentColumn: number, newSize: number, isDoubleClick: boolean) => void; + @Input() beforeColumnSort: (column: number, order: boolean) => void; + @Input() beforeContextMenuSetItems: (menuItems: any[]) => void; + @Input() beforeCopy: (data: any[], coords: any[]) => any; + @Input() beforeCreateCol: (index: number, amount: number, source: string) => void; + @Input() beforeCreateRow: (index: number, amount: number, source: string) => void; + @Input() beforeCut: (data: any[], coords: any[]) => any; + @Input() beforeDrawBorders: (corners: any[], borderClassName: string) => void; + @Input() beforeGetCellMeta: (row: number, col: number, cellProperties: Handsontable.GridSettings) => void; + @Input() beforeInit: () => void; + @Input() beforeInitWalkontable: (walkontableConfig: object) => void; + @Input() beforeKeyDown: (event: Event) => void; + @Input() beforeOnCellMouseDown: (event: Event, coords: object, TD: Element) => void; + @Input() beforeOnCellMouseOut: (event: Event, coords: Handsontable.wot.CellCoords, TD: Element) => void; + @Input() beforeOnCellMouseOver: (event: Event, coords: Handsontable.wot.CellCoords, TD: Element, blockCalculations: object) => void; + @Input() beforePaste: (data: any[], coords: any[]) => any; + @Input() beforeRedo: (action: object) => void; + @Input() beforeRemoveCol: (index: number, amount: number, logicalCols: any[]) => void; + @Input() beforeRemoveRow: (index: number, amount: number, logicalRows: any[]) => void; + @Input() beforeRender: (isForced: boolean, skipRender: object) => void; + @Input() beforeRenderer: (TD: Element, row: number, col: number, prop: string | number, + value: string, cellProperties: Handsontable.GridSettings) => void; + @Input() beforeRowMove: (startRow: number, endRow: number) => void; + @Input() beforeRowResize: (currentRow: number, newSize: number, isDoubleClick: boolean) => any; + @Input() beforeSetRangeEnd: (coords: Handsontable.wot.CellCoords) => void; + @Input() beforeSetRangeStart: (coords: Handsontable.wot.CellCoords) => void; + @Input() beforeStretchingColumnWidth: (stretchedWidth: number, column: number) => void; + @Input() beforeTouchScroll: () => void; + @Input() beforeUndo: (action: object) => void; + @Input() beforeValidate: (value: any, row: number, prop: string | number, source: string) => void; + @Input() beforeValueRender: (value: any, cellProperties: object) => void; + @Input() construct: () => void; + @Input() init: () => void; + @Input() manualRowHeights: (state: any[]) => void; + @Input() modifyAutofillRange: (startArea: any[], entireArea: any[]) => void; + @Input() modifyCol: (col: number) => void; + @Input() modifyColHeader: (column: number) => void; + @Input() modifyColWidth: (width: number, col: number) => void; + @Input() modifyCopyableRange: (copyableRanges: any[]) => void; + @Input() modifyData: (row: number, column: number, valueHolder: object, ioMode: string) => void; + @Input() modifyRow: (row: number) => void; + @Input() modifyRowHeader: (row: number) => void; + @Input() modifyRowHeaderWidth: (rowHeaderWidth: number) => void; + @Input() modifyRowHeight: (height: number, row: number) => void; + @Input() modifyRowSourceData: (row: number) => void; + @Input() modifyTransformEnd: (delta: Handsontable.wot.CellCoords) => void; + @Input() modifyTransformStart: (delta: Handsontable.wot.CellCoords) => void; + @Input() persistentStateLoad: (key: string, valuePlaceholder: object) => void; + @Input() persistentStateReset: (key: string) => void; + @Input() persistentStateSave: (key: string, value: any) => void; + @Input() skipLengthCache: (delay: number) => void; + @Input() unmodifyCol: (col: number) => void; + @Input() unmodifyRow: (row: number) => void; @Input() bindRowsWithHeaders: boolean | string; @Input() collapsibleColumns: boolean | object[]; @@ -279,20 +276,21 @@ export class HotTableComponent implements AfterContentInit, OnChanges, OnDestroy @Input() nestedHeaders: boolean | any[]; @Input() trimRows: boolean | number[]; - @Output() afterAddChild: EventEmitter = new EventEmitter(); - @Output() afterDetachChild: EventEmitter = new EventEmitter(); - @Output() afterDropdownMenuDefaultOptions: EventEmitter = new EventEmitter(); - @Output() afterDropdownMenuHide: EventEmitter = new EventEmitter(); - @Output() afterDropdownMenuShow: EventEmitter = new EventEmitter(); - @Output() afterFilter: EventEmitter = new EventEmitter(); - @Output() afterTrimRow: EventEmitter = new EventEmitter(); - @Output() afterUntrimRow: EventEmitter = new EventEmitter(); - @Output() beforeAddChild: EventEmitter = new EventEmitter(); - @Output() beforeDetachChild: EventEmitter = new EventEmitter(); - @Output() beforeDropdownMenuSetItems: EventEmitter = new EventEmitter(); - @Output() beforeFilter: EventEmitter = new EventEmitter(); - @Output() hiddenColumn: EventEmitter = new EventEmitter(); - @Output() hiddenRow: EventEmitter = new EventEmitter(); + @Input() afterAddChild: (parent: object, element: object | void, index: number | void) => void; + @Input() afterDetachChild: (parent: object, element: object) => void; + @Input() afterDropdownMenuDefaultOptions: (predefinedItems: any[]) => void; + @Input() afterDropdownMenuHide: (instance: any) => void; + @Input() afterDropdownMenuShow: (instance: any) => void; + @Input() afterFilter: (formulasStack: any[]) => void; + @Input() afterTrimRow: (rows: any[]) => void; + @Input() afterUntrimRow: (rows: any[]) => void; + @Input() beforeAddChild: (parent: object, element: object | void, index: number | void) => void; + @Input() beforeDetachChild: (parent: object, element: object) => void; + @Input() beforeDropdownMenuSetItems: (menuItems: any[]) => void; + @Input() beforeDropdownMenuShow: (instance: any) => void; + @Input() beforeFilter: (formulasStack: any[]) => void; + @Input() hiddenColumn: (column: number) => void; + @Input() hiddenRow: (row: number) => void; constructor( private el: ElementRef, diff --git a/package-lock.json b/package-lock.json index 86ac2a9..9b9cf52 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "angular-handsontable", - "version": "1.0.0-beta4", + "version": "1.0.0-beta5", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,10 +10,10 @@ "integrity": "sha512-U0BCZtThq5rUfY08shHXpxe8ZhSsiYB/cJjUvAWRTs/ORrs8pbngS6xwseQws8d/vHoVrtqGD9GU9h8AmFRERQ==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "source-map": "0.5.7", - "typescript": "2.6.2", - "webpack-sources": "1.1.0" + "loader-utils": "^1.1.0", + "source-map": "^0.5.6", + "typescript": "~2.6.2", + "webpack-sources": "^1.0.1" } }, "@angular-devkit/core": { @@ -22,19 +22,19 @@ "integrity": "sha512-3yBkUPFJ4X/6+jUWP74jtt53ZjFggt3L+kkOVX0VxwiaA0k56OvpnR9YMkW+Aa+qoXd2/hH995oG7GRHv3uvaA==", "dev": true, "requires": { - "ajv": "6.4.0", - "chokidar": "1.7.0", - "rxjs": "6.0.0-uncanny-rc.7", - "source-map": "0.5.7" + "ajv": "~6.4.0", + "chokidar": "^1.7.0", + "rxjs": "^6.0.0-beta.3", + "source-map": "^0.5.6" }, "dependencies": { "rxjs": { - "version": "6.0.0-uncanny-rc.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.0.0-uncanny-rc.7.tgz", - "integrity": "sha512-mXBJnSpbrotKF83b1sd5uSa7q/J/y99yBArB02l6B1v2QAP18FCn2BwRXfC9O4A+75mfwUAIUWJyLilboF5z2A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", "dev": true, "requires": { - "tslib": "1.9.0" + "tslib": "^1.9.0" } } } @@ -46,17 +46,17 @@ "dev": true, "requires": { "@angular-devkit/core": "0.5.7", - "@ngtools/json-schema": "1.1.0", - "rxjs": "6.0.0-uncanny-rc.7" + "@ngtools/json-schema": "^1.1.0", + "rxjs": "^6.0.0-beta.3" }, "dependencies": { "rxjs": { - "version": "6.0.0-uncanny-rc.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.0.0-uncanny-rc.7.tgz", - "integrity": "sha512-mXBJnSpbrotKF83b1sd5uSa7q/J/y99yBArB02l6B1v2QAP18FCn2BwRXfC9O4A+75mfwUAIUWJyLilboF5z2A==", + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", "dev": true, "requires": { - "tslib": "1.9.0" + "tslib": "^1.9.0" } } } @@ -74,58 +74,58 @@ "@ngtools/webpack": "1.10.2", "@schematics/angular": "0.3.2", "@schematics/package-update": "0.3.2", - "ajv": "6.4.0", - "autoprefixer": "7.2.6", - "cache-loader": "1.2.2", - "chalk": "2.2.2", - "circular-dependency-plugin": "4.4.0", - "clean-css": "4.1.11", - "common-tags": "1.7.2", - "copy-webpack-plugin": "4.4.3", - "core-object": "3.1.5", - "denodeify": "1.2.1", - "ember-cli-string-utils": "1.1.0", - "extract-text-webpack-plugin": "3.0.2", - "file-loader": "1.1.11", - "fs-extra": "4.0.3", - "glob": "7.1.2", - "html-webpack-plugin": "2.30.1", - "istanbul-instrumenter-loader": "3.0.1", - "karma-source-map-support": "1.2.0", - "less": "2.7.3", - "less-loader": "4.1.0", - "license-webpack-plugin": "1.3.1", + "ajv": "^6.1.1", + "autoprefixer": "^7.2.3", + "cache-loader": "^1.2.0", + "chalk": "~2.2.0", + "circular-dependency-plugin": "^4.2.1", + "clean-css": "^4.1.11", + "common-tags": "^1.3.1", + "copy-webpack-plugin": "~4.4.1", + "core-object": "^3.1.0", + "denodeify": "^1.2.1", + "ember-cli-string-utils": "^1.0.0", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^1.1.5", + "fs-extra": "^4.0.0", + "glob": "^7.0.3", + "html-webpack-plugin": "^2.29.0", + "istanbul-instrumenter-loader": "^3.0.0", + "karma-source-map-support": "^1.2.0", + "less": "^2.7.2", + "less-loader": "^4.0.5", + "license-webpack-plugin": "^1.0.0", "loader-utils": "1.1.0", - "lodash": "4.17.5", - "memory-fs": "0.4.1", - "minimatch": "3.0.4", - "node-modules-path": "1.0.1", - "node-sass": "4.8.3", - "nopt": "4.0.1", - "opn": "5.1.0", - "portfinder": "1.0.13", - "postcss": "6.0.21", - "postcss-import": "11.1.0", - "postcss-loader": "2.1.4", - "postcss-url": "7.3.2", - "raw-loader": "0.5.1", - "resolve": "1.7.1", - "rxjs": "5.5.10", - "sass-loader": "6.0.7", - "semver": "5.5.0", - "silent-error": "1.1.0", - "source-map-support": "0.4.18", - "style-loader": "0.19.1", - "stylus": "0.54.5", - "stylus-loader": "3.0.2", - "uglifyjs-webpack-plugin": "1.2.4", - "url-loader": "0.6.2", - "webpack": "3.11.0", - "webpack-dev-middleware": "1.12.2", - "webpack-dev-server": "2.11.2", - "webpack-merge": "4.1.2", - "webpack-sources": "1.1.0", - "webpack-subresource-integrity": "1.0.4" + "lodash": "^4.11.1", + "memory-fs": "^0.4.1", + "minimatch": "^3.0.4", + "node-modules-path": "^1.0.0", + "node-sass": "^4.7.2", + "nopt": "^4.0.1", + "opn": "~5.1.0", + "portfinder": "~1.0.12", + "postcss": "^6.0.16", + "postcss-import": "^11.0.0", + "postcss-loader": "^2.0.10", + "postcss-url": "^7.1.2", + "raw-loader": "^0.5.1", + "resolve": "^1.1.7", + "rxjs": "^5.5.6", + "sass-loader": "^6.0.6", + "semver": "^5.1.0", + "silent-error": "^1.0.0", + "source-map-support": "^0.4.1", + "style-loader": "^0.19.1", + "stylus": "^0.54.5", + "stylus-loader": "^3.0.1", + "uglifyjs-webpack-plugin": "^1.1.8", + "url-loader": "^0.6.2", + "webpack": "~3.11.0", + "webpack-dev-middleware": "~1.12.0", + "webpack-dev-server": "~2.11.0", + "webpack-merge": "^4.1.0", + "webpack-sources": "^1.0.0", + "webpack-subresource-integrity": "^1.0.1" }, "dependencies": { "@angular-devkit/core": { @@ -134,10 +134,10 @@ "integrity": "sha512-zABk/iP7YX5SVbmK4e+IX7j2d0D37MQJQiKgWdV3JzfvVJhNJzddiirtT980pIafoq+KyvTgVwXtc+vnux0oeQ==", "dev": true, "requires": { - "ajv": "5.5.2", - "chokidar": "1.7.0", - "rxjs": "5.5.10", - "source-map": "0.5.7" + "ajv": "~5.5.1", + "chokidar": "^1.7.0", + "rxjs": "^5.5.6", + "source-map": "^0.5.6" }, "dependencies": { "ajv": { @@ -146,10 +146,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } } } @@ -160,8 +160,8 @@ "integrity": "sha512-B6zZoqvHaTJy+vVdA6EtlxnCdGMa5elCa4j9lQLC3JI8DLvMXUWkCIPVbPzJ/GSRR9nsKWpvYMYaJyfBDUqfhw==", "dev": true, "requires": { - "@ngtools/json-schema": "1.2.0", - "rxjs": "5.5.10" + "@ngtools/json-schema": "^1.1.0", + "rxjs": "^5.5.6" } }, "@ngtools/json-schema": { @@ -173,31 +173,31 @@ } }, "@angular/common": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.10.tgz", - "integrity": "sha512-4zgI/Q6bo/KCvrDPf8gc2IpTJ3PFKgd9RF4jZuh1uc+uEYTAj396tDF8o412AJ/iwtYOHWUx+YgzAvT8dHXZ5Q==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-5.2.11.tgz", + "integrity": "sha512-LniJjGAeftUJDJh+2+LEjltcGen08C/VMxQ/eUYmesytKy1sN+MWzh3GbpKfEWtWmyUsYTG9lAAJNo3L3jPwsw==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@angular/compiler": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.10.tgz", - "integrity": "sha512-FI9ip+aWGpKQB+VfNbFQ+wyh0K4Th8Q/MrHxW6CN4BYVAfFtfORRohvyyYk0sRxuQO8JFN3W/FFfdXjuL+cZKw==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-5.2.11.tgz", + "integrity": "sha512-ICvB1ud1mxaXUYLb8vhJqiLhGBVocAZGxoHTglv6hMkbrRYcnlB3FZJFOzBvtj+krkd1jamoYLI43UAmesqQ6Q==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@angular/compiler-cli": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.10.tgz", - "integrity": "sha512-RhI26rVALRn3LrU0CAIEj56m60vLyCd8e2Ah79yRP6vlXL8k6SylXytUljTeXIBtiVu2Bi1qKGf2s1X674GzCw==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-5.2.11.tgz", + "integrity": "sha512-dwrQ0yxoCM/XzKzlm7pTsyg4/6ECjT9emZufGj8t12bLMO8NDn1IJOsqXJA1+onEgQKhlr0Ziwi+96TvDTb1Cg==", "dev": true, "requires": { - "chokidar": "1.7.0", - "minimist": "1.2.0", - "reflect-metadata": "0.1.12", - "tsickle": "0.27.5" + "chokidar": "^1.4.2", + "minimist": "^1.2.0", + "reflect-metadata": "^0.1.2", + "tsickle": "^0.27.2" }, "dependencies": { "minimist": { @@ -213,12 +213,13 @@ "dev": true }, "source-map-support": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", - "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "tsickle": { @@ -227,76 +228,75 @@ "integrity": "sha512-NP+CjM1EXza/M8mOXBLH3vkFEJiu1zfEAlC5WdJxHPn8l96QPz5eooP6uAgYtw1CcKfuSyIiheNUdKxtDWCNeg==", "dev": true, "requires": { - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map": "0.6.1", - "source-map-support": "0.5.4" + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map": "^0.6.0", + "source-map-support": "^0.5.0" } } } }, "@angular/core": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.10.tgz", - "integrity": "sha512-glDuTtHTcAVhfU3NVewxz/W+Iweq5IaeW2tnMa+RKLopYk9fRs8eR5iTixTGvegwKR770vfXg/gR7P6Ii5cYGQ==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-5.2.11.tgz", + "integrity": "sha512-h2vpvXNAdOqKzbVaZcHnHGMT5A8uDnizk6FgGq6SPyw9s3d+/VxZ9LJaPjUk3g2lICA7og1tUel+2YfF971MlQ==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@angular/forms": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.10.tgz", - "integrity": "sha512-XQR4cd1Eey9aDT3CxQ6pbBWSBEg1408ZV/EUblKgMgt4k8PfDiuLSbF+MI/TOYAg3UkcVAxN1no4hWtkou8Rpw==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-5.2.11.tgz", + "integrity": "sha512-wBllFlIubPclAFRXUc84Kc7TMeKOftzrQraVZ7ooTNeFLLa/FZLN2K8HGyRde8X/XDsMu1XAmjNfkz++spwTzA==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@angular/http": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.10.tgz", - "integrity": "sha512-euEJbxpH+pKBAwGUSo7XvNdods/kY6I4s8OUaJPUMtraQkhE6TJ0OMYvnqmGbdLimsg3ZMxqm54jCOjj9saEOQ==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-5.2.11.tgz", + "integrity": "sha512-eR7wNXh1+6MpcQNb3sq4bJVX03dx50Wl3kpPG+Q7N1VSL0oPQSobaTrR17ac3oFCEfSJn6kkUCqtUXha6wcNHg==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@angular/language-service": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.2.10.tgz", - "integrity": "sha512-/KGIb7yMRzml16EI6Givyrau3e0Mf7jKlbIiCnXoUU7f42BvrotRk9ob1aVzrXkX/DvESniX2tFoG14jS5VGrg==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-5.2.11.tgz", + "integrity": "sha512-tgnFAhwBmUs1W0dmcmlBmUlMaOgkoyuSdrcF23lz8W5+nSLb+LnbH5a3blU2NVqA4ESvLKQkPW5dpKa/LuhrPQ==", "dev": true }, "@angular/platform-browser": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.10.tgz", - "integrity": "sha512-oF1A0BS1wpTlxfv6YytkFCkztvvtVllnh5IUnoyV+siVT3qogKat9ZmzCmcDJ5SvIDYkY+rXBhumyFzBZ5ufFg==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-5.2.11.tgz", + "integrity": "sha512-6YZ4IpBFqXx88vEzBZG2WWnaSYXbFWDgG0iT+bZPHAfwsbmqbcMcs7Ogu+XZ4VmK02dTqbrFh7U4P2W+sqrzow==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@angular/platform-browser-dynamic": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.10.tgz", - "integrity": "sha512-TquhIkyR6uXfmzk6RiEl5+8Kk653Wqe4F+pKn5gFi+Z6cDm4nkDlT9kgT3e6c08JHw9fGGAvNmsalq7oS+PnNg==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-5.2.11.tgz", + "integrity": "sha512-5kKPNULcXNwkyBjpHfF+pq+Yxi8Zl866YSOK9t8txoiQ9Ctw97kMkEJcTetk6MJgBp/NP3YyjtoTAm8oXLerug==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@angular/router": { - "version": "5.2.10", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.10.tgz", - "integrity": "sha512-63op4yExVsm+Ng4dlCeexQdXKYMnzxtmX116V3hY/mHi1MPTR20uPCx55U8xR0kQvxs0ea8tmJxHdMpz76edqA==", + "version": "5.2.11", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-5.2.11.tgz", + "integrity": "sha512-NT8xYl7Vr3qPygisek3PlXqNROEjg48GXOEsDEc7c8lDBo3EB9Tf328fWJD0GbLtXZNhmmNNxwIe+qqPFFhFAA==", "requires": { - "tslib": "1.9.0" + "tslib": "^1.7.1" } }, "@handsontable/formulajs": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@handsontable/formulajs/-/formulajs-1.2.3.tgz", - "integrity": "sha512-jMyqkJoYoHQBnqvdbrenbmW1tOaDTG3wJnQ9lUWwC4vwELKIPRLEbYM0XI5Amvz3TBoLaksPLrWHc/avaFhpcQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@handsontable/formulajs/-/formulajs-2.0.0.tgz", + "integrity": "sha1-PkH+27UaGV3VuMJpSv4XHsCPOgI=", "requires": { - "bessel": "0.2.0", - "jStat": "1.7.1", - "numbro": "1.11.0" + "bessel": "^0.2.0", + "jStat": "^1.7.0" } }, "@ngtools/json-schema": { @@ -311,14 +311,14 @@ "integrity": "sha512-3u2zg2rarG3qNLSukBClGADWuq/iNn5SQtlSeAbfKzwBeyLGbF0gN1z1tVx1Bcr8YwFzR6NdRePQmJGcoqq1fg==", "dev": true, "requires": { - "chalk": "2.2.2", - "enhanced-resolve": "3.4.1", - "loader-utils": "1.1.0", - "magic-string": "0.22.5", - "semver": "5.5.0", - "source-map": "0.5.7", - "tree-kill": "1.2.0", - "webpack-sources": "1.1.0" + "chalk": "~2.2.0", + "enhanced-resolve": "^3.1.0", + "loader-utils": "^1.0.2", + "magic-string": "^0.22.3", + "semver": "^5.3.0", + "source-map": "^0.5.6", + "tree-kill": "^1.0.0", + "webpack-sources": "^1.1.0" } }, "@schematics/angular": { @@ -327,7 +327,7 @@ "integrity": "sha512-Elrk0BA951s0ScFZU0AWrpUeJBYVR52DZ1QTIO5R0AhwEd1PW4olI8szPLGQlVW5Sd6H0FA/fyFLIvn2r9v6Rw==", "dev": true, "requires": { - "typescript": "2.6.2" + "typescript": "~2.6.2" } }, "@schematics/package-update": { @@ -336,15 +336,21 @@ "integrity": "sha512-7aVP4994Hu8vRdTTohXkfGWEwLhrdNP3EZnWyBootm5zshWqlQojUGweZe5zwewsKcixeVOiy2YtW+aI4aGSLA==", "dev": true, "requires": { - "rxjs": "5.5.10", - "semver": "5.5.0", - "semver-intersect": "1.3.1" + "rxjs": "^5.5.6", + "semver": "^5.3.0", + "semver-intersect": "^1.1.2" } }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, "@types/jasmine": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.6.tgz", - "integrity": "sha512-clg9raJTY0EOo5pVZKX3ZlMjlYzVU73L71q5OV1jhE2Uezb7oF94jh4CvwrW6wInquQAdhOxJz5VDF2TLUGmmA==", + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-2.8.8.tgz", + "integrity": "sha512-OJSUxLaxXsjjhob2DBzqzgrkLmukM3+JMpRp0r0E4HTdT1nwDCWhaswjYxazPij6uOdzHCJfNbDjmQ1/rnNbCg==", "dev": true }, "@types/node": { @@ -377,16 +383,6 @@ "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==", "dev": true }, - "JSONStream": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz", - "integrity": "sha1-wQI3G27Dp887hHygDCC7D85Mbeo=", - "dev": true, - "requires": { - "jsonparse": "1.3.1", - "through": "2.3.8" - } - }, "abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", @@ -399,14 +395,14 @@ "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=", "dev": true, "requires": { - "mime-types": "2.1.18", + "mime-types": "~2.1.18", "negotiator": "0.6.1" } }, "acorn": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", - "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz", + "integrity": "sha512-d+nbxBUGKg7Arpsvbnlq61mc12ek3EY8EQldM3GPAhWJ1UVxC6TDGbIvUMNU6obBX3i1+ptCIzV4vq0gFPEGVQ==", "dev": true }, "acorn-dynamic-import": { @@ -415,7 +411,7 @@ "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", "dev": true, "requires": { - "acorn": "4.0.13" + "acorn": "^4.0.3" }, "dependencies": { "acorn": { @@ -426,16 +422,6 @@ } } }, - "acorn-node": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.3.0.tgz", - "integrity": "sha512-efP54n3d1aLfjL2UMdaXa6DsswwzJeI5rqhbFvXMrKiJ6eJFpf+7R0zN7t8IC+XKn2YOAFAv6xbBNgHUkoHWLw==", - "dev": true, - "requires": { - "acorn": "5.5.3", - "xtend": "4.0.1" - } - }, "addressparser": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/addressparser/-/addressparser-1.0.1.tgz", @@ -456,21 +442,12 @@ "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=", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.0.tgz", + "integrity": "sha512-c+R/U5X+2zz2+UCrCFv6odQzJdoqI+YecuhnAJLa1zYaMc13zPfwMwZrr91Pd1DYNo/yPRbiM4WVf9whgwFsIg==", "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 - } + "es6-promisify": "^5.0.0" } }, "ajv": { @@ -479,16 +456,16 @@ "integrity": "sha1-06/3jpJ3VJdx2vAWTP9ISCt1T8Y=", "dev": true, "requires": { - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1", - "uri-js": "3.0.2" + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^3.0.2" } }, "ajv-keywords": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.1.0.tgz", - "integrity": "sha1-rCsnk5xUPpXSwG5/f1wnvkqlQ74=", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", "dev": true }, "align-text": { @@ -497,9 +474,9 @@ "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, "requires": { - "kind-of": "3.2.2", - "longest": "1.0.1", - "repeat-string": "1.6.1" + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" } }, "amdefine": { @@ -515,11 +492,11 @@ "dev": true, "optional": true, "requires": { - "bitsyntax": "0.0.4", - "bluebird": "3.5.1", + "bitsyntax": "~0.0.4", + "bluebird": "^3.4.6", "buffer-more-ints": "0.0.2", - "readable-stream": "1.1.14", - "safe-buffer": "5.1.1" + "readable-stream": "1.x >=1.1.9", + "safe-buffer": "^5.0.1" }, "dependencies": { "isarray": { @@ -536,10 +513,10 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -557,7 +534,7 @@ "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -578,8 +555,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -588,7 +565,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -617,7 +594,7 @@ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { - "color-convert": "1.9.1" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -626,8 +603,8 @@ "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", "dev": true, "requires": { - "micromatch": "2.3.11", - "normalize-path": "2.1.1" + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" } }, "app-root-path": { @@ -637,12 +614,12 @@ "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=", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", + "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", "dev": true, "requires": { - "default-require-extensions": "1.0.0" + "default-require-extensions": "^2.0.0" } }, "aproba": { @@ -652,13 +629,13 @@ "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=", + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", "dev": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.6" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "argparse": { @@ -667,7 +644,7 @@ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "arr-diff": { @@ -676,7 +653,7 @@ "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { - "arr-flatten": "1.1.0" + "arr-flatten": "^1.0.1" } }, "arr-flatten": { @@ -715,8 +692,8 @@ "integrity": "sha1-GEtI9i2S10UrsxsyMWXH+L0CJm0=", "dev": true, "requires": { - "define-properties": "1.1.2", - "es-abstract": "1.11.0" + "define-properties": "^1.1.2", + "es-abstract": "^1.7.0" } }, "array-map": { @@ -743,7 +720,7 @@ "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -789,9 +766,9 @@ "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -801,6 +778,23 @@ "dev": true, "requires": { "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "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" + } + } } }, "assert-plus": { @@ -816,36 +810,19 @@ "dev": true }, "ast-types": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", - "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "version": "0.11.5", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.5.tgz", + "integrity": "sha512-oJjo+5e7/vEc2FBK8gUalV0pba4L3VdBIs2EKhOLHLcOd2FgQIVQN9xb0eZ9IjEWyAL7vq6fGJxOvVvdCHNyMw==", "dev": true, "optional": true }, - "astw": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/astw/-/astw-2.2.0.tgz", - "integrity": "sha1-e9QXhNMkk5h66yOba04cV6hzuRc=", - "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 - } - } - }, "async": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", - "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz", + "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==", "dev": true, "requires": { - "lodash": "4.17.5" + "lodash": "^4.17.10" } }, "async-each": { @@ -873,9 +850,9 @@ "dev": true }, "atob": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.0.tgz", - "integrity": "sha512-SuiKH8vbsOyCALjA/+EINmt/Kdl+TQPrtFgW7XZZcwtryFu9e5kQoX3bjCW6mIvGH1fbeAZZuvwGR5IlBRznGw==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", "dev": true }, "autoprefixer": { @@ -884,12 +861,12 @@ "integrity": "sha512-Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==", "dev": true, "requires": { - "browserslist": "2.11.3", - "caniuse-lite": "1.0.30000830", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "6.0.21", - "postcss-value-parser": "3.3.0" + "browserslist": "^2.11.3", + "caniuse-lite": "^1.0.30000805", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.17", + "postcss-value-parser": "^3.2.3" } }, "aws-sign2": { @@ -912,6 +889,18 @@ "optional": true, "requires": { "follow-redirects": "1.0.0" + }, + "dependencies": { + "follow-redirects": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", + "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "dev": true, + "optional": true, + "requires": { + "debug": "^2.2.0" + } + } } }, "babel-code-frame": { @@ -920,9 +909,9 @@ "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "dev": true, "requires": { - "chalk": "1.1.3", - "esutils": "2.0.2", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-styles": { @@ -937,11 +926,11 @@ "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" + "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" } }, "supports-color": { @@ -958,14 +947,14 @@ "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", "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.5", - "source-map": "0.5.7", - "trim-right": "1.0.1" + "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" } }, "babel-messages": { @@ -974,7 +963,7 @@ "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", "dev": true, "requires": { - "babel-runtime": "6.26.0" + "babel-runtime": "^6.22.0" } }, "babel-runtime": { @@ -983,8 +972,8 @@ "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "dev": true, "requires": { - "core-js": "2.5.5", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" } }, "babel-template": { @@ -993,11 +982,11 @@ "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.5" + "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": { @@ -1006,15 +995,15 @@ "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.9", - "globals": "9.18.0", - "invariant": "2.2.4", - "lodash": "4.17.5" + "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": { @@ -1023,10 +1012,10 @@ "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "esutils": "2.0.2", - "lodash": "4.17.5", - "to-fast-properties": "1.0.3" + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" } }, "babylon": { @@ -1053,13 +1042,13 @@ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "dev": true, "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.2.1", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.1", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -1068,7 +1057,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -1077,7 +1066,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -1086,7 +1075,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -1095,9 +1084,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -1145,7 +1134,7 @@ "dev": true, "optional": true, "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "bessel": { @@ -1153,7 +1142,7 @@ "resolved": "https://registry.npmjs.org/bessel/-/bessel-0.2.0.tgz", "integrity": "sha1-E8s5zSkjMhnsLacl4LoMZvtGtvI=", "requires": { - "voc": "1.1.0" + "voc": "^1.1.0" } }, "better-assert": { @@ -1171,6 +1160,11 @@ "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", "dev": true }, + "bignumber.js": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", + "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==" + }, "binary-extensions": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", @@ -1194,7 +1188,7 @@ "dev": true, "optional": true, "requires": { - "readable-stream": "2.0.6" + "readable-stream": "~2.0.5" }, "dependencies": { "process-nextick-args": { @@ -1211,12 +1205,12 @@ "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", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -1240,7 +1234,7 @@ "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", "dev": true, "requires": { - "inherits": "2.0.3" + "inherits": "~2.0.0" } }, "blocking-proxy": { @@ -1249,7 +1243,7 @@ "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, "requires": { - "minimist": "1.2.0" + "minimist": "^1.2.0" }, "dependencies": { "minimist": { @@ -1279,15 +1273,15 @@ "dev": true, "requires": { "bytes": "3.0.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", - "http-errors": "1.6.3", + "depd": "~1.1.1", + "http-errors": "~1.6.2", "iconv-lite": "0.4.19", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.5.1", "raw-body": "2.3.2", - "type-is": "1.6.16" + "type-is": "~1.6.15" }, "dependencies": { "qs": { @@ -1304,12 +1298,12 @@ "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.2.3", - "multicast-dns-service-types": "1.1.0" + "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": { @@ -1324,7 +1318,7 @@ "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "boxen": { @@ -1333,13 +1327,13 @@ "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", "dev": true, "requires": { - "ansi-align": "2.0.0", - "camelcase": "4.1.0", - "chalk": "2.2.2", - "cli-boxes": "1.0.0", - "string-width": "2.1.1", - "term-size": "1.2.0", - "widest-line": "2.0.0" + "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": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -1366,8 +1360,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -1376,7 +1370,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -1387,7 +1381,7 @@ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -1397,9 +1391,9 @@ "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { - "expand-range": "1.8.2", - "preserve": "0.2.0", - "repeat-element": "1.1.2" + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" } }, "brorand": { @@ -1408,185 +1402,18 @@ "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", "dev": true }, - "browser-pack": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", - "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", - "dev": true, - "requires": { - "JSONStream": "1.3.2", - "combine-source-map": "0.8.0", - "defined": "1.0.0", - "safe-buffer": "5.1.1", - "through2": "2.0.3", - "umd": "3.0.3" - } - }, - "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, - "requires": { - "resolve": "1.1.7" - }, - "dependencies": { - "resolve": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", - "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", - "dev": true - } - } - }, - "browserify": { - "version": "14.5.0", - "resolved": "https://registry.npmjs.org/browserify/-/browserify-14.5.0.tgz", - "integrity": "sha512-gKfOsNQv/toWz+60nSPfYzuwSEdzvV2WdxrVPUbPD/qui44rAkB3t3muNtmmGYHqrG56FGwX9SUEQmzNLAeS7g==", - "dev": true, - "requires": { - "JSONStream": "1.3.2", - "assert": "1.4.1", - "browser-pack": "6.1.0", - "browser-resolve": "1.11.2", - "browserify-zlib": "0.2.0", - "buffer": "5.1.0", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "defined": "1.0.0", - "deps-sort": "2.0.0", - "domain-browser": "1.1.7", - "duplexer2": "0.1.4", - "events": "1.1.1", - "glob": "7.1.2", - "has": "1.0.1", - "htmlescape": "1.1.1", - "https-browserify": "1.0.0", - "inherits": "2.0.3", - "insert-module-globals": "7.0.6", - "labeled-stream-splicer": "2.0.1", - "module-deps": "4.1.1", - "os-browserify": "0.3.0", - "parents": "1.0.1", - "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "read-only-stream": "2.0.0", - "readable-stream": "2.3.6", - "resolve": "1.7.1", - "shasum": "1.0.2", - "shell-quote": "1.6.1", - "stream-browserify": "2.0.1", - "stream-http": "2.8.1", - "string_decoder": "1.0.3", - "subarg": "1.0.0", - "syntax-error": "1.4.0", - "through2": "2.0.3", - "timers-browserify": "1.4.2", - "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", - "vm-browserify": "0.0.4", - "xtend": "4.0.1" - }, - "dependencies": { - "buffer": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.1.0.tgz", - "integrity": "sha512-YkIRgwsZwJWTnyQrsBTWefizHh+8GYj3kbL1BTiAQ/9pwpino0G7B2gp5tx/FUBqUlvtxV85KNR3mwfAtv15Yw==", - "dev": true, - "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.11" - } - }, - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - }, - "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 - } - } - }, - "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 - }, - "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 - }, - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "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" - } - }, - "timers-browserify": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", - "dev": true, - "requires": { - "process": "0.11.10" - } - } - } - }, "browserify-aes": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "dev": true, "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "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": { @@ -1595,9 +1422,9 @@ "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "dev": true, "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.1", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -1606,9 +1433,9 @@ "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.0", - "inherits": "2.0.3" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" } }, "browserify-rsa": { @@ -1617,8 +1444,8 @@ "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "dev": true, "requires": { - "bn.js": "4.11.8", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -1627,13 +1454,13 @@ "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.4.0", - "inherits": "2.0.3", - "parse-asn1": "5.1.1" + "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": { @@ -1642,7 +1469,7 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "requires": { - "pako": "1.0.6" + "pako": "~1.0.5" } }, "browserslist": { @@ -1651,8 +1478,8 @@ "integrity": "sha512-yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==", "dev": true, "requires": { - "caniuse-lite": "1.0.30000830", - "electron-to-chromium": "1.3.42" + "caniuse-lite": "^1.0.30000792", + "electron-to-chromium": "^1.3.30" } }, "buffer": { @@ -1661,21 +1488,15 @@ "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", "dev": true, "requires": { - "base64-js": "1.3.0", - "ieee754": "1.1.11", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, - "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-from": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", - "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", "dev": true }, "buffer-indexof": { @@ -1745,19 +1566,19 @@ "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", "dev": true, "requires": { - "bluebird": "3.5.1", - "chownr": "1.0.1", - "glob": "7.1.2", - "graceful-fs": "4.1.11", - "lru-cache": "4.1.2", - "mississippi": "2.0.0", - "mkdirp": "0.5.1", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.2", - "ssri": "5.3.0", - "unique-filename": "1.1.0", - "y18n": "4.0.0" + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" } }, "cache-base": { @@ -1766,15 +1587,15 @@ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "dev": true, "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.2.1", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.0", - "to-object-path": "0.3.0", - "union-value": "1.0.0", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" }, "dependencies": { "isobject": { @@ -1791,18 +1612,12 @@ "integrity": "sha512-rsGh4SIYyB9glU+d0OcHwiXHXBoUgDhHZaQ1KAbiXqfz1CDPxtTboh1gPbJ0q2qdO8a9lfcjgC5CJ2Ms32y5bw==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "mkdirp": "0.5.1", - "neo-async": "2.5.1", - "schema-utils": "0.4.5" + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.5.0", + "schema-utils": "^0.4.2" } }, - "cached-path-relative": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.1.tgz", - "integrity": "sha1-0JxLUoAKpMB44t2BqGmqyQ0uVOc=", - "dev": true - }, "callsite": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", @@ -1815,8 +1630,8 @@ "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", "dev": true, "requires": { - "no-case": "2.3.2", - "upper-case": "1.1.3" + "no-case": "^2.2.0", + "upper-case": "^1.1.1" } }, "camelcase": { @@ -1831,14 +1646,14 @@ "integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=", "dev": true, "requires": { - "camelcase": "2.1.1", - "map-obj": "1.0.1" + "camelcase": "^2.0.0", + "map-obj": "^1.0.0" } }, "caniuse-lite": { - "version": "1.0.30000830", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000830.tgz", - "integrity": "sha512-yMqGkujkoOIZfvOYiWdqPALgY/PVGiqCHUJb6yNq7xhI/pR+gQO0U2K6lRDqAiJv4+CIU3CtTLblNGw0QGnr6g==", + "version": "1.0.30000856", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000856.tgz", + "integrity": "sha512-x3mYcApHMQemyaHuH/RyqtKCGIYTgEA63fdi+VBvDz8xUSmRiVWTLeyKcoGQCGG6UPR9/+4qG4OKrTa6aSQRKg==", "dev": true }, "capture-stack-trace": { @@ -1859,8 +1674,8 @@ "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, "requires": { - "align-text": "0.1.4", - "lazy-cache": "1.0.4" + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" } }, "chalk": { @@ -1869,9 +1684,9 @@ "integrity": "sha512-LvixLAQ4MYhbf7hgL4o5PeK32gJKvVzDRiSNIApDofQvyhl8adgG2lJVXn4+ekQoK7HL9RF8lqxwerpe0x2pCw==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "4.5.0" + "ansi-styles": "^3.1.0", + "escape-string-regexp": "^1.0.5", + "supports-color": "^4.0.0" } }, "chardet": { @@ -1886,15 +1701,15 @@ "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", "dev": true, "requires": { - "anymatch": "1.3.2", - "async-each": "1.0.1", - "fsevents": "1.1.3", - "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" + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^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" } }, "chownr": { @@ -1915,8 +1730,8 @@ "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "circular-dependency-plugin": { @@ -1926,9 +1741,9 @@ "dev": true }, "circular-json": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.3.tgz", - "integrity": "sha512-YlxLOimeIoQGHnMe3kbf8qIV2Bj7uXLbljMPRguNT49GmSAzooNfS9EJ91rSJKbLBOOzM5agvtx0WyechZN/Hw==", + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/circular-json/-/circular-json-0.5.4.tgz", + "integrity": "sha512-vnJA8KS0BfOihugYEUkLRcnmq21FbuivbxgzDLXNs3zIk4KllV4Mx4UuTzBXht9F00C7QfD1YqMXg1zP6EXpig==", "dev": true }, "class-utils": { @@ -1937,10 +1752,10 @@ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "dev": true, "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -1949,7 +1764,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "isobject": { @@ -1966,7 +1781,7 @@ "integrity": "sha1-Ls3xRaujj1R0DybO/Q/z4D4SXWo=", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "0.5.x" } }, "cli-boxes": { @@ -1981,7 +1796,7 @@ "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", "dev": true, "requires": { - "restore-cursor": "2.0.0" + "restore-cursor": "^2.0.0" } }, "cli-width": { @@ -1996,15 +1811,15 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" } }, "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", "dev": true }, "clone-deep": { @@ -2013,10 +1828,10 @@ "integrity": "sha512-SZegPTKjCgpQH63E+eN6mVEEPdQBOUzjyJm5Pora4lrwWRFS8I0QAxV/KD6vV/i0WuijHZWQC1fMsPEdxfdVCQ==", "dev": true, "requires": { - "for-own": "1.0.0", - "is-plain-object": "2.0.4", - "kind-of": "6.0.2", - "shallow-clone": "1.0.0" + "for-own": "^1.0.0", + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.0", + "shallow-clone": "^1.0.0" }, "dependencies": { "for-own": { @@ -2025,7 +1840,7 @@ "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "kind-of": { @@ -2054,12 +1869,12 @@ "integrity": "sha512-a3FCIAS3FNQIACvj7KA4iKvH3c6r7X6t6zXsrtV797QGYPQyCwD1fIEd9yV+ZDamijF3YaZ5fbB7QbUMOJGC/g==", "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" + "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" } }, "collection-visit": { @@ -2068,23 +1883,23 @@ "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "dev": true, "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color-convert": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", - "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz", + "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==", "dev": true, "requires": { - "color-name": "1.1.3" + "color-name": "1.1.1" } }, "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz", + "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=", "dev": true }, "colors": { @@ -2099,27 +1914,7 @@ "integrity": "sha1-RYwH4J4NkA/Ci3Cj/sLazR0st/Y=", "dev": true, "requires": { - "lodash": "4.17.5" - } - }, - "combine-source-map": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", - "dev": true, - "requires": { - "convert-source-map": "1.1.3", - "inline-source-map": "0.6.2", - "lodash.memoize": "3.0.4", - "source-map": "0.5.7" - }, - "dependencies": { - "convert-source-map": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", - "dev": true - } + "lodash": "^4.5.0" } }, "combined-stream": { @@ -2128,7 +1923,7 @@ "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", "dev": true, "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -2137,20 +1932,11 @@ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true }, - "commenting": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/commenting/-/commenting-1.0.5.tgz", - "integrity": "sha512-U7qGbcDLSNpOcV3RQRKHp7hFpy9WUmfawbkPdS4R2RhrSu4dOF85QQpx/Zjcv7uLF6tWSUKEKUIkxknPCrVjwg==", - "dev": true - }, "common-tags": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.7.2.tgz", - "integrity": "sha512-joj9ZlUOjCrwdbmiLqafeUSgkUM74NqhLsZtSqDmhKudaIY197zTrb8JMl31fMnCUuxwFT23eC/oWvrZzDLRJQ==", - "dev": true, - "requires": { - "babel-runtime": "6.26.0" - } + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz", + "integrity": "sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==", + "dev": true }, "commondir": { "version": "1.0.1", @@ -2159,9 +1945,9 @@ "dev": true }, "compare-versions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.1.0.tgz", - "integrity": "sha512-4hAxDSBypT/yp2ySFD346So6Ragw5xmBn/e/agIGl3bZr6DLUqnoRZPusxKrXdYRZpgexO9daejmIenlq/wrIQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.3.0.tgz", + "integrity": "sha512-MAAAIOdi2s4Gl6rZ76PNcUa9IOYB+5ICdT41o5uMRf09aEu/F9RK+qhe8RjXNPwcTjGV7KU7h2P/fljThFVqyQ==", "dev": true }, "component-bind": { @@ -2183,12 +1969,20 @@ "dev": true }, "compressible": { - "version": "2.0.13", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.13.tgz", - "integrity": "sha1-DRAgq5JLL9tNYnmHXH1tq6a6p6k=", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz", + "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=", "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": ">= 1.34.0 < 2" + }, + "dependencies": { + "mime-db": { + "version": "1.34.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz", + "integrity": "sha1-RS0Oz/XDA0am3B5kseruDTcZ/5o=", + "dev": true + } } }, "compression": { @@ -2197,13 +1991,21 @@ "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "bytes": "3.0.0", - "compressible": "2.0.13", + "compressible": "~2.0.13", "debug": "2.6.9", - "on-headers": "1.0.1", + "on-headers": "~1.0.1", "safe-buffer": "5.1.1", - "vary": "1.1.2" + "vary": "~1.1.2" + }, + "dependencies": { + "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 + } } }, "concat-map": { @@ -2218,10 +2020,10 @@ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "dev": true, "requires": { - "buffer-from": "1.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, "configstore": { @@ -2230,12 +2032,12 @@ "integrity": "sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==", "dev": true, "requires": { - "dot-prop": "4.2.0", - "graceful-fs": "4.1.11", - "make-dir": "1.2.0", - "unique-string": "1.0.0", - "write-file-atomic": "2.3.0", - "xdg-basedir": "3.0.0" + "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": { @@ -2246,7 +2048,7 @@ "requires": { "debug": "2.6.9", "finalhandler": "1.1.0", - "parseurl": "1.3.2", + "parseurl": "~1.3.2", "utils-merge": "1.0.1" }, "dependencies": { @@ -2257,12 +2059,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.3.1", - "unpipe": "1.0.0" + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" } }, "statuses": { @@ -2285,7 +2087,7 @@ "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", "dev": true, "requires": { - "date-now": "0.1.4" + "date-now": "^0.1.4" } }, "console-control-strings": { @@ -2336,12 +2138,12 @@ "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "dev": true, "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, "copy-descriptor": { @@ -2356,14 +2158,14 @@ "integrity": "sha512-v4THQ24Tks2NkyOvZuFDgZVfDD9YaA9rwYLZTrWg2GHIA8lrH5DboEyeoorh5Skki+PUbgSmnsCwhMWqYrQZrA==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "globby": "7.1.1", - "is-glob": "4.0.0", - "loader-utils": "1.1.0", - "minimatch": "3.0.4", - "p-limit": "1.2.0", - "serialize-javascript": "1.5.0" + "cacache": "^10.0.1", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" }, "dependencies": { "is-extglob": { @@ -2378,15 +2180,15 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } } } }, "core-js": { - "version": "2.5.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.5.tgz", - "integrity": "sha1-sU3ek2xkDAV5prUMq8wTLdYSfjs=" + "version": "2.5.7", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.7.tgz", + "integrity": "sha512-RszJCAxg/PP6uzXVXL6BsxSXx/B05oJAQ2vkJRjyjrEcNVycaqOmNb5OTxZPE3xa5gwZduqza6L9JOCenh/Ecw==" }, "core-object": { "version": "3.1.5", @@ -2394,7 +2196,7 @@ "integrity": "sha512-sA2/4+/PZ/KV6CKgjrVrrUVBKCkdDO02CUlQ0YKTQoYUwPYNOtOAcWlbYhd5v/1JqYaA6oZ4sDlOU4ppVw6Wbg==", "dev": true, "requires": { - "chalk": "2.2.2" + "chalk": "^2.0.0" } }, "core-util-is": { @@ -2409,13 +2211,13 @@ "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", "dev": true, "requires": { - "is-directory": "0.3.1", - "js-yaml": "3.11.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" + "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" }, "dependencies": { "minimist": { @@ -2432,10 +2234,10 @@ "integrity": "sha1-uaVQOLfNgaNcF7l2GJW9hJau8eU=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.5", + "minimist": "^1.2.0", + "mkdirp": "~0.5.1", + "rimraf": "^2.5.4" }, "dependencies": { "minimist": { @@ -2452,27 +2254,27 @@ "integrity": "sha1-GFvgGFEdhycN7czCkxceN2VauI8=", "dev": true, "requires": { - "babel-runtime": "6.26.0", - "chokidar": "1.7.0", - "duplexer": "0.1.1", - "glob": "7.1.2", - "glob2base": "0.0.12", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "resolve": "1.7.1", - "safe-buffer": "5.1.1", - "shell-quote": "1.6.1", - "subarg": "1.0.0" + "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": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.1.tgz", - "integrity": "sha512-iZvCCg8XqHQZ1ioNBTzXS/cQSkqkqcPs8xSX4upNB+DAk9Ht3uzQf2J32uAHNCne8LDmKr29AgZrEs4oIrwLuQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "dev": true, "requires": { - "bn.js": "4.11.8", - "elliptic": "6.4.0" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-error-class": { @@ -2481,7 +2283,7 @@ "integrity": "sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y=", "dev": true, "requires": { - "capture-stack-trace": "1.0.0" + "capture-stack-trace": "^1.0.0" } }, "create-hash": { @@ -2490,11 +2292,11 @@ "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.3", - "md5.js": "1.3.4", - "ripemd160": "2.0.1", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -2503,12 +2305,12 @@ "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "dev": true, "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.3", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.11" + "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-spawn": { @@ -2517,8 +2319,8 @@ "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", "dev": true, "requires": { - "lru-cache": "4.1.2", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "which": "^1.2.9" } }, "cryptiles": { @@ -2527,7 +2329,7 @@ "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", "dev": true, "requires": { - "boom": "2.10.1" + "boom": "2.x.x" } }, "crypto-browserify": { @@ -2536,17 +2338,17 @@ "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "dev": true, "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.3", - "pbkdf2": "3.0.14", - "public-encrypt": "4.0.2", - "randombytes": "2.0.6", - "randomfill": "1.0.4" + "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", + "randomfill": "^1.0.3" } }, "crypto-random-string": { @@ -2567,10 +2369,10 @@ "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "dev": true, "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.0", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.1" + "nth-check": "~1.0.1" } }, "css-selector-tokenizer": { @@ -2579,9 +2381,9 @@ "integrity": "sha1-5piEdK6MlTR3v15+/s/OzNnPTIY=", "dev": true, "requires": { - "cssesc": "0.1.0", - "fastparse": "1.1.1", - "regexpu-core": "1.0.0" + "cssesc": "^0.1.0", + "fastparse": "^1.1.1", + "regexpu-core": "^1.0.0" } }, "css-what": { @@ -2596,7 +2398,7 @@ "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", "dev": true, "requires": { - "through": "2.3.8" + "through": "X.X.X" } }, "cssesc": { @@ -2617,7 +2419,7 @@ "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", "dev": true, "requires": { - "array-find-index": "1.0.2" + "array-find-index": "^1.0.1" } }, "custom-event": { @@ -2638,7 +2440,7 @@ "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", "dev": true, "requires": { - "es5-ext": "0.10.42" + "es5-ext": "^0.10.9" } }, "dashdash": { @@ -2647,7 +2449,7 @@ "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -2705,9 +2507,9 @@ "dev": true }, "deep-extend": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, "deep-is": { @@ -2718,12 +2520,20 @@ "optional": 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=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", + "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", "dev": true, "requires": { - "strip-bom": "2.0.0" + "strip-bom": "^3.0.0" + }, + "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 + } } }, "define-properties": { @@ -2732,8 +2542,8 @@ "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", "dev": true, "requires": { - "foreach": "2.0.5", - "object-keys": "1.0.11" + "foreach": "^2.0.5", + "object-keys": "^1.0.8" } }, "define-property": { @@ -2742,8 +2552,8 @@ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "dev": true, "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -2752,7 +2562,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2761,7 +2571,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2770,9 +2580,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -2789,12 +2599,6 @@ } } }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, "degenerator": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/degenerator/-/degenerator-1.0.4.tgz", @@ -2802,9 +2606,9 @@ "dev": true, "optional": true, "requires": { - "ast-types": "0.11.3", - "escodegen": "1.9.1", - "esprima": "3.1.3" + "ast-types": "0.x.x", + "escodegen": "1.x.x", + "esprima": "3.x.x" }, "dependencies": { "esprima": { @@ -2822,12 +2626,12 @@ "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", "dev": true, "requires": { - "globby": "6.1.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "p-map": "1.2.0", - "pify": "3.0.0", - "rimraf": "2.6.2" + "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" }, "dependencies": { "globby": { @@ -2836,11 +2640,11 @@ "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" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -2877,26 +2681,14 @@ "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, - "deps-sort": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.0.tgz", - "integrity": "sha1-CRckkC6EZYJg65EHSMzNGvbiH7U=", - "dev": true, - "requires": { - "JSONStream": "1.3.2", - "shasum": "1.0.2", - "subarg": "1.0.0", - "through2": "2.0.3" - } - }, "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.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -2911,7 +2703,7 @@ "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "detect-node": { @@ -2920,16 +2712,6 @@ "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc=", "dev": true }, - "detective": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/detective/-/detective-4.7.1.tgz", - "integrity": "sha512-H6PmeeUcZloWtdt4DAkFyzFL94arpHr3NOwwmVILFiy+9Qd4JTxxXrzfyGk/lmct2qVGBwTSwSXagqu2BxmWig==", - "dev": true, - "requires": { - "acorn": "5.5.3", - "defined": "1.0.0" - } - }, "di": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", @@ -2948,9 +2730,9 @@ "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "dev": true, "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dir-glob": { @@ -2959,8 +2741,8 @@ "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "dev": true, "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" } }, "dns-equal": { @@ -2975,8 +2757,8 @@ "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "dev": true, "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.1" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-txt": { @@ -2985,7 +2767,7 @@ "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "dev": true, "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "dom-converter": { @@ -2994,7 +2776,7 @@ "integrity": "sha1-pF71cnuJDJv/5tfIduexnLDhfzs=", "dev": true, "requires": { - "utila": "0.3.3" + "utila": "~0.3" }, "dependencies": { "utila": { @@ -3011,10 +2793,10 @@ "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", "dev": true, "requires": { - "custom-event": "1.0.1", - "ent": "2.2.0", - "extend": "3.0.1", - "void-elements": "2.0.1" + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" } }, "dom-serializer": { @@ -3023,8 +2805,8 @@ "integrity": "sha1-BzxpdUbOB4DOI75KKOKT5AvDDII=", "dev": true, "requires": { - "domelementtype": "1.1.3", - "entities": "1.1.1" + "domelementtype": "~1.1.1", + "entities": "~1.1.1" }, "dependencies": { "domelementtype": { @@ -3053,7 +2835,7 @@ "integrity": "sha1-0mRvXlf2w7qxHPbLBdPArPdBJZQ=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "domutils": { @@ -3062,8 +2844,8 @@ "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "dev": true, "requires": { - "dom-serializer": "0.1.0", - "domelementtype": "1.3.0" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-prop": { @@ -3072,7 +2854,7 @@ "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", "dev": true, "requires": { - "is-obj": "1.0.1" + "is-obj": "^1.0.0" } }, "double-ended-queue": { @@ -3088,15 +2870,6 @@ "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "requires": { - "readable-stream": "2.3.6" - } - }, "duplexer3": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", @@ -3104,15 +2877,15 @@ "dev": true }, "duplexify": { - "version": "3.5.4", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.5.4.tgz", - "integrity": "sha512-JzYSLYMhoVVBe8+mbHQ4KgpvHpm0DZpJuL8PY93Vyv1fW7jYJ90LoXa1di/CVbJM+TgMs91rbDapE/RNIfnJsA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "stream-shift": "1.0.0" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" } }, "ecc-jsbn": { @@ -3122,7 +2895,7 @@ "dev": true, "optional": true, "requires": { - "jsbn": "0.1.1" + "jsbn": "~0.1.0" } }, "ee-first": { @@ -3132,15 +2905,15 @@ "dev": true }, "ejs": { - "version": "2.5.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.5.8.tgz", - "integrity": "sha512-QIDZL54fyV8MDcAsO91BMH1ft2qGGaHIJsJIA/+t+7uvXol1dm413fPcUgUb4k8F/9457rx4/KFE4XfDifrQxQ==", + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", "dev": true }, "electron-to-chromium": { - "version": "1.3.42", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz", - "integrity": "sha1-lcM78B0MxAVVauyJn+Yf1NduoPk=", + "version": "1.3.48", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.48.tgz", + "integrity": "sha1-07DYWTgUBE4JLs4hCPw6ya6kuQA=", "dev": true }, "elliptic": { @@ -3149,13 +2922,13 @@ "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.1", - "minimalistic-crypto-utils": "1.0.1" + "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": { @@ -3182,7 +2955,7 @@ "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", "dev": true, "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "engine.io": { @@ -3191,13 +2964,13 @@ "integrity": "sha512-D06ivJkYxyRrcEe0bTpNnBQNgP9d3xog+qZlLbui8EsMr/DouQpf5o9FzJnWYHEYE0YsFHllUv2R1dkgYZXHcA==", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "base64id": "1.0.0", "cookie": "0.3.1", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", - "uws": "9.14.0", - "ws": "3.3.3" + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "uws": "~9.14.0", + "ws": "~3.3.1" }, "dependencies": { "debug": { @@ -3219,14 +2992,14 @@ "requires": { "component-emitter": "1.2.1", "component-inherit": "0.0.3", - "debug": "3.1.0", - "engine.io-parser": "2.1.2", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", "has-cors": "1.1.0", "indexof": "0.0.1", "parseqs": "0.0.5", "parseuri": "0.0.5", - "ws": "3.3.3", - "xmlhttprequest-ssl": "1.5.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", "yeast": "0.1.2" }, "dependencies": { @@ -3248,10 +3021,10 @@ "dev": true, "requires": { "after": "0.8.2", - "arraybuffer.slice": "0.0.7", + "arraybuffer.slice": "~0.0.7", "base64-arraybuffer": "0.1.5", "blob": "0.0.4", - "has-binary2": "1.0.2" + "has-binary2": "~1.0.2" } }, "enhanced-resolve": { @@ -3260,10 +3033,10 @@ "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" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" } }, "ent": { @@ -3284,7 +3057,7 @@ "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "dev": true, "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -3293,20 +3066,20 @@ "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", "dev": true, "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.11.0.tgz", - "integrity": "sha512-ZnQrE/lXTTQ39ulXZ+J1DTFazV9qBy61x2bY071B+qGco8Z8q1QddsLdt/EF8Ai9hcWH72dWS0kFqXLxOxqslA==", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", + "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", "dev": true, "requires": { - "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", + "function-bind": "^1.1.1", + "has": "^1.0.1", + "is-callable": "^1.1.3", + "is-regex": "^1.0.4" } }, "es-to-primitive": { @@ -3315,20 +3088,20 @@ "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", "dev": true, "requires": { - "is-callable": "1.1.3", - "is-date-object": "1.0.1", - "is-symbol": "1.0.1" + "is-callable": "^1.1.1", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.1" } }, "es5-ext": { - "version": "0.10.42", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.42.tgz", - "integrity": "sha512-AJxO1rmPe1bDEfSR6TJ/FgMFYuTBhR5R57KW58iCkYACMyFbrkqVyzXSurYoScDGvgyMpk7uRF/lPUPPTmsRSA==", + "version": "0.10.45", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.45.tgz", + "integrity": "sha512-FkfM6Vxxfmztilbxxz5UKSD4ICMf5tSpRFtDNtkAhOxZ0EKtX6qwmXNyH/sFyIbX2P/nU5AMiA9jilWsUGJzCQ==", "dev": true, "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.1", + "next-tick": "1" } }, "es6-iterator": { @@ -3337,9 +3110,9 @@ "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-map": { @@ -3348,41 +3121,56 @@ "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-set": "0.1.5", - "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "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": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.3.1.tgz", - "integrity": "sha1-oIzd6EzNvzTQJ6FFG8kdS80ophM=", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz", + "integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ==", "dev": true }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "dev": true, + "requires": { + "es6-promise": "^4.0.3" + } + }, "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.42", - "es6-iterator": "2.0.3", + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", "es6-symbol": "3.1.1", - "event-emitter": "0.3.5" + "event-emitter": "~0.3.5" } }, + "es6-shim": { + "version": "0.35.3", + "resolved": "https://registry.npmjs.org/es6-shim/-/es6-shim-0.35.3.tgz", + "integrity": "sha1-m/tzY/7//4emzbbNk+QF7DxLbyY=", + "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, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "es6-weak-map": { @@ -3391,10 +3179,10 @@ "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42", - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.1" + "d": "1", + "es5-ext": "^0.10.14", + "es6-iterator": "^2.0.1", + "es6-symbol": "^3.1.1" } }, "escape-html": { @@ -3410,17 +3198,17 @@ "dev": true }, "escodegen": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz", - "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.10.0.tgz", + "integrity": "sha512-fjUOf8johsv23WuIKdNQU4P9t9jhQ4Qzx6pC2uW890OloK3Zs1ZAoCNpg/2larNF501jLl3UNy0kIRcF6VI22g==", "dev": true, "optional": true, "requires": { - "esprima": "3.1.3", - "estraverse": "4.2.0", - "esutils": "2.0.2", - "optionator": "0.8.2", - "source-map": "0.6.1" + "esprima": "^3.1.3", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "esprima": { @@ -3445,10 +3233,10 @@ "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", "dev": true, "requires": { - "es6-map": "0.1.5", - "es6-weak-map": "2.0.2", - "esrecurse": "4.2.1", - "estraverse": "4.2.0" + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "esprima": { @@ -3463,7 +3251,7 @@ "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "dev": true, "requires": { - "estraverse": "4.2.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -3473,9 +3261,9 @@ "dev": true }, "estree-walker": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.3.1.tgz", - "integrity": "sha1-5rGlHPcpJSTnI3wxLl/mZgwc4ao=", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", "dev": true }, "esutils": { @@ -3496,14 +3284,14 @@ "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", "dev": true, "requires": { - "d": "1.0.0", - "es5-ext": "0.10.42" + "d": "1", + "es5-ext": "~0.10.14" } }, "eventemitter3": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-1.2.0.tgz", - "integrity": "sha1-HIaZHYFq0eUEdQ5zh0Ik7PO+xQg=", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz", + "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==", "dev": true }, "events": { @@ -3518,7 +3306,7 @@ "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=", "dev": true, "requires": { - "original": "1.0.0" + "original": ">=0.0.5" } }, "evp_bytestokey": { @@ -3527,8 +3315,8 @@ "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "dev": true, "requires": { - "md5.js": "1.3.4", - "safe-buffer": "5.1.1" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "execa": { @@ -3537,13 +3325,13 @@ "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" + "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" }, "dependencies": { "cross-spawn": { @@ -3552,19 +3340,13 @@ "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", "dev": true, "requires": { - "lru-cache": "4.1.2", - "shebang-command": "1.2.0", - "which": "1.3.0" + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" } } } }, - "exists-sync": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/exists-sync/-/exists-sync-0.0.4.tgz", - "integrity": "sha1-l0TCxCjMA7AQYNtFTUsS8O88iHk=", - "dev": true - }, "exit": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", @@ -3577,9 +3359,9 @@ "integrity": "sha1-SIsdHSRRyz06axks/AMPRMWFX+o=", "dev": true, "requires": { - "array-slice": "0.2.3", - "array-unique": "0.2.1", - "braces": "0.1.5" + "array-slice": "^0.2.3", + "array-unique": "^0.2.1", + "braces": "^0.1.2" }, "dependencies": { "braces": { @@ -3588,7 +3370,7 @@ "integrity": "sha1-wIVxEIUpHYt1/ddOqw+FlygHEeY=", "dev": true, "requires": { - "expand-range": "0.1.1" + "expand-range": "^0.1.0" } }, "expand-range": { @@ -3597,8 +3379,8 @@ "integrity": "sha1-TLjtoJk8pW+k9B/ELzy7TMrf8EQ=", "dev": true, "requires": { - "is-number": "0.1.1", - "repeat-string": "0.2.2" + "is-number": "^0.1.1", + "repeat-string": "^0.2.2" } }, "is-number": { @@ -3621,7 +3403,7 @@ "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { - "is-posix-bracket": "0.1.1" + "is-posix-bracket": "^0.1.0" } }, "expand-range": { @@ -3630,7 +3412,7 @@ "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { - "fill-range": "2.2.3" + "fill-range": "^2.1.0" } }, "express": { @@ -3639,36 +3421,36 @@ "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.5", "array-flatten": "1.1.1", "body-parser": "1.18.2", "content-disposition": "0.5.2", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.3.1", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "finalhandler": "1.1.1", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.2", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.3", + "proxy-addr": "~2.0.3", "qs": "6.5.1", - "range-parser": "1.2.0", + "range-parser": "~1.2.0", "safe-buffer": "5.1.1", "send": "0.16.2", "serve-static": "1.13.2", "setprototypeof": "1.1.0", - "statuses": "1.4.0", - "type-is": "1.6.16", + "statuses": "~1.4.0", + "type-is": "~1.6.16", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "array-flatten": { @@ -3682,6 +3464,12 @@ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==", "dev": true + }, + "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 } } }, @@ -3697,8 +3485,8 @@ "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "dev": true, "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -3707,7 +3495,7 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -3718,9 +3506,9 @@ "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", "dev": true, "requires": { - "chardet": "0.4.2", - "iconv-lite": "0.4.19", - "tmp": "0.0.33" + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" } }, "extglob": { @@ -3729,7 +3517,7 @@ "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "extract-text-webpack-plugin": { @@ -3738,10 +3526,10 @@ "integrity": "sha512-bt/LZ4m5Rqt/Crl2HiKuAl/oqg0psx1tsTLkvWbJen1CtD+fftkZhMaQ9HOtY2gWsl2Wq+sABmMVi9z3DhKWQQ==", "dev": true, "requires": { - "async": "2.6.0", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0", - "webpack-sources": "1.1.0" + "async": "^2.4.1", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" }, "dependencies": { "ajv": { @@ -3750,10 +3538,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "schema-utils": { @@ -3762,7 +3550,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "^5.0.0" } } } @@ -3804,7 +3592,7 @@ "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } }, "figures": { @@ -3813,7 +3601,7 @@ "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", "dev": true, "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-loader": { @@ -3822,8 +3610,8 @@ "integrity": "sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.4.5" + "loader-utils": "^1.0.2", + "schema-utils": "^0.4.5" } }, "file-uri-to-path": { @@ -3845,21 +3633,21 @@ "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", "dev": true, "requires": { - "glob": "7.1.2", - "minimatch": "3.0.4" + "glob": "^7.0.3", + "minimatch": "^3.0.3" } }, "fill-range": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", - "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "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" + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" } }, "finalhandler": { @@ -3869,12 +3657,12 @@ "dev": true, "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.2", - "statuses": "1.4.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.4.0", + "unpipe": "~1.0.0" } }, "find-cache-dir": { @@ -3883,9 +3671,9 @@ "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", "dev": true, "requires": { - "commondir": "1.0.1", - "make-dir": "1.2.0", - "pkg-dir": "2.0.0" + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" } }, "find-index": { @@ -3906,7 +3694,7 @@ "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "flush-write-stream": { @@ -3915,18 +3703,28 @@ "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" } }, "follow-redirects": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.0.0.tgz", - "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz", + "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==", "dev": true, - "optional": true, "requires": { - "debug": "2.6.9" + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "for-in": { @@ -3941,7 +3739,7 @@ "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "foreach": { @@ -3962,9 +3760,9 @@ "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", "dev": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -3979,7 +3777,7 @@ "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "dev": true, "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -3994,8 +3792,8 @@ "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" } }, "fs-access": { @@ -4004,7 +3802,7 @@ "integrity": "sha1-1qh/JiJxzv6+wwxVNAf7mV2od3o=", "dev": true, "requires": { - "null-check": "1.0.0" + "null-check": "^1.0.0" } }, "fs-extra": { @@ -4013,18 +3811,9 @@ "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" - } - }, - "fs-minipass": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.5.tgz", - "integrity": "sha512-JhBl0skXjUPCFH7x6x61gQxrKyXsxB5gcgePLZCwfyCGGsTISMoIeObbrvVeP6Xmyaudw4TT43qV2Gz+iyd2oQ==", - "dev": true, - "requires": { - "minipass": "2.2.4" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-write-stream-atomic": { @@ -4033,10 +3822,10 @@ "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.6" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" } }, "fs.realpath": { @@ -4046,39 +3835,29 @@ "dev": true }, "fsevents": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.1.3.tgz", - "integrity": "sha512-WIr7iDkdmdbxu/Gh6eKEZJL6KPE74/5MEsf2whTOFNxbIoIixogroLdKYqB6FDav4Wavh/lZdzzd3b2KxIXC5Q==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.4.tgz", + "integrity": "sha512-z8H8/diyk76B7q5wg+Ud0+CqzcAF3mBBI/bA5ne5zrRUUIvNkJY//D3BqyH571KuAC4Nr7Rw7CjWX4r0y9DvNg==", "dev": true, "optional": true, "requires": { - "nan": "2.10.0", - "node-pre-gyp": "0.6.39" + "nan": "^2.9.2", + "node-pre-gyp": "^0.10.0" }, "dependencies": { "abbrev": { - "version": "1.1.0", + "version": "1.1.1", "bundled": true, "dev": true, "optional": true }, - "ajv": { - "version": "4.11.8", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" - } - }, "ansi-regex": { "version": "2.1.1", "bundled": true, "dev": true }, "aproba": { - "version": "1.1.1", + "version": "1.2.0", "bundled": true, "dev": true, "optional": true @@ -4089,92 +3868,26 @@ "dev": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.2.9" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, - "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", + "version": "1.0.0", "bundled": true, "dev": true }, - "bcrypt-pbkdf": { - "version": "1.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "tweetnacl": "0.14.5" - } - }, - "block-stream": { - "version": "0.0.9", - "bundled": true, - "dev": true, - "requires": { - "inherits": "2.0.3" - } - }, - "boom": { - "version": "2.10.1", - "bundled": true, - "dev": true, - "requires": { - "hoek": "2.16.3" - } - }, "brace-expansion": { - "version": "1.1.7", + "version": "1.1.11", "bundled": true, "dev": true, "requires": { - "balanced-match": "0.4.2", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, - "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", + "chownr": { + "version": "1.0.1", "bundled": true, "dev": true, "optional": true @@ -4184,14 +3897,6 @@ "bundled": true, "dev": true }, - "combined-stream": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "requires": { - "delayed-stream": "1.0.0" - } - }, "concat-map": { "version": "0.0.1", "bundled": true, @@ -4205,35 +3910,11 @@ "core-util-is": { "version": "1.0.2", "bundled": true, - "dev": true - }, - "cryptiles": { - "version": "2.0.5", - "bundled": true, "dev": true, - "requires": { - "boom": "2.10.1" - } - }, - "dashdash": { - "version": "1.14.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "debug": { - "version": "2.6.8", + "version": "2.6.9", "bundled": true, "dev": true, "optional": true, @@ -4242,16 +3923,11 @@ } }, "deep-extend": { - "version": "0.4.2", + "version": "0.5.1", "bundled": true, "dev": true, "optional": true }, - "delayed-stream": { - "version": "1.0.0", - "bundled": true, - "dev": true - }, "delegates": { "version": "1.0.0", "bundled": true, @@ -4259,74 +3935,25 @@ "optional": true }, "detect-libc": { - "version": "1.0.2", - "bundled": true, - "dev": true, - "optional": true - }, - "ecc-jsbn": { - "version": "0.1.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "jsbn": "0.1.1" - } - }, - "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", + "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, - "form-data": { - "version": "2.1.4", + "fs-minipass": { + "version": "1.2.5", "bundled": true, "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.5", - "mime-types": "2.1.15" + "minipass": "^2.2.1" } }, "fs.realpath": { "version": "1.0.0", "bundled": true, - "dev": true - }, - "fstream": { - "version": "1.0.11", - "bundled": true, "dev": true, - "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.1" - } - }, - "fstream-ignore": { - "version": "1.0.5", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "fstream": "1.0.11", - "inherits": "2.0.3", - "minimatch": "3.0.4" - } + "optional": true }, "gauge": { "version": "2.7.4", @@ -4334,65 +3961,28 @@ "dev": true, "optional": true, "requires": { - "aproba": "1.1.1", - "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" - } - }, - "getpass": { - "version": "0.1.7", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "assert-plus": "1.0.0" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } + "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" } }, "glob": { "version": "7.1.2", "bundled": true, "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" - } - }, - "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, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "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" } }, "has-unicode": { @@ -4401,40 +3991,32 @@ "dev": true, "optional": true }, - "hawk": { - "version": "3.1.3", + "iconv-lite": { + "version": "0.4.21", "bundled": true, "dev": true, + "optional": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "safer-buffer": "^2.1.0" } }, - "hoek": { - "version": "2.16.3", - "bundled": true, - "dev": true - }, - "http-signature": { - "version": "1.1.1", + "ignore-walk": { + "version": "3.0.1", "bundled": true, "dev": true, "optional": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.0", - "sshpk": "1.13.0" + "minimatch": "^3.0.4" } }, "inflight": { "version": "1.0.6", "bundled": true, "dev": true, + "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -4443,7 +4025,7 @@ "dev": true }, "ini": { - "version": "1.3.4", + "version": "1.3.5", "bundled": true, "dev": true, "optional": true @@ -4453,167 +4035,125 @@ "bundled": true, "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, - "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", + "minimatch": { + "version": "3.0.4", "bundled": true, "dev": true, - "optional": true, "requires": { - "jsbn": "0.1.1" + "brace-expansion": "^1.1.7" } }, - "jsbn": { - "version": "0.1.1", + "minimist": { + "version": "0.0.8", "bundled": true, - "dev": true, - "optional": true + "dev": true }, - "json-schema": { - "version": "0.2.3", + "minipass": { + "version": "2.2.4", "bundled": true, "dev": true, - "optional": true + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } }, - "json-stable-stringify": { - "version": "1.0.1", + "minizlib": { + "version": "1.1.0", "bundled": true, "dev": true, "optional": true, "requires": { - "jsonify": "0.0.0" + "minipass": "^2.2.1" } }, - "json-stringify-safe": { - "version": "5.0.1", + "mkdirp": { + "version": "0.5.1", "bundled": true, "dev": true, - "optional": true + "requires": { + "minimist": "0.0.8" + } }, - "jsonify": { - "version": "0.0.0", + "ms": { + "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, - "jsprim": { - "version": "1.4.0", + "needle": { + "version": "2.2.0", "bundled": true, "dev": true, "optional": true, "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.0.2", - "json-schema": "0.2.3", - "verror": "1.3.6" - }, - "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, - "requires": { - "mime-db": "1.27.0" + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, - "minimatch": { - "version": "3.0.4", + "node-pre-gyp": { + "version": "0.10.0", "bundled": true, "dev": true, + "optional": true, "requires": { - "brace-expansion": "1.1.7" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" } }, - "minimist": { - "version": "0.0.8", - "bundled": true, - "dev": true - }, - "mkdirp": { - "version": "0.5.1", + "nopt": { + "version": "4.0.1", "bundled": true, "dev": true, + "optional": true, "requires": { - "minimist": "0.0.8" + "abbrev": "1", + "osenv": "^0.1.4" } }, - "ms": { - "version": "2.0.0", + "npm-bundled": { + "version": "1.0.3", "bundled": true, "dev": true, "optional": true }, - "node-pre-gyp": { - "version": "0.6.39", + "npm-packlist": { + "version": "1.1.10", "bundled": true, "dev": true, "optional": true, "requires": { - "detect-libc": "1.0.2", - "hawk": "3.1.3", - "mkdirp": "0.5.1", - "nopt": "4.0.1", - "npmlog": "4.1.0", - "rc": "1.2.1", - "request": "2.81.0", - "rimraf": "2.6.1", - "semver": "5.3.0", - "tar": "2.2.1", - "tar-pack": "3.4.0" - } - }, - "nopt": { - "version": "4.0.1", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "abbrev": "1.1.0", - "osenv": "0.1.4" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" } }, "npmlog": { - "version": "4.1.0", + "version": "4.1.2", "bundled": true, "dev": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.4", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { @@ -4621,12 +4161,6 @@ "bundled": true, "dev": true }, - "oauth-sign": { - "version": "0.8.2", - "bundled": true, - "dev": true, - "optional": true - }, "object-assign": { "version": "4.1.1", "bundled": true, @@ -4638,7 +4172,7 @@ "bundled": true, "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -4654,53 +4188,37 @@ "optional": true }, "osenv": { - "version": "0.1.4", + "version": "0.1.5", "bundled": true, "dev": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "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", + "version": "2.0.0", "bundled": true, "dev": true, "optional": true }, "rc": { - "version": "1.2.1", + "version": "1.2.7", "bundled": true, "dev": true, "optional": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.4", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.5.1", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -4712,143 +4230,89 @@ } }, "readable-stream": { - "version": "2.2.9", - "bundled": true, - "dev": true, - "requires": { - "buffer-shims": "1.0.0", - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "1.0.1", - "util-deprecate": "1.0.2" - } - }, - "request": { - "version": "2.81.0", + "version": "2.3.6", "bundled": true, "dev": true, "optional": 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.15", - "oauth-sign": "0.8.2", - "performance-now": "0.2.0", - "qs": "6.4.0", - "safe-buffer": "5.0.1", - "stringstream": "0.0.5", - "tough-cookie": "2.3.2", - "tunnel-agent": "0.6.0", - "uuid": "3.0.1" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { - "version": "2.6.1", + "version": "2.6.2", "bundled": true, "dev": true, + "optional": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "safe-buffer": { - "version": "5.0.1", + "version": "5.1.1", "bundled": true, "dev": true }, - "semver": { - "version": "5.3.0", + "safer-buffer": { + "version": "2.1.2", "bundled": true, "dev": true, "optional": true }, - "set-blocking": { - "version": "2.0.0", + "sax": { + "version": "1.2.4", "bundled": true, "dev": true, "optional": true }, - "signal-exit": { - "version": "3.0.2", + "semver": { + "version": "5.5.0", "bundled": true, "dev": true, "optional": true }, - "sntp": { - "version": "1.0.9", + "set-blocking": { + "version": "2.0.0", "bundled": true, "dev": true, - "requires": { - "hoek": "2.16.3" - } + "optional": true }, - "sshpk": { - "version": "1.13.0", + "signal-exit": { + "version": "3.0.2", "bundled": true, "dev": true, - "optional": 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", - "jodid25519": "1.0.2", - "jsbn": "0.1.1", - "tweetnacl": "0.14.5" - }, - "dependencies": { - "assert-plus": { - "version": "1.0.0", - "bundled": true, - "dev": true, - "optional": true - } - } + "optional": true }, "string-width": { "version": "1.0.2", "bundled": true, "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { - "version": "1.0.1", + "version": "1.1.1", "bundled": true, "dev": true, + "optional": true, "requires": { - "safe-buffer": "5.0.1" + "safe-buffer": "~5.1.0" } }, - "stringstream": { - "version": "0.0.5", - "bundled": true, - "dev": true, - "optional": true - }, "strip-ansi": { "version": "3.0.1", "bundled": true, "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -4858,94 +4322,44 @@ "optional": true }, "tar": { - "version": "2.2.1", - "bundled": true, - "dev": true, - "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" - } - }, - "tar-pack": { - "version": "3.4.0", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "debug": "2.6.8", - "fstream": "1.0.11", - "fstream-ignore": "1.0.5", - "once": "1.4.0", - "readable-stream": "2.2.9", - "rimraf": "2.6.1", - "tar": "2.2.1", - "uid-number": "0.0.6" - } - }, - "tough-cookie": { - "version": "2.3.2", - "bundled": true, - "dev": true, - "optional": true, - "requires": { - "punycode": "1.4.1" - } - }, - "tunnel-agent": { - "version": "0.6.0", + "version": "4.4.1", "bundled": true, "dev": true, "optional": true, "requires": { - "safe-buffer": "5.0.1" + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" } }, - "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, - "requires": { - "extsprintf": "1.0.2" - } - }, "wide-align": { "version": "1.1.2", "bundled": true, "dev": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2" } }, "wrappy": { "version": "1.0.2", "bundled": true, "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true } } }, @@ -4955,10 +4369,10 @@ "integrity": "sha1-XB+x8RdHcRTwYyoOtLcbPLD9MXE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "inherits": "2.0.3", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" } }, "ftp": { @@ -4968,7 +4382,7 @@ "dev": true, "optional": true, "requires": { - "readable-stream": "1.1.14", + "readable-stream": "1.1.x", "xregexp": "2.0.0" }, "dependencies": { @@ -4986,10 +4400,10 @@ "dev": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -5013,23 +4427,23 @@ "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", "dev": true, "requires": { - "aproba": "1.2.0", - "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" + "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": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.2.tgz", - "integrity": "sha1-hHIkZ3rbiHDWeSV+0ziP22HkAQU=", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", "dev": true, "requires": { - "globule": "1.2.0" + "globule": "^1.0.0" } }, "generate-function": { @@ -5044,25 +4458,24 @@ "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", "dev": true, "requires": { - "is-property": "1.0.2" + "is-property": "^1.0.0" } }, "generate-release": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/generate-release/-/generate-release-0.14.0.tgz", - "integrity": "sha512-9m5mXAdGA9Cf84aAwOBMU8ShOiXwWAjOnGKILd2U4AhTo4A1lct44LnvkSrh5sir4+os1JG2H5swWVs/bQEJtg==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/generate-release/-/generate-release-1.1.1.tgz", + "integrity": "sha512-W3tcnnJWwgJqWT5nuVsLftgk5RJ7yMW6hJTbME4Hqa1rK1XV4mfbtBN7UXVJKQZp5Hbin7Rtu+UBdkOJsRQoUA==", "dev": true, "requires": { - "bluebird": "3.5.1", - "exists-sync": "0.0.4", - "glob": "7.1.2", - "iniparser": "1.0.5", - "inquirer": "3.3.0", - "minimist": "1.2.0", - "observatory": "1.0.0", - "rmdir": "1.2.0", - "temp": "0.8.3", - "xtend": "4.0.1" + "es6-shim": "^0.35.3", + "glob": "^7.1.2", + "iniparser": "^1.0.5", + "inquirer": "^3.3.0", + "minimist": "^1.2.0", + "observatory": "^1.0.0", + "rimraf": "^2.6.2", + "temp": "^0.8.3", + "xtend": "^4.0.1" }, "dependencies": { "minimist": { @@ -5092,18 +4505,18 @@ "dev": true }, "get-uri": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.1.tgz", - "integrity": "sha512-7aelVrYqCLuVjq2kEKRTH8fXPTC0xKTkM+G7UlFkEwCXY3sFbSxvY375JoFowOAYbkaU47SrBvOefUlLZZ+6QA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/get-uri/-/get-uri-2.0.2.tgz", + "integrity": "sha512-ZD325dMZOgerGqF/rF6vZXyFGTAay62svjQIT+X/oU2PtxYpFxvSkbsdi+oxIrsNxlZVd4y8wUDqkaExWTI/Cw==", "dev": true, "optional": true, "requires": { - "data-uri-to-buffer": "1.2.0", - "debug": "2.6.9", - "extend": "3.0.1", - "file-uri-to-path": "1.0.0", - "ftp": "0.3.10", - "readable-stream": "2.3.6" + "data-uri-to-buffer": "1", + "debug": "2", + "extend": "3", + "file-uri-to-path": "1", + "ftp": "~0.3.10", + "readable-stream": "2" } }, "get-value": { @@ -5118,7 +4531,7 @@ "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" }, "dependencies": { "assert-plus": { @@ -5135,12 +4548,12 @@ "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" + "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-base": { @@ -5149,8 +4562,8 @@ "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { - "glob-parent": "2.0.0", - "is-glob": "2.0.1" + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" } }, "glob-parent": { @@ -5159,7 +4572,7 @@ "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { - "is-glob": "2.0.1" + "is-glob": "^2.0.0" } }, "glob2base": { @@ -5168,7 +4581,7 @@ "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", "dev": true, "requires": { - "find-index": "0.1.1" + "find-index": "^0.1.1" } }, "global-dirs": { @@ -5177,7 +4590,7 @@ "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", "dev": true, "requires": { - "ini": "1.3.5" + "ini": "^1.3.4" } }, "globals": { @@ -5192,23 +4605,23 @@ "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", "dev": true, "requires": { - "array-union": "1.0.2", - "dir-glob": "2.0.0", - "glob": "7.1.2", - "ignore": "3.3.7", - "pify": "3.0.0", - "slash": "1.0.0" + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" } }, "globule": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz", - "integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz", + "integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.5", - "minimatch": "3.0.4" + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" } }, "got": { @@ -5217,17 +4630,17 @@ "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", "dev": true, "requires": { - "create-error-class": "3.0.2", - "duplexer3": "0.1.4", - "get-stream": "3.0.0", - "is-redirect": "1.0.0", - "is-retry-allowed": "1.1.0", - "is-stream": "1.1.0", - "lowercase-keys": "1.0.1", - "safe-buffer": "5.1.1", - "timed-out": "4.0.1", - "unzip-response": "2.0.1", - "url-parse-lax": "1.0.0" + "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": { @@ -5248,10 +4661,10 @@ "integrity": "sha1-Ywo13+ApS8KB7a5v/F0yn8eYLcw=", "dev": true, "requires": { - "async": "1.5.2", - "optimist": "0.6.1", - "source-map": "0.4.4", - "uglify-js": "2.8.29" + "async": "^1.4.0", + "optimist": "^0.6.1", + "source-map": "^0.4.4", + "uglify-js": "^2.6" }, "dependencies": { "async": { @@ -5274,8 +4687,8 @@ "dev": true, "optional": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, @@ -5285,7 +4698,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } }, "uglify-js": { @@ -5295,9 +4708,9 @@ "dev": true, "optional": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "source-map": { @@ -5316,71 +4729,73 @@ "dev": true, "optional": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } } }, "handsontable": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handsontable/-/handsontable-2.0.0.tgz", - "integrity": "sha512-o8yCOgyV0LkBrEyMrGtfex4UDJ+Pw3+Eeoxk9rRg2LmlziJsgwGlz5e4W1YP3/Ew7bPW/iyGlL4q1bp+6pcD/g==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/handsontable/-/handsontable-4.0.0.tgz", + "integrity": "sha512-+i9jkz5D3+Da7bIL4+YjF4hnY/nWjR8ZfcCo9BHuHaYY/ri2CYH75OobVxpMyPTspQlXjyQoWE6v0qhHuesoUw==", "requires": { "moment": "2.20.1", - "numbro": "1.11.0", + "numbro": "^2.0.6", "pikaday": "1.5.1" } }, "handsontable-pro": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/handsontable-pro/-/handsontable-pro-2.0.0.tgz", - "integrity": "sha512-huLzn3plFUKZ5CFyJnvrN4rCFeRdQQxKwxrQXl5AEUcBjxbRnwFgeuXP3rTAq7sCBE3QvaQSv5jsAy3Gv20BTA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/handsontable-pro/-/handsontable-pro-4.0.0.tgz", + "integrity": "sha512-nV3984oZHXHi8zQ+Xdq9Q1trRu3XnSiQ4iMUMtxz3lHV9MpLYk5d7WFCQRySGROT+CYIs/MOBvpR4dK+X8kRrA==", "requires": { - "handsontable": "2.0.0", - "hot-formula-parser": "2.3.3", + "handsontable": "4.0.0", + "hot-formula-parser": "^3.0.0", "moment": "2.20.1", - "numbro": "1.11.0", + "numbro": "^2.0.6", "pikaday": "1.5.1" } }, "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "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=", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, "requires": { - "ajv": "4.11.8", - "har-schema": "1.0.5" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" }, "dependencies": { "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "json-stable-stringify": "1.0.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } } } }, "has": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "dev": true, "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -5389,13 +4804,13 @@ "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "has-binary2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.2.tgz", - "integrity": "sha1-6D26SfC5vk0CbSc2U1DZ8D9Uvpg=", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", "dev": true, "requires": { "isarray": "2.0.1" @@ -5433,9 +4848,9 @@ "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -5452,8 +4867,8 @@ "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "is-number": { @@ -5462,7 +4877,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -5471,7 +4886,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5482,7 +4897,7 @@ "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -5493,18 +4908,18 @@ "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "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==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.4.tgz", + "integrity": "sha512-A6RlQvvZEtFS5fLU43IDu0QUmBy+fDO9VMdTXvufKwIkt/rFfvICAViCax5fbDO4zdNzaC3/27ZhKUok5bAJyw==", "dev": true, "requires": { - "inherits": "2.0.3", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" } }, "hawk": { @@ -5513,10 +4928,10 @@ "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", "dev": true, "requires": { - "boom": "2.10.1", - "cryptiles": "2.0.5", - "hoek": "2.16.3", - "sntp": "1.0.9" + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" } }, "he": { @@ -5532,8 +4947,8 @@ "dev": true, "optional": true, "requires": { - "lodash": "4.17.5", - "request": "2.81.0" + "lodash": "^4.0.0", + "request": "^2.0.0" } }, "hmac-drbg": { @@ -5542,9 +4957,9 @@ "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "dev": true, "requires": { - "hash.js": "1.1.3", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoek": { @@ -5559,7 +4974,7 @@ "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", "dev": true, "requires": { - "parse-passwd": "1.0.0" + "parse-passwd": "^1.0.0" } }, "hosted-git-info": { @@ -5569,12 +4984,12 @@ "dev": true }, "hot-formula-parser": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/hot-formula-parser/-/hot-formula-parser-2.3.3.tgz", - "integrity": "sha512-VNNjeqqLIEFYtVgCLrAWKunO5ndKGr9s4p65fZSpOjyPebWBnOI85oDLztVZpdVbxHJ7IU5jNeysGqFlZ98krQ==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hot-formula-parser/-/hot-formula-parser-3.0.0.tgz", + "integrity": "sha512-CHLTrsrv29it5XPcHalNO8ClcJGHefwf599MePlG5dYzxxtbPqx/qt8CkrqvxQeNA5XtkAUcxU62OFv0z2L49A==", "requires": { - "@handsontable/formulajs": "1.2.3", - "tiny-emitter": "2.0.2" + "@handsontable/formulajs": "^2.0.0", + "tiny-emitter": "^2.0.1" } }, "hpack.js": { @@ -5583,10 +4998,10 @@ "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "dev": true, "requires": { - "inherits": "2.0.3", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, "html-entities": { @@ -5596,18 +5011,18 @@ "dev": true }, "html-minifier": { - "version": "3.5.15", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.15.tgz", - "integrity": "sha512-OZa4rfb6tZOZ3Z8Xf0jKxXkiDcFWldQePGYFDcgKqES2sXeWaEv9y6QQvWUtX3ySI3feApQi5uCsHLINQ6NoAw==", + "version": "3.5.16", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.16.tgz", + "integrity": "sha512-zP5EfLSpiLRp0aAgud4CQXPQZm9kXwWjR/cF0PfdOj+jjWnOaCgeZcll4kYXSvIBPeUMmyaSc7mM4IDtA+kboA==", "dev": true, "requires": { - "camel-case": "3.0.0", - "clean-css": "4.1.11", - "commander": "2.15.1", - "he": "1.1.1", - "param-case": "2.1.1", - "relateurl": "0.2.7", - "uglify-js": "3.3.21" + "camel-case": "3.0.x", + "clean-css": "4.1.x", + "commander": "2.15.x", + "he": "1.1.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.3.x" } }, "html-webpack-plugin": { @@ -5616,12 +5031,12 @@ "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", "dev": true, "requires": { - "bluebird": "3.5.1", - "html-minifier": "3.5.15", - "loader-utils": "0.2.17", - "lodash": "4.17.5", - "pretty-error": "2.1.1", - "toposort": "1.0.6" + "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" }, "dependencies": { "loader-utils": { @@ -5630,30 +5045,24 @@ "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1", - "object-assign": "4.1.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" } } } }, - "htmlescape": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", - "dev": true - }, "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" + "domelementtype": "1", + "domhandler": "2.1", + "domutils": "1.1", + "readable-stream": "1.0" }, "dependencies": { "domutils": { @@ -5662,7 +5071,7 @@ "integrity": "sha1-vdw94Jm5ou+sxRxiPyj0FuzFdIU=", "dev": true, "requires": { - "domelementtype": "1.3.0" + "domelementtype": "1" } }, "isarray": { @@ -5677,10 +5086,10 @@ "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", "isarray": "0.0.1", - "string_decoder": "0.10.31" + "string_decoder": "~0.10.x" } }, "string_decoder": { @@ -5703,37 +5112,48 @@ "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "dev": true, "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.4.0" + "statuses": ">= 1.4.0 < 2" } }, "http-parser-js": { - "version": "0.4.11", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.11.tgz", - "integrity": "sha512-QCR5O2AjjMW8Mo4HyI1ctFcv+O99j/0g367V3YoVnrNw5hkDvAWZD0lWGcc+F4yN3V55USPCVix4efb75HxFfA==", + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz", + "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=", "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=", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz", + "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==", "dev": true, "requires": { - "eventemitter3": "1.2.0", - "requires-port": "1.0.0" + "eventemitter3": "^3.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-agent": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-1.0.0.tgz", - "integrity": "sha1-zBzjjkU7+YSg93AtLdWcc9CBKEo=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", + "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "4", + "debug": "3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "http-proxy-middleware": { @@ -5742,10 +5162,10 @@ "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=", "dev": true, "requires": { - "http-proxy": "1.16.2", - "is-glob": "3.1.0", - "lodash": "4.17.5", - "micromatch": "2.3.11" + "http-proxy": "^1.16.2", + "is-glob": "^3.1.0", + "lodash": "^4.17.2", + "micromatch": "^2.3.11" }, "dependencies": { "is-extglob": { @@ -5760,7 +5180,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5771,9 +5191,9 @@ "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", "dev": true, "requires": { - "assert-plus": "0.2.0", - "jsprim": "1.4.1", - "sshpk": "1.14.1" + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "httpntlm": { @@ -5782,8 +5202,8 @@ "integrity": "sha1-rQFScUOi6Hc8+uapb1hla7UqNLI=", "dev": true, "requires": { - "httpreq": "0.4.24", - "underscore": "1.7.0" + "httpreq": ">=0.4.22", + "underscore": "~1.7.0" } }, "httpreq": { @@ -5799,14 +5219,24 @@ "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=", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz", + "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==", "dev": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1" + "agent-base": "^4.1.0", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } } }, "iconv-lite": { @@ -5816,9 +5246,9 @@ "dev": true }, "ieee754": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", - "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.12.tgz", + "integrity": "sha512-GguP+DRY+pJ3soyIiGPTvdiVXjZ+DbXOxGpXn3eMvNW4x4irjqXm4wHKscC+TfxSJ0yw/S1F24tqdMNsMZTiLA==", "dev": true }, "iferr": { @@ -5828,9 +5258,9 @@ "dev": true }, "ignore": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", - "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==", + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", + "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", "dev": true }, "image-size": { @@ -5858,8 +5288,8 @@ "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", "dev": true, "requires": { - "pkg-dir": "2.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -5880,7 +5310,7 @@ "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "requires": { - "repeating": "2.0.1" + "repeating": "^2.0.0" } }, "indexof": { @@ -5890,9 +5320,9 @@ "dev": true }, "inflection": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.10.0.tgz", - "integrity": "sha1-W//LEZetPoEFD44X4hZoCH7p6y8=", + "version": "1.12.0", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz", + "integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY=", "dev": true, "optional": true }, @@ -5902,8 +5332,8 @@ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -5930,35 +5360,26 @@ "integrity": "sha512-zHI+E+dM0PXix5FFTO1Y4/UOyAzE7zG1l/QwAn4jchTThOoBq+UYRFK4AVG7lQgFL+go62SbrzSsjXy9DFEZUg==", "dev": true }, - "inline-source-map": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", - "dev": true, - "requires": { - "source-map": "0.5.7" - } - }, "inquirer": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-3.3.0.tgz", "integrity": "sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==", "dev": true, "requires": { - "ansi-escapes": "3.1.0", - "chalk": "2.2.2", - "cli-cursor": "2.1.0", - "cli-width": "2.2.0", - "external-editor": "2.2.0", - "figures": "2.0.0", - "lodash": "4.17.5", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", "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" + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-regex": { @@ -5979,8 +5400,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -5989,35 +5410,18 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } }, - "insert-module-globals": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.0.6.tgz", - "integrity": "sha512-R3sidKJr3SsggqQQ5cEwQb3pWG8RNx0UnpyeiOSR6jorRIeAOzH2gkTWnNdMnyRiVbjrG047K7UCtlMkQ1Mo9w==", - "dev": true, - "requires": { - "JSONStream": "1.3.2", - "combine-source-map": "0.8.0", - "concat-stream": "1.6.2", - "is-buffer": "1.1.6", - "lexical-scope": "1.2.0", - "path-is-absolute": "1.0.1", - "process": "0.11.10", - "through2": "2.0.3", - "xtend": "4.0.1" - } - }, "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" + "meow": "^3.3.0" } }, "interpret": { @@ -6032,7 +5436,7 @@ "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "dev": true, "requires": { - "loose-envify": "1.3.1" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -6053,19 +5457,13 @@ "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs=", "dev": true }, - "is": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha1-OzSixI81mXLzUEKEkZOucmS2NWI=", - "dev": true - }, "is-accessor-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arrayish": { @@ -6080,7 +5478,7 @@ "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "dev": true, "requires": { - "binary-extensions": "1.11.0" + "binary-extensions": "^1.0.0" } }, "is-buffer": { @@ -6095,7 +5493,7 @@ "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", "dev": true, "requires": { - "builtin-modules": "1.1.1" + "builtin-modules": "^1.0.0" } }, "is-callable": { @@ -6110,7 +5508,7 @@ "integrity": "sha512-c7TnwxLePuqIlxHgr7xtxzycJPegNHFuIrBkwbf8hc58//+Op1CqFkyS+xnIMkwn9UsJIwc174BIjkyBmSpjKg==", "dev": true, "requires": { - "ci-info": "1.1.3" + "ci-info": "^1.0.0" } }, "is-data-descriptor": { @@ -6119,7 +5517,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -6134,9 +5532,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -6165,7 +5563,7 @@ "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { - "is-primitive": "2.0.0" + "is-primitive": "^2.0.0" } }, "is-extendable": { @@ -6186,7 +5584,7 @@ "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -6195,7 +5593,7 @@ "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "dev": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "is-glob": { @@ -6204,7 +5602,7 @@ "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { - "is-extglob": "1.0.0" + "is-extglob": "^1.0.0" } }, "is-installed-globally": { @@ -6213,8 +5611,8 @@ "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", "dev": true, "requires": { - "global-dirs": "0.1.1", - "is-path-inside": "1.0.1" + "global-dirs": "^0.1.0", + "is-path-inside": "^1.0.0" } }, "is-module": { @@ -6235,11 +5633,11 @@ "integrity": "sha512-IBhBslgngMQN8DDSppmgDv7RNrlFotuuDsKcrCP3+HbFaVivIBU7u9oiiErw8sH4ynx3+gOGQ3q2otkgiSi6kg==", "dev": true, "requires": { - "generate-function": "2.0.0", - "generate-object-property": "1.2.0", - "is-my-ip-valid": "1.0.0", - "jsonpointer": "4.0.1", - "xtend": "4.0.1" + "generate-function": "^2.0.0", + "generate-object-property": "^1.1.0", + "is-my-ip-valid": "^1.0.0", + "jsonpointer": "^4.0.0", + "xtend": "^4.0.0" } }, "is-npm": { @@ -6254,7 +5652,7 @@ "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -6269,7 +5667,7 @@ "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", "dev": true, "requires": { - "is-number": "4.0.0" + "is-number": "^4.0.0" }, "dependencies": { "is-number": { @@ -6292,7 +5690,7 @@ "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "is-path-inside": "1.0.1" + "is-path-inside": "^1.0.0" } }, "is-path-inside": { @@ -6301,7 +5699,7 @@ "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", "dev": true, "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.1" } }, "is-plain-object": { @@ -6310,7 +5708,7 @@ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -6357,7 +5755,7 @@ "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", "dev": true, "requires": { - "has": "1.0.1" + "has": "^1.0.1" } }, "is-retry-allowed": { @@ -6441,18 +5839,18 @@ "integrity": "sha512-duj6AlLcsWNwUpfyfHt0nWIeRiZpuShnP40YTxOGQgtaN8fd6JYSxsvxUphTDy8V5MfDXo4s/xVCIIvVCO808g==", "dev": true, "requires": { - "async": "2.6.0", - "compare-versions": "3.1.0", - "fileset": "2.0.3", - "istanbul-lib-coverage": "1.2.0", - "istanbul-lib-hook": "1.2.0", - "istanbul-lib-instrument": "1.10.1", - "istanbul-lib-report": "1.1.4", - "istanbul-lib-source-maps": "1.2.4", - "istanbul-reports": "1.3.0", - "js-yaml": "3.11.0", - "mkdirp": "0.5.1", - "once": "1.4.0" + "async": "^2.1.4", + "compare-versions": "^3.1.0", + "fileset": "^2.0.2", + "istanbul-lib-coverage": "^1.2.0", + "istanbul-lib-hook": "^1.2.0", + "istanbul-lib-instrument": "^1.10.1", + "istanbul-lib-report": "^1.1.4", + "istanbul-lib-source-maps": "^1.2.4", + "istanbul-reports": "^1.3.0", + "js-yaml": "^3.7.0", + "mkdirp": "^0.5.1", + "once": "^1.4.0" } }, "istanbul-instrumenter-loader": { @@ -6461,10 +5859,10 @@ "integrity": "sha512-a5SPObZgS0jB/ixaKSMdn6n/gXSrK2S6q/UfRJBT3e6gQmVjwZROTODQsYW5ZNwOu78hG62Y3fWlebaVOL0C+w==", "dev": true, "requires": { - "convert-source-map": "1.5.1", - "istanbul-lib-instrument": "1.10.1", - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "convert-source-map": "^1.5.0", + "istanbul-lib-instrument": "^1.7.3", + "loader-utils": "^1.1.0", + "schema-utils": "^0.3.0" }, "dependencies": { "ajv": { @@ -6473,10 +5871,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "schema-utils": { @@ -6485,7 +5883,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "^5.0.0" } } } @@ -6497,12 +5895,12 @@ "dev": true }, "istanbul-lib-hook": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.0.tgz", - "integrity": "sha512-p3En6/oGkFQV55Up8ZPC2oLxvgSxD8CzA0yBrhRZSh3pfv3OFj9aSGVC0yoerAi/O4u7jUVnOGVX1eVFM+0tmQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-1.2.1.tgz", + "integrity": "sha512-eLAMkPG9FU0v5L02lIkcj/2/Zlz9OuluaXikdr5iStk8FDbSwAixTK9TkYxbF0eNnzAJTwM2fkV2A1tpsIp4Jg==", "dev": true, "requires": { - "append-transform": "0.4.0" + "append-transform": "^1.0.0" } }, "istanbul-lib-instrument": { @@ -6511,13 +5909,13 @@ "integrity": "sha512-1dYuzkOCbuR5GRJqySuZdsmsNKPL3PTuyPevQfoCXJePT9C8y1ga75neU+Tuy9+yS3G/dgx8wgOmp2KLpgdoeQ==", "dev": true, "requires": { - "babel-generator": "6.26.1", - "babel-template": "6.26.0", - "babel-traverse": "6.26.0", - "babel-types": "6.26.0", - "babylon": "6.18.0", - "istanbul-lib-coverage": "1.2.0", - "semver": "5.5.0" + "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.2.0", + "semver": "^5.3.0" } }, "istanbul-lib-report": { @@ -6526,10 +5924,10 @@ "integrity": "sha512-Azqvq5tT0U09nrncK3q82e/Zjkxa4tkFZv7E6VcqP0QCPn6oNljDPfrZEC/umNXds2t7b8sRJfs6Kmpzt8m2kA==", "dev": true, "requires": { - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "path-parse": "1.0.5", - "supports-color": "3.2.3" + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "path-parse": "^1.0.5", + "supports-color": "^3.1.2" }, "dependencies": { "has-flag": { @@ -6544,22 +5942,22 @@ "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", "dev": true, "requires": { - "has-flag": "1.0.0" + "has-flag": "^1.0.0" } } } }, "istanbul-lib-source-maps": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.4.tgz", - "integrity": "sha512-UzuK0g1wyQijiaYQxj/CdNycFhAd2TLtO2obKQMTZrZ1jzEMRY3rvpASEKkaxbRR6brvdovfA03znPa/pXcejg==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-1.2.5.tgz", + "integrity": "sha512-8O2T/3VhrQHn0XcJbP1/GN7kXMiRAlPi+fj3uEHrjBD8Oz7Py0prSC25C09NuAZS6bgW1NNKAvCSHZXB0irSGA==", "dev": true, "requires": { - "debug": "3.1.0", - "istanbul-lib-coverage": "1.2.0", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "source-map": "0.5.7" + "debug": "^3.1.0", + "istanbul-lib-coverage": "^1.2.0", + "mkdirp": "^0.5.1", + "rimraf": "^2.6.1", + "source-map": "^0.5.3" }, "dependencies": { "debug": { @@ -6579,7 +5977,7 @@ "integrity": "sha512-y2Z2IMqE1gefWUaVjrBm0mSKvUkaBy9Vqz8iwr/r40Y9hBbIteH5wqHG/9DLTfJ9xUnUT2j7A3+VVJ6EaYBllA==", "dev": true, "requires": { - "handlebars": "4.0.11" + "handlebars": "^4.0.3" } }, "jStat": { @@ -6588,20 +5986,20 @@ "integrity": "sha512-toueem/U5hyHM6pqe6OZOL/5P8MrY7Ss1K8Brg+TcfX+RAjDU/sbwy72fwzmLPQ5ykdBe1UEoWQHc7OSNWMUDQ==" }, "jasmine": { - "version": "2.99.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.99.0.tgz", - "integrity": "sha1-jKctEC5jm4Z8ZImFbg4YqceqQrc=", + "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.99.1" + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" }, "dependencies": { "jasmine-core": { - "version": "2.99.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.99.1.tgz", - "integrity": "sha1-5kAN8ea1bhMLYcS80JPap/boyhU=", + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", "dev": true } } @@ -6628,9 +6026,9 @@ "dev": true }, "js-base64": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.3.tgz", - "integrity": "sha512-H7ErYLM34CvDMto3GbD6xD0JLUGYXR3QTcH6B/tr4Hi/QpSThnCsIp+Sy5FRTw3B0d6py4HcNkW7nO/wdtGWEw==", + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", + "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==", "dev": true }, "js-tokens": { @@ -6640,13 +6038,13 @@ "dev": true }, "js-yaml": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.11.0.tgz", - "integrity": "sha512-saJstZWv7oNeOyBh3+Dx1qWzhW0+e6/8eDzo7p5rDFqxntSztloLtuKu+Ejhtq82jsilwOIZYsCz+lIjthg1Hw==", + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", + "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", "dev": true, "requires": { - "argparse": "1.0.10", - "esprima": "4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -6692,7 +6090,7 @@ "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "dev": true, "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stringify-safe": { @@ -6719,7 +6117,7 @@ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { - "graceful-fs": "4.1.11" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -6728,12 +6126,6 @@ "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", "dev": true }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true - }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", @@ -6766,11 +6158,11 @@ "integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==", "dev": true, "requires": { - "core-js": "2.3.0", - "es6-promise": "3.0.2", - "lie": "3.1.1", - "pako": "1.0.6", - "readable-stream": "2.0.6" + "core-js": "~2.3.0", + "es6-promise": "~3.0.2", + "lie": "~3.1.0", + "pako": "~1.0.2", + "readable-stream": "~2.0.6" }, "dependencies": { "core-js": { @@ -6779,76 +6171,415 @@ "integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU=", "dev": true }, - "es6-promise": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", - "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", + "es6-promise": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz", + "integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y=", + "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 + }, + "readable-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", + "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "~1.0.0", + "process-nextick-args": "~1.0.6", + "string_decoder": "~0.10.x", + "util-deprecate": "~1.0.1" + } + }, + "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 + } + } + }, + "karma": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.3.tgz", + "integrity": "sha512-7bVCQs8+DCLWj5TIUBIgPa95/o8X9pBhyF+E2hX51Z6Ttq2biYWQlynBmunKZGRyNOIyg89TnVtC58q9eGBFFw==", + "dev": true, + "requires": { + "bluebird": "^3.3.0", + "body-parser": "^1.16.1", + "chokidar": "^2.0.3", + "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": "^4.17.4", + "log4js": "^2.5.3", + "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": "2.0.4", + "source-map": "^0.6.1", + "tmp": "0.0.33", + "useragent": "2.2.1" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", + "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.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" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "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.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "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 + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "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.0.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" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", "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=", + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, - "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 - } - } - }, - "karma": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-2.0.0.tgz", - "integrity": "sha512-K9Kjp8CldLyL9ANSUctDyxC7zH3hpqXj/K09qVf06K3T/kXaHtFZ5tQciK7OzQu68FLvI89Na510kqQ2LCbpIw==", - "dev": true, - "requires": { - "bluebird": "3.5.1", - "body-parser": "1.18.2", - "browserify": "14.5.0", - "chokidar": "1.7.0", - "colors": "1.1.2", - "combine-lists": "1.0.1", - "connect": "3.6.6", - "core-js": "2.5.5", - "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": "4.17.5", - "log4js": "2.5.3", - "mime": "1.6.0", - "minimatch": "3.0.4", - "optimist": "0.6.1", - "qjobs": "1.2.0", - "range-parser": "1.2.0", - "rimraf": "2.6.2", - "safe-buffer": "5.1.1", - "socket.io": "2.0.4", - "source-map": "0.6.1", - "tmp": "0.0.33", - "useragent": "2.3.0" - }, - "dependencies": { "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -6863,8 +6594,8 @@ "integrity": "sha512-uf/ZVpAabDBPvdPdveyk1EPgbnloPvFFGgmRhYLTDH7gEB4nZdSBk8yTU47w1g/drLSx5uMOkjKk7IWKfWg/+w==", "dev": true, "requires": { - "fs-access": "1.0.1", - "which": "1.3.0" + "fs-access": "^1.0.0", + "which": "^1.2.1" } }, "karma-cli": { @@ -6873,23 +6604,23 @@ "integrity": "sha1-rmw8WKMTodALRRZMRVubhs4X+WA=", "dev": true, "requires": { - "resolve": "1.7.1" + "resolve": "^1.1.6" } }, "karma-coverage-istanbul-reporter": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.2.tgz", - "integrity": "sha512-sQHexslLF+QHzaKfK8+onTYMyvSwv+p5cDayVxhpEELGa3z0QuB+l0IMsicIkkBNMOJKQaqueiRoW7iuo7lsog==", + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-1.4.3.tgz", + "integrity": "sha1-O13/RmT6W41RlrmInj9hwforgNk=", "dev": true, "requires": { - "istanbul-api": "1.3.1", - "minimatch": "3.0.4" + "istanbul-api": "^1.3.1", + "minimatch": "^3.0.4" } }, "karma-jasmine": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.1.tgz", - "integrity": "sha1-b+hA51oRYAydkehLM8RY4cRqNSk=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-1.1.2.tgz", + "integrity": "sha1-OU8rJf+0pkS5rabyLUQ+L9CIhsM=", "dev": true }, "karma-jasmine-html-reporter": { @@ -6898,16 +6629,34 @@ "integrity": "sha1-SKjl7xiAdhfuK14zwRlMNbQ5Ukw=", "dev": true, "requires": { - "karma-jasmine": "1.1.1" + "karma-jasmine": "^1.0.2" } }, "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=", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.3.0.tgz", + "integrity": "sha512-HcPqdAusNez/ywa+biN4EphGz62MmQyPggUsDfsHqa7tSe4jdsxgvTKuDfIazjL+IOxpVWyT7Pr4dhAV+sxX5Q==", "dev": true, "requires": { - "source-map-support": "0.4.18" + "source-map-support": "^0.5.5" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } } }, "killable": { @@ -6922,26 +6671,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" - } - }, - "labeled-stream-splicer": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.1.tgz", - "integrity": "sha512-MC94mHZRvJ3LfykJlTUipBqenZz1pacOZEMhhQ8dMGcDHs0SBE5GbsavUXV7YtP3icBW17W0Zy1I0lfASmo9Pg==", - "dev": true, - "requires": { - "inherits": "2.0.3", - "isarray": "2.0.4", - "stream-splicer": "2.0.0" - }, - "dependencies": { - "isarray": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.4.tgz", - "integrity": "sha512-GMxXOiUirWg1xTKRipM0Ek07rX+ubx4nNVElTJdNLYmNO/2YrDkgJGw9CljXn+r4EWiDQg/8lsRdHyg2PJuUaA==", - "dev": true - } + "is-buffer": "^1.1.5" } }, "latest-version": { @@ -6950,7 +6680,7 @@ "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", "dev": true, "requires": { - "package-json": "4.0.1" + "package-json": "^4.0.0" } }, "lazy-cache": { @@ -6965,7 +6695,7 @@ "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", "dev": true, "requires": { - "invert-kv": "1.0.0" + "invert-kv": "^1.0.0" } }, "less": { @@ -6974,14 +6704,90 @@ "integrity": "sha512-KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==", "dev": true, "requires": { - "errno": "0.1.7", - "graceful-fs": "4.1.11", - "image-size": "0.5.5", - "mime": "1.6.0", - "mkdirp": "0.5.1", - "promise": "7.3.1", + "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.81.0", - "source-map": "0.5.7" + "source-map": "^0.5.3" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "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, + "optional": 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, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "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, + "optional": 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, + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "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" + } + } } }, "less-loader": { @@ -6990,9 +6796,9 @@ "integrity": "sha512-KNTsgCE9tMOM70+ddxp9yyt9iHqgmSs0yTZc5XH5Wo+g80RWRIYNqE58QJKm/yMud5wZEvz50ugRDuzVIkyahg==", "dev": true, "requires": { - "clone": "2.1.2", - "loader-utils": "1.1.0", - "pify": "3.0.0" + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" } }, "levn": { @@ -7002,17 +6808,8 @@ "dev": true, "optional": true, "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" - } - }, - "lexical-scope": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/lexical-scope/-/lexical-scope-1.2.0.tgz", - "integrity": "sha1-/Ope3HBKSzqHls3KQZw6CvryLfQ=", - "dev": true, - "requires": { - "astw": "2.2.0" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "libbase64": { @@ -7052,7 +6849,7 @@ "integrity": "sha512-NqAFodJdpBUuf1iD+Ij8hQvF0rCFKlO2KaieoQzAPhFgzLCtJnC7Z7x5gQbGNjoe++wOKAtAmwVEIBLqq2Yp1A==", "dev": true, "requires": { - "ejs": "2.5.8" + "ejs": "^2.5.7" } }, "lie": { @@ -7061,7 +6858,7 @@ "integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=", "dev": true, "requires": { - "immediate": "3.0.6" + "immediate": "~3.0.5" } }, "load-json-file": { @@ -7070,11 +6867,11 @@ "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" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" }, "dependencies": { "pify": { @@ -7097,9 +6894,9 @@ "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", "dev": true, "requires": { - "big.js": "3.2.0", - "emojis-list": "2.1.0", - "json5": "0.5.1" + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" } }, "locate-path": { @@ -7108,14 +6905,14 @@ "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "dev": true, "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "lodash": { - "version": "4.17.5", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz", - "integrity": "sha512-svL3uiZf1RwhH+cWrfZn3A4+U58wbP0tGVTLQPbjplZxZ8ROD9VLuNgsRniTlLe7OlSqR79RUehXgpBW/s0IQw==", + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", "dev": true }, "lodash.assign": { @@ -7130,12 +6927,6 @@ "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", "dev": true }, - "lodash.memoize": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", - "dev": true - }, "lodash.mergewith": { "version": "4.6.1", "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz", @@ -7149,23 +6940,23 @@ "dev": true }, "log4js": { - "version": "2.5.3", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.5.3.tgz", - "integrity": "sha512-YL/qpTxYtK0iWWbuKCrevDZz5lh+OjyHHD+mICqpjnYGKdNRBvPeh/1uYjkKUemT1CSO4wwLOwphWMpKAnD9kw==", - "dev": true, - "requires": { - "amqplib": "0.5.2", - "axios": "0.15.3", - "circular-json": "0.5.3", - "date-format": "1.2.0", - "debug": "3.1.0", - "hipchat-notifier": "1.1.0", - "loggly": "1.1.1", - "mailgun-js": "0.7.15", - "nodemailer": "2.7.2", - "redis": "2.8.0", - "semver": "5.5.0", - "slack-node": "0.2.0", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-2.9.0.tgz", + "integrity": "sha512-pptn4+5Q3ysOW6Jgm9lzhDUCFEYv7FLrazEzPQQlxgSP+IVl5HMPgT8hm2DyRqGY4GUiVjZz4XXRvTZ9BELQyw==", + "dev": true, + "requires": { + "amqplib": "^0.5.2", + "axios": "^0.15.3", + "circular-json": "^0.5.4", + "date-format": "^1.2.0", + "debug": "^3.1.0", + "hipchat-notifier": "^1.1.0", + "loggly": "^1.1.0", + "mailgun-js": "^0.18.0", + "nodemailer": "^2.5.0", + "redis": "^2.7.1", + "semver": "^5.5.0", + "slack-node": "~0.2.0", "streamroller": "0.7.0" }, "dependencies": { @@ -7187,9 +6978,9 @@ "dev": true, "optional": true, "requires": { - "json-stringify-safe": "5.0.1", - "request": "2.75.0", - "timespan": "2.3.0" + "json-stringify-safe": "5.0.x", + "request": "2.75.x", + "timespan": "2.3.x" }, "dependencies": { "ansi-styles": { @@ -7213,11 +7004,11 @@ "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" + "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" } }, "form-data": { @@ -7227,9 +7018,9 @@ "dev": true, "optional": true, "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.6", - "mime-types": "2.1.18" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.11" } }, "har-validator": { @@ -7239,10 +7030,10 @@ "dev": true, "optional": true, "requires": { - "chalk": "1.1.3", - "commander": "2.15.1", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "node-uuid": { @@ -7266,27 +7057,27 @@ "dev": true, "optional": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "bl": "1.1.2", - "caseless": "0.11.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.0.0", - "har-validator": "2.0.6", - "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.18", - "node-uuid": "1.4.8", - "oauth-sign": "0.8.2", - "qs": "6.2.3", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "bl": "~1.1.2", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.0.0", + "har-validator": "~2.0.6", + "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", + "node-uuid": "~1.4.7", + "oauth-sign": "~0.8.1", + "qs": "~6.2.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1" } }, "supports-color": { @@ -7323,7 +7114,7 @@ "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", "dev": true, "requires": { - "js-tokens": "3.0.2" + "js-tokens": "^3.0.0" } }, "loud-rejection": { @@ -7332,8 +7123,8 @@ "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", "dev": true, "requires": { - "currently-unhandled": "0.4.1", - "signal-exit": "3.0.2" + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" } }, "lower-case": { @@ -7349,13 +7140,13 @@ "dev": true }, "lru-cache": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.2.tgz", - "integrity": "sha512-wgeVXhrDwAWnIF/yZARsFnMBtdFXOg1b8RIrhilp+0iDYN4mdQcNZElDZ0e4B64BhaxeQ5zN7PMyvu7we1kPeQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", "dev": true, "requires": { - "pseudomap": "1.0.2", - "yallist": "2.1.2" + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" } }, "magic-string": { @@ -7364,7 +7155,7 @@ "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", "dev": true, "requires": { - "vlq": "0.2.3" + "vlq": "^0.2.2" } }, "mailcomposer": { @@ -7379,59 +7170,54 @@ } }, "mailgun-js": { - "version": "0.7.15", - "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.7.15.tgz", - "integrity": "sha1-7jZqINrGTDwVwD1sGz4O15UlKrs=", + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.18.0.tgz", + "integrity": "sha512-o0P6jjZlx5CQj12tvVgDTbgjTqVN0+5h6/6P1+3c6xmozVKBwniQ6Qt3MkCSF0+ueVTbobAfWyGpWRZMJu8t1g==", "dev": true, "optional": true, "requires": { - "async": "2.1.5", - "debug": "2.2.0", - "form-data": "2.1.4", - "inflection": "1.10.0", - "is-stream": "1.1.0", - "path-proxy": "1.0.0", - "proxy-agent": "2.0.0", - "q": "1.4.1", - "tsscmp": "1.0.5" + "async": "~2.6.0", + "debug": "~3.1.0", + "form-data": "~2.3.0", + "inflection": "~1.12.0", + "is-stream": "^1.1.0", + "path-proxy": "~1.0.0", + "promisify-call": "^2.0.2", + "proxy-agent": "~3.0.0", + "tsscmp": "~1.0.0" }, "dependencies": { - "async": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/async/-/async-2.1.5.tgz", - "integrity": "sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "optional": true, "requires": { - "lodash": "4.17.5" + "ms": "2.0.0" } }, - "debug": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", - "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, "optional": true, "requires": { - "ms": "0.7.1" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } - }, - "ms": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", - "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", - "dev": true, - "optional": true } } }, "make-dir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.2.0.tgz", - "integrity": "sha512-aNUAa4UMg/UougV25bbrU4ZaaKNjJ/3/xnvg/twpmKROPdKZPZ9wGgI0opdZzO8q/zUFawoUuixuOv33eZ61Iw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "make-error": { @@ -7458,17 +7244,23 @@ "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "dev": true, "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" } }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "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" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "media-typer": { @@ -7483,7 +7275,7 @@ "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "memory-fs": { @@ -7492,8 +7284,8 @@ "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "dev": true, "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.6" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "meow": { @@ -7502,16 +7294,16 @@ "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" + "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" }, "dependencies": { "minimist": { @@ -7540,19 +7332,19 @@ "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" + "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": { @@ -7561,8 +7353,8 @@ "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "dev": true, "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -7583,7 +7375,7 @@ "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==", "dev": true, "requires": { - "mime-db": "1.33.0" + "mime-db": "~1.33.0" } }, "mimic-fn": { @@ -7610,7 +7402,7 @@ "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -7619,49 +7411,22 @@ "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, - "minipass": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.2.4.tgz", - "integrity": "sha512-hzXIWWet/BzWhYs2b+u7dRHlruXhwdgvlTMDKC6Cb1U7ps6Ac6yQlR39xsbjWJE377YTCtKwIXIpJ5oP+j5y8g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.1", - "yallist": "3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true - } - } - }, - "minizlib": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.0.tgz", - "integrity": "sha512-4T6Ur/GctZ27nHfpt9THOdRZNgyJ9FZchYO1ceg5S8Q3DNLCKYy44nCZzgCJgcvx2UM8czmqak5BCxJMrq37lA==", - "dev": true, - "requires": { - "minipass": "2.2.4" - } - }, "mississippi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", "dev": true, "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.5.4", - "end-of-stream": "1.4.1", - "flush-write-stream": "1.0.3", - "from2": "2.3.0", - "parallel-transform": "1.1.0", - "pump": "2.0.1", - "pumpify": "1.4.0", - "stream-each": "1.2.2", - "through2": "2.0.3" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } }, "mixin-deep": { @@ -7670,8 +7435,8 @@ "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", "dev": true, "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -7680,102 +7445,38 @@ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "dev": true, "requires": { - "is-plain-object": "2.0.4" - } - } - } - }, - "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" - } - }, - "module-deps": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-4.1.1.tgz", - "integrity": "sha1-IyFYM/HaE/1gbMuAh7RIUty4If0=", - "dev": true, - "requires": { - "JSONStream": "1.3.2", - "browser-resolve": "1.11.2", - "cached-path-relative": "1.0.1", - "concat-stream": "1.5.2", - "defined": "1.0.0", - "detective": "4.7.1", - "duplexer2": "0.1.4", - "inherits": "2.0.3", - "parents": "1.0.1", - "readable-stream": "2.3.6", - "resolve": "1.7.1", - "stream-combiner2": "1.1.1", - "subarg": "1.0.0", - "through2": "2.0.3", - "xtend": "4.0.1" - }, - "dependencies": { - "concat-stream": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.5.2.tgz", - "integrity": "sha1-cIl4Yk2FavQaWnQd790mHadSwmY=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.0.6", - "typedarray": "0.0.6" - }, - "dependencies": { - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "1.0.7", - "string_decoder": "0.10.31", - "util-deprecate": "1.0.2" - } - } - } - }, - "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 - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "is-plain-object": "^2.0.4" + } + } + } + }, + "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.3", + "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" + } + }, "moment": { "version": "2.20.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.20.1.tgz", @@ -7787,12 +7488,12 @@ "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "dev": true, "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.1", - "rimraf": "2.6.2", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { @@ -7807,8 +7508,8 @@ "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "dev": true, "requires": { - "dns-packet": "1.3.1", - "thunky": "1.0.2" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -7835,18 +7536,18 @@ "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-odd": "2.0.0", - "is-windows": "1.0.2", - "kind-of": "6.0.2", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "arr-diff": { @@ -7895,62 +7596,140 @@ "dev": true }, "ng-packagr": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-2.4.2.tgz", - "integrity": "sha512-aPjIUoYO+sdEhlQbpJeBt7n+PgN0cZ8Q9FCIXZ8uTG0uJc/t9QddGZ3wIjfaBh9+WTDdh1ACZCIFb6J1WH/szA==", - "dev": true, - "requires": { - "@ngtools/json-schema": "1.1.0", - "autoprefixer": "7.2.6", - "browserslist": "2.11.3", - "chalk": "2.4.0", - "commander": "2.15.1", - "cpx": "1.5.0", - "fs-extra": "5.0.0", - "glob": "7.1.2", - "injection-js": "2.2.1", - "less": "2.7.3", - "node-sass": "4.8.3", - "node-sass-tilde-importer": "1.0.2", - "postcss": "6.0.21", - "postcss-clean": "1.1.0", - "postcss-url": "7.3.2", - "read-pkg-up": "3.0.0", - "rimraf": "2.6.2", - "rollup": "0.55.5", - "rollup-plugin-cleanup": "2.0.1", - "rollup-plugin-commonjs": "8.3.0", - "rollup-plugin-license": "0.6.0", - "rollup-plugin-node-resolve": "3.3.0", - "rxjs": "5.5.10", - "sorcery": "0.10.0", - "strip-bom": "3.0.0", - "stylus": "0.54.5", - "tar": "4.4.1", - "uglify-js": "3.3.21", - "update-notifier": "2.5.0" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/ng-packagr/-/ng-packagr-3.0.2.tgz", + "integrity": "sha512-wnUhRvboyqHqhDq16YGq8JYk/hX2oTAxNTZHJ2FWIU5Zv1qZjBbCHlDk4PuRfQNZLFv8A34or+eOtM/svtdjiA==", + "dev": true, + "requires": { + "@ngtools/json-schema": "^1.1.0", + "autoprefixer": "^8.0.0", + "browserslist": "^3.0.0", + "chalk": "^2.3.1", + "commander": "^2.12.0", + "cpx": "^1.5.0", + "fs-extra": "^6.0.0", + "glob": "^7.1.2", + "injection-js": "^2.2.1", + "less": "^3.0.0", + "node-sass": "^4.5.3", + "node-sass-tilde-importer": "^1.0.0", + "postcss": "^6.0.2", + "postcss-clean": "^1.1.0", + "postcss-url": "^7.3.0", + "read-pkg-up": "^3.0.0", + "rimraf": "^2.6.1", + "rollup": "^0.59.0", + "rollup-plugin-commonjs": "^9.1.3", + "rollup-plugin-node-resolve": "^3.0.0", + "rollup-plugin-sourcemaps": "^0.4.2", + "rxjs": "^6.0.0", + "strip-bom": "^3.0.0", + "stylus": "^0.54.5", + "uglify-js": "^3.0.7", + "update-notifier": "^2.3.0" }, "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "optional": true + }, + "autoprefixer": { + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.2.tgz", + "integrity": "sha512-cv9v1mYYBcAnZq4MHseJ9AIdjQmNahnpCpPO46oTkQJS2GggsBp2azHjNpAuQ95Epvsg+AIsyjYhfI9YwFxGSA==", + "dev": true, + "requires": { + "browserslist": "^3.2.8", + "caniuse-lite": "^1.0.30000851", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^6.0.22", + "postcss-value-parser": "^3.2.3" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "optional": true + }, + "browserslist": { + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz", + "integrity": "sha512-WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000844", + "electron-to-chromium": "^1.3.47" + } + }, "chalk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", - "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", "dev": true, + "optional": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" } }, "fs-extra": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz", - "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", + "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", + "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", "dev": true, + "optional": true, "requires": { - "graceful-fs": "4.1.11", - "jsonfile": "4.0.0", - "universalify": "0.1.1" + "ajv": "^5.1.0", + "har-schema": "^2.0.0" } }, "has-flag": { @@ -7959,16 +7738,44 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "less": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/less/-/less-3.0.4.tgz", + "integrity": "sha512-q3SyEnPKbk9zh4l36PGeW2fgynKu+FpbhiUNx/yaiBUQ3V0CbACCgb9FzYWcRgI2DJlP6eI4jc8XPrCTi55YcQ==", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.4.1", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "^2.83.0", + "source-map": "~0.6.0" + } + }, "load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "parse-json": { @@ -7977,19 +7784,33 @@ "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "dev": true, "requires": { - "error-ex": "1.3.1", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true, + "optional": true + }, "read-pkg": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "dev": true, "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.4.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -7998,10 +7819,55 @@ "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "3.0.0" + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" } }, + "request": { + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.7.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.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.0" + } + }, + "rxjs": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.2.1.tgz", + "integrity": "sha512-OwMxHxmnmHTUpgO+V7dZChf3Tixf4ih95cmXjzzadULziVl/FKhHScGLj4goEw9weePVOH2Q0+GcCBUhKCZc/g==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true, + "optional": true + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -8014,29 +7880,8 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" - } - }, - "tar": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.1.tgz", - "integrity": "sha512-O+v1r9yN4tOsvl90p5HAP4AEqbYhx4036AGMm075fH9F8Qwi3oJ+v4u50FkT/KkvywNGtwkk0zRI+8eYm1X/xg==", - "dev": true, - "requires": { - "chownr": "1.0.1", - "fs-minipass": "1.2.5", - "minipass": "2.2.4", - "minizlib": "1.1.0", - "mkdirp": "0.5.1", - "safe-buffer": "5.1.1", - "yallist": "3.0.2" + "has-flag": "^3.0.0" } - }, - "yallist": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", - "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", - "dev": true } } }, @@ -8046,43 +7891,110 @@ "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", "dev": true, "requires": { - "lower-case": "1.1.4" + "lower-case": "^1.1.1" } }, "node-forge": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.1.tgz", - "integrity": "sha1-naYR6giYL0uUIGs760zJZl8gwwA=", + "version": "0.7.5", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz", + "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==", "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, - "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.5", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.3.0", - "tar": "2.2.1", - "which": "1.3.0" + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.7.0.tgz", + "integrity": "sha512-qDQE/Ft9xXP6zphwx4sD0t+VhwV7yFaloMpfbL2QnnDZcyaiakWlLdtFGGQfTAwpFHdpbRhRxVhIHN1OKAjgbg==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": ">=2.9.0 <2.82.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" }, "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" + } + }, + "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.9.1", + "har-schema": "^1.0.5" + } + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", "dev": true, "requires": { - "abbrev": "1.1.1" + "abbrev": "1" + } + }, + "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 + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true + }, + "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.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" } }, "semver": { @@ -8099,28 +8011,28 @@ "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", "dev": true, "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.1", - "console-browserify": "1.1.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "1.1.1", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "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": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.0", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.6", - "stream-browserify": "2.0.1", - "stream-http": "2.8.1", - "string_decoder": "1.1.1", - "timers-browserify": "2.0.9", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.10.3", + "url": "^0.11.0", + "util": "^0.10.3", "vm-browserify": "0.0.4" }, "dependencies": { @@ -8139,30 +8051,30 @@ "dev": true }, "node-sass": { - "version": "4.8.3", - "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.8.3.tgz", - "integrity": "sha512-tfFWhUsCk/Y19zarDcPo5xpj+IW3qCfOjVdHtYeG6S1CKbQOh1zqylnQK6cV3z9k80yxAnFX9Y+a9+XysDhhfg==", - "dev": 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.1", - "meow": "3.7.0", - "mkdirp": "0.5.1", - "nan": "2.10.0", - "node-gyp": "3.6.2", - "npmlog": "4.1.2", - "request": "2.79.0", - "sass-graph": "2.2.4", - "stdout-stream": "1.4.0", - "true-case-path": "1.0.2" + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.9.0.tgz", + "integrity": "sha512-QFHfrZl6lqRU3csypwviz2XLgGNOoWQbo2GOvtsfQqOfL4cy1BtWnhx/XUeAO9LT3ahBzSRXcEO6DdvAH9DzSg==", + "dev": true, + "requires": { + "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.10.0", + "node-gyp": "^3.3.1", + "npmlog": "^4.0.0", + "request": "~2.79.0", + "sass-graph": "^2.2.4", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" }, "dependencies": { "ansi-styles": { @@ -8183,11 +8095,11 @@ "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" + "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" } }, "har-validator": { @@ -8196,10 +8108,10 @@ "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", "dev": true, "requires": { - "chalk": "1.1.3", - "commander": "2.15.1", - "is-my-json-valid": "2.17.2", - "pinkie-promise": "2.0.1" + "chalk": "^1.1.1", + "commander": "^2.9.0", + "is-my-json-valid": "^2.12.4", + "pinkie-promise": "^2.0.0" } }, "qs": { @@ -8214,26 +8126,26 @@ "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", "dev": true, "requires": { - "aws-sign2": "0.6.0", - "aws4": "1.7.0", - "caseless": "0.11.0", - "combined-stream": "1.0.6", - "extend": "3.0.1", - "forever-agent": "0.6.1", - "form-data": "2.1.4", - "har-validator": "2.0.6", - "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.18", - "oauth-sign": "0.8.2", - "qs": "6.3.2", - "stringstream": "0.0.5", - "tough-cookie": "2.3.4", - "tunnel-agent": "0.4.3", - "uuid": "3.2.1" + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.11.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~2.0.6", + "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", + "qs": "~6.3.0", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "~0.4.1", + "uuid": "^3.0.0" } }, "supports-color": { @@ -8256,34 +8168,7 @@ "integrity": "sha512-Swcmr38Y7uB78itQeBm3mThjxBy9/Ah/ykPIaURY/L6Nec9AyRoL/jJ7ECfMR+oZeCTVQNxVMu/aHU+TLRVbdg==", "dev": true, "requires": { - "find-parent-dir": "0.3.0" - } - }, - "node.extend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/node.extend/-/node.extend-1.0.8.tgz", - "integrity": "sha1-urBDefc4P0WHmQyd8Htqf2Xbdys=", - "dev": true, - "requires": { - "is": "0.2.7", - "object-keys": "0.4.0" - }, - "dependencies": { - "object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", - "dev": true - } - } - }, - "node.flow": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/node.flow/-/node.flow-1.2.3.tgz", - "integrity": "sha1-4cRKgq7KjXi0WKd/s9xkLy66Jkk=", - "dev": true, - "requires": { - "node.extend": "1.0.8" + "find-parent-dir": "^0.3.0" } }, "nodemailer": { @@ -8309,8 +8194,8 @@ "dev": true, "optional": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.2", + "smart-buffer": "^1.0.4" } } } @@ -8377,8 +8262,8 @@ "integrity": "sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=", "dev": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "normalize-package-data": { @@ -8387,10 +8272,10 @@ "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "dev": true, "requires": { - "hosted-git-info": "2.6.0", - "is-builtin-module": "1.0.0", - "semver": "5.5.0", - "validate-npm-package-license": "3.0.3" + "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": { @@ -8399,7 +8284,7 @@ "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -8414,7 +8299,7 @@ "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "dev": true, "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "npmlog": { @@ -8423,10 +8308,10 @@ "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" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "nth-check": { @@ -8435,7 +8320,7 @@ "integrity": "sha1-mSms32KPwsQQmN6rgqxYDPFJquQ=", "dev": true, "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "null-check": { @@ -8457,9 +8342,12 @@ "dev": true }, "numbro": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/numbro/-/numbro-1.11.0.tgz", - "integrity": "sha1-OaoXs1i0aCrsjKDVdV81xdnOj54=" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/numbro/-/numbro-2.1.0.tgz", + "integrity": "sha1-YYrG5LLzLy5iMZDOSwX0yLCcMgc=", + "requires": { + "bignumber.js": "^4.0.4" + } }, "oauth-sign": { "version": "0.8.2", @@ -8485,9 +8373,9 @@ "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "dev": true, "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -8496,7 +8384,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -8513,7 +8401,7 @@ "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" }, "dependencies": { "isobject": { @@ -8530,8 +8418,8 @@ "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { - "for-own": "0.1.5", - "is-extendable": "0.1.1" + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" } }, "object.pick": { @@ -8540,7 +8428,7 @@ "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "dev": true, "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" }, "dependencies": { "isobject": { @@ -8557,9 +8445,9 @@ "integrity": "sha1-K6pgboKZ5oZpFOycik22pBE25Zs=", "dev": true, "requires": { - "ansi-escapes": "1.4.0", - "chalk": "1.1.3", - "lodash": "3.10.1" + "ansi-escapes": "^1.1.0", + "chalk": "^1.1.1", + "lodash": "^3.10.1" }, "dependencies": { "ansi-escapes": { @@ -8580,11 +8468,11 @@ "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" + "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" } }, "lodash": { @@ -8628,7 +8516,7 @@ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -8637,7 +8525,7 @@ "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", "dev": true, "requires": { - "mimic-fn": "1.2.0" + "mimic-fn": "^1.0.0" } }, "opn": { @@ -8646,7 +8534,7 @@ "integrity": "sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg==", "dev": true, "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimist": { @@ -8655,8 +8543,8 @@ "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, "requires": { - "minimist": "0.0.8", - "wordwrap": "0.0.2" + "minimist": "~0.0.1", + "wordwrap": "~0.0.2" } }, "optionator": { @@ -8666,12 +8554,12 @@ "dev": true, "optional": true, "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "wordwrap": "1.0.0" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.4", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "wordwrap": "~1.0.0" }, "dependencies": { "wordwrap": { @@ -8690,24 +8578,12 @@ "dev": true }, "original": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.0.tgz", - "integrity": "sha1-kUf5P6FpbQS+YeAb1QuurKZWvTs=", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz", + "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==", "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" - } - } + "url-parse": "~1.4.0" } }, "os-browserify": { @@ -8728,7 +8604,7 @@ "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", "dev": true, "requires": { - "lcid": "1.0.0" + "lcid": "^1.0.0" } }, "os-tmpdir": { @@ -8743,8 +8619,8 @@ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", "dev": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "p-finally": { @@ -8754,12 +8630,12 @@ "dev": true }, "p-limit": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", - "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "dev": true, "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -8768,7 +8644,7 @@ "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "dev": true, "requires": { - "p-limit": "1.2.0" + "p-limit": "^1.1.0" } }, "p-map": { @@ -8784,51 +8660,46 @@ "dev": true }, "pac-proxy-agent": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-1.1.0.tgz", - "integrity": "sha512-QBELCWyLYPgE2Gj+4wUEiMscHrQ8nRPBzYItQNOHWavwBt25ohZHQC4qnd5IszdVVrFbLsQ+dPkm6eqdjJAmwQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-2.0.2.tgz", + "integrity": "sha512-cDNAN1Ehjbf5EHkNY5qnRhGPUCp6SnpyVof5fRzN800QV1Y2OkzbH9rmjZkbBRa8igof903yOnjIl6z0SlAhxA==", "dev": true, "optional": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "get-uri": "2.0.1", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "pac-resolver": "2.0.0", - "raw-body": "2.3.2", - "socks-proxy-agent": "2.1.1" + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "get-uri": "^2.0.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "pac-resolver": "^3.0.0", + "raw-body": "^2.2.0", + "socks-proxy-agent": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + } } }, "pac-resolver": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-2.0.0.tgz", - "integrity": "sha1-mbiNLxk/ve78HJpSnB8yYKtSd80=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz", + "integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==", "dev": true, "optional": true, "requires": { - "co": "3.0.6", - "degenerator": "1.0.4", - "ip": "1.0.1", - "netmask": "1.0.6", - "thunkify": "2.1.2" - }, - "dependencies": { - "co": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/co/-/co-3.0.6.tgz", - "integrity": "sha1-FEXyJsXrlWE45oyawwFn6n0ua9o=", - "dev": true, - "optional": true - }, - "ip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.0.1.tgz", - "integrity": "sha1-x+NWzeoiWucbNtcPLnGpK6TkJZA=", - "dev": true, - "optional": true - } + "co": "^4.6.0", + "degenerator": "^1.0.4", + "ip": "^1.1.5", + "netmask": "^1.0.6", + "thunkify": "^2.1.2" } }, "package-json": { @@ -8837,10 +8708,10 @@ "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", "dev": true, "requires": { - "got": "6.7.1", - "registry-auth-token": "3.3.2", - "registry-url": "3.1.0", - "semver": "5.5.0" + "got": "^6.7.1", + "registry-auth-token": "^3.0.1", + "registry-url": "^3.0.3", + "semver": "^5.1.0" } }, "pako": { @@ -8855,9 +8726,9 @@ "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", "dev": true, "requires": { - "cyclist": "0.2.2", - "inherits": "2.0.3", - "readable-stream": "2.3.6" + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" } }, "param-case": { @@ -8866,16 +8737,7 @@ "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", "dev": true, "requires": { - "no-case": "2.3.2" - } - }, - "parents": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", - "dev": true, - "requires": { - "path-platform": "0.11.15" + "no-case": "^2.2.0" } }, "parse-asn1": { @@ -8884,11 +8746,11 @@ "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", "dev": true, "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.14" + "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-glob": { @@ -8897,10 +8759,10 @@ "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" + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" } }, "parse-json": { @@ -8909,7 +8771,7 @@ "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "dev": true, "requires": { - "error-ex": "1.3.1" + "error-ex": "^1.2.0" } }, "parse-passwd": { @@ -8924,7 +8786,7 @@ "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", "dev": true, "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseuri": { @@ -8933,7 +8795,7 @@ "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", "dev": true, "requires": { - "better-assert": "1.0.2" + "better-assert": "~1.0.0" } }, "parseurl": { @@ -8990,12 +8852,6 @@ "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", "dev": true }, - "path-platform": { - "version": "0.11.15", - "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", - "dev": true - }, "path-proxy": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz", @@ -9003,7 +8859,7 @@ "dev": true, "optional": true, "requires": { - "inflection": "1.3.8" + "inflection": "~1.3.0" }, "dependencies": { "inflection": { @@ -9027,26 +8883,26 @@ "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "dev": true, "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pbkdf2": { - "version": "3.0.14", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", - "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", "dev": true, "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.1", - "safe-buffer": "5.1.1", - "sha.js": "2.4.11" + "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": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", "dev": true }, "pify": { @@ -9060,7 +8916,7 @@ "resolved": "https://registry.npmjs.org/pikaday/-/pikaday-1.5.1.tgz", "integrity": "sha1-CkhUm8GhTqHQjEQHTXYbwvK/z9M=", "requires": { - "moment": "2.20.1" + "moment": "2.x" } }, "pinkie": { @@ -9075,7 +8931,7 @@ "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pkg-dir": { @@ -9084,7 +8940,7 @@ "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "dev": true, "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } }, "portfinder": { @@ -9093,9 +8949,9 @@ "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=", "dev": true, "requires": { - "async": "1.5.2", - "debug": "2.6.9", - "mkdirp": "0.5.1" + "async": "^1.5.2", + "debug": "^2.2.0", + "mkdirp": "0.5.x" }, "dependencies": { "async": { @@ -9113,25 +8969,25 @@ "dev": true }, "postcss": { - "version": "6.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.21.tgz", - "integrity": "sha512-y/bKfbQz2Nn/QBC08bwvYUxEFOVGfPIUOTsJ2CK5inzlXW9SdYR1x4pEsG9blRAF/PX+wRNdOah+gx/hv4q7dw==", + "version": "6.0.22", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.22.tgz", + "integrity": "sha512-Toc9lLoUASwGqxBSJGTVcOQiDqjK+Z2XlWBg+IgYwQMY9vA2f7iMpXVc1GpPcfTSyM5lkxNo0oDwDRO+wm7XHA==", "dev": true, "requires": { - "chalk": "2.4.0", - "source-map": "0.6.1", - "supports-color": "5.4.0" + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" }, "dependencies": { "chalk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", - "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -9152,7 +9008,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9163,8 +9019,8 @@ "integrity": "sha512-83g3GqMbCM5NL6MlbbPLJ/m2NrUepBF44MoDk4Gt04QGXeXKh9+ilQa0DzLnYnvqYHQCw83nckuEzBFr2muwbg==", "dev": true, "requires": { - "clean-css": "4.1.11", - "postcss": "6.0.21" + "clean-css": "^4.x", + "postcss": "^6.x" } }, "postcss-import": { @@ -9173,10 +9029,10 @@ "integrity": "sha512-5l327iI75POonjxkXgdRCUS+AlzAdBx4pOvMEhTKTCjb1p8IEeVR9yx3cPbmN7LIWJLbfnIXxAhoB4jpD0c/Cw==", "dev": true, "requires": { - "postcss": "6.0.21", - "postcss-value-parser": "3.3.0", - "read-cache": "1.0.0", - "resolve": "1.7.1" + "postcss": "^6.0.1", + "postcss-value-parser": "^3.2.3", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" } }, "postcss-load-config": { @@ -9185,10 +9041,10 @@ "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" + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" } }, "postcss-load-options": { @@ -9197,8 +9053,8 @@ "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" } }, "postcss-load-plugins": { @@ -9207,20 +9063,20 @@ "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", "dev": true, "requires": { - "cosmiconfig": "2.2.2", - "object-assign": "4.1.1" + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" } }, "postcss-loader": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.4.tgz", - "integrity": "sha512-L2p654oK945B/gDFUGgOhh7uzj19RWoY1SVMeJVoKno1H2MdbQ0RppR/28JGju4pMb22iRC7BJ9aDzbxXSLf4A==", + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.5.tgz", + "integrity": "sha512-pV7kB5neJ0/1tZ8L1uGOBNTVBCSCXQoIsZMsrwvO8V2rKGa2tBl/f80GGVxow2jJnRJ2w1ocx693EKhZAb9Isg==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "postcss": "6.0.21", - "postcss-load-config": "1.2.0", - "schema-utils": "0.4.5" + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^1.2.0", + "schema-utils": "^0.4.0" } }, "postcss-url": { @@ -9229,11 +9085,11 @@ "integrity": "sha512-QMV5mA+pCYZQcUEPQkmor9vcPQ2MT+Ipuu8qdi1gVxbNiIiErEGft+eny1ak19qALoBkccS5AHaCaCDzh7b9MA==", "dev": true, "requires": { - "mime": "1.6.0", - "minimatch": "3.0.4", - "mkdirp": "0.5.1", - "postcss": "6.0.21", - "xxhashjs": "0.2.2" + "mime": "^1.4.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.0", + "postcss": "^6.0.1", + "xxhashjs": "^0.2.1" } }, "postcss-value-parser": { @@ -9266,8 +9122,8 @@ "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "dev": true, "requires": { - "renderkid": "2.0.1", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "process": { @@ -9289,7 +9145,7 @@ "dev": true, "optional": true, "requires": { - "asap": "2.0.6" + "asap": "~2.0.3" } }, "promise-inflight": { @@ -9298,39 +9154,49 @@ "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", "dev": true }, + "promisify-call": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/promisify-call/-/promisify-call-2.0.4.tgz", + "integrity": "sha1-1IwtRWUszM1SgB3ey9UzptS9X7o=", + "dev": true, + "optional": true, + "requires": { + "with-callback": "^1.0.2" + } + }, "protractor": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.2.2.tgz", - "integrity": "sha512-KxYw0ySvmWFQHpbSRvrHA5HLlyeAkCENSUZvJroKV1u0gWXX9kvHjc9wEK5IoW7h9UfPV1F3R2i+Own0go5s0g==", - "dev": true, - "requires": { - "@types/node": "6.0.106", - "@types/q": "0.0.32", - "@types/selenium-webdriver": "2.53.43", - "blocking-proxy": "1.0.1", - "chalk": "1.1.3", - "glob": "7.1.2", - "jasmine": "2.99.0", - "jasminewd2": "2.2.0", - "optimist": "0.6.1", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.3.2.tgz", + "integrity": "sha512-pw4uwwiy5lHZjIguxNpkEwJJa7hVz+bJsvaTI+IbXlfn2qXwzbF8eghW/RmrZwE2sGx82I8etb8lVjQ+JrjejA==", + "dev": true, + "requires": { + "@types/node": "^6.0.46", + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "~2.53.39", + "blocking-proxy": "^1.0.0", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "optimist": "~0.6.0", "q": "1.4.1", - "saucelabs": "1.3.0", + "saucelabs": "^1.5.0", "selenium-webdriver": "3.6.0", - "source-map-support": "0.4.18", - "webdriver-js-extender": "1.0.0", - "webdriver-manager": "12.0.6" + "source-map-support": "~0.4.0", + "webdriver-js-extender": "^1.0.0", + "webdriver-manager": "^12.0.6" }, "dependencies": { "@types/node": { - "version": "6.0.106", - "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.106.tgz", - "integrity": "sha512-U4Zv5fx7letrisRv6HgSSPSY00FZM4NMIkilt+IAExvQLuNa6jYVwCKcnSs2NqTN4+KDl9PskvcCiMce9iePCA==", + "version": "6.0.113", + "resolved": "https://registry.npmjs.org/@types/node/-/node-6.0.113.tgz", + "integrity": "sha512-f9XXUWFqryzjkZA1EqFvJHSFyqyasV17fq8zCDIzbRV4ctL7RrJGKvG+lcex86Rjbzd1GrER9h9VmF5sSjV0BQ==", "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=", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.11.tgz", + "integrity": "sha512-L8vcjDTCOIJk7wFvmlEUN7AsSb8T+2JrdP7KINBjzr24TJ5Mwj590sLu3BC7zNZowvJWa/JtPmD8eJCzdtDWjA==", "dev": true }, "ansi-styles": { @@ -9345,11 +9211,11 @@ "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" + "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" } }, "del": { @@ -9358,13 +9224,13 @@ "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", "dev": true, "requires": { - "globby": "5.0.0", - "is-path-cwd": "1.0.0", - "is-path-in-cwd": "1.0.1", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1", - "rimraf": "2.6.2" + "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" } }, "globby": { @@ -9373,12 +9239,12 @@ "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" + "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" } }, "minimist": { @@ -9405,17 +9271,17 @@ "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.5", - "minimist": "1.2.0", - "q": "1.4.1", - "request": "2.81.0", - "rimraf": "2.6.2", - "semver": "5.5.0", - "xml2js": "0.4.19" + "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" } } } @@ -9426,36 +9292,46 @@ "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==", "dev": true, "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.6.0" } }, "proxy-agent": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-2.0.0.tgz", - "integrity": "sha1-V+tTR6qAXXTsaByyVknbo5yTNJk=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.0.0.tgz", + "integrity": "sha512-g6n6vnk8fRf705ShN+FEXFG/SDJaW++lSs0d9KaJh4uBWW/wi7en4Cpo5VYQW3SZzAE121lhB/KLQrbURoubZw==", "dev": true, "optional": true, "requires": { - "agent-base": "2.1.1", - "debug": "2.6.9", - "extend": "3.0.1", - "http-proxy-agent": "1.0.0", - "https-proxy-agent": "1.0.0", - "lru-cache": "2.6.5", - "pac-proxy-agent": "1.1.0", - "socks-proxy-agent": "2.1.1" + "agent-base": "^4.2.0", + "debug": "^3.1.0", + "http-proxy-agent": "^2.1.0", + "https-proxy-agent": "^2.2.1", + "lru-cache": "^4.1.2", + "pac-proxy-agent": "^2.0.1", + "proxy-from-env": "^1.0.0", + "socks-proxy-agent": "^3.0.0" }, "dependencies": { - "lru-cache": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz", - "integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U=", + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, - "optional": true + "optional": true, + "requires": { + "ms": "2.0.0" + } } } }, + "proxy-from-env": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz", + "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4=", + "dev": true, + "optional": true + }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -9474,11 +9350,11 @@ "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", "dev": true, "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.1", - "randombytes": "2.0.6" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" } }, "pump": { @@ -9487,25 +9363,25 @@ "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.4.0.tgz", - "integrity": "sha512-2kmNR9ry+Pf45opRVirpNuIFotsxUGLaYqxIwuR77AYrYRMuFCz9eryHBS52L360O+NcR383CL4QYlMKPq4zYA==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "dev": true, "requires": { - "duplexify": "3.5.4", - "inherits": "2.0.3", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" } }, "punycode": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", - "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, "q": { @@ -9521,9 +9397,9 @@ "dev": true }, "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, "querystring": { @@ -9539,49 +9415,33 @@ "dev": true }, "querystringify": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-0.0.4.tgz", - "integrity": "sha1-DPf4T5Rj/wrlHExLFC2VvjdyTZw=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz", + "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw==", "dev": true }, "randomatic": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", "dev": true, "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" }, "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.6" - } - } - } + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "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.6" - } + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true } } }, @@ -9591,7 +9451,7 @@ "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -9600,8 +9460,8 @@ "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "dev": true, "requires": { - "randombytes": "2.0.6", - "safe-buffer": "5.1.1" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -9637,7 +9497,7 @@ "depd": "1.1.1", "inherits": "2.0.3", "setprototypeof": "1.0.3", - "statuses": "1.4.0" + "statuses": ">= 1.3.1 < 2" } }, "setprototypeof": { @@ -9655,15 +9515,15 @@ "dev": true }, "rc": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.6.tgz", - "integrity": "sha1-6xiYnG1PTxYsOZ953dKfODVWgJI=", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", "dev": true, "requires": { - "deep-extend": "0.4.2", - "ini": "1.3.5", - "minimist": "1.2.0", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" }, "dependencies": { "minimist": { @@ -9680,7 +9540,7 @@ "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.3.0" }, "dependencies": { "pify": { @@ -9691,24 +9551,15 @@ } } }, - "read-only-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", - "dev": true, - "requires": { - "readable-stream": "2.3.6" - } - }, "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" + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" }, "dependencies": { "path-type": { @@ -9717,9 +9568,9 @@ "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "pify": { @@ -9736,8 +9587,8 @@ "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", "dev": true, "requires": { - "find-up": "1.1.2", - "read-pkg": "1.1.0" + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" }, "dependencies": { "find-up": { @@ -9746,8 +9597,8 @@ "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "dev": true, "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -9756,7 +9607,7 @@ "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "dev": true, "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } } } @@ -9767,13 +9618,13 @@ "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", "dev": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "1.0.0", - "process-nextick-args": "2.0.0", - "safe-buffer": "5.1.1", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -9782,10 +9633,10 @@ "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "minimatch": "3.0.4", - "readable-stream": "2.3.6", - "set-immediate-shim": "1.0.1" + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" } }, "redent": { @@ -9794,8 +9645,8 @@ "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", "dev": true, "requires": { - "indent-string": "2.1.0", - "strip-indent": "1.0.1" + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" } }, "redis": { @@ -9805,9 +9656,9 @@ "dev": true, "optional": true, "requires": { - "double-ended-queue": "2.1.0-0", - "redis-commands": "1.3.5", - "redis-parser": "2.6.0" + "double-ended-queue": "^2.1.0-0", + "redis-commands": "^1.2.0", + "redis-parser": "^2.6.0" } }, "redis-commands": { @@ -9831,9 +9682,9 @@ "dev": true }, "regenerate": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", - "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", "dev": true }, "regenerator-runtime": { @@ -9848,7 +9699,7 @@ "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { - "is-equal-shallow": "0.1.3" + "is-equal-shallow": "^0.1.3" } }, "regex-not": { @@ -9857,8 +9708,8 @@ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "dev": true, "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regexpu-core": { @@ -9867,9 +9718,9 @@ "integrity": "sha1-hqdj9Y7k18L2sQLkdkBQ3n7ZDGs=", "dev": true, "requires": { - "regenerate": "1.3.3", - "regjsgen": "0.2.0", - "regjsparser": "0.1.5" + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" } }, "registry-auth-token": { @@ -9878,8 +9729,8 @@ "integrity": "sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==", "dev": true, "requires": { - "rc": "1.2.6", - "safe-buffer": "5.1.1" + "rc": "^1.1.6", + "safe-buffer": "^5.0.1" } }, "registry-url": { @@ -9888,7 +9739,7 @@ "integrity": "sha1-PU74cPc93h138M+aOBQyRE4XSUI=", "dev": true, "requires": { - "rc": "1.2.6" + "rc": "^1.0.1" } }, "regjsgen": { @@ -9903,7 +9754,7 @@ "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", "dev": true, "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -9932,11 +9783,11 @@ "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" + "css-select": "^1.1.0", + "dom-converter": "~0.1", + "htmlparser2": "~3.3.0", + "strip-ansi": "^3.0.0", + "utila": "~0.3" }, "dependencies": { "utila": { @@ -9965,37 +9816,71 @@ "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", "dev": true, "requires": { - "is-finite": "1.0.2" + "is-finite": "^1.0.0" } }, "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.7.0", - "caseless": "0.12.0", - "combined-stream": "1.0.6", - "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.18", - "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.4", - "tunnel-agent": "0.6.0", - "uuid": "3.2.1" + "version": "2.87.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz", + "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.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.3.1", + "har-validator": "~5.0.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.17", + "oauth-sign": "~0.8.2", + "performance-now": "^2.1.0", + "qs": "~6.5.1", + "safe-buffer": "^5.1.1", + "tough-cookie": "~2.3.3", + "tunnel-agent": "^0.6.0", + "uuid": "^3.1.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 + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "form-data": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", + "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "1.0.6", + "mime-types": "^2.1.12" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + } } }, "requestretry": { @@ -10005,10 +9890,10 @@ "dev": true, "optional": true, "requires": { - "extend": "3.0.1", - "lodash": "4.17.5", - "request": "2.81.0", - "when": "3.7.8" + "extend": "^3.0.0", + "lodash": "^4.15.0", + "request": "^2.74.0", + "when": "^3.7.7" }, "dependencies": { "when": { @@ -10045,12 +9930,12 @@ "dev": true }, "resolve": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", - "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz", + "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==", "dev": true, "requires": { - "path-parse": "1.0.5" + "path-parse": "^1.0.5" } }, "resolve-cwd": { @@ -10059,7 +9944,7 @@ "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "dev": true, "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -10080,8 +9965,8 @@ "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", "dev": true, "requires": { - "onetime": "2.0.1", - "signal-exit": "3.0.2" + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -10096,7 +9981,7 @@ "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, "requires": { - "align-text": "0.1.4" + "align-text": "^0.1.1" } }, "rimraf": { @@ -10105,113 +9990,39 @@ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", "dev": true, "requires": { - "glob": "7.1.2" + "glob": "^7.0.5" } }, "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" - }, - "dependencies": { - "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" - } - } - } - }, - "rmdir": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rmdir/-/rmdir-1.2.0.tgz", - "integrity": "sha1-T+A1fLBhaMJY5z6WgJPcTooPMlM=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "dev": true, "requires": { - "node.flow": "1.2.3" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" } }, "rollup": { - "version": "0.55.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.55.5.tgz", - "integrity": "sha512-2hke9NOy332kxvnmMQOgl7DHm94zihNyYJNd8ZLWo4U0EjFvjUkeWa0+ge+70bTg+mY0xJ7NUsf5kIhDtrGrtA==", - "dev": true - }, - "rollup-plugin-cleanup": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-plugin-cleanup/-/rollup-plugin-cleanup-2.0.1.tgz", - "integrity": "sha512-Z2UpMe3l2Oo8jzoB2gAWcb3UqIyiGxlh8kKlcs/W53yTPtwdF8RGfhuTx+/kjRlkSc5TC03t3sX3Lj3B40k9Eg==", + "version": "0.59.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.59.4.tgz", + "integrity": "sha512-ISiMqq/aJa+57QxX2MRcvLESHdJ7wSavmr6U1euMr+6UgFe6KM+3QANrYy8LQofwhTC1I7BcAdlLnDiaODs1BA==", "dev": true, "requires": { - "acorn": "4.0.13", - "magic-string": "0.22.5", - "rollup-pluginutils": "2.0.1" - }, - "dependencies": { - "acorn": { - "version": "4.0.13", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", - "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", - "dev": true - } + "@types/estree": "0.0.39", + "@types/node": "*" } }, "rollup-plugin-commonjs": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-8.3.0.tgz", - "integrity": "sha512-PYs3OiYgENFYEmI3vOEm5nrp3eY90YZqd5vGmQqeXmhJsAWFIrFdROCvOasqJ1HgeTvqyYo9IGXnFDyoboNcgQ==", - "dev": true, - "requires": { - "acorn": "5.5.3", - "estree-walker": "0.5.1", - "magic-string": "0.22.5", - "resolve": "1.7.1", - "rollup-pluginutils": "2.0.1" - }, - "dependencies": { - "estree-walker": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.1.tgz", - "integrity": "sha512-7HgCgz1axW7w5aOvgOQkoR1RMBkllygJrssU3BvymKQ95lxXYv6Pon17fBRDm9qhkvXZGijOULoSF9ShOk/ZLg==", - "dev": true - } - } - }, - "rollup-plugin-license": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-license/-/rollup-plugin-license-0.6.0.tgz", - "integrity": "sha512-Ttz65oRtNKcfV5icDkQTixc8ja64ueoXejRJoAtmjXYAWVg0qx+tu5rXmEOXWXmUXeGs0ARUVIAG0p1JK0gACQ==", + "version": "9.1.3", + "resolved": "https://registry.npmjs.org/rollup-plugin-commonjs/-/rollup-plugin-commonjs-9.1.3.tgz", + "integrity": "sha512-g91ZZKZwTW7F7vL6jMee38I8coj/Q9GBdTmXXeFL7ldgC1Ky5WJvHgbKlAiXXTh762qvohhExwUgeQGFh9suGg==", "dev": true, "requires": { - "commenting": "1.0.5", - "lodash": "4.17.5", - "magic-string": "0.22.4", - "mkdirp": "0.5.1", - "moment": "2.21.0" - }, - "dependencies": { - "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.3" - } - }, - "moment": { - "version": "2.21.0", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.21.0.tgz", - "integrity": "sha512-TCZ36BjURTeFTM/CwRcViQlfkMvL1/vFISuNLO5GkcVm1+QHfbSiNqZuWeMFjj1/3+uAjXswgRk30j1kkLYJBQ==", - "dev": true - } + "estree-walker": "^0.5.1", + "magic-string": "^0.22.4", + "resolve": "^1.5.0", + "rollup-pluginutils": "^2.0.1" } }, "rollup-plugin-node-resolve": { @@ -10220,9 +10031,9 @@ "integrity": "sha512-9zHGr3oUJq6G+X0oRMYlzid9fXicBdiydhwGChdyeNRGPcN/majtegApRKHLR5drboUvEWU+QeUmGTyEZQs3WA==", "dev": true, "requires": { - "builtin-modules": "2.0.0", - "is-module": "1.0.0", - "resolve": "1.7.1" + "builtin-modules": "^2.0.0", + "is-module": "^1.0.0", + "resolve": "^1.1.6" }, "dependencies": { "builtin-modules": { @@ -10233,14 +10044,24 @@ } } }, + "rollup-plugin-sourcemaps": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-sourcemaps/-/rollup-plugin-sourcemaps-0.4.2.tgz", + "integrity": "sha1-YhJaqUCHqt97g+9N+vYptHMTXoc=", + "dev": true, + "requires": { + "rollup-pluginutils": "^2.0.1", + "source-map-resolve": "^0.5.0" + } + }, "rollup-pluginutils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.0.1.tgz", - "integrity": "sha1-fslbNXP2VDpGpkYb2afFRFJdD8A=", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.0.tgz", + "integrity": "sha512-xB6hsRsjdJdIYWEyYUJy/3ki5g69wrf0luHPGNK3ZSocV6HLNfio59l3dZ3TL4xUwEKgROhFi9jOCt6c5gfUWw==", "dev": true, "requires": { - "estree-walker": "0.3.1", - "micromatch": "2.3.11" + "estree-walker": "^0.5.2", + "micromatch": "^2.3.11" } }, "run-async": { @@ -10249,7 +10070,7 @@ "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", "dev": true, "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -10258,7 +10079,7 @@ "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "dev": true, "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rx-lite": { @@ -10273,21 +10094,21 @@ "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", "dev": true, "requires": { - "rx-lite": "4.0.8" + "rx-lite": "*" } }, "rxjs": { - "version": "5.5.10", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", - "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "version": "5.5.11", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.11.tgz", + "integrity": "sha512-3bjO7UwWfA2CV7lmwYMBzj4fQ6Cq+ftHc2MvUe+WMS7wcdJ1LosDWmdjPQanYp2dBRj572p7PeU81JUxHKOcBA==", "requires": { "symbol-observable": "1.0.1" } }, "safe-buffer": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "safe-regex": { @@ -10296,20 +10117,14 @@ "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "dev": true, "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, - "sander": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/sander/-/sander-0.5.1.tgz", - "integrity": "sha1-dB4kXiMfB8r7b98PEzrfohalAq0=", - "dev": true, - "requires": { - "es6-promise": "3.3.1", - "graceful-fs": "4.1.11", - "mkdirp": "0.5.1", - "rimraf": "2.6.2" - } + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true }, "sass-graph": { "version": "2.2.4", @@ -10317,10 +10132,10 @@ "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", "dev": true, "requires": { - "glob": "7.1.2", - "lodash": "4.17.5", - "scss-tokenizer": "0.2.3", - "yargs": "7.1.0" + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^7.0.0" } }, "sass-loader": { @@ -10329,20 +10144,20 @@ "integrity": "sha512-JoiyD00Yo1o61OJsoP2s2kb19L1/Y2p3QFcCdWdF6oomBGKVYuZyqHWemRBfQ2uGYsk+CH3eCguXNfpjzlcpaA==", "dev": true, "requires": { - "clone-deep": "2.0.2", - "loader-utils": "1.1.0", - "lodash.tail": "4.1.1", - "neo-async": "2.5.1", - "pify": "3.0.0" + "clone-deep": "^2.0.1", + "loader-utils": "^1.0.1", + "lodash.tail": "^4.1.1", + "neo-async": "^2.5.0", + "pify": "^3.0.0" } }, "saucelabs": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.3.0.tgz", - "integrity": "sha1-0kDoAJ33+ocwbsRXimm6O1xCT+4=", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "requires": { - "https-proxy-agent": "1.0.0" + "https-proxy-agent": "^2.2.1" } }, "sax": { @@ -10357,8 +10172,8 @@ "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", "dev": true, "requires": { - "ajv": "6.4.0", - "ajv-keywords": "3.1.0" + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" } }, "scss-tokenizer": { @@ -10367,8 +10182,8 @@ "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", "dev": true, "requires": { - "js-base64": "2.4.3", - "source-map": "0.4.4" + "js-base64": "^2.1.8", + "source-map": "^0.4.2" }, "dependencies": { "source-map": { @@ -10377,7 +10192,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -10394,10 +10209,10 @@ "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { - "jszip": "3.1.5", - "rimraf": "2.6.2", + "jszip": "^3.1.3", + "rimraf": "^2.5.4", "tmp": "0.0.30", - "xml2js": "0.4.19" + "xml2js": "^0.4.17" }, "dependencies": { "tmp": { @@ -10406,18 +10221,18 @@ "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.1" } } } }, "selfsigned": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.2.tgz", - "integrity": "sha1-tESVgNmZKbZbEKSDiTAaZZIIh1g=", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz", + "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==", "dev": true, "requires": { - "node-forge": "0.7.1" + "node-forge": "0.7.5" } }, "semver": { @@ -10432,7 +10247,7 @@ "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.3" } }, "semver-dsl": { @@ -10441,7 +10256,7 @@ "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.3.0" } }, "semver-intersect": { @@ -10450,7 +10265,7 @@ "integrity": "sha1-j6hKnhAovSOeRTDRo+GB5pjYhLo=", "dev": true, "requires": { - "semver": "5.5.0" + "semver": "^5.0.0" } }, "send": { @@ -10460,18 +10275,18 @@ "dev": true, "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.6.3", + "http-errors": "~1.6.2", "mime": "1.4.1", "ms": "2.0.0", - "on-finished": "2.3.0", - "range-parser": "1.2.0", - "statuses": "1.4.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" }, "dependencies": { "mime": { @@ -10494,13 +10309,13 @@ "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "dev": true, "requires": { - "accepts": "1.3.5", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.18", - "parseurl": "1.3.2" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" } }, "serve-static": { @@ -10509,9 +10324,9 @@ "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", "dev": true, "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.2", "send": "0.16.2" } }, @@ -10533,10 +10348,10 @@ "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -10545,7 +10360,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10568,8 +10383,8 @@ "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "dev": true, "requires": { - "inherits": "2.0.3", - "safe-buffer": "5.1.1" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shallow-clone": { @@ -10578,9 +10393,9 @@ "integrity": "sha512-oeXreoKR/SyNJtRJMAKPDSvd28OqEwG4eR/xc856cRGBII7gX9lvAqDxusPm0846z/w/hWYjI1NpKwJ00NHzRA==", "dev": true, "requires": { - "is-extendable": "0.1.1", - "kind-of": "5.1.0", - "mixin-object": "2.0.1" + "is-extendable": "^0.1.1", + "kind-of": "^5.0.0", + "mixin-object": "^2.0.1" }, "dependencies": { "kind-of": { @@ -10591,34 +10406,13 @@ } } }, - "shasum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/shasum/-/shasum-1.0.2.tgz", - "integrity": "sha1-5wEjENj0F/TetXEhUOVni4euVl8=", - "dev": true, - "requires": { - "json-stable-stringify": "0.0.1", - "sha.js": "2.4.11" - }, - "dependencies": { - "json-stable-stringify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-0.0.1.tgz", - "integrity": "sha1-YRwj6BTbN1Un34URk9tZ3Sryf0U=", - "dev": true, - "requires": { - "jsonify": "0.0.0" - } - } - } - }, "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": "^1.0.0" } }, "shebang-regex": { @@ -10633,10 +10427,10 @@ "integrity": "sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c=", "dev": true, "requires": { - "array-filter": "0.0.1", - "array-map": "0.0.0", - "array-reduce": "0.0.0", - "jsonify": "0.0.0" + "array-filter": "~0.0.0", + "array-map": "~0.0.0", + "array-reduce": "~0.0.0", + "jsonify": "~0.0.0" } }, "signal-exit": { @@ -10651,7 +10445,7 @@ "integrity": "sha1-IglwbxyFCp8dENDYQJGLRvJuG8k=", "dev": true, "requires": { - "debug": "2.6.9" + "debug": "^2.2.0" } }, "slack-node": { @@ -10661,7 +10455,7 @@ "dev": true, "optional": true, "requires": { - "requestretry": "1.13.0" + "requestretry": "^1.2.2" } }, "slash": { @@ -10692,14 +10486,14 @@ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "dev": true, "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.1", - "use": "3.1.0" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "define-property": { @@ -10708,7 +10502,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -10717,7 +10511,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -10728,9 +10522,9 @@ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "dev": true, "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -10739,7 +10533,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -10748,7 +10542,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -10757,7 +10551,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -10766,9 +10560,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "isobject": { @@ -10791,7 +10585,7 @@ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sntp": { @@ -10800,7 +10594,7 @@ "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", "dev": true, "requires": { - "hoek": "2.16.3" + "hoek": "2.x.x" } }, "socket.io": { @@ -10809,11 +10603,11 @@ "integrity": "sha1-waRZDO/4fs8TxyZS8Eb3FrKeYBQ=", "dev": true, "requires": { - "debug": "2.6.9", - "engine.io": "3.1.5", - "socket.io-adapter": "1.1.1", + "debug": "~2.6.6", + "engine.io": "~3.1.0", + "socket.io-adapter": "~1.1.0", "socket.io-client": "2.0.4", - "socket.io-parser": "3.1.3" + "socket.io-parser": "~3.1.1" } }, "socket.io-adapter": { @@ -10832,14 +10626,14 @@ "base64-arraybuffer": "0.1.5", "component-bind": "1.0.0", "component-emitter": "1.2.1", - "debug": "2.6.9", - "engine.io-client": "3.1.6", + "debug": "~2.6.4", + "engine.io-client": "~3.1.0", "has-cors": "1.1.0", "indexof": "0.0.1", "object-component": "0.0.3", "parseqs": "0.0.5", "parseuri": "0.0.5", - "socket.io-parser": "3.1.3", + "socket.io-parser": "~3.1.1", "to-array": "0.1.4" } }, @@ -10850,8 +10644,8 @@ "dev": true, "requires": { "component-emitter": "1.2.1", - "debug": "3.1.0", - "has-binary2": "1.0.2", + "debug": "~3.1.0", + "has-binary2": "~1.0.2", "isarray": "2.0.1" }, "dependencies": { @@ -10878,8 +10672,8 @@ "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "dev": true, "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.2.1" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" } }, "sockjs-client": { @@ -10888,12 +10682,12 @@ "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=", "dev": true, "requires": { - "debug": "2.6.9", + "debug": "^2.6.6", "eventsource": "0.1.6", - "faye-websocket": "0.11.1", - "inherits": "2.0.3", - "json3": "3.3.2", - "url-parse": "1.3.0" + "faye-websocket": "~0.11.0", + "inherits": "^2.0.1", + "json3": "^3.3.2", + "url-parse": "^1.1.8" }, "dependencies": { "faye-websocket": { @@ -10902,7 +10696,7 @@ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=", "dev": true, "requires": { - "websocket-driver": "0.7.0" + "websocket-driver": ">=0.5.1" } } } @@ -10913,39 +10707,18 @@ "integrity": "sha1-W4t/x8jzQcU+0FbpKbe/Tei6e1o=", "dev": true, "requires": { - "ip": "1.1.5", - "smart-buffer": "1.1.15" + "ip": "^1.1.4", + "smart-buffer": "^1.0.13" } }, "socks-proxy-agent": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-2.1.1.tgz", - "integrity": "sha512-sFtmYqdUK5dAMh85H0LEVFUCO7OhJJe1/z2x/Z6mxp3s7/QPf1RkZmpZy+BpuU0bEjcV9npqKjq9Y3kwFUjnxw==", - "dev": true, - "requires": { - "agent-base": "2.1.1", - "extend": "3.0.1", - "socks": "1.1.10" - } - }, - "sorcery": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/sorcery/-/sorcery-0.10.0.tgz", - "integrity": "sha1-iukK19fLBfxZ8asMY3hF1cFaUrc=", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-3.0.1.tgz", + "integrity": "sha512-ZwEDymm204mTzvdqyUqOdovVr2YRd2NYskrYrF2LXyZ9qDiMAoFESGK8CRphiO7rtbo2Y757k2Nia3x2hGtalA==", "dev": true, "requires": { - "buffer-crc32": "0.2.13", - "minimist": "1.2.0", - "sander": "0.5.1", - "sourcemap-codec": "1.4.1" - }, - "dependencies": { - "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", - "dev": true - } + "agent-base": "^4.1.0", + "socks": "^1.1.10" } }, "source-list-map": { @@ -10961,16 +10734,16 @@ "dev": true }, "source-map-resolve": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", - "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", "dev": true, "requires": { - "atob": "2.1.0", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -10979,7 +10752,7 @@ "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "source-map": "0.5.7" + "source-map": "^0.5.6" } }, "source-map-url": { @@ -10988,20 +10761,14 @@ "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", "dev": true }, - "sourcemap-codec": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.1.tgz", - "integrity": "sha512-hX1eNBNuilj8yfFnECh0DzLgwKpBLMIvmhgEhixXNui8lMLBInTI8Kyxt++RwJnMNu7cAUo635L2+N1TxMJCzA==", - "dev": true - }, "spdx-correct": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", "dev": true, "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.0" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -11016,8 +10783,8 @@ "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "dev": true, "requires": { - "spdx-exceptions": "2.1.0", - "spdx-license-ids": "3.0.0" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -11032,12 +10799,12 @@ "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=", "dev": true, "requires": { - "debug": "2.6.9", - "handle-thing": "1.2.5", - "http-deceiver": "1.2.7", - "safe-buffer": "5.1.1", - "select-hose": "2.0.0", - "spdy-transport": "2.1.0" + "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" } }, "spdy-transport": { @@ -11046,13 +10813,13 @@ "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==", "dev": true, "requires": { - "debug": "2.6.9", - "detect-node": "2.0.3", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "2.3.6", - "safe-buffer": "5.1.1", - "wbuf": "1.7.3" + "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" } }, "split-string": { @@ -11061,7 +10828,7 @@ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "dev": true, "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -11071,19 +10838,20 @@ "dev": true }, "sshpk": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.1.tgz", - "integrity": "sha1-Ew9Zde3a2WPx1W+SuaxsUfqfg+s=", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.14.2.tgz", + "integrity": "sha1-xvxhZIo9nE52T9P8306hBeSSupg=", "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" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" }, "dependencies": { "assert-plus": { @@ -11100,7 +10868,7 @@ "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.1.1" } }, "static-extend": { @@ -11109,8 +10877,8 @@ "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "dev": true, "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -11119,7 +10887,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -11136,7 +10904,7 @@ "integrity": "sha1-osfIWH5U2UJ+qe2zrD8s1SLfN4s=", "dev": true, "requires": { - "readable-stream": "2.3.6" + "readable-stream": "^2.0.1" } }, "stream-browserify": { @@ -11145,18 +10913,8 @@ "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, - "stream-combiner2": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", - "dev": true, - "requires": { - "duplexer2": "0.1.4", - "readable-stream": "2.3.6" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" } }, "stream-each": { @@ -11165,21 +10923,21 @@ "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", "dev": true, "requires": { - "end-of-stream": "1.4.1", - "stream-shift": "1.0.0" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-http": { - "version": "2.8.1", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.1.tgz", - "integrity": "sha512-cQ0jo17BLca2r0GfRdZKYAGLU6JRoIWxqSOakUMuKOT6MOK7AAlE856L33QuDmAy/eeOrhLee3dZKX0Uadu93A==", + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "dev": true, "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.3", - "readable-stream": "2.3.6", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.1" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" } }, "stream-shift": { @@ -11188,26 +10946,16 @@ "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", "dev": true }, - "stream-splicer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.0.tgz", - "integrity": "sha1-G2O+Q4oTPktnHMGTUZdgAXWRDYM=", - "dev": true, - "requires": { - "inherits": "2.0.3", - "readable-stream": "2.3.6" - } - }, "streamroller": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-0.7.0.tgz", "integrity": "sha512-WREzfy0r0zUqp3lGO096wRuUp7ho1X6uo/7DJfTlEi0Iv/4gT7YHqXDjKC2ioVGBZtE8QzsQD9nx1nIuoZ57jQ==", "dev": true, "requires": { - "date-format": "1.2.0", - "debug": "3.1.0", - "mkdirp": "0.5.1", - "readable-stream": "2.3.6" + "date-format": "^1.2.0", + "debug": "^3.1.0", + "mkdirp": "^0.5.1", + "readable-stream": "^2.3.0" }, "dependencies": { "debug": { @@ -11227,9 +10975,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -11238,13 +10986,13 @@ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "~5.1.0" } }, "stringstream": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz", + "integrity": "sha512-87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==", "dev": true }, "strip-ansi": { @@ -11253,7 +11001,7 @@ "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "dev": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-bom": { @@ -11262,7 +11010,7 @@ "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", "dev": true, "requires": { - "is-utf8": "0.2.1" + "is-utf8": "^0.2.0" } }, "strip-eof": { @@ -11277,7 +11025,7 @@ "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", "dev": true, "requires": { - "get-stdin": "4.0.1" + "get-stdin": "^4.0.1" } }, "strip-json-comments": { @@ -11292,8 +11040,8 @@ "integrity": "sha512-IRE+ijgojrygQi3rsqT0U4dd+UcPCqcVvauZpCnQrGAlEe+FUIyrK93bUDScamesjP08JlQNsFJU+KmPedP5Og==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "schema-utils": "0.3.0" + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0" }, "dependencies": { "ajv": { @@ -11302,10 +11050,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "schema-utils": { @@ -11314,7 +11062,7 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "^5.0.0" } } } @@ -11325,12 +11073,12 @@ "integrity": "sha1-QrlWCTHKcJDOhRWnmLqeaqPW3Hk=", "dev": true, "requires": { - "css-parse": "1.7.0", - "debug": "2.6.9", - "glob": "7.0.6", - "mkdirp": "0.5.1", - "sax": "0.5.8", - "source-map": "0.1.43" + "css-parse": "1.7.x", + "debug": "*", + "glob": "7.0.x", + "mkdirp": "0.5.x", + "sax": "0.5.x", + "source-map": "0.1.x" }, "dependencies": { "glob": { @@ -11339,12 +11087,12 @@ "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" + "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" } }, "source-map": { @@ -11353,7 +11101,7 @@ "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -11364,9 +11112,9 @@ "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "lodash.clonedeep": "4.5.0", - "when": "3.6.4" + "loader-utils": "^1.0.2", + "lodash.clonedeep": "^4.5.0", + "when": "~3.6.x" } }, "subarg": { @@ -11375,7 +11123,7 @@ "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", "dev": true, "requires": { - "minimist": "1.2.0" + "minimist": "^1.1.0" }, "dependencies": { "minimist": { @@ -11392,7 +11140,7 @@ "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", "dev": true, "requires": { - "has-flag": "2.0.0" + "has-flag": "^2.0.0" } }, "symbol-observable": { @@ -11400,15 +11148,6 @@ "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=" }, - "syntax-error": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", - "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", - "dev": true, - "requires": { - "acorn-node": "1.3.0" - } - }, "tapable": { "version": "0.2.8", "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", @@ -11421,9 +11160,9 @@ "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "dev": true, "requires": { - "block-stream": "0.0.9", - "fstream": "1.0.11", - "inherits": "2.0.3" + "block-stream": "*", + "fstream": "^1.0.2", + "inherits": "2" } }, "temp": { @@ -11432,8 +11171,8 @@ "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", "dev": true, "requires": { - "os-tmpdir": "1.0.2", - "rimraf": "2.2.8" + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" }, "dependencies": { "rimraf": { @@ -11450,7 +11189,7 @@ "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", "dev": true, "requires": { - "execa": "0.7.0" + "execa": "^0.7.0" } }, "through": { @@ -11465,8 +11204,8 @@ "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", "dev": true, "requires": { - "readable-stream": "2.3.6", - "xtend": "4.0.1" + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" } }, "thunkify": { @@ -11495,12 +11234,12 @@ "dev": true }, "timers-browserify": { - "version": "2.0.9", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.9.tgz", - "integrity": "sha512-2DhyvVpCWwY7gk8UmKhYvgHQl9XTlO0Dg0/2UZcLgPnpulhdm2aGIlFy5rU5igmOCA51w6jPHqLRA4UH1YmhcA==", + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", "dev": true, "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "timespan": { @@ -11521,7 +11260,7 @@ "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "to-array": { @@ -11548,7 +11287,7 @@ "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "to-regex": { @@ -11557,10 +11296,10 @@ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "dev": true, "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -11569,8 +11308,8 @@ "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "dev": true, "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" }, "dependencies": { "is-number": { @@ -11579,15 +11318,15 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } } } }, "toposort": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz", - "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", "dev": true }, "tough-cookie": { @@ -11596,7 +11335,7 @@ "integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==", "dev": true, "requires": { - "punycode": "1.4.1" + "punycode": "^1.4.1" }, "dependencies": { "punycode": { @@ -11631,7 +11370,7 @@ "integrity": "sha1-fskRMJJHZsf1c74wIMNPj9/QDWI=", "dev": true, "requires": { - "glob": "6.0.4" + "glob": "^6.0.4" }, "dependencies": { "glob": { @@ -11640,11 +11379,11 @@ "integrity": "sha1-DwiGD2oVUSey+t1PnOJLGqtuTSI=", "dev": true, "requires": { - "inflight": "1.0.6", - "inherits": "2.0.3", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "2 || 3", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" } } } @@ -11655,27 +11394,27 @@ "integrity": "sha512-xcZH12oVg9PShKhy3UHyDmuDLV3y7iKwX25aMVPt1SIXSuAfWkFiGPEkg+th8R4YKW/QCxDoW7lJdb15lx6QWg==", "dev": true, "requires": { - "arrify": "1.0.1", - "chalk": "2.4.0", - "diff": "3.5.0", - "make-error": "1.3.4", - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map-support": "0.5.4", - "tsconfig": "7.0.0", - "v8flags": "3.0.2", - "yn": "2.0.0" + "arrify": "^1.0.0", + "chalk": "^2.3.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.0", + "tsconfig": "^7.0.0", + "v8flags": "^3.0.0", + "yn": "^2.0.0" }, "dependencies": { "chalk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", - "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -11697,12 +11436,13 @@ "dev": true }, "source-map-support": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.4.tgz", - "integrity": "sha512-PETSPG6BjY1AHs2t64vS2aqAgu6dMIMXJULWFBGbh2Gr8nVLbCFDo6i/RMMvviIQ2h1Z8+5gQhVKSn2je9nmdg==", + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", + "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", "dev": true, "requires": { - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" } }, "supports-color": { @@ -11711,7 +11451,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -11722,10 +11462,10 @@ "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==", "dev": true, "requires": { - "@types/strip-bom": "3.0.0", + "@types/strip-bom": "^3.0.0", "@types/strip-json-comments": "0.0.30", - "strip-bom": "3.0.0", - "strip-json-comments": "2.0.1" + "strip-bom": "^3.0.0", + "strip-json-comments": "^2.0.0" }, "dependencies": { "strip-bom": { @@ -11742,10 +11482,10 @@ "integrity": "sha512-eWJ2CUfttGK0LqF9iJ/Avnxbj4M+fCyJ50Zag3wm73Fut1hsasPRHKxKdrMWVj4BMHnQNx7TO+DdNmLmJTSuNw==", "dev": true, "requires": { - "minimist": "1.2.0", - "mkdirp": "0.5.1", - "source-map": "0.5.7", - "source-map-support": "0.4.18" + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map": "^0.5.6", + "source-map-support": "^0.4.2" }, "dependencies": { "minimist": { @@ -11757,9 +11497,9 @@ } }, "tslib": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz", - "integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ==" + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.2.tgz", + "integrity": "sha512-AVP5Xol3WivEr7hnssHDsaM+lVrVXWUvd1cfXTRkTj80b//6g2wIFEH6hZG0muGZRnHGrfttpdzRk3YlBkWjKw==" }, "tslint": { "version": "5.9.1", @@ -11767,29 +11507,29 @@ "integrity": "sha1-ElX4ej/1frCw4fDmEKi0dIBGya4=", "dev": true, "requires": { - "babel-code-frame": "6.26.0", - "builtin-modules": "1.1.1", - "chalk": "2.4.0", - "commander": "2.15.1", - "diff": "3.5.0", - "glob": "7.1.2", - "js-yaml": "3.11.0", - "minimatch": "3.0.4", - "resolve": "1.7.1", - "semver": "5.5.0", - "tslib": "1.9.0", - "tsutils": "2.26.1" + "babel-code-frame": "^6.22.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^3.2.0", + "glob": "^7.1.1", + "js-yaml": "^3.7.0", + "minimatch": "^3.0.4", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.8.0", + "tsutils": "^2.12.1" }, "dependencies": { "chalk": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.0.tgz", - "integrity": "sha512-Wr/w0f4o9LuE7K53cD0qmbAMM+2XNLzR29vFn5hqko4sxGlUsyy363NvmyGIyk5tpe9cjTr9SJYbysEyPkRnFw==", + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.4.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "has-flag": { @@ -11804,7 +11544,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -11817,12 +11557,12 @@ "optional": true }, "tsutils": { - "version": "2.26.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.26.1.tgz", - "integrity": "sha512-bnm9bcjOqOr1UljleL94wVCDlpa6KjfGaTkefeLch4GRafgDkROxPizbB/FxTEdI++5JqhxczRy/Qub0syNqZA==", + "version": "2.27.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.27.1.tgz", + "integrity": "sha512-AE/7uzp32MmaHvNNFES85hhUDHFdFZp6OAiZcd6y4ZKKIg6orJTm8keYWBhIhrJQH3a4LzNKat7ZPXZt5aTf6w==", "dev": true, "requires": { - "tslib": "1.9.0" + "tslib": "^1.8.1" } }, "tty-browserify": { @@ -11837,7 +11577,7 @@ "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "safe-buffer": "5.1.1" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -11853,7 +11593,7 @@ "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "dev": true, "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-is": { @@ -11863,7 +11603,7 @@ "dev": true, "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.18" + "mime-types": "~2.1.18" } }, "typedarray": { @@ -11879,13 +11619,13 @@ "dev": true }, "uglify-js": { - "version": "3.3.21", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.21.tgz", - "integrity": "sha512-uy82472lH8tshK3jS3c5IFb5MmNKd/5qyBd0ih8sM42L3jWvxnE339U9gZU1zufnLVs98Stib9twq8dLm2XYCA==", + "version": "3.3.28", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.3.28.tgz", + "integrity": "sha512-68Rc/aA6cswiaQ5SrE979UJcXX+ADA1z33/ZsPd+fbAiVdjZ16OXdbtGO+rJUUBgK6qdf3SOPhQf3K/ybF5Miw==", "dev": true, "requires": { - "commander": "2.15.1", - "source-map": "0.6.1" + "commander": "~2.15.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -11904,19 +11644,19 @@ "optional": true }, "uglifyjs-webpack-plugin": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.4.tgz", - "integrity": "sha512-z0IbjpW8b3O/OVn+TTZN4pI29RN1zktFBXLIzzfZ+++cUtZ1ERSlLWgpE/5OERuEUs1ijVQnpYAkSlpoVmQmSQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz", + "integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==", "dev": true, "requires": { - "cacache": "10.0.4", - "find-cache-dir": "1.0.0", - "schema-utils": "0.4.5", - "serialize-javascript": "1.5.0", - "source-map": "0.6.1", - "uglify-es": "3.3.9", - "webpack-sources": "1.1.0", - "worker-farm": "1.6.0" + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" }, "dependencies": { "commander": { @@ -11937,8 +11677,8 @@ "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "dev": true, "requires": { - "commander": "2.13.0", - "source-map": "0.6.1" + "commander": "~2.13.0", + "source-map": "~0.6.1" } } } @@ -11949,12 +11689,6 @@ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", "dev": true }, - "umd": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", - "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", - "dev": true - }, "underscore": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz", @@ -11967,10 +11701,10 @@ "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", "dev": true, "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "0.4.3" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" }, "dependencies": { "extend-shallow": { @@ -11979,7 +11713,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "set-value": { @@ -11988,10 +11722,10 @@ "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "to-object-path": "0.3.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" } } } @@ -12002,7 +11736,7 @@ "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", "dev": true, "requires": { - "unique-slug": "2.0.0" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -12011,7 +11745,7 @@ "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", "dev": true, "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" } }, "unique-string": { @@ -12020,7 +11754,7 @@ "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", "dev": true, "requires": { - "crypto-random-string": "1.0.0" + "crypto-random-string": "^1.0.0" } }, "universalify": { @@ -12041,8 +11775,8 @@ "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "dev": true, "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -12051,9 +11785,9 @@ "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "dev": true, "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -12088,9 +11822,9 @@ "dev": true }, "upath": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.4.tgz", - "integrity": "sha512-d4SJySNBXDaQp+DPrziv3xGS6w3d2Xt69FijJr86zMPBy23JEloMCEOUBBzuN7xCtjLCnmB9tI/z7SBCahHBOw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.1.0.tgz", + "integrity": "sha512-bzpH/oBhoS/QI/YtbkqCg6VEiPYjSZtrHQM6/QnJS6OL9pKUFLqb3aFh4Scvwm45+7iAgiMkLhSbaZxUqmrprw==", "dev": true }, "update-notifier": { @@ -12099,16 +11833,16 @@ "integrity": "sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==", "dev": true, "requires": { - "boxen": "1.3.0", - "chalk": "2.2.2", - "configstore": "3.1.2", - "import-lazy": "2.1.0", - "is-ci": "1.1.0", - "is-installed-globally": "0.1.0", - "is-npm": "1.0.0", - "latest-version": "3.1.0", - "semver-diff": "2.1.0", - "xdg-basedir": "3.0.0" + "boxen": "^1.2.1", + "chalk": "^2.0.1", + "configstore": "^3.0.0", + "import-lazy": "^2.1.0", + "is-ci": "^1.0.10", + "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": { @@ -12123,7 +11857,7 @@ "integrity": "sha1-+QuFhQf4HepNz7s8TD2/orVX+qo=", "dev": true, "requires": { - "punycode": "2.1.0" + "punycode": "^2.1.0" } }, "urix": { @@ -12156,9 +11890,9 @@ "integrity": "sha512-h3qf9TNn53BpuXTTcpC+UehiRrl0Cv45Yr/xWayApjw6G8Bg2dGke7rIwDQ39piciWCWrC+WiqLjOh3SUp9n0Q==", "dev": true, "requires": { - "loader-utils": "1.1.0", - "mime": "1.6.0", - "schema-utils": "0.3.0" + "loader-utils": "^1.0.2", + "mime": "^1.4.1", + "schema-utils": "^0.3.0" }, "dependencies": { "ajv": { @@ -12167,10 +11901,10 @@ "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", "dev": true, "requires": { - "co": "4.6.0", - "fast-deep-equal": "1.1.0", - "fast-json-stable-stringify": "2.0.0", - "json-schema-traverse": "0.3.1" + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" } }, "schema-utils": { @@ -12179,27 +11913,19 @@ "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", "dev": true, "requires": { - "ajv": "5.5.2" + "ajv": "^5.0.0" } } } }, "url-parse": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.3.0.tgz", - "integrity": "sha512-zPvPA3T7P6M+0iNsgX+iAcAz4GshKrowtQBHHc/28tVsBc8jK7VRCNX+2GEcoE6zDB6XqXhcyiUWPVZY6C70Cg==", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz", + "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==", "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 - } + "querystringify": "^2.0.0", + "requires-port": "^1.0.0" } }, "url-parse-lax": { @@ -12208,7 +11934,7 @@ "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", "dev": true, "requires": { - "prepend-http": "1.0.4" + "prepend-http": "^1.0.1" } }, "use": { @@ -12217,7 +11943,7 @@ "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.2" }, "dependencies": { "kind-of": { @@ -12229,30 +11955,30 @@ } }, "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "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": "4.1.2", - "tmp": "0.0.33" + "lru-cache": "2.2.x", + "tmp": "0.0.x" + }, + "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=", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.4.tgz", + "integrity": "sha512-0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A==", "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 - } + "inherits": "2.0.3" } }, "util-deprecate": { @@ -12287,12 +12013,12 @@ "optional": true }, "v8flags": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.0.2.tgz", - "integrity": "sha512-6sgSKoFw1UpUPd3cFdF7QGnrH6tDeBgW1F3v9gy8gLY0mlbiBXq8soy8aQpY6xeeCjH5K+JvC62Acp7gtl7wWA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.1.1.tgz", + "integrity": "sha512-iw/1ViSEaff8NJ3HLyEjawk/8hjJib3E7pvG4pddVXfUg1983s3VGsiClDjhK64MQVDGqc1Q8r18S4VKQZS9EQ==", "dev": true, "requires": { - "homedir-polyfill": "1.0.1" + "homedir-polyfill": "^1.0.1" } }, "validate-npm-package-license": { @@ -12301,8 +12027,8 @@ "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", "dev": true, "requires": { - "spdx-correct": "3.0.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "vary": { @@ -12317,9 +12043,9 @@ "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "dev": true, "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" }, "dependencies": { "assert-plus": { @@ -12357,14 +12083,14 @@ "dev": true }, "watchpack": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.5.0.tgz", - "integrity": "sha512-RSlipNQB1u48cq0wH/BNfCu1tD/cJ8ydFIkNYhp9o+3d+8unClkIovpW5qpFPgmL9OE48wfAnlZydXByWP82AA==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "dev": true, "requires": { - "chokidar": "2.0.3", - "graceful-fs": "4.1.11", - "neo-async": "2.5.1" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, "dependencies": { "anymatch": { @@ -12373,8 +12099,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "arr-diff": { @@ -12395,16 +12121,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -12413,7 +12139,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12424,18 +12150,18 @@ "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.1.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.4" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" } }, "expand-brackets": { @@ -12444,13 +12170,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -12459,7 +12185,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -12468,7 +12194,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -12477,7 +12203,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12486,7 +12212,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12497,7 +12223,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12506,7 +12232,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12517,9 +12243,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -12536,14 +12262,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -12552,7 +12278,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -12561,7 +12287,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12572,10 +12298,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -12584,7 +12310,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -12595,8 +12321,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -12605,7 +12331,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -12616,7 +12342,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -12625,7 +12351,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -12634,9 +12360,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -12651,7 +12377,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -12660,7 +12386,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -12669,7 +12395,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -12692,19 +12418,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } } } @@ -12715,7 +12441,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "webdriver-js-extender": { @@ -12724,8 +12450,8 @@ "integrity": "sha1-gcUzqeM9W/tZe05j4s2yW1R3dRU=", "dev": true, "requires": { - "@types/selenium-webdriver": "2.53.43", - "selenium-webdriver": "2.53.3" + "@types/selenium-webdriver": "^2.53.35", + "selenium-webdriver": "^2.53.2" }, "dependencies": { "sax": { @@ -12741,9 +12467,9 @@ "dev": true, "requires": { "adm-zip": "0.4.4", - "rimraf": "2.6.2", + "rimraf": "^2.2.8", "tmp": "0.0.24", - "ws": "1.1.5", + "ws": "^1.0.1", "xml2js": "0.4.4" } }, @@ -12765,8 +12491,8 @@ "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", "dev": true, "requires": { - "options": "0.0.6", - "ultron": "1.0.2" + "options": ">=0.0.5", + "ultron": "1.0.x" } }, "xml2js": { @@ -12775,8 +12501,8 @@ "integrity": "sha1-MREBAAMAiuGSQOuhdJe1fHKcVV0=", "dev": true, "requires": { - "sax": "0.6.1", - "xmlbuilder": "9.0.7" + "sax": "0.6.x", + "xmlbuilder": ">=1.0.0" } } } @@ -12787,28 +12513,28 @@ "integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==", "dev": true, "requires": { - "acorn": "5.5.3", - "acorn-dynamic-import": "2.0.2", - "ajv": "6.4.0", - "ajv-keywords": "3.1.0", - "async": "2.6.0", - "enhanced-resolve": "3.4.1", - "escope": "3.6.0", - "interpret": "1.1.0", - "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.1.0", - "source-map": "0.5.7", - "supports-color": "4.5.0", - "tapable": "0.2.8", - "uglifyjs-webpack-plugin": "0.4.6", - "watchpack": "1.5.0", - "webpack-sources": "1.1.0", - "yargs": "8.0.2" + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.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" }, "dependencies": { "ansi-regex": { @@ -12829,8 +12555,8 @@ "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, "requires": { - "center-align": "0.1.3", - "right-align": "0.1.3", + "center-align": "^0.1.1", + "right-align": "^0.1.1", "wordwrap": "0.0.2" } }, @@ -12840,10 +12566,10 @@ "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" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "os-locale": { @@ -12852,9 +12578,9 @@ "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", "dev": true, "requires": { - "execa": "0.7.0", - "lcid": "1.0.0", - "mem": "1.1.0" + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" } }, "path-type": { @@ -12863,7 +12589,7 @@ "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "dev": true, "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pify": { @@ -12878,9 +12604,9 @@ "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "dev": true, "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.4.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -12889,8 +12615,8 @@ "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "dev": true, "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } }, "string-width": { @@ -12899,8 +12625,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -12915,7 +12641,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -12932,9 +12658,9 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-to-browserify": "1.0.2", - "yargs": "3.10.0" + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" }, "dependencies": { "yargs": { @@ -12943,9 +12669,9 @@ "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, "requires": { - "camelcase": "1.2.1", - "cliui": "2.1.0", - "decamelize": "1.2.0", + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", "window-size": "0.1.0" } } @@ -12957,9 +12683,9 @@ "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", "dev": true, "requires": { - "source-map": "0.5.7", - "uglify-js": "2.8.29", - "webpack-sources": "1.1.0" + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" } }, "which-module": { @@ -12980,19 +12706,19 @@ "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" + "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" }, "dependencies": { "camelcase": { @@ -13007,9 +12733,9 @@ "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wrap-ansi": "2.1.0" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" }, "dependencies": { "string-width": { @@ -13018,9 +12744,9 @@ "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "dev": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -13033,7 +12759,7 @@ "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", "dev": true, "requires": { - "camelcase": "4.1.0" + "camelcase": "^4.1.0" }, "dependencies": { "camelcase": { @@ -13052,8 +12778,8 @@ "integrity": "sha1-/FcViMhVjad76e+23r3Fo7FyvcI=", "dev": true, "requires": { - "source-list-map": "0.1.8", - "source-map": "0.4.4" + "source-list-map": "~0.1.7", + "source-map": "~0.4.1" }, "dependencies": { "source-list-map": { @@ -13068,7 +12794,7 @@ "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", "dev": true, "requires": { - "amdefine": "1.0.1" + "amdefine": ">=0.0.4" } } } @@ -13079,11 +12805,11 @@ "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", "dev": true, "requires": { - "memory-fs": "0.4.1", - "mime": "1.6.0", - "path-is-absolute": "1.0.1", - "range-parser": "1.2.0", - "time-stamp": "2.0.0" + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" } }, "webpack-dev-server": { @@ -13093,30 +12819,30 @@ "dev": true, "requires": { "ansi-html": "0.0.7", - "array-includes": "3.0.3", - "bonjour": "3.5.0", - "chokidar": "2.0.3", - "compression": "1.7.2", - "connect-history-api-fallback": "1.5.0", - "debug": "3.1.0", - "del": "3.0.0", - "express": "4.16.3", - "html-entities": "1.2.1", - "http-proxy-middleware": "0.17.4", - "import-local": "1.0.0", + "array-includes": "^3.0.3", + "bonjour": "^3.5.0", + "chokidar": "^2.0.0", + "compression": "^1.5.2", + "connect-history-api-fallback": "^1.3.0", + "debug": "^3.1.0", + "del": "^3.0.0", + "express": "^4.16.2", + "html-entities": "^1.2.0", + "http-proxy-middleware": "~0.17.4", + "import-local": "^1.0.0", "internal-ip": "1.2.0", - "ip": "1.1.5", - "killable": "1.0.0", - "loglevel": "1.6.1", - "opn": "5.1.0", - "portfinder": "1.0.13", - "selfsigned": "1.10.2", - "serve-index": "1.9.1", + "ip": "^1.1.5", + "killable": "^1.0.0", + "loglevel": "^1.4.1", + "opn": "^5.1.0", + "portfinder": "^1.0.9", + "selfsigned": "^1.9.1", + "serve-index": "^1.7.2", "sockjs": "0.3.19", "sockjs-client": "1.1.4", - "spdy": "3.4.7", - "strip-ansi": "3.0.1", - "supports-color": "5.4.0", + "spdy": "^3.4.1", + "strip-ansi": "^3.0.0", + "supports-color": "^5.1.0", "webpack-dev-middleware": "1.12.2", "yargs": "6.6.0" }, @@ -13127,8 +12853,8 @@ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "dev": true, "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" } }, "arr-diff": { @@ -13149,16 +12875,16 @@ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "dev": true, "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.2", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -13167,7 +12893,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13184,18 +12910,18 @@ "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", "dev": true, "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.1", - "braces": "2.3.2", - "fsevents": "1.1.3", - "glob-parent": "3.1.0", - "inherits": "2.0.3", - "is-binary-path": "1.0.1", - "is-glob": "4.0.0", - "normalize-path": "2.1.1", - "path-is-absolute": "1.0.1", - "readdirp": "2.1.0", - "upath": "1.0.4" + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" } }, "debug": { @@ -13213,13 +12939,13 @@ "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "dev": true, "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -13237,7 +12963,7 @@ "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "dev": true, "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -13246,7 +12972,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -13255,7 +12981,7 @@ "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13264,7 +12990,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13275,7 +13001,7 @@ "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13284,7 +13010,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13295,9 +13021,9 @@ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "dev": true, "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" } }, "kind-of": { @@ -13314,14 +13040,14 @@ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "dev": true, "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -13330,7 +13056,7 @@ "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "dev": true, "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -13339,7 +13065,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13350,10 +13076,10 @@ "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "dev": true, "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -13362,7 +13088,7 @@ "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "dev": true, "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -13373,8 +13099,8 @@ "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "dev": true, "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -13383,7 +13109,7 @@ "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -13400,7 +13126,7 @@ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -13409,7 +13135,7 @@ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "dev": true, "requires": { - "kind-of": "6.0.2" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -13418,9 +13144,9 @@ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "dev": true, "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.2" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "is-extglob": { @@ -13435,7 +13161,7 @@ "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", "dev": true, "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" } }, "is-number": { @@ -13444,7 +13170,7 @@ "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "dev": true, "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" }, "dependencies": { "kind-of": { @@ -13453,7 +13179,7 @@ "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } @@ -13476,19 +13202,19 @@ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "dev": true, "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.2", - "nanomatch": "1.2.9", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" } }, "supports-color": { @@ -13497,7 +13223,7 @@ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "y18n": { @@ -13512,19 +13238,19 @@ "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" + "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-parser": { @@ -13533,18 +13259,18 @@ "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" } } } }, "webpack-merge": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.2.tgz", - "integrity": "sha512-/0QYwW/H1N/CdXYA2PNPVbsxO3u2Fpz34vs72xm03SRfg6bMNGfMJIQEpQjKRvkG2JvT6oRJFpDtSrwbX8Jzvw==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.1.3.tgz", + "integrity": "sha512-zxwAIGK7nKdu5CIZL0BjTQoq3elV0t0MfB7rUC1zj668geid52abs6hN/ACwZdK6LeMS8dC9B6WmtF978zH5mg==", "dev": true, "requires": { - "lodash": "4.17.5" + "lodash": "^4.17.5" } }, "webpack-sources": { @@ -13553,8 +13279,8 @@ "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", "dev": true, "requires": { - "source-list-map": "2.0.0", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -13571,7 +13297,7 @@ "integrity": "sha1-j6yKfo61n8ahZ2ioXJ2U7n+dDts=", "dev": true, "requires": { - "webpack-core": "0.6.9" + "webpack-core": "^0.6.8" } }, "websocket-driver": { @@ -13580,8 +13306,8 @@ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=", "dev": true, "requires": { - "http-parser-js": "0.4.11", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -13597,12 +13323,12 @@ "dev": true }, "which": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "dev": true, "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -13612,12 +13338,12 @@ "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==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", "dev": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "widest-line": { @@ -13626,7 +13352,7 @@ "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", "dev": true, "requires": { - "string-width": "2.1.1" + "string-width": "^2.1.1" }, "dependencies": { "ansi-regex": { @@ -13647,8 +13373,8 @@ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "dev": true, "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" } }, "strip-ansi": { @@ -13657,7 +13383,7 @@ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "dev": true, "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -13668,6 +13394,13 @@ "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", "dev": true }, + "with-callback": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/with-callback/-/with-callback-1.0.2.tgz", + "integrity": "sha1-oJYpuakgAo1yFAT7Q1vc/1yRvCE=", + "dev": true, + "optional": true + }, "wordwrap": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", @@ -13680,7 +13413,7 @@ "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", "dev": true, "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "wrap-ansi": { @@ -13689,8 +13422,8 @@ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "dev": true, "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" } }, "wrappy": { @@ -13705,9 +13438,9 @@ "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", "dev": true, "requires": { - "graceful-fs": "4.1.11", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "ws": { @@ -13716,9 +13449,9 @@ "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", "dev": true, "requires": { - "async-limiter": "1.0.0", - "safe-buffer": "5.1.1", - "ultron": "1.1.1" + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" } }, "xdg-basedir": { @@ -13733,8 +13466,8 @@ "integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==", "dev": true, "requires": { - "sax": "1.2.4", - "xmlbuilder": "9.0.7" + "sax": ">=0.6.0", + "xmlbuilder": "~9.0.1" }, "dependencies": { "sax": { @@ -13776,7 +13509,7 @@ "integrity": "sha512-AkTuIuVTET12tpsVIQo+ZU6f/qDmKuRUcjaqR+OIvm+aCBsZ95i7UVY5WJ9TMsSaZ0DA2WxoZ4acu0sPH+OKAw==", "dev": true, "requires": { - "cuint": "0.2.2" + "cuint": "^0.2.2" } }, "y18n": { @@ -13797,19 +13530,19 @@ "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", "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": "5.0.0" + "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" }, "dependencies": { "camelcase": { @@ -13832,7 +13565,7 @@ "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", "dev": true, "requires": { - "camelcase": "3.0.0" + "camelcase": "^3.0.0" }, "dependencies": { "camelcase": { diff --git a/package.json b/package.json index d4b7f58..702ad4a 100644 --- a/package.json +++ b/package.json @@ -1,37 +1,30 @@ { "name": "angular-handsontable", - "version": "1.0.0-beta5", - "description": "Official Angular.io directive for Handsontable", - "repository": { - "type": "git", - "url": "https://github.com/handsontable/angular-handsontable.git" - }, - "author": { - "name": "Handsoncode", - "email": "hello@handsontable.com" - }, + "version": "2.0.0", + "description": "Best Data Grid for Angular with Spreadsheet Look and Feel.", + "author": "Handsoncode (https://handsoncode.net)", + "license": "MIT", + "homepage": "https://handsontable.com", "keywords": [ - "angular", - "angular2", - "angular4", - "angular5", - "ngx", "handsontable", + "component", "data", - "grid", "table", - "editor", - "grid-editor", - "data-grid", - "data-table", + "grid", + "data table", + "data grid", "spreadsheet", + "sheet", "excel", - "tabular-data", - "edit-cell", - "editable-table", - "data-spreadsheet" + "angular", + "angular component", + "angular grid", + "wrapper" ], - "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/handsontable/angular-handsontable.git" + }, "bugs": { "url": "https://github.com/handsontable/angular-handsontable/issues" }, @@ -39,11 +32,12 @@ "ng": "ng", "start": "ng serve", "build": "ng build", - "build:app": "rimraf src/lib && rimraf dist && npm run build:lib && cpr dist src/lib && ng build --app packages && rimraf src/lib", + "build:app": "rimraf src/lib && rimraf dist && npm run build:lib && cpr dist src/lib && ng build --app packages --prod && rimraf src/lib", "build:lib": "rimraf dist && rimraf lib/ce/src/base && rimraf lib/pro/src/base && npm run build:lib:ce && npm run build:lib:pro", "build:lib:ce": "ng-packagr -p lib/ce/package.json", "build:lib:pro": "ng-packagr -p lib/pro/package.json", "test": "npm run lint && npm run build:lib && ng test", + "test:watch": "ng test --watch", "lint": "ng lint", "e2e": "ng e2e", "pre-release": "node scripts/copy-utils.js && node scripts/pre-release.js", @@ -59,8 +53,8 @@ "@angular/platform-browser-dynamic": "^5.2.10", "@angular/router": "^5.2.10", "core-js": "^2.4.1", - "handsontable": "^2.0.0", - "handsontable-pro": "^2.0.0", + "handsontable": "^4.0.0", + "handsontable-pro": "^4.0.0", "rxjs": "^5.5.10", "zone.js": "^0.8.26" }, @@ -73,7 +67,7 @@ "@types/node": "~9.3.0", "codelyzer": "~4.1.0", "cpr": "^3.0.0", - "generate-release": "^0.14.0", + "generate-release": "^1.1.1", "jasmine-core": "~2.9.0", "jasmine-spec-reporter": "~4.2.0", "karma": "~2.0.0", @@ -82,8 +76,8 @@ "karma-coverage-istanbul-reporter": "^1.3.0", "karma-jasmine": "~1.1.0", "karma-jasmine-html-reporter": "^0.2.2", - "ng-packagr": "^2.4.2", - "protractor": "~5.2.0", + "ng-packagr": "^3.0.2", + "protractor": "^5.3.2", "rimraf": "^2.6.1", "ts-node": "~4.1.0", "tsickle": "^0.26.0", diff --git a/scripts/copy-utils.js b/scripts/copy-utils.js index cdf8c16..fbaa605 100644 --- a/scripts/copy-utils.js +++ b/scripts/copy-utils.js @@ -8,10 +8,13 @@ const README = 'README.md'; const CE_PATH = './dist/ce'; const PRO_PATH = './dist/pro'; +const SRC_CE_PATH = './lib/ce'; +const SRC_PRO_PATH = './lib/pro'; + fse.copySync(path.resolve(`./${LICENSE}`), path.resolve(`${CE_PATH}/${LICENSE}`), { overwrite: true }); fse.copySync(path.resolve(`./${CONTRIBUTING}`), path.resolve(`${CE_PATH}/${CONTRIBUTING}`), { overwrite: true }); -fse.copySync(path.resolve(`./${README}`), path.resolve(`${CE_PATH}/${README}`), { overwrite: true }); +fse.copySync(path.resolve(`${SRC_CE_PATH}/${README}`), path.resolve(`${CE_PATH}/${README}`), { overwrite: true }); fse.copySync(path.resolve(`./${LICENSE}`), path.resolve(`${PRO_PATH}/${LICENSE}`), { overwrite: true }); fse.copySync(path.resolve(`./${CONTRIBUTING}`), path.resolve(`${PRO_PATH}/${CONTRIBUTING}`), { overwrite: true }); -fse.copySync(path.resolve(`./${README}`), path.resolve(`${PRO_PATH}/${README}`), { overwrite: true }); +fse.copySync(path.resolve(`${SRC_PRO_PATH}/${README}`), path.resolve(`${PRO_PATH}/${README}`), { overwrite: true }); diff --git a/scripts/pre-release.js b/scripts/pre-release.js index 92e5a18..8054835 100644 --- a/scripts/pre-release.js +++ b/scripts/pre-release.js @@ -4,25 +4,33 @@ const path = require('path'); const CE_PACKAGE_PATH = path.resolve('./dist/ce/package.json'); const PRO_PACKAGE_PATH = path.resolve('./dist/pro/package.json'); +const SRC_CE_PACKAGE_PATH = path.resolve('./lib/ce/package.json'); +const SRC_PRO_PACKAGE_PATH = path.resolve('./lib/pro/package.json'); + const SOURCE_PACKAGE = require(path.resolve('./package.json')); const CE_PACKAGE = fse.readJsonSync(CE_PACKAGE_PATH); const PRO_PACKAGE = fse.readJsonSync(PRO_PACKAGE_PATH); +const SRC_CE_PACKAGE = fse.readJsonSync(SRC_CE_PACKAGE_PATH); +const SRC_PRO_PACKAGE = fse.readJsonSync(SRC_PRO_PACKAGE_PATH); + CE_PACKAGE.version = SOURCE_PACKAGE.version; CE_PACKAGE.description = SOURCE_PACKAGE.description; CE_PACKAGE.repository = SOURCE_PACKAGE.repository; CE_PACKAGE.author = SOURCE_PACKAGE.author; -CE_PACKAGE.keywords = SOURCE_PACKAGE.keywords; +CE_PACKAGE.keywords = SOURCE_PACKAGE.keywords.concat(SRC_CE_PACKAGE.keywords); CE_PACKAGE.license = SOURCE_PACKAGE.license; CE_PACKAGE.bugs = SOURCE_PACKAGE.bugs; +CE_PACKAGE.homepage = SOURCE_PACKAGE.homepage; PRO_PACKAGE.version = SOURCE_PACKAGE.version; PRO_PACKAGE.description = SOURCE_PACKAGE.description; PRO_PACKAGE.repository = SOURCE_PACKAGE.repository; PRO_PACKAGE.author = SOURCE_PACKAGE.author; -PRO_PACKAGE.keywords = SOURCE_PACKAGE.keywords; +PRO_PACKAGE.keywords = SOURCE_PACKAGE.keywords.concat(SRC_PRO_PACKAGE.keywords); PRO_PACKAGE.license = SOURCE_PACKAGE.license; PRO_PACKAGE.bugs = SOURCE_PACKAGE.bugs; +PRO_PACKAGE.homepage = SOURCE_PACKAGE.homepage; fse.writeJsonSync(CE_PACKAGE_PATH, CE_PACKAGE); fse.writeJsonSync(PRO_PACKAGE_PATH, PRO_PACKAGE); diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts deleted file mode 100644 index 4f40d12..0000000 --- a/src/app/app.component.spec.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { HotTableModule } from '@handsontable-pro/angular'; -import { AppComponent } from './app.component'; - -describe('AppComponent', () => { - let fixture: ComponentFixture; - - beforeEach((() => { - TestBed.configureTestingModule({ - imports: [ HotTableModule.forRoot() ], - declarations: [ AppComponent ], - }).compileComponents(); - })); - - afterEach(() => { - if (fixture) { - fixture.destroy(); - } - }); - - it('should create the app', (() => { - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(AppComponent); - const app = fixture.debugElement.componentInstance; - - fixture.detectChanges(); - - expect(app).toBeTruthy(); - }); - })); -}); diff --git a/src/app/hot-column-ce.component.spec.ts b/src/app/hot-column-ce.component.spec.ts new file mode 100644 index 0000000..e3a98a4 --- /dev/null +++ b/src/app/hot-column-ce.component.spec.ts @@ -0,0 +1,1169 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HotTableModule } from '@handsontable/angular'; +import { TestComponent } from './test-ce.component'; + +describe('HotColumnComponent', () => { + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ TestComponent ], + imports: [ HotTableModule.forRoot() ], + }); + }); + + afterEach(() => { + if (fixture) { + fixture.destroy(); + } + }); + + it(`should be possible to render static hot-column element inside hot-table`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).countCols()).toBe(3); + }); + }); + + it(`should be possible to change dynamically the number of columns`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['columns'] = [ {}, {}, {} ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).countCols()).toBe(3); + + app.prop['columns'].push({}); + fixture.detectChanges(); + expect(app.getHotInstance(app.id).countCols()).toBe(4); + }); + }); + + it(`should set allowEmpty defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + allowEmpty: false + }; + app.prop['columns'] = [ + {}, + { + allowEmpty: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowEmpty']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowEmpty']).toBe(true); + }); + }); + + it(`should set allowHtml defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + allowHtml: false + }; + app.prop['columns'] = [ + {}, + { + allowHtml: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowHtml']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowHtml']).toBe(true); + }); + }); + + it(`should set allowInvalid defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + allowInvalid: false + }; + app.prop['columns'] = [ + {}, + { + allowInvalid: true + } + ]; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowInvalid']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowInvalid']).toBe(true); + }); + }); + + it(`should set checkedTemplate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + checkedTemplate: false + }; + app.prop['columns'] = [ + {}, + { + checkedTemplate: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['checkedTemplate']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['checkedTemplate']).toBe(true); + }); + }); + + it(`should set className defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + className: 'test' + }; + app.prop['columns'] = [ + {}, + { + className: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['className']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['className']).toBe('testtest'); + }); + }); + + it(`should set columnSorting defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + columnSorting: false + }; + app.prop['columns'] = [ + {}, + { + columnSorting: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['columnSorting']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['columnSorting']).toBe(true); + }); + }); + + it(`should set colWidths defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + colWidths: 100 + }; + app.prop['columns'] = [ + {}, + { + colWidths: 200 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['colWidths']).toBe(100); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['colWidths']).toBe(200); + }); + }); + + it(`should set commentedCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + commentedCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + commentedCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['commentedCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['commentedCellClassName']).toBe('testtest'); + }); + }); + + it(`should set copyable defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + copyable: false + }; + app.prop['columns'] = [ + {}, + { + copyable: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['copyable']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['copyable']).toBe(true); + }); + }); + + it(`should set correctFormat defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + correctFormat: false + }; + app.prop['columns'] = [ + {}, + { + correctFormat: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['correctFormat']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['correctFormat']).toBe(true); + }); + }); + + it(`should set data defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + data: [[1, 2]] + }; + app.prop['columns'] = [ + {}, + { + data: 0 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['data']).toBe(void 0); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['data']).toBe(0); + }); + }); + + it(`should set dateFormat defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + dateFormat: 'DD/MM/YYYY' + }; + app.prop['columns'] = [ + {}, + { + dateFormat: 'YYYY/DD/MM' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['dateFormat']).toBe('DD/MM/YYYY'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['dateFormat']).toBe('YYYY/DD/MM'); + }); + }); + + it(`should set defaultDate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + defaultDate: 'DD/MM/YYYY' + }; + app.prop['columns'] = [ + {}, + { + defaultDate: 'YYYY/DD/MM' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['defaultDate']).toBe('DD/MM/YYYY'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['defaultDate']).toBe('YYYY/DD/MM'); + }); + }); + + it(`should set editor defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + editor: false + }; + app.prop['columns'] = [ + {}, + { + editor: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['editor']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['editor']).toBe(true); + }); + }); + + it(`should set filteringCaseSensitive defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + filteringCaseSensitive: false + }; + app.prop['columns'] = [ + {}, + { + filteringCaseSensitive: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['filteringCaseSensitive']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['filteringCaseSensitive']).toBe(true); + }); + }); + + it(`should set invalidCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + invalidCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + invalidCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['invalidCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['invalidCellClassName']).toBe('testtest'); + }); + }); + + it(`should set label defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + label: {position: 'after', value: 'test'} + }; + app.prop['columns'] = [ + {}, + { + label: {position: 'before', value: 'testtest'} + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['label']['position']).toBe('after'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['label']['position']).toBe('before'); + }); + }); + + it(`should set noWordWrapClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + noWordWrapClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + noWordWrapClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['noWordWrapClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['noWordWrapClassName']).toBe('testtest'); + }); + }); + + it(`should set placeholder defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + placeholder: false + }; + app.prop['columns'] = [ + {}, + { + placeholder: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['placeholder']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['placeholder']).toBe(true); + }); + }); + + it(`should set placeholderCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + placeholderCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + placeholderCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['placeholderCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['placeholderCellClassName']).toBe('testtest'); + }); + }); + + it(`should set readOnly defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + readOnly: false + }; + app.prop['columns'] = [ + {}, + { + readOnly: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['readOnly']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['readOnly']).toBe(true); + }); + }); + + it(`should set readOnlyCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + readOnlyCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + readOnlyCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['readOnlyCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['readOnlyCellClassName']).toBe('testtest'); + }); + }); + + it(`should set renderer defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + renderer: 'date' + }; + app.prop['columns'] = [ + {}, + { + renderer: 'text' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['renderer']).toBe('date'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['renderer']).toBe('text'); + }); + }); + + it(`should set selectOptions defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + selectOptions: ['A'] + }; + app.prop['columns'] = [ + {}, + { + selectOptions: ['B'] + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['selectOptions'][0]).toBe('A'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['selectOptions'][0]).toBe('B'); + }); + }); + + it(`should set skipColumnOnPaste defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + skipColumnOnPaste: false + }; + app.prop['columns'] = [ + {}, + { + skipColumnOnPaste: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['skipColumnOnPaste']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['skipColumnOnPaste']).toBe(true); + }); + }); + + it(`should set sortByRelevance defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + sortByRelevance: false + }; + app.prop['columns'] = [ + {}, + { + sortByRelevance: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortByRelevance']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortByRelevance']).toBe(true); + }); + }); + + it(`should set sortFunction defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + sortFunction: false + }; + app.prop['columns'] = [ + {}, + { + sortFunction: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortFunction']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortFunction']).toBe(true); + }); + }); + + it(`should set sortIndicator defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + sortIndicator: false + }; + app.prop['columns'] = [ + {}, + { + sortIndicator: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortIndicator']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortIndicator']).toBe(true); + }); + }); + + it(`should set source defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + source: ['A'] + }; + app.prop['columns'] = [ + {}, + { + source: ['B'] + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['source'][0]).toBe('A'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['source'][0]).toBe('B'); + }); + }); + + it(`should set strict defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + strict: false + }; + app.prop['columns'] = [ + {}, + { + strict: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['strict']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['strict']).toBe(true); + }); + }); + + it(`should set title defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + title: 'test' + }; + app.prop['columns'] = [ + {}, + { + title: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['title']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['title']).toBe('testtest'); + }); + }); + + it(`should set trimDropdown defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + trimDropdown: false + }; + app.prop['columns'] = [ + {}, + { + trimDropdown: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['trimDropdown']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['trimDropdown']).toBe(true); + }); + }); + + it(`should set type defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + type: 'date' + }; + app.prop['columns'] = [ + {}, + { + type: 'text' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['type']).toBe('date'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['type']).toBe('text'); + }); + }); + + it(`should set uncheckedTemplate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + uncheckedTemplate: false + }; + app.prop['columns'] = [ + {}, + { + uncheckedTemplate: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['uncheckedTemplate']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['uncheckedTemplate']).toBe(true); + }); + }); + + it(`should set validator defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + validator: false + }; + app.prop['columns'] = [ + {}, + { + validator: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['validator']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['validator']).toBe(true); + }); + }); + + it(`should set visibleRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + visibleRows: 1 + }; + app.prop['columns'] = [ + {}, + { + visibleRows: 2 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['visibleRows']).toBe(1); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['visibleRows']).toBe(2); + }); + }); + + it(`should set width defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + width: 100 + }; + app.prop['columns'] = [ + {}, + { + width: 10 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['width']).toBe(void 0); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['width']).toBe(10); + }); + }); + + it(`should set wordWrap defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + wordWrap: false + }; + app.prop['columns'] = [ + {}, + { + wordWrap: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['wordWrap']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['wordWrap']).toBe(true); + }); + }); +}); diff --git a/src/app/hot-column-pro.component.spec.ts b/src/app/hot-column-pro.component.spec.ts new file mode 100644 index 0000000..6ed83d4 --- /dev/null +++ b/src/app/hot-column-pro.component.spec.ts @@ -0,0 +1,1169 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HotTableModule } from '@handsontable-pro/angular'; +import { TestComponent } from './test-pro.component'; + +describe('HotColumnComponent', () => { + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ TestComponent ], + imports: [ HotTableModule.forRoot() ], + }); + }); + + afterEach(() => { + if (fixture) { + fixture.destroy(); + } + }); + + it(`should be possible to render static hot-column element inside hot-table`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).countCols()).toBe(3); + }); + }); + + it(`should be possible to change dynamically the number of columns`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['columns'] = [ {}, {}, {} ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).countCols()).toBe(3); + + app.prop['columns'].push({}); + fixture.detectChanges(); + expect(app.getHotInstance(app.id).countCols()).toBe(4); + }); + }); + + it(`should set allowEmpty defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + allowEmpty: false + }; + app.prop['columns'] = [ + {}, + { + allowEmpty: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowEmpty']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowEmpty']).toBe(true); + }); + }); + + it(`should set allowHtml defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + allowHtml: false + }; + app.prop['columns'] = [ + {}, + { + allowHtml: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowHtml']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowHtml']).toBe(true); + }); + }); + + it(`should set allowInvalid defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + allowInvalid: false + }; + app.prop['columns'] = [ + {}, + { + allowInvalid: true + } + ]; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowInvalid']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowInvalid']).toBe(true); + }); + }); + + it(`should set checkedTemplate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + checkedTemplate: false + }; + app.prop['columns'] = [ + {}, + { + checkedTemplate: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['checkedTemplate']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['checkedTemplate']).toBe(true); + }); + }); + + it(`should set className defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + className: 'test' + }; + app.prop['columns'] = [ + {}, + { + className: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['className']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['className']).toBe('testtest'); + }); + }); + + it(`should set columnSorting defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + columnSorting: false + }; + app.prop['columns'] = [ + {}, + { + columnSorting: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['columnSorting']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['columnSorting']).toBe(true); + }); + }); + + it(`should set colWidths defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + colWidths: 100 + }; + app.prop['columns'] = [ + {}, + { + colWidths: 200 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['colWidths']).toBe(100); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['colWidths']).toBe(200); + }); + }); + + it(`should set commentedCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + commentedCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + commentedCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['commentedCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['commentedCellClassName']).toBe('testtest'); + }); + }); + + it(`should set copyable defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + copyable: false + }; + app.prop['columns'] = [ + {}, + { + copyable: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['copyable']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['copyable']).toBe(true); + }); + }); + + it(`should set correctFormat defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + correctFormat: false + }; + app.prop['columns'] = [ + {}, + { + correctFormat: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['correctFormat']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['correctFormat']).toBe(true); + }); + }); + + it(`should set data defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + data: [[1, 2]] + }; + app.prop['columns'] = [ + {}, + { + data: 0 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['data']).toBe(void 0); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['data']).toBe(0); + }); + }); + + it(`should set dateFormat defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + dateFormat: 'DD/MM/YYYY' + }; + app.prop['columns'] = [ + {}, + { + dateFormat: 'YYYY/DD/MM' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['dateFormat']).toBe('DD/MM/YYYY'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['dateFormat']).toBe('YYYY/DD/MM'); + }); + }); + + it(`should set defaultDate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + defaultDate: 'DD/MM/YYYY' + }; + app.prop['columns'] = [ + {}, + { + defaultDate: 'YYYY/DD/MM' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['defaultDate']).toBe('DD/MM/YYYY'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['defaultDate']).toBe('YYYY/DD/MM'); + }); + }); + + it(`should set editor defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + editor: false + }; + app.prop['columns'] = [ + {}, + { + editor: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['editor']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['editor']).toBe(true); + }); + }); + + it(`should set filteringCaseSensitive defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + filteringCaseSensitive: false + }; + app.prop['columns'] = [ + {}, + { + filteringCaseSensitive: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['filteringCaseSensitive']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['filteringCaseSensitive']).toBe(true); + }); + }); + + it(`should set invalidCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + invalidCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + invalidCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['invalidCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['invalidCellClassName']).toBe('testtest'); + }); + }); + + it(`should set label defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + label: {position: 'after', value: 'test'} + }; + app.prop['columns'] = [ + {}, + { + label: {position: 'before', value: 'testtest'} + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['label']['position']).toBe('after'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['label']['position']).toBe('before'); + }); + }); + + it(`should set noWordWrapClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + noWordWrapClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + noWordWrapClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['noWordWrapClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['noWordWrapClassName']).toBe('testtest'); + }); + }); + + it(`should set placeholder defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + placeholder: false + }; + app.prop['columns'] = [ + {}, + { + placeholder: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['placeholder']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['placeholder']).toBe(true); + }); + }); + + it(`should set placeholderCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + placeholderCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + placeholderCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['placeholderCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['placeholderCellClassName']).toBe('testtest'); + }); + }); + + it(`should set readOnly defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + readOnly: false + }; + app.prop['columns'] = [ + {}, + { + readOnly: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['readOnly']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['readOnly']).toBe(true); + }); + }); + + it(`should set readOnlyCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + readOnlyCellClassName: 'test' + }; + app.prop['columns'] = [ + {}, + { + readOnlyCellClassName: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['readOnlyCellClassName']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['readOnlyCellClassName']).toBe('testtest'); + }); + }); + + it(`should set renderer defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + renderer: 'date' + }; + app.prop['columns'] = [ + {}, + { + renderer: 'text' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['renderer']).toBe('date'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['renderer']).toBe('text'); + }); + }); + + it(`should set selectOptions defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + selectOptions: ['A'] + }; + app.prop['columns'] = [ + {}, + { + selectOptions: ['B'] + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['selectOptions'][0]).toBe('A'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['selectOptions'][0]).toBe('B'); + }); + }); + + it(`should set skipColumnOnPaste defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + skipColumnOnPaste: false + }; + app.prop['columns'] = [ + {}, + { + skipColumnOnPaste: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['skipColumnOnPaste']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['skipColumnOnPaste']).toBe(true); + }); + }); + + it(`should set sortByRelevance defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + sortByRelevance: false + }; + app.prop['columns'] = [ + {}, + { + sortByRelevance: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortByRelevance']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortByRelevance']).toBe(true); + }); + }); + + it(`should set sortFunction defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + sortFunction: false + }; + app.prop['columns'] = [ + {}, + { + sortFunction: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortFunction']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortFunction']).toBe(true); + }); + }); + + it(`should set sortIndicator defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + sortIndicator: false + }; + app.prop['columns'] = [ + {}, + { + sortIndicator: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortIndicator']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortIndicator']).toBe(true); + }); + }); + + it(`should set source defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + source: ['A'] + }; + app.prop['columns'] = [ + {}, + { + source: ['B'] + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['source'][0]).toBe('A'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['source'][0]).toBe('B'); + }); + }); + + it(`should set strict defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + strict: false + }; + app.prop['columns'] = [ + {}, + { + strict: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['strict']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['strict']).toBe(true); + }); + }); + + it(`should set title defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + title: 'test' + }; + app.prop['columns'] = [ + {}, + { + title: 'testtest' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['title']).toBe('test'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['title']).toBe('testtest'); + }); + }); + + it(`should set trimDropdown defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + trimDropdown: false + }; + app.prop['columns'] = [ + {}, + { + trimDropdown: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['trimDropdown']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['trimDropdown']).toBe(true); + }); + }); + + it(`should set type defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + type: 'date' + }; + app.prop['columns'] = [ + {}, + { + type: 'text' + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['type']).toBe('date'); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['type']).toBe('text'); + }); + }); + + it(`should set uncheckedTemplate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + uncheckedTemplate: false + }; + app.prop['columns'] = [ + {}, + { + uncheckedTemplate: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['uncheckedTemplate']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['uncheckedTemplate']).toBe(true); + }); + }); + + it(`should set validator defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + validator: false + }; + app.prop['columns'] = [ + {}, + { + validator: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['validator']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['validator']).toBe(true); + }); + }); + + it(`should set visibleRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + visibleRows: 1 + }; + app.prop['columns'] = [ + {}, + { + visibleRows: 2 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['visibleRows']).toBe(1); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['visibleRows']).toBe(2); + }); + }); + + it(`should set width defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + width: 100 + }; + app.prop['columns'] = [ + {}, + { + width: 10 + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['width']).toBe(void 0); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['width']).toBe(10); + }); + }); + + it(`should set wordWrap defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + app.prop['settings'] = { + wordWrap: false + }; + app.prop['columns'] = [ + {}, + { + wordWrap: true + } + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['wordWrap']).toBe(false); + expect(app.getHotInstance(app.id).getCellMeta(0, 1)['wordWrap']).toBe(true); + }); + }); +}); diff --git a/src/app/hot-column.component.spec.ts b/src/app/hot-column.component.spec.ts deleted file mode 100644 index c99769b..0000000 --- a/src/app/hot-column.component.spec.ts +++ /dev/null @@ -1,3346 +0,0 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; -import * as Handsontable from 'handsontable-pro'; - -import { HotTableModule } from '@handsontable-pro/angular'; -import { TestComponent } from './test.component'; - -describe('HotColumnComponent', () => { - let fixture: ComponentFixture; - - beforeEach(() => { - TestBed.configureTestingModule({ - declarations: [ TestComponent ], - imports: [ HotTableModule.forRoot() ], - }); - }); - - afterEach(() => { - if (fixture) { - fixture.destroy(); - } - }); - - it(`should be possible to render static hot-column element inside hot-table`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - - fixture.detectChanges(); - expect(app.getHotInstance(app.id).countCols()).toBe(3); - }); - }); - - it(`should be possible to change dynamically the number of columns`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - - app.prop['columns'] = [ {}, {}, {} ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).countCols()).toBe(3); - - app.prop['columns'].push({}); - fixture.detectChanges(); - expect(app.getHotInstance(app.id).countCols()).toBe(4); - }); - }); - - it(`should set allowHtml defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - allowHtml: false - }; - app.prop['columns'] = [ - {}, - { - allowHtml: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowHtml']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowHtml']).toBe(true); - }); - }); - - it(`should set allowInsertColumn defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - allowInsertColumn: false - }; - app.prop['columns'] = [ - {}, - { - allowInsertColumn: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowInsertColumn']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowInsertColumn']).toBe(true); - }); - }); - - it(`should set allowInsertRow defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - allowInsertRow: false - }; - app.prop['columns'] = [ - {}, - { - allowInsertRow: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowInsertRow']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowInsertRow']).toBe(true); - }); - }); - - it(`should set allowInvalid defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - allowInvalid: false - }; - app.prop['columns'] = [ - {}, - { - allowInvalid: true - } - ]; - - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowInvalid']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowInvalid']).toBe(true); - }); - }); - - it(`should set allowRemoveColumn defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - allowRemoveColumn: false - }; - app.prop['columns'] = [ - {}, - { - allowRemoveColumn: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowRemoveColumn']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowRemoveColumn']).toBe(true); - }); - }); - - it(`should set allowRemoveRow defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - allowRemoveRow: false - }; - app.prop['columns'] = [ - {}, - { - allowRemoveRow: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['allowRemoveRow']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['allowRemoveRow']).toBe(true); - }); - }); - - it(`should set autoColumnSize defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - autoColumnSize: false - }; - app.prop['columns'] = [ - {}, - { - autoColumnSize: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['autoColumnSize']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['autoColumnSize']).toBe(true); - }); - }); - - it(`should set autoComplete defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - autoComplete: [1] - }; - app.prop['columns'] = [ - {}, - { - autoComplete: ['a'] - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['autoComplete'][0]).toBe(1); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['autoComplete'][0]).toBe('a'); - }); - }); - - it(`should set autoRowSize defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - autoRowSize: false - }; - app.prop['columns'] = [ - {}, - { - autoRowSize: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['autoRowSize']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['autoRowSize']).toBe(true); - }); - }); - - it(`should set autoWrapCol defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - autoWrapCol: false - }; - app.prop['columns'] = [ - {}, - { - autoWrapCol: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['autoWrapCol']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['autoWrapCol']).toBe(true); - }); - }); - - it(`should set autoWrapRow defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - autoWrapRow: false - }; - app.prop['columns'] = [ - {}, - { - autoWrapRow: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['autoWrapRow']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['autoWrapRow']).toBe(true); - }); - }); - - it(`should set bindRowsWithHeaders defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - bindRowsWithHeaders: false - }; - app.prop['columns'] = [ - {}, - { - bindRowsWithHeaders: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['bindRowsWithHeaders']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['bindRowsWithHeaders']).toBe(true); - }); - }); - - it(`should set cell defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - cell: [{row: 0, col: 0, readOnly: true}] - }; - app.prop['columns'] = [ - {}, - { - cell: [{row: 0, col: 0, readOnly: false}] - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['cell'][0].readOnly).toBe(true); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['cell'][0].readOnly).toBe(false); - }); - }); - - it(`should set cells defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - cells: function() { return { data: 1 }; } - }; - app.prop['columns'] = [ - {}, - { - cells: function() { return { data: 0 }} - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['cells']().data).toBe(1); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['cells']().data).toBe(0); - }); - }); - - it(`should set checkedTemplate defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - checkedTemplate: false - }; - app.prop['columns'] = [ - {}, - { - checkedTemplate: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['checkedTemplate']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['checkedTemplate']).toBe(true); - }); - }); - - - it(`should set className defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - className: false - }; - app.prop['columns'] = [ - {}, - { - className: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['className']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['className']).toBe(true); - }); - }); - - it(`should set colHeaders defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - colHeaders: false - }; - app.prop['columns'] = [ - {}, - { - colHeaders: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['colHeaders']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['colHeaders']).toBe(true); - }); - }); - - it(`should set collapsibleColumns defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - collapsibleColumns: false - }; - app.prop['columns'] = [ - {}, - { - collapsibleColumns: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['collapsibleColumns']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['collapsibleColumns']).toBe(true); - }); - }); - - it(`should set columnHeaderHeight defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - columnHeaderHeight: false - }; - app.prop['columns'] = [ - {}, - { - columnHeaderHeight: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['columnHeaderHeight']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['columnHeaderHeight']).toBe(true); - }); - }); - - it(`should set columns defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['columns'] = [ - {}, - { - columns: [ - {}, - { data: 1 } - ] - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['columns'][1].data).toBe(void 0); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['columns'][1].data).toBe(1); - }); - }); - - it(`should set columnSorting defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - columnSorting: false - }; - app.prop['columns'] = [ - {}, - { - columnSorting: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['columnSorting']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['columnSorting']).toBe(true); - }); - }); - - it(`should set columnSummary defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - columnSummary: false - }; - app.prop['columns'] = [ - {}, - { - columnSummary: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['columnSummary']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['columnSummary']).toBe(true); - }); - }); - - it(`should set colWidths defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - colWidths: false - }; - app.prop['columns'] = [ - {}, - { - colWidths: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['colWidths']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['colWidths']).toBe(true); - }); - }); - - it(`should set commentedCellClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - commentedCellClassName: false - }; - app.prop['columns'] = [ - {}, - { - commentedCellClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['commentedCellClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['commentedCellClassName']).toBe(true); - }); - }); - - it(`should set comments defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - comments: false - }; - app.prop['columns'] = [ - {}, - { - comments: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['comments']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['comments']).toBe(true); - }); - }); - - it(`should set contextMenu defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - contextMenu: false - }; - app.prop['columns'] = [ - {}, - { - contextMenu: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['contextMenu']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['contextMenu']).toBe(true); - }); - }); - - it(`should set copyable defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - copyable: false - }; - app.prop['columns'] = [ - {}, - { - copyable: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['copyable']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['copyable']).toBe(true); - }); - }); - - it(`should set copyPaste defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - copyPaste: false - }; - app.prop['columns'] = [ - {}, - { - copyPaste: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['copyPaste']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['copyPaste']).toBe(true); - }); - }); - - it(`should set correctFormat defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - correctFormat: false - }; - app.prop['columns'] = [ - {}, - { - correctFormat: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['correctFormat']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['correctFormat']).toBe(true); - }); - }); - - it(`should set currentColClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - currentColClassName: false - }; - app.prop['columns'] = [ - {}, - { - currentColClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['currentColClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['currentColClassName']).toBe(true); - }); - }); - - it(`should set currentHeaderClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - currentHeaderClassName: false - }; - app.prop['columns'] = [ - {}, - { - currentHeaderClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['currentHeaderClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['currentHeaderClassName']).toBe(true); - }); - }); - - it(`should set currentRowClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - currentRowClassName: false - }; - app.prop['columns'] = [ - {}, - { - currentRowClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['currentRowClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['currentRowClassName']).toBe(true); - }); - }); - - it(`should set customBorders defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - customBorders: false - }; - app.prop['columns'] = [ - {}, - { - customBorders: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['customBorders']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['customBorders']).toBe(true); - }); - }); - - it(`should set data defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - data: [[1, 2]] - }; - app.prop['columns'] = [ - {}, - { - data: 0 - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['data']).toBe(void 0); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['data']).toBe(0); - }); - }); - - it(`should set dataSchema defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - dataSchema: false - }; - app.prop['columns'] = [ - {}, - { - dataSchema: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['dataSchema']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['dataSchema']).toBe(true); - }); - }); - - it(`should set dateFormat defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - dateFormat: false - }; - app.prop['columns'] = [ - {}, - { - dateFormat: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['dateFormat']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['dateFormat']).toBe(true); - }); - }); - - it(`should set debug defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - debug: false - }; - app.prop['columns'] = [ - {}, - { - debug: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['debug']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['debug']).toBe(true); - }); - }); - - it(`should set defaultDate defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - defaultDate: false - }; - app.prop['columns'] = [ - {}, - { - defaultDate: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['defaultDate']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['defaultDate']).toBe(true); - }); - }); - - it(`should set disableVisualSelection defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - disableVisualSelection: false - }; - app.prop['columns'] = [ - {}, - { - disableVisualSelection: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['disableVisualSelection']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['disableVisualSelection']).toBe(true); - }); - }); - - it(`should set dropdownMenu defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - dropdownMenu: false - }; - app.prop['columns'] = [ - {}, - { - dropdownMenu: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['dropdownMenu']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['dropdownMenu']).toBe(true); - }); - }); - - it(`should set editor defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - editor: false - }; - app.prop['columns'] = [ - {}, - { - editor: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['editor']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['editor']).toBe(true); - }); - }); - - it(`should set enterBeginsEditing defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - enterBeginsEditing: false - }; - app.prop['columns'] = [ - {}, - { - enterBeginsEditing: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['enterBeginsEditing']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['enterBeginsEditing']).toBe(true); - }); - }); - - it(`should set enterMoves defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - enterMoves: false - }; - app.prop['columns'] = [ - {}, - { - enterMoves: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['enterMoves']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['enterMoves']).toBe(true); - }); - }); - - it(`should set fillHandle defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - fillHandle: false - }; - app.prop['columns'] = [ - {}, - { - fillHandle: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['fillHandle']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['fillHandle']).toBe(true); - }); - }); - - it(`should set filter defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - filter: false - }; - app.prop['columns'] = [ - {}, - { - filter: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['filter']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['filter']).toBe(true); - }); - }); - - it(`should set filteringCaseSensitive defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - filteringCaseSensitive: false - }; - app.prop['columns'] = [ - {}, - { - filteringCaseSensitive: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['filteringCaseSensitive']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['filteringCaseSensitive']).toBe(true); - }); - }); - - it(`should set filters defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - filters: false - }; - app.prop['columns'] = [ - {}, - { - filters: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['filters']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['filters']).toBe(true); - }); - }); - - it(`should set fixedColumnsLeft defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - fixedColumnsLeft: false - }; - app.prop['columns'] = [ - {}, - { - fixedColumnsLeft: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['fixedColumnsLeft']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['fixedColumnsLeft']).toBe(true); - }); - }); - - it(`should set fixedRowsBottom defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - fixedRowsBottom: false - }; - app.prop['columns'] = [ - {}, - { - fixedRowsBottom: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['fixedRowsBottom']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['fixedRowsBottom']).toBe(true); - }); - }); - - it(`should set fixedRowsTop defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - fixedRowsTop: false - }; - app.prop['columns'] = [ - {}, - { - fixedRowsTop: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['fixedRowsTop']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['fixedRowsTop']).toBe(true); - }); - }); - - it(`should set formulas defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - formulas: false - }; - app.prop['columns'] = [ - {}, - { - formulas: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['formulas']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['formulas']).toBe(true); - }); - }); - - it(`should set fragmentSelection defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - fragmentSelection: false - }; - app.prop['columns'] = [ - {}, - { - fragmentSelection: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['fragmentSelection']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['fragmentSelection']).toBe(true); - }); - }); - - it(`should set ganttChart defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - ganttChart: false - }; - app.prop['columns'] = [ - {}, - { - ganttChart: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['ganttChart']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['ganttChart']).toBe(true); - }); - }); - - it(`should set headerTooltips defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - headerTooltips: false - }; - app.prop['columns'] = [ - {}, - { - headerTooltips: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['headerTooltips']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['headerTooltips']).toBe(true); - }); - }); - - it(`should set height defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - height: 10 - }; - app.prop['columns'] = [ - {}, - { - height: 100 - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['height']).toBe(10); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['height']).toBe(100); - }); - }); - - it(`should set hiddenColumns defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - hiddenColumns: false - }; - app.prop['columns'] = [ - {}, - { - hiddenColumns: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['hiddenColumns']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['hiddenColumns']).toBe(true); - }); - }); - - it(`should set hiddenRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - hiddenRows: false - }; - app.prop['columns'] = [ - {}, - { - hiddenRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['hiddenRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['hiddenRows']).toBe(true); - }); - }); - - it(`should set invalidCellClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - invalidCellClassName: false - }; - app.prop['columns'] = [ - {}, - { - invalidCellClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['invalidCellClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['invalidCellClassName']).toBe(true); - }); - }); - - it(`should set label defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - label: false - }; - app.prop['columns'] = [ - {}, - { - label: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['label']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['label']).toBe(true); - }); - }); - - it(`should set manualColumnFreeze defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - manualColumnFreeze: false - }; - app.prop['columns'] = [ - {}, - { - manualColumnFreeze: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['manualColumnFreeze']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['manualColumnFreeze']).toBe(true); - }); - }); - - it(`should set manualColumnMove defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - manualColumnMove: false - }; - app.prop['columns'] = [ - {}, - { - manualColumnMove: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['manualColumnMove']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['manualColumnMove']).toBe(true); - }); - }); - - it(`should set manualColumnResize defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - manualColumnResize: false - }; - app.prop['columns'] = [ - {}, - { - manualColumnResize: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['manualColumnResize']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['manualColumnResize']).toBe(true); - }); - }); - - it(`should set manualRowMove defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - manualRowMove: false - }; - app.prop['columns'] = [ - {}, - { - manualRowMove: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['manualRowMove']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['manualRowMove']).toBe(true); - }); - }); - - it(`should set manualRowResize defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - manualRowResize: false - }; - app.prop['columns'] = [ - {}, - { - manualRowResize: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['manualRowResize']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['manualRowResize']).toBe(true); - }); - }); - - it(`should set maxCols defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - maxCols: 100 - }; - app.prop['columns'] = [ - {}, - { - maxCols: 10 - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['maxCols']).toBe(100); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['maxCols']).toBe(10); - }); - }); - - it(`should set maxRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - maxRows: false - }; - app.prop['columns'] = [ - {}, - { - maxRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['maxRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['maxRows']).toBe(true); - }); - }); - - it(`should set mergeCells defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - mergeCells: false - }; - app.prop['columns'] = [ - {}, - { - mergeCells: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['mergeCells']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['mergeCells']).toBe(true); - }); - }); - - it(`should set minCols defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - minCols: false - }; - app.prop['columns'] = [ - {}, - { - minCols: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['minCols']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['minCols']).toBe(true); - }); - }); - - it(`should set minRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - minRows: false - }; - app.prop['columns'] = [ - {}, - { - minRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['minRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['minRows']).toBe(true); - }); - }); - - it(`should set minSpareCols defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - minSpareCols: false - }; - app.prop['columns'] = [ - {}, - { - minSpareCols: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['minSpareCols']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['minSpareCols']).toBe(true); - }); - }); - - it(`should set minSpareRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - minSpareRows: false - }; - app.prop['columns'] = [ - {}, - { - minSpareRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['minSpareRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['minSpareRows']).toBe(true); - }); - }); - - it(`should set multiSelect defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - multiSelect: false - }; - app.prop['columns'] = [ - {}, - { - multiSelect: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['multiSelect']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['multiSelect']).toBe(true); - }); - }); - - it(`should set noWordWrapClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - noWordWrapClassName: false - }; - app.prop['columns'] = [ - {}, - { - noWordWrapClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['noWordWrapClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['noWordWrapClassName']).toBe(true); - }); - }); - - it(`should set observeChanges defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - observeChanges: false - }; - app.prop['columns'] = [ - {}, - { - observeChanges: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['observeChanges']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['observeChanges']).toBe(true); - }); - }); - - it(`should set observeDOMVisibility defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - observeDOMVisibility: false - }; - app.prop['columns'] = [ - {}, - { - observeDOMVisibility: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['observeDOMVisibility']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['observeDOMVisibility']).toBe(true); - }); - }); - - it(`should set outsideClickDeselects defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - outsideClickDeselects: false - }; - app.prop['columns'] = [ - {}, - { - outsideClickDeselects: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['outsideClickDeselects']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['outsideClickDeselects']).toBe(true); - }); - }); - - it(`should set persistentState defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - persistentState: false - }; - app.prop['columns'] = [ - {}, - { - persistentState: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['persistentState']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['persistentState']).toBe(true); - }); - }); - - it(`should set placeholder defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - placeholder: false - }; - app.prop['columns'] = [ - {}, - { - placeholder: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['placeholder']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['placeholder']).toBe(true); - }); - }); - - it(`should set placeholderCellClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - placeholderCellClassName: false - }; - app.prop['columns'] = [ - {}, - { - placeholderCellClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['placeholderCellClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['placeholderCellClassName']).toBe(true); - }); - }); - - it(`should set preventOverflow defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - preventOverflow: false - }; - app.prop['columns'] = [ - {}, - { - preventOverflow: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['preventOverflow']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['preventOverflow']).toBe(true); - }); - }); - - it(`should set readOnly defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - readOnly: false - }; - app.prop['columns'] = [ - {}, - { - readOnly: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['readOnly']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['readOnly']).toBe(true); - }); - }); - - it(`should set readOnlyCellClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - readOnlyCellClassName: false - }; - app.prop['columns'] = [ - {}, - { - readOnlyCellClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['readOnlyCellClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['readOnlyCellClassName']).toBe(true); - }); - }); - - it(`should set renderAllRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - renderAllRows: false - }; - app.prop['columns'] = [ - {}, - { - renderAllRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['renderAllRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['renderAllRows']).toBe(true); - }); - }); - - it(`should set renderer defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - renderer: 'date' - }; - app.prop['columns'] = [ - {}, - { - renderer: 'text' - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['renderer']).toBe('date'); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['renderer']).toBe('text'); - }); - }); - - it(`should set rowHeaders defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - rowHeaders: false - }; - app.prop['columns'] = [ - {}, - { - rowHeaders: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['rowHeaders']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['rowHeaders']).toBe(true); - }); - }); - - it(`should set rowHeaderWidth defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - rowHeaderWidth: false - }; - app.prop['columns'] = [ - {}, - { - rowHeaderWidth: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['rowHeaderWidth']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['rowHeaderWidth']).toBe(true); - }); - }); - - it(`should set rowHeights defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - rowHeights: false - }; - app.prop['columns'] = [ - {}, - { - rowHeights: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['rowHeights']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['rowHeights']).toBe(true); - }); - }); - - it(`should set search defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - search: false - }; - app.prop['columns'] = [ - {}, - { - search: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['search']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['search']).toBe(true); - }); - }); - - it(`should set selectOptions defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - selectOptions: false - }; - app.prop['columns'] = [ - {}, - { - selectOptions: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['selectOptions']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['selectOptions']).toBe(true); - }); - }); - - it(`should set skipColumnOnPaste defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - skipColumnOnPaste: false - }; - app.prop['columns'] = [ - {}, - { - skipColumnOnPaste: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['skipColumnOnPaste']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['skipColumnOnPaste']).toBe(true); - }); - }); - - it(`should set sortByRelevance defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - sortByRelevance: false - }; - app.prop['columns'] = [ - {}, - { - sortByRelevance: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortByRelevance']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortByRelevance']).toBe(true); - }); - }); - - it(`should set sortFunction defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - sortFunction: false - }; - app.prop['columns'] = [ - {}, - { - sortFunction: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortFunction']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortFunction']).toBe(true); - }); - }); - - it(`should set sortIndicator defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - sortIndicator: false - }; - app.prop['columns'] = [ - {}, - { - sortIndicator: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['sortIndicator']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['sortIndicator']).toBe(true); - }); - }); - - it(`should set source defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - source: false - }; - app.prop['columns'] = [ - {}, - { - source: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['source']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['source']).toBe(true); - }); - }); - - it(`should set startCols defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - startCols: false - }; - app.prop['columns'] = [ - {}, - { - startCols: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['startCols']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['startCols']).toBe(true); - }); - }); - - it(`should set startRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - startRows: false - }; - app.prop['columns'] = [ - {}, - { - startRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['startRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['startRows']).toBe(true); - }); - }); - - it(`should set stretchH defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - stretchH: false - }; - app.prop['columns'] = [ - {}, - { - stretchH: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['stretchH']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['stretchH']).toBe(true); - }); - }); - - it(`should set strict defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - strict: false - }; - app.prop['columns'] = [ - {}, - { - strict: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['strict']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['strict']).toBe(true); - }); - }); - - it(`should set tableClassName defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - tableClassName: false - }; - app.prop['columns'] = [ - {}, - { - tableClassName: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['tableClassName']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['tableClassName']).toBe(true); - }); - }); - - it(`should set tabMoves defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - tabMoves: false - }; - app.prop['columns'] = [ - {}, - { - tabMoves: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['tabMoves']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['tabMoves']).toBe(true); - }); - }); - - it(`should set title defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - title: false - }; - app.prop['columns'] = [ - {}, - { - title: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['title']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['title']).toBe(true); - }); - }); - - it(`should set trimDropdown defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - trimDropdown: false - }; - app.prop['columns'] = [ - {}, - { - trimDropdown: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['trimDropdown']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['trimDropdown']).toBe(true); - }); - }); - - it(`should set trimRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - trimRows: false - }; - app.prop['columns'] = [ - {}, - { - trimRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['trimRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['trimRows']).toBe(true); - }); - }); - - it(`should set trimWhitespace defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - trimWhitespace: false - }; - app.prop['columns'] = [ - {}, - { - trimWhitespace: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['trimWhitespace']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['trimWhitespace']).toBe(true); - }); - }); - - it(`should set type defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - type: 'date' - }; - app.prop['columns'] = [ - {}, - { - type: 'text' - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['type']).toBe('date'); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['type']).toBe('text'); - }); - }); - - it(`should set uncheckedTemplate defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - uncheckedTemplate: false - }; - app.prop['columns'] = [ - {}, - { - uncheckedTemplate: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['uncheckedTemplate']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['uncheckedTemplate']).toBe(true); - }); - }); - - it(`should set undo defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - undo: false - }; - app.prop['columns'] = [ - {}, - { - undo: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['undo']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['undo']).toBe(true); - }); - }); - - it(`should set validator defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - validator: false - }; - app.prop['columns'] = [ - {}, - { - validator: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['validator']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['validator']).toBe(true); - }); - }); - - it(`should set viewportColumnRenderingOffset defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - viewportColumnRenderingOffset: false - }; - app.prop['columns'] = [ - {}, - { - viewportColumnRenderingOffset: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['viewportColumnRenderingOffset']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['viewportColumnRenderingOffset']).toBe(true); - }); - }); - - it(`should set viewportRowRenderingOffset defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - viewportRowRenderingOffset: false - }; - app.prop['columns'] = [ - {}, - { - viewportRowRenderingOffset: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['viewportRowRenderingOffset']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['viewportRowRenderingOffset']).toBe(true); - }); - }); - - it(`should set visibleRows defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - visibleRows: false - }; - app.prop['columns'] = [ - {}, - { - visibleRows: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['visibleRows']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['visibleRows']).toBe(true); - }); - }); - - it(`should set width defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - width: 100 - }; - app.prop['columns'] = [ - {}, - { - width: 10 - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['width']).toBe(void 0); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['width']).toBe(10); - }); - }); - - it(`should set wordWrap defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: ` - - - - ` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - app.prop['settings'] = { - wordWrap: false - }; - app.prop['columns'] = [ - {}, - { - wordWrap: true - } - ]; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getCellMeta(0, 0)['wordWrap']).toBe(false); - expect(app.getHotInstance(app.id).getCellMeta(0, 1)['wordWrap']).toBe(true); - }); - }); -}); diff --git a/src/app/hot-table-ce.component.spec.ts b/src/app/hot-table-ce.component.spec.ts new file mode 100644 index 0000000..d8621d9 --- /dev/null +++ b/src/app/hot-table-ce.component.spec.ts @@ -0,0 +1,4272 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import * as Handsontable from 'handsontable'; + +import { HotTableModule } from '@handsontable/angular'; +import { TestComponent } from './test-ce.component'; + +describe('HotTableComponent', () => { + let fixture: ComponentFixture; + + beforeEach((() => { + TestBed.configureTestingModule({ + imports: [ HotTableModule.forRoot() ], + declarations: [ TestComponent ], + }); + })); + + afterEach(() => { + if (fixture) { + fixture.destroy(); + } + }); + + it(`should render 'hot-table'`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const elem = fixture.nativeElement; + + fixture.detectChanges(); + + expect(elem.querySelectorAll('.handsontable').length).toBeGreaterThan(0); + }); + }); + + describe('inputs', () => { + it(`should add reference to 'hotRegisterer' by attribute`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + fixture.detectChanges(); + + expect(app.getHotInstance(app.id)).toBeTruthy(); + }); + }); + + it(`should register every hot-table component with added ID attribute`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: ` + + + + ` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['hotTableId'] = 'hot'; + + fixture.detectChanges(); + + expect(app.getHotInstance(app.prop['hotTableId'])).toBeDefined(); + expect(app.getHotInstance('hot1')).toBeDefined(); + expect(app.getHotInstance('hot2')).toBeDefined(); + }); + }); + + it(`should set 'settings' defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + data: Handsontable.helper.createSpreadsheetData(5, 5) + }; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getDataAtCell(0, 0)).toBe('A1'); + }); + }); + + it(`should set activeHeaderClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['activeHeaderClassName'] = 'active'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['activeHeaderClassName']).toBe('active'); + + app.prop['activeHeaderClassName'] = 'active_header'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['activeHeaderClassName']).toBe('active_header'); + }); + }); + + it(`should set allowEmpty defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['allowEmpty'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowEmpty']).toBe(false); + + app.prop['allowEmpty'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowEmpty']).toBe(true); + }); + }); + + it(`should set allowHtml defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['allowHtml'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowHtml']).toBe(false); + + app.prop['allowHtml'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowHtml']).toBe(true); + }); + }); + + it(`should set allowInsertColumn defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['allowInsertColumn'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowInsertColumn']).toBe(false); + + app.prop['allowInsertColumn'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowInsertColumn']).toBe(true); + }); + }); + + it(`should set allowInsertRow defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['allowInsertRow'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowInsertRow']).toBe(false); + + app.prop['allowInsertRow'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowInsertRow']).toBe(true); + }); + }); + + it(`should set allowInvalid defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['allowInvalid'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowInvalid']).toBe(false); + + app.prop['allowInvalid'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowInvalid']).toBe(true); + }); + }); + + it(`should set allowRemoveColumn defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['allowRemoveColumn'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowRemoveColumn']).toBe(false); + + app.prop['allowRemoveColumn'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowRemoveColumn']).toBe(true); + }); + }); + + it(`should set allowRemoveRow defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['allowRemoveRow'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowRemoveRow']).toBe(false); + + app.prop['allowRemoveRow'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['allowRemoveRow']).toBe(true); + }); + }); + + it(`should set autoColumnSize defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['autoColumnSize'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoColumnSize']).toBe(false); + + app.prop['autoColumnSize'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoColumnSize']).toBe(true); + + app.prop['autoColumnSize'] = { syncLimit: '40%' }; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoColumnSize']['syncLimit']).toBe('40%'); + }); + }); + + it(`should set autoRowSize defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['autoRowSize'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoRowSize']).toBe(false); + + app.prop['autoRowSize'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoRowSize']).toBe(true); + + app.prop['autoRowSize'] = { syncLimit: '40%' }; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoRowSize']['syncLimit']).toBe('40%'); + }); + }); + + it(`should set autoWrapCol defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['autoWrapCol'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoWrapCol']).toBe(false); + + app.prop['autoWrapCol'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoWrapCol']).toBe(true); + }); + }); + + it(`should set autoWrapRow defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['autoWrapRow'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoWrapRow']).toBe(false); + + app.prop['autoWrapRow'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['autoWrapRow']).toBe(true); + }); + }); + + it(`should set cell defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['cell'] = [ + {row: 0, col: 0, readOnly: true} + ]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(0, 0)['readOnly']).toBe(true); + }); + }); + + it(`should set cells defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['cells'] = function(row, column, prop) { + return { + className: `cell_${row}_${column}` + }; + }; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(2, 2)['className']).toBe('cell_2_2'); + }); + }); + + it(`should set checkedTemplate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['checkedTemplate'] = false + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(2, 2)['checkedTemplate']).toBe(false); + }); + }); + + it(`should set className defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['className'] = 'test' + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getCellMeta(2, 2)['className']).toBe('test'); + }); + }); + + it(`should set colHeaders defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['headers'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['colHeaders']).toBe(false); + + app.prop['headers'] = ['Header']; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['colHeaders'][0]).toBe('Header'); + }); + }); + + it(`should set columnHeaderHeight defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['columnHeaderHeight'] = 40; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['columnHeaderHeight']).toBe(40); + + app.prop['columnHeaderHeight'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['columnHeaderHeight']).toBe(10); + }); + }); + + it(`should set columns defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['columns'] = [{}, {}, {}]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['columns'].length).toBe(3); + + app.prop['columns'] = [{}]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['columns'].length).toBe(1); + }); + }); + it(`should set columnSorting defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['columnSorting'] = true; + fixture.detectChanges(); + + expect(app.getHotInstance(app.id).getSettings()['columnSorting']).toBe(true); + + app.prop['columnSorting'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['columnSorting']).toBe(false); + }); + }); + + it(`should set colWidths defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['colWidths'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['colWidths']).toBe(10); + + app.prop['colWidths'] = 40; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['colWidths']).toBe(40); + }); + }); + + it(`should set commentedCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['commentedCellClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['commentedCellClassName']).toBe('test'); + }); + }); + + it(`should set comments defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['comments'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['comments']).toBe(true); + }); + }); + + it(`should set contextMenu defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['contextMenu'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['contextMenu']).toBe(true); + }); + }); + + it(`should set copyable defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['copyable'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['copyable']).toBe(true); + }); + }); + + it(`should set copyPaste defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['copyPaste'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['copyPaste']).toBe(false); + }); + }); + + it(`should set correctFormat defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['correctFormat'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['correctFormat']).toBe(true); + }); + }); + + it(`should set currentColClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['currentColClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['currentColClassName']).toBe('test'); + }); + }); + + it(`should set currentHeaderClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['currentHeaderClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['currentHeaderClassName']).toBe('test'); + }); + }); + + it(`should set currentRowClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['currentRowClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['currentRowClassName']).toBe('test'); + }); + }); + + it(`should set customBorders defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['customBorders'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['customBorders']).toBe(true); + }); + }); + + it(`should set data defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['data'] = [[1, 2, 3]]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['data'][0][0]).toBe(1); + }); + }); + + it(`should set dataSchema defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['dataSchema'] = {attr: null}; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['dataSchema']['attr']).toBe(null); + }); + }); + + it(`should set dateFormat defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['dateFormat'] = 'hh:mm:ss'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['dateFormat']).toBe('hh:mm:ss'); + }); + }); + + it(`should set debug defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['debug'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['debug']).toBe(true); + }); + }); + + it(`should set defaultDate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['defaultDate'] = '1970-01-01'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['defaultDate']).toBe('1970-01-01'); + }); + }); + + it(`should set disableVisualSelection defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['disableVisualSelection'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['disableVisualSelection']).toBe(true); + }); + }); + + it(`should set editor defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['editor'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['editor']).toBe(false); + }); + }); + + it(`should set enterBeginsEditing defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['enterBeginsEditing'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['enterBeginsEditing']).toBe(false); + }); + }); + + it(`should set enterMoves defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['enterMoves'] = {attr: 1}; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['enterMoves']['attr']).toBe(1); + }); + }); + + it(`should set fillHandle defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['fillHandle'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['fillHandle']).toBe(false); + }); + }); + + it(`should set filter defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['filter'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['filter']).toBe(true); + }); + }); + + it(`should set filteringCaseSensitive defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['filteringCaseSensitive'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['filteringCaseSensitive']).toBe(true); + }); + }); + + it(`should set fixedColumnsLeft defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['fixedColumnsLeft'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['fixedColumnsLeft']).toBe(10); + }); + }); + + it(`should set fixedRowsTop defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['fixedRowsTop'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['fixedRowsTop']).toBe(10); + }); + }); + + it(`should set fragmentSelection defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['fragmentSelection'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['fragmentSelection']).toBe(true); + }); + }); + + it(`should set height defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['height'] = 100; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['height']).toBe(100); + }); + }); + + it(`should set invalidCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['invalidCellClassName'] = 'invalid'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['invalidCellClassName']).toBe('invalid'); + }); + }); + + it(`should set label defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['label'] = { attr: 1 }; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['label']['attr']).toBe(1); + }); + }); + + it(`should set language defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['language'] = 'en-US'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['language']).toBe('en-US'); + }); + }); + + it(`should set manualColumnFreeze defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['manualColumnFreeze'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['manualColumnFreeze']).toBe(true); + }); + }); + + it(`should set manualColumnMove defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['manualColumnMove'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['manualColumnMove']).toBe(true); + }); + }); + + it(`should set manualColumnResize defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['manualColumnResize'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['manualColumnResize']).toBe(true); + }); + }); + + it(`should set manualRowMove defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['manualRowMove'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['manualRowMove']).toBe(true); + }); + }); + + it(`should set manualRowResize defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['manualRowResize'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['manualRowResize']).toBe(true); + }); + }); + + it(`should set maxCols defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['maxCols'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['maxCols']).toBe(10); + }); + }); + + it(`should set maxRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['maxRows'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['maxRows']).toBe(10); + }); + }); + + it(`should set mergeCells defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['mergeCells'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['mergeCells']).toBe(true); + }); + }); + + it(`should set minCols defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['minCols'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['minCols']).toBe(10); + }); + }); + + it(`should set minRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['minRows'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['minRows']).toBe(10); + }); + }); + + it(`should set minSpareCols defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['minSpareCols'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['minSpareCols']).toBe(10); + }); + }); + + it(`should set minSpareRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['minSpareRows'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['minSpareRows']).toBe(10); + }); + }); + + it(`should set noWordWrapClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['noWordWrapClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['noWordWrapClassName']).toBe('test'); + }); + }); + + xit(`should set observeChanges defined as bindings`, () => { + // `observeChanges` plugin is unstable + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['observeChanges'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['observeChanges']).toBe(true); + }); + }); + + it(`should set observeDOMVisibility defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['observeDOMVisibility'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['observeDOMVisibility']).toBe(false); + }); + }); + + it(`should set outsideClickDeselects defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['outsideClickDeselects'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['outsideClickDeselects']).toBe(false); + }); + }); + + it(`should set persistentState defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['persistentState'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['persistentState']).toBe(true); + }); + }); + + it(`should set placeholder defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['placeholder'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['placeholder']).toBe(true); + }); + }); + + it(`should set placeholderCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['placeholderCellClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['placeholderCellClassName']).toBe('test'); + }); + }); + + it(`should set preventOverflow defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['preventOverflow'] = 'horizontal'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['preventOverflow']).toBe('horizontal'); + + app.prop['preventOverflow'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['preventOverflow']).toBe(false); + }); + }); + + it(`should set readOnly defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['readOnly'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['readOnly']).toBe(true); + }); + }); + + it(`should set readOnlyCellClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['readOnlyCellClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['readOnlyCellClassName']).toBe('test'); + }); + }); + + it(`should set renderAllRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['renderAllRows'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['renderAllRows']).toBe(true); + }); + }); + + it(`should set renderer defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['renderer'] = 'text'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['renderer']).toBe('text'); + }); + }); + + it(`should set rowHeaders defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['rowHeaders'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['rowHeaders']).toBe(true); + }); + }); + + it(`should set rowHeaderWidth defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['rowHeaderWidth'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['rowHeaderWidth']).toBe(10); + }); + }); + + it(`should set rowHeights defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['rowHeights'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['rowHeights']).toBe(10); + }); + }); + + it(`should set search defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['search'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['search']).toBe(true); + }); + }); + + it(`should set selectionMode defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['selectionMode']).toBe('multiple'); + + app.prop['selectionMode'] = 'single'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['selectionMode']).toBe('single'); + + app.prop['selectionMode'] = 'range'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['selectionMode']).toBe('range'); + }); + }); + + it(`should set selectOptions defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['selectOptions'] = ['test']; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['selectOptions'][0]).toBe('test'); + }); + }); + + it(`should set skipColumnOnPaste defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['skipColumnOnPaste'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['skipColumnOnPaste']).toBe(true); + }); + }); + + it(`should set sortByRelevance defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['sortByRelevance'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['sortByRelevance']).toBe(true); + }); + }); + + it(`should set sortFunction defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['sortFunction'] = function() { + return function() { } + }; + fixture.detectChanges(); + expect(typeof app.getHotInstance(app.id).getSettings()['sortFunction']).toBe('function'); + }); + }); + + it(`should set sortIndicator defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['sortIndicator'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['sortIndicator']).toBe(true); + }); + }); + + it(`should set source defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['source'] = [0, 1, 2]; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['source'][1]).toBe(1); + }); + }); + + it(`should set startCols defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['startCols'] = 1; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['startCols']).toBe(1); + }); + }); + + it(`should set startRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['startRows'] = 1; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['startRows']).toBe(1); + }); + }); + + it(`should set stretchH defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['stretchH'] = 'all'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['stretchH']).toBe('all'); + }); + }); + + it(`should set strict defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['strict'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['strict']).toBe(true); + }); + }); + + it(`should set tableClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['tableClassName'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['tableClassName']).toBe('test'); + }); + }); + + it(`should set tabMoves defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['tabMoves'] = {attr: 1}; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['tabMoves']['attr']).toBe(1); + }); + }); + + it(`should set title defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['title'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['title']).toBe('test'); + }); + }); + + it(`should set trimDropdown defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['trimDropdown'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['trimDropdown']).toBe(true); + }); + }); + + it(`should set trimWhitespace defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['trimWhitespace'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['trimWhitespace']).toBe(true); + }); + }); + + it(`should set type defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['type'] = 'date'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['type']).toBe('date'); + }); + }); + + it(`should set uncheckedTemplate defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['uncheckedTemplate'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['uncheckedTemplate']).toBe(true); + }); + }); + + it(`should set undo defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['undo'] = true; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['undo']).toBe(true); + }); + }); + + it(`should set validator defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['validator'] = 'test'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['validator']).toBe('test'); + }); + }); + + it(`should set viewportColumnRenderingOffset defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['viewportColumnRenderingOffset'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['viewportColumnRenderingOffset']).toBe(10); + }); + }); + + it(`should set viewportRowRenderingOffset defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['viewportRowRenderingOffset'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['viewportRowRenderingOffset']).toBe(10); + }); + }); + + it(`should set visibleRows defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['visibleRows'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['visibleRows']).toBe(10); + }); + }); + + it(`should set width defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['width'] = 10; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['width']).toBe(10); + }); + }); + + it(`should set wordWrap defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['wordWrap'] = false; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['wordWrap']).toBe(false); + }); + }); + }); + + describe('hooks', () => { + it(`should use Handsontable instance as a first argument, if is defined as a property in settings object`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterInit: (hot) => { + return hot; + } + } + + fixture.detectChanges(); + + const constructorName = app.getHotInstance(app.id).constructor.name; + expect(app.getHotInstance(app.id).runHooks('afterInit').constructor.name).toBe(constructorName); + }); + }); + + it(`should run afterBeginEditing hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterBeginEditing: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterBeginEditing')).toBe('test'); + }); + }); + + it(`should run afterCellMetaReset hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterCellMetaReset: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterCellMetaReset')).toBe('test'); + }); + }); + + it(`should run afterChange hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterChange: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterChange')).toBe('test'); + }); + }); + + it(`should run afterChangesObserved hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterChangesObserved: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterChangesObserved')).toBe('test'); + }); + }); + + it(`should run afterColumnMove hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterColumnMove: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterColumnMove')).toBe('test'); + }); + }); + + it(`should run afterColumnResize hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterColumnResize: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterColumnResize')).toBe('test'); + }); + }); + + it(`should run afterColumnSort hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterColumnSort: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterColumnSort')).toBe('test'); + }); + }); + + it(`should run afterContextMenuDefaultOptions hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + contextMenu: true, + afterContextMenuDefaultOptions: function(items) { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterContextMenuDefaultOptions', {items: []})).toBe('test'); + }); + }); + + it(`should run afterContextMenuHide hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterContextMenuHide: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterContextMenuHide')).toBe('test'); + }); + }); + + it(`should run afterContextMenuShow hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterContextMenuShow: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterContextMenuShow')).toBe('test'); + }); + }); + + it(`should run afterCopy hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterCopy: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterCopy')).toBe('test'); + }); + }); + + it(`should run afterCopyLimit hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterCopyLimit: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterCopyLimit')).toBe('test'); + }); + }); + + it(`should run afterCreateCol hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterCreateCol: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterCreateCol')).toBe('test'); + }); + }); + + it(`should run afterCreateRow hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterCreateRow: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterCreateRow')).toBe('test'); + }); + }); + + it(`should run afterCut hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterCut: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterCut')).toBe('test'); + }); + }); + + it(`should run afterDeselect hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterDeselect: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterDeselect')).toBe('test'); + }); + }); + + it(`should run afterDestroy hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterDestroy: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterDestroy')).toBe('test'); + }); + }); + + it(`should run afterDocumentKeyDown hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterDocumentKeyDown: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterDocumentKeyDown')).toBe('test'); + }); + }); + + it(`should run afterGetCellMeta hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterGetCellMeta: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterGetCellMeta')).toBe('test'); + }); + }); + + it(`should run afterGetColHeader hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + colHeaders: true, + afterGetColHeader: () => { + return 'test'; + } + } + + fixture.detectChanges(); + + const elem = fixture.nativeElement; + const TH = elem.querySelector('th'); + + expect(app.getHotInstance(app.id).runHooks('afterGetColHeader', 0, TH)).toBe('test'); + }); + }); + + it(`should run afterGetColumnHeaderRenderers hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + let afterGetColumnHeaderRenderersCount = 0; + + app.prop['settings'] = { + afterGetColumnHeaderRenderers: () => { + afterGetColumnHeaderRenderersCount++; + } + } + + fixture.detectChanges(); + expect(afterGetColumnHeaderRenderersCount).toBeGreaterThan(0); + }); + }); + + it(`should run afterGetRowHeader hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterGetRowHeader: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterGetRowHeader')).toBe('test'); + }); + }); + + it(`should run afterGetRowHeaderRenderers hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterGetRowHeaderRenderers: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterGetRowHeaderRenderers')).toBe('test'); + }); + }); + + it(`should run afterInit hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterInit: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterInit')).toBe('test'); + }); + }); + + it(`should run afterLoadData hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterLoadData: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterLoadData')).toBe('test'); + }); + }); + + it(`should run afterModifyTransformEnd hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterModifyTransformEnd: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterModifyTransformEnd')).toBe('test'); + }); + }); + + it(`should run afterModifyTransformStart hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterModifyTransformStart: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterModifyTransformStart')).toBe('test'); + }); + }); + + it(`should run afterMomentumScroll hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterMomentumScroll: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterMomentumScroll')).toBe('test'); + }); + }); + + it(`should run afterOnCellCornerDblClick hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterOnCellCornerDblClick: () => { + return 'test'; + } + } + fixture.detectChanges(); + app.getHotInstance(app.id).selectCell(0, 0); + expect(app.getHotInstance(app.id).runHooks('afterOnCellCornerDblClick')).toBe('test'); + }); + }); + + it(`should run afterOnCellCornerMouseDown hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterOnCellCornerMouseDown: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterOnCellCornerMouseDown')).toBe('test'); + }); + }); + + it(`should run afterOnCellMouseDown hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterOnCellMouseDown: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterOnCellMouseDown')).toBe('test'); + }); + }); + + it(`should run afterOnCellMouseOver hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterOnCellMouseOver: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterOnCellMouseOver')).toBe('test'); + }); + }); + + it(`should run afterOnCellMouseOut hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterOnCellMouseOut: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterOnCellMouseOut')).toBe('test'); + }); + }); + + it(`should run afterPluginsInitialized hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterPluginsInitialized: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterPluginsInitialized')).toBe('test'); + }); + }); + + it(`should run afterRedo hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterRedo: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterRedo')).toBe('test'); + }); + }); + + it(`should run afterRemoveCol hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterRemoveCol: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterRemoveCol')).toBe('test'); + }); + }); + + it(`should run afterRemoveRow hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterRemoveRow: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterRemoveRow')).toBe('test'); + }); + }); + + it(`should run afterRender hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterRender: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterRender')).toBe('test'); + }); + }); + + it(`should run afterRenderer hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterRenderer: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterRenderer')).toBe('test'); + }); + }); + + it(`should run afterRowMove hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterRowMove: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterRowMove')).toBe('test'); + }); + }); + + it(`should run afterRowResize hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterRowResize: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterRowResize')).toBe('test'); + }); + }); + + it(`should run afterScrollHorizontally hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterScrollHorizontally: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterScrollHorizontally')).toBe('test'); + }); + }); + + it(`should run afterScrollVertically hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterScrollVertically: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterScrollVertically')).toBe('test'); + }); + }); + + it(`should run afterSelection hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterSelection: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterSelection')).toBe('test'); + }); + }); + + it(`should run afterSelectionByProp hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterSelectionByProp: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterSelectionByProp')).toBe('test'); + }); + }); + + it(`should run afterSelectionEnd hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterSelectionEnd: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterSelectionEnd')).toBe('test'); + }); + }); + + it(`should run afterSelectionEndByProp hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterSelectionEndByProp: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterSelectionEndByProp')).toBe('test'); + }); + }); + + it(`should run afterSetCellMeta hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterSetCellMeta: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterSetCellMeta')).toBe('test'); + }); + }); + + it(`should run afterSetDataAtCell hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterSetDataAtCell: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterSetDataAtCell')).toBe('test'); + }); + }); + + it(`should run afterSetDataAtRowProp hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterSetDataAtRowProp: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterSetDataAtRowProp')).toBe('test'); + }); + }); + + it(`should run afterUndo hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterUndo: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterUndo')).toBe('test'); + }); + }); + + it(`should run afterUpdateSettings hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterUpdateSettings: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterUpdateSettings')).toBe('test'); + }); + }); + + it(`should run afterValidate hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterValidate: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterValidate')).toBe('test'); + }); + }); + + it(`should run afterViewportColumnCalculatorOverride hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterViewportColumnCalculatorOverride: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterViewportColumnCalculatorOverride')).toBe('test'); + }); + }); + + it(`should run afterViewportRowCalculatorOverride hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + afterViewportRowCalculatorOverride: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('afterViewportRowCalculatorOverride')).toBe('test'); + }); + }); + + it(`should run beforeAutofill hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeAutofill: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeAutofill')).toBe('test'); + }); + }); + + it(`should run beforeAutofillInsidePopulate hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeAutofillInsidePopulate: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeAutofillInsidePopulate')).toBe('test'); + }); + }); + + it(`should run beforeCellAlignment hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeCellAlignment: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeCellAlignment')).toBe('test'); + }); + }); + + it(`should run beforeChange hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeChange: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeChange', [[0, 0, '', '']])).toBe('test'); + }); + }); + + it(`should run beforeChangeRender hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeChangeRender: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeChangeRender')).toBe('test'); + }); + }); + + it(`should run beforeColumnMove hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeColumnMove: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeColumnMove')).toBe('test'); + }); + }); + + it(`should run beforeColumnResize hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeColumnResize: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeColumnResize')).toBe('test'); + }); + }); + + it(`should run beforeColumnSort hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeColumnSort: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeColumnSort')).toBe('test'); + }); + }); + + it(`should run beforeContextMenuSetItems hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeContextMenuSetItems: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeContextMenuSetItems')).toBe('test'); + }); + }); + + it(`should run beforeCopy hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeCopy: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeCopy')).toBe('test'); + }); + }); + + it(`should run beforeCreateCol hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeCreateCol: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeCreateCol')).toBe('test'); + }); + }); + + it(`should run beforeCreateRow hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeCreateRow: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeCreateRow')).toBe('test'); + }); + }); + + it(`should run beforeCut hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeCut: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeCut')).toBe('test'); + }); + }); + + it(`should run beforeDrawBorders hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeDrawBorders: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeDrawBorders')).toBe('test'); + }); + }); + + it(`should run beforeGetCellMeta hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeGetCellMeta: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeGetCellMeta')).toBe('test'); + }); + }); + + it(`should run beforeInit hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeInit: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeInit')).toBe('test'); + }); + }); + + it(`should run beforeInitWalkontable hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeInitWalkontable: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeInitWalkontable')).toBe('test'); + }); + }); + + it(`should run beforeKeyDown hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeKeyDown: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeKeyDown')).toBe('test'); + }); + }); + + it(`should run beforeOnCellMouseDown hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeOnCellMouseDown: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeOnCellMouseDown')).toBe('test'); + }); + }); + + it(`should run beforeOnCellMouseOut hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeOnCellMouseOut: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeOnCellMouseOut')).toBe('test'); + }); + }); + + it(`should run beforeOnCellMouseOver hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeOnCellMouseOver: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeOnCellMouseOver')).toBe('test'); + }); + }); + + it(`should run beforePaste hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforePaste: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforePaste')).toBe('test'); + }); + }); + + it(`should run beforeRedo hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeRedo: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeRedo')).toBe('test'); + }); + }); + + it(`should run beforeRemoveCol hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeRemoveCol: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeRemoveCol')).toBe('test'); + }); + }); + + it(`should run beforeRemoveRow hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeRemoveRow: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeRemoveRow')).toBe('test'); + }); + }); + + it(`should run beforeRender hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeRender: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeRender')).toBe('test'); + }); + }); + + it(`should run beforeRenderer hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeRenderer: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeRenderer')).toBe('test'); + }); + }); + + it(`should run beforeRowMove hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeRowMove: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeRowMove')).toBe('test'); + }); + }); + + it(`should run beforeRowResize hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeRowResize: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeRowResize')).toBe('test'); + }); + }); + + it(`should run beforeSetRangeEnd hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeSetRangeEnd: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeSetRangeEnd')).toBe('test'); + }); + }); + + it(`should run beforeSetRangeStart hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeSetRangeStart: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeSetRangeStart')).toBe('test'); + }); + }); + + it(`should run beforeStretchingColumnWidth hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeStretchingColumnWidth: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeStretchingColumnWidth')).toBe('test'); + }); + }); + + it(`should run beforeTouchScroll hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeTouchScroll: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeTouchScroll')).toBe('test'); + }); + }); + + it(`should run beforeUndo hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeUndo: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeUndo')).toBe('test'); + }); + }); + + it(`should run beforeValidate hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeValidate: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeValidate')).toBe('test'); + }); + }); + + it(`should run beforeValueRender hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + beforeValueRender: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('beforeValueRender')).toBe('test'); + }); + }); + + it(`should run construct hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + construct: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('construct')).toBe('test'); + }); + }); + + it(`should run init hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + init: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('init')).toBe('test'); + }); + }); + + it(`should run manualRowHeights hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + manualRowHeights: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('manualRowHeights')).toBe('test'); + }); + }); + + it(`should run modifyAutofillRange hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyAutofillRange: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyAutofillRange')).toBe('test'); + }); + }); + + it(`should run modifyCol hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyCol: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyCol')).toBe('test'); + }); + }); + + it(`should run modifyColHeader hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyColHeader: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyColHeader')).toBe('test'); + }); + }); + + it(`should run modifyColumnHeaderHeight hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyColumnHeaderHeight: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyColumnHeaderHeight')).toBe('test'); + }); + }); + + it(`should run modifyColWidth hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyColWidth: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyColWidth')).toBe('test'); + }); + }); + + it(`should run modifyCopyableRange hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyCopyableRange: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyCopyableRange')).toBe('test'); + }); + }); + + it(`should run modifyData hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyData: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyData')).toBe('test'); + }); + }); + + it(`should run modifyRow hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyRow: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyRow')).toBe('test'); + }); + }); + + it(`should run modifyRowHeader hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyRowHeader: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyRowHeader')).toBe('test'); + }); + }); + + it(`should run modifyRowHeaderWidth hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyRowHeaderWidth: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyRowHeaderWidth')).toBe('test'); + }); + }); + + it(`should run modifyRowHeight hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyRowHeight: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyRowHeight')).toBe('test'); + }); + }); + + it(`should run modifyRowData hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyRowData: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyRowData')).toBe('test'); + }); + }); + + it(`should run modifyTransformEnd hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyTransformEnd: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyTransformEnd')).toBe('test'); + }); + }); + + it(`should run modifyTransformStart hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + modifyTransformStart: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('modifyTransformStart')).toBe('test'); + }); + }); + + it(`should run persistentStateLoad hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + persistentStateLoad: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('persistentStateLoad')).toBe('test'); + }); + }); + + it(`should run persistentStateReset hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + persistentStateReset: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('persistentStateReset')).toBe('test'); + }); + }); + + it(`should run persistentStateSave hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + persistentStateSave: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('persistentStateSave')).toBe('test'); + }); + }); + + it(`should run skipLengthCache hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + skipLengthCache: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('skipLengthCache')).toBe('test'); + }); + }); + + it(`should run unmodifyCol hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + unmodifyCol: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('unmodifyCol')).toBe('test'); + }); + }); + + it(`should run unmodifyRow hook defined in settings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['settings'] = { + unmodifyRow: () => { + return 'test'; + } + } + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).runHooks('unmodifyRow')).toBe('test'); + }); + }); + }); +}); diff --git a/src/app/hot-table.component.spec.ts b/src/app/hot-table-pro.component.spec.ts similarity index 95% rename from src/app/hot-table.component.spec.ts rename to src/app/hot-table-pro.component.spec.ts index b7d6778..39117fd 100644 --- a/src/app/hot-table.component.spec.ts +++ b/src/app/hot-table-pro.component.spec.ts @@ -2,7 +2,7 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; import * as Handsontable from 'handsontable-pro'; import { HotTableModule } from '@handsontable-pro/angular'; -import { TestComponent } from './test.component'; +import { TestComponent } from './test-pro.component'; describe('HotTableComponent', () => { let fixture: ComponentFixture; @@ -96,6 +96,26 @@ describe('HotTableComponent', () => { }); }); + it(`should set activeHeaderClassName defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + app.prop['activeHeaderClassName'] = 'active'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['activeHeaderClassName']).toBe('active'); + + app.prop['activeHeaderClassName'] = 'active_header'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['activeHeaderClassName']).toBe('active_header'); + }); + }); + it(`should set allowEmpty defined as bindings`, () => { TestBed.overrideComponent(TestComponent, { set: { @@ -260,25 +280,6 @@ describe('HotTableComponent', () => { }); }); - it(`should set autoComplete defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: `` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getSettings()['autoComplete']).toBeUndefined(); - - app.prop['autoComplete'] = ['A']; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getSettings()['autoComplete'][0]).toBe('A'); - }); - }); - it(`should set autoRowSize defined as bindings`, () => { TestBed.overrideComponent(TestComponent, { set: { @@ -355,7 +356,7 @@ describe('HotTableComponent', () => { app.prop['bindRowsWithHeaders'] = false; fixture.detectChanges(); - expect(app.getHotInstance(app.id).getSettings()['autoWrapRow']).toBe(false); + expect(app.getHotInstance(app.id).getSettings()['bindRowsWithHeaders']).toBe(false); app.prop['bindRowsWithHeaders'] = 'loose'; fixture.detectChanges(); @@ -450,9 +451,9 @@ describe('HotTableComponent', () => { fixture.detectChanges(); expect(app.getHotInstance(app.id).getSettings()['colHeaders']).toBe(false); - app.prop['headers'] = 'Header'; + app.prop['headers'] = ['Header']; fixture.detectChanges(); - expect(app.getHotInstance(app.id).getSettings()['colHeaders']).toBe('Header'); + expect(app.getHotInstance(app.id).getSettings()['colHeaders'][0]).toBe('Header'); }); }); @@ -1362,22 +1363,6 @@ describe('HotTableComponent', () => { }); }); - it(`should set multiSelect defined as bindings`, () => { - TestBed.overrideComponent(TestComponent, { - set: { - template: `` - } - }); - TestBed.compileComponents().then(() => { - fixture = TestBed.createComponent(TestComponent); - const app = fixture.componentInstance; - - app.prop['multiSelect'] = true; - fixture.detectChanges(); - expect(app.getHotInstance(app.id).getSettings()['multiSelect']).toBe(true); - }); - }); - it(`should set nestedHeaders defined as bindings`, () => { TestBed.overrideComponent(TestComponent, { set: { @@ -1656,6 +1641,29 @@ describe('HotTableComponent', () => { }); }); + it(`should set selectionMode defined as bindings`, () => { + TestBed.overrideComponent(TestComponent, { + set: { + template: `` + } + }); + TestBed.compileComponents().then(() => { + fixture = TestBed.createComponent(TestComponent); + const app = fixture.componentInstance; + + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['selectionMode']).toBe('multiple'); + + app.prop['selectionMode'] = 'single'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['selectionMode']).toBe('single'); + + app.prop['selectionMode'] = 'range'; + fixture.detectChanges(); + expect(app.getHotInstance(app.id).getSettings()['selectionMode']).toBe('range'); + }); + }); + it(`should set selectOptions defined as bindings`, () => { TestBed.overrideComponent(TestComponent, { set: { @@ -1715,10 +1723,10 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['sortFunction'] = function() { - return 'test' + return function() { } }; fixture.detectChanges(); - expect(app.getHotInstance(app.id).getSettings()['sortFunction']()).toBe('test'); + expect(typeof app.getHotInstance(app.id).getSettings()['sortFunction']).toBe('function'); }); }); @@ -2059,8 +2067,8 @@ describe('HotTableComponent', () => { }); }); - describe('outputs', () => { - it(`should use Handsontable instance as a context, if is defined as a property in settings object`, () => { + describe('hooks', () => { + it(`should use Handsontable instance as a first argument, if is defined as a property in settings object`, () => { TestBed.overrideComponent(TestComponent, { set: { template: `` @@ -2071,8 +2079,8 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterInit: function() { - return this; + afterInit: (hot) => { + return hot; } } @@ -2094,7 +2102,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterAddChild: function() { + afterAddChild: () => { return 'test'; } } @@ -2115,7 +2123,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterBeginEditing: function() { + afterBeginEditing: () => { return 'test'; } } @@ -2136,7 +2144,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterCellMetaReset: function() { + afterCellMetaReset: () => { return 'test'; } } @@ -2157,7 +2165,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterChange: function() { + afterChange: () => { return 'test'; } } @@ -2178,7 +2186,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterChangesObserved: function() { + afterChangesObserved: () => { return 'test'; } } @@ -2199,7 +2207,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterColumnMove: function() { + afterColumnMove: () => { return 'test'; } } @@ -2220,7 +2228,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterColumnResize: function() { + afterColumnResize: () => { return 'test'; } } @@ -2241,7 +2249,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterColumnSort: function() { + afterColumnSort: () => { return 'test'; } } @@ -2284,7 +2292,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterContextMenuHide: function() { + afterContextMenuHide: () => { return 'test'; } } @@ -2305,7 +2313,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterContextMenuShow: function() { + afterContextMenuShow: () => { return 'test'; } } @@ -2326,7 +2334,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterCopy: function() { + afterCopy: () => { return 'test'; } } @@ -2347,7 +2355,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterCopyLimit: function() { + afterCopyLimit: () => { return 'test'; } } @@ -2368,7 +2376,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterCreateCol: function() { + afterCreateCol: () => { return 'test'; } } @@ -2389,7 +2397,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterCreateRow: function() { + afterCreateRow: () => { return 'test'; } } @@ -2410,7 +2418,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterCut: function() { + afterCut: () => { return 'test'; } } @@ -2431,7 +2439,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterDeselect: function() { + afterDeselect: () => { return 'test'; } } @@ -2452,7 +2460,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterDestroy: function() { + afterDestroy: () => { return 'test'; } } @@ -2473,7 +2481,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterDetachChild: function() { + afterDetachChild: () => { return 'test'; } } @@ -2494,7 +2502,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterDocumentKeyDown: function() { + afterDocumentKeyDown: () => { return 'test'; } } @@ -2515,7 +2523,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterDropdownMenuDefaultOptions: function() { + afterDropdownMenuDefaultOptions: () => { return 'test'; } } @@ -2536,7 +2544,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterDropdownMenuHide: function() { + afterDropdownMenuHide: () => { return 'test'; } } @@ -2557,7 +2565,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterDropdownMenuShow: function() { + afterDropdownMenuShow: () => { return 'test'; } } @@ -2578,7 +2586,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterFilter: function() { + afterFilter: () => { return 'test'; } } @@ -2599,7 +2607,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterGetCellMeta: function() { + afterGetCellMeta: () => { return 'test'; } } @@ -2621,7 +2629,7 @@ describe('HotTableComponent', () => { app.prop['settings'] = { colHeaders: true, - afterGetColHeader: function() { + afterGetColHeader: () => { return 'test'; } } @@ -2647,7 +2655,7 @@ describe('HotTableComponent', () => { let afterGetColumnHeaderRenderersCount = 0; app.prop['settings'] = { - afterGetColumnHeaderRenderers: function() { + afterGetColumnHeaderRenderers: () => { afterGetColumnHeaderRenderersCount++; } } @@ -2668,7 +2676,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterGetRowHeader: function() { + afterGetRowHeader: () => { return 'test'; } } @@ -2689,7 +2697,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterGetRowHeaderRenderers: function() { + afterGetRowHeaderRenderers: () => { return 'test'; } } @@ -2710,7 +2718,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterInit: function() { + afterInit: () => { return 'test'; } } @@ -2731,7 +2739,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterLoadData: function() { + afterLoadData: () => { return 'test'; } } @@ -2752,7 +2760,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterModifyTransformEnd: function() { + afterModifyTransformEnd: () => { return 'test'; } } @@ -2773,7 +2781,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterModifyTransformStart: function() { + afterModifyTransformStart: () => { return 'test'; } } @@ -2794,7 +2802,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterMomentumScroll: function() { + afterMomentumScroll: () => { return 'test'; } } @@ -2815,7 +2823,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterOnCellCornerDblClick: function() { + afterOnCellCornerDblClick: () => { return 'test'; } } @@ -2836,7 +2844,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterOnCellCornerMouseDown: function() { + afterOnCellCornerMouseDown: () => { return 'test'; } } @@ -2857,7 +2865,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterOnCellMouseDown: function() { + afterOnCellMouseDown: () => { return 'test'; } } @@ -2878,7 +2886,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterOnCellMouseOver: function() { + afterOnCellMouseOver: () => { return 'test'; } } @@ -2899,7 +2907,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterOnCellMouseOut: function() { + afterOnCellMouseOut: () => { return 'test'; } } @@ -2920,7 +2928,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterPluginsInitialized: function() { + afterPluginsInitialized: () => { return 'test'; } } @@ -2941,7 +2949,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterRedo: function() { + afterRedo: () => { return 'test'; } } @@ -2962,7 +2970,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterRemoveCol: function() { + afterRemoveCol: () => { return 'test'; } } @@ -2983,7 +2991,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterRemoveRow: function() { + afterRemoveRow: () => { return 'test'; } } @@ -3004,7 +3012,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterRender: function() { + afterRender: () => { return 'test'; } } @@ -3025,7 +3033,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterRenderer: function() { + afterRenderer: () => { return 'test'; } } @@ -3046,7 +3054,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterRowMove: function() { + afterRowMove: () => { return 'test'; } } @@ -3067,7 +3075,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterRowResize: function() { + afterRowResize: () => { return 'test'; } } @@ -3088,7 +3096,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterScrollHorizontally: function() { + afterScrollHorizontally: () => { return 'test'; } } @@ -3109,7 +3117,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterScrollVertically: function() { + afterScrollVertically: () => { return 'test'; } } @@ -3130,7 +3138,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterSelection: function() { + afterSelection: () => { return 'test'; } } @@ -3151,7 +3159,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterSelectionByProp: function() { + afterSelectionByProp: () => { return 'test'; } } @@ -3172,7 +3180,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterSelectionEnd: function() { + afterSelectionEnd: () => { return 'test'; } } @@ -3193,7 +3201,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterSelectionEndByProp: function() { + afterSelectionEndByProp: () => { return 'test'; } } @@ -3214,7 +3222,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterSetCellMeta: function() { + afterSetCellMeta: () => { return 'test'; } } @@ -3235,7 +3243,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterSetDataAtCell: function() { + afterSetDataAtCell: () => { return 'test'; } } @@ -3256,7 +3264,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterSetDataAtRowProp: function() { + afterSetDataAtRowProp: () => { return 'test'; } } @@ -3277,7 +3285,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterTrimRow: function() { + afterTrimRow: () => { return 'test'; } } @@ -3298,7 +3306,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterUndo: function() { + afterUndo: () => { return 'test'; } } @@ -3319,7 +3327,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterUntrimRow: function() { + afterUntrimRow: () => { return 'test'; } } @@ -3340,7 +3348,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterUpdateSettings: function() { + afterUpdateSettings: () => { return 'test'; } } @@ -3361,7 +3369,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterValidate: function() { + afterValidate: () => { return 'test'; } } @@ -3382,7 +3390,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterViewportColumnCalculatorOverride: function() { + afterViewportColumnCalculatorOverride: () => { return 'test'; } } @@ -3403,7 +3411,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - afterViewportRowCalculatorOverride: function() { + afterViewportRowCalculatorOverride: () => { return 'test'; } } @@ -3424,7 +3432,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeAddChild: function() { + beforeAddChild: () => { return 'test'; } } @@ -3445,7 +3453,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeAutofill: function() { + beforeAutofill: () => { return 'test'; } } @@ -3466,7 +3474,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeAutofillInsidePopulate: function() { + beforeAutofillInsidePopulate: () => { return 'test'; } } @@ -3487,7 +3495,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeCellAlignment: function() { + beforeCellAlignment: () => { return 'test'; } } @@ -3508,7 +3516,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeChange: function() { + beforeChange: () => { return 'test'; } } @@ -3529,7 +3537,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeChangeRender: function() { + beforeChangeRender: () => { return 'test'; } } @@ -3550,7 +3558,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeColumnMove: function() { + beforeColumnMove: () => { return 'test'; } } @@ -3571,7 +3579,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeColumnResize: function() { + beforeColumnResize: () => { return 'test'; } } @@ -3592,7 +3600,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeColumnSort: function() { + beforeColumnSort: () => { return 'test'; } } @@ -3613,7 +3621,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeContextMenuSetItems: function() { + beforeContextMenuSetItems: () => { return 'test'; } } @@ -3634,7 +3642,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeCopy: function() { + beforeCopy: () => { return 'test'; } } @@ -3655,7 +3663,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeCreateCol: function() { + beforeCreateCol: () => { return 'test'; } } @@ -3676,7 +3684,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeCreateRow: function() { + beforeCreateRow: () => { return 'test'; } } @@ -3697,7 +3705,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeCut: function() { + beforeCut: () => { return 'test'; } } @@ -3718,7 +3726,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeDetachChild: function() { + beforeDetachChild: () => { return 'test'; } } @@ -3739,7 +3747,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeDrawBorders: function() { + beforeDrawBorders: () => { return 'test'; } } @@ -3760,7 +3768,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeDropdownMenuSetItems: function() { + beforeDropdownMenuSetItems: () => { return 'test'; } } @@ -3781,7 +3789,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeFilter: function() { + beforeFilter: () => { return 'test'; } } @@ -3802,7 +3810,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeGetCellMeta: function() { + beforeGetCellMeta: () => { return 'test'; } } @@ -3823,7 +3831,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeInit: function() { + beforeInit: () => { return 'test'; } } @@ -3844,7 +3852,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeInitWalkontable: function() { + beforeInitWalkontable: () => { return 'test'; } } @@ -3865,7 +3873,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeKeyDown: function() { + beforeKeyDown: () => { return 'test'; } } @@ -3886,7 +3894,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeOnCellMouseDown: function() { + beforeOnCellMouseDown: () => { return 'test'; } } @@ -3907,7 +3915,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeOnCellMouseOut: function() { + beforeOnCellMouseOut: () => { return 'test'; } } @@ -3928,7 +3936,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeOnCellMouseOver: function() { + beforeOnCellMouseOver: () => { return 'test'; } } @@ -3949,7 +3957,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforePaste: function() { + beforePaste: () => { return 'test'; } } @@ -3970,7 +3978,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeRedo: function() { + beforeRedo: () => { return 'test'; } } @@ -3991,7 +3999,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeRemoveCol: function() { + beforeRemoveCol: () => { return 'test'; } } @@ -4012,7 +4020,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeRemoveRow: function() { + beforeRemoveRow: () => { return 'test'; } } @@ -4033,7 +4041,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeRender: function() { + beforeRender: () => { return 'test'; } } @@ -4054,7 +4062,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeRenderer: function() { + beforeRenderer: () => { return 'test'; } } @@ -4075,7 +4083,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeRowMove: function() { + beforeRowMove: () => { return 'test'; } } @@ -4096,7 +4104,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeRowResize: function() { + beforeRowResize: () => { return 'test'; } } @@ -4117,7 +4125,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeSetRangeEnd: function() { + beforeSetRangeEnd: () => { return 'test'; } } @@ -4138,7 +4146,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeSetRangeStart: function() { + beforeSetRangeStart: () => { return 'test'; } } @@ -4159,7 +4167,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeStretchingColumnWidth: function() { + beforeStretchingColumnWidth: () => { return 'test'; } } @@ -4180,7 +4188,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeTouchScroll: function() { + beforeTouchScroll: () => { return 'test'; } } @@ -4201,7 +4209,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeUndo: function() { + beforeUndo: () => { return 'test'; } } @@ -4222,7 +4230,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeValidate: function() { + beforeValidate: () => { return 'test'; } } @@ -4243,7 +4251,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - beforeValueRender: function() { + beforeValueRender: () => { return 'test'; } } @@ -4264,7 +4272,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - construct: function() { + construct: () => { return 'test'; } } @@ -4285,7 +4293,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - hiddenColumn: function() { + hiddenColumn: () => { return 'test'; } } @@ -4306,7 +4314,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - hiddenRow: function() { + hiddenRow: () => { return 'test'; } } @@ -4327,7 +4335,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - init: function() { + init: () => { return 'test'; } } @@ -4348,7 +4356,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - manualRowHeights: function() { + manualRowHeights: () => { return 'test'; } } @@ -4369,7 +4377,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyAutofillRange: function() { + modifyAutofillRange: () => { return 'test'; } } @@ -4390,7 +4398,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyCol: function() { + modifyCol: () => { return 'test'; } } @@ -4411,7 +4419,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyColHeader: function() { + modifyColHeader: () => { return 'test'; } } @@ -4432,7 +4440,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyColumnHeaderHeight: function() { + modifyColumnHeaderHeight: () => { return 'test'; } } @@ -4453,7 +4461,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyColWidth: function() { + modifyColWidth: () => { return 'test'; } } @@ -4474,7 +4482,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyCopyableRange: function() { + modifyCopyableRange: () => { return 'test'; } } @@ -4495,7 +4503,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyData: function() { + modifyData: () => { return 'test'; } } @@ -4516,7 +4524,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyRow: function() { + modifyRow: () => { return 'test'; } } @@ -4537,7 +4545,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyRowHeader: function() { + modifyRowHeader: () => { return 'test'; } } @@ -4558,7 +4566,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyRowHeaderWidth: function() { + modifyRowHeaderWidth: () => { return 'test'; } } @@ -4579,7 +4587,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyRowHeight: function() { + modifyRowHeight: () => { return 'test'; } } @@ -4600,7 +4608,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyRowData: function() { + modifyRowData: () => { return 'test'; } } @@ -4621,7 +4629,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyTransformEnd: function() { + modifyTransformEnd: () => { return 'test'; } } @@ -4642,7 +4650,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - modifyTransformStart: function() { + modifyTransformStart: () => { return 'test'; } } @@ -4663,7 +4671,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - persistentStateLoad: function() { + persistentStateLoad: () => { return 'test'; } } @@ -4684,7 +4692,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - persistentStateReset: function() { + persistentStateReset: () => { return 'test'; } } @@ -4705,7 +4713,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - persistentStateSave: function() { + persistentStateSave: () => { return 'test'; } } @@ -4726,7 +4734,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - skipLengthCache: function() { + skipLengthCache: () => { return 'test'; } } @@ -4747,7 +4755,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - unmodifyCol: function() { + unmodifyCol: () => { return 'test'; } } @@ -4768,7 +4776,7 @@ describe('HotTableComponent', () => { const app = fixture.componentInstance; app.prop['settings'] = { - unmodifyRow: function() { + unmodifyRow: () => { return 'test'; } } diff --git a/src/app/test-ce.component.ts b/src/app/test-ce.component.ts new file mode 100644 index 0000000..06883c3 --- /dev/null +++ b/src/app/test-ce.component.ts @@ -0,0 +1,21 @@ +import { Component } from '@angular/core'; +import * as Handsontable from 'handsontable'; + +import { HotTableRegisterer } from '@handsontable/angular'; + +@Component({ + selector: 'app-root', + template: `` +}) +export class TestComponent { + id: string = 'hot'; + public prop: object = {}; + + constructor ( + private _registerer: HotTableRegisterer + ) { } + + getHotInstance(instance: string): Handsontable { + return this._registerer.getInstance(instance); + }; +} diff --git a/src/app/test.component.ts b/src/app/test-pro.component.ts similarity index 100% rename from src/app/test.component.ts rename to src/app/test-pro.component.ts diff --git a/src/tsconfig.spec.json b/src/tsconfig.spec.json index 79c5c65..400a8c8 100644 --- a/src/tsconfig.spec.json +++ b/src/tsconfig.spec.json @@ -10,7 +10,7 @@ "node" ], "paths": { - "@handsontable/angular": ["../dist"], + "@handsontable/angular": ["../dist/ce"], "@handsontable-pro/angular": ["../dist/pro"] } }, diff --git a/tslint.json b/tslint.json index a5b697e..1501305 100644 --- a/tslint.json +++ b/tslint.json @@ -54,6 +54,7 @@ "no-switch-case-fall-through": true, "no-trailing-whitespace": true, "no-unused-expression": true, + "no-unused-variable": true, "no-use-before-declare": true, "no-var-keyword": true, "object-literal-sort-keys": false,