handsontable 0.34.1 → 0.34.5

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of handsontable might be problematic. Click here for more details.

Files changed (95) hide show
  1. package/.travis.yml +2 -0
  2. package/README.md +127 -96
  3. package/commonjs/core.js +11 -6
  4. package/commonjs/helpers/dom/element.js +4 -3
  5. package/commonjs/helpers/mixed.js +8 -4
  6. package/commonjs/index.js +5 -4
  7. package/commonjs/pluginHooks.js +18 -2
  8. package/commonjs/plugins/copyPaste/clipboardData.js +31 -0
  9. package/commonjs/plugins/copyPaste/contextMenuItem/copy.js +1 -2
  10. package/commonjs/plugins/copyPaste/contextMenuItem/cut.js +1 -2
  11. package/commonjs/plugins/copyPaste/copyPaste.js +127 -134
  12. package/commonjs/plugins/copyPaste/pasteEvent.js +19 -0
  13. package/commonjs/plugins/copyPaste/test/copyPaste.e2e.js +90 -189
  14. package/commonjs/plugins/copyPaste/test/textarea.unit.js +2 -2
  15. package/commonjs/plugins/copyPaste/textarea.js +2 -1
  16. package/commonjs/plugins/manualColumnMove/manualColumnMove.js +8 -11
  17. package/commonjs/plugins/manualColumnMove/test/manualColumnMoveUI.e2e.js +35 -0
  18. package/commonjs/plugins/manualRowMove/manualRowMove.js +9 -12
  19. package/commonjs/plugins/manualRowMove/test/manualRowMove.e2e.js +256 -60
  20. package/commonjs/plugins/manualRowMove/test/manualRowMoveUI.e2e.js +40 -182
  21. package/commonjs/plugins/manualRowMove/ui/_base.js +2 -2
  22. package/commonjs/tableView.js +1 -0
  23. package/dist/handsontable.css +6 -5
  24. package/dist/handsontable.css.map +1 -1
  25. package/dist/handsontable.full.css +6 -5
  26. package/dist/handsontable.full.js +37721 -42290
  27. package/dist/handsontable.full.min.css +4 -4
  28. package/dist/handsontable.full.min.js +5 -5
  29. package/dist/handsontable.js +28732 -28433
  30. package/dist/handsontable.js.map +1 -1
  31. package/dist/handsontable.min.css +4 -4
  32. package/dist/handsontable.min.js +3 -3
  33. package/es/core.js +11 -6
  34. package/es/helpers/dom/element.js +4 -3
  35. package/es/helpers/mixed.js +4 -4
  36. package/es/index.js +3 -4
  37. package/es/pluginHooks.js +18 -2
  38. package/es/plugins/copyPaste/clipboardData.js +27 -0
  39. package/es/plugins/copyPaste/contextMenuItem/copy.js +1 -2
  40. package/es/plugins/copyPaste/contextMenuItem/cut.js +1 -2
  41. package/es/plugins/copyPaste/copyPaste.js +124 -132
  42. package/es/plugins/copyPaste/pasteEvent.js +11 -0
  43. package/es/plugins/copyPaste/test/copyPaste.e2e.js +90 -189
  44. package/es/plugins/copyPaste/test/textarea.unit.js +2 -2
  45. package/es/plugins/copyPaste/textarea.js +2 -1
  46. package/es/plugins/manualColumnMove/manualColumnMove.js +8 -11
  47. package/es/plugins/manualColumnMove/test/manualColumnMoveUI.e2e.js +35 -0
  48. package/es/plugins/manualRowMove/manualRowMove.js +9 -12
  49. package/es/plugins/manualRowMove/test/manualRowMove.e2e.js +256 -60
  50. package/es/plugins/manualRowMove/test/manualRowMoveUI.e2e.js +40 -182
  51. package/es/plugins/manualRowMove/ui/_base.js +2 -2
  52. package/es/tableView.js +1 -0
  53. package/handsontable.jquery.json +1 -1
  54. package/hot.config.js +1 -1
  55. package/package.json +5 -5
  56. package/src/3rdparty/walkontable/dist/walkontable.js +27234 -11175
  57. package/src/3rdparty/walkontable/dist/walkontable.js.map +1 -1
  58. package/src/3rdparty/walkontable/test/dist/helpers.entry.js +32 -36
  59. package/src/3rdparty/walkontable/test/dist/helpers.entry.js.map +1 -1
  60. package/src/3rdparty/walkontable/test/dist/specs.entry.js +36 -39
  61. package/src/3rdparty/walkontable/test/dist/specs.entry.js.map +1 -1
  62. package/src/core.js +11 -6
  63. package/src/css/handsontable.css +1 -2
  64. package/src/helpers/dom/element.js +4 -3
  65. package/src/helpers/mixed.js +3 -3
  66. package/src/index.js +1 -2
  67. package/src/pluginHooks.js +18 -2
  68. package/src/plugins/copyPaste/clipboardData.js +11 -0
  69. package/src/plugins/copyPaste/contextMenuItem/copy.js +1 -2
  70. package/src/plugins/copyPaste/contextMenuItem/cut.js +1 -2
  71. package/src/plugins/copyPaste/copyPaste.css +3 -1
  72. package/src/plugins/copyPaste/copyPaste.js +120 -127
  73. package/src/plugins/copyPaste/pasteEvent.js +7 -0
  74. package/src/plugins/copyPaste/test/copyPaste.e2e.js +75 -193
  75. package/src/plugins/copyPaste/test/textarea.unit.js +2 -2
  76. package/src/plugins/copyPaste/textarea.js +2 -1
  77. package/src/plugins/manualColumnMove/manualColumnMove.js +6 -9
  78. package/src/plugins/manualColumnMove/test/manualColumnMoveUI.e2e.js +35 -0
  79. package/src/plugins/manualRowMove/manualRowMove.js +7 -10
  80. package/src/plugins/manualRowMove/test/manualRowMove.e2e.js +282 -86
  81. package/src/plugins/manualRowMove/test/manualRowMoveUI.e2e.js +51 -190
  82. package/src/plugins/manualRowMove/ui/_base.js +2 -2
  83. package/test/dist/e2e.entry.js +31381 -31131
  84. package/test/dist/e2e.entry.js.map +1 -1
  85. package/test/dist/helpers.entry.js +16 -19
  86. package/test/dist/helpers.entry.js.map +1 -1
  87. package/test/e2e/Core_listen.spec.js +32 -0
  88. package/test/e2e/Core_selection.spec.js +1 -1
  89. package/test/e2e/Core_validate.spec.js +29 -0
  90. package/test/e2e/renderers/checkboxRenderer.spec.js +20 -7
  91. package/test/e2e/settings/fragmentSelection.spec.js +12 -9
  92. package/test/scripts/trigger-pro-tests.sh +41 -0
  93. package/yarn.lock +260 -208
  94. package/.npmignore +0 -19
  95. package/demo/bower_components/numbro/package.json +0 -63
package/.travis.yml CHANGED
@@ -8,9 +8,11 @@ node_js:
8
8
  before_script:
9
9
  - export TZ=Europe/Warsaw
10
10
  - chmod ugo+x test/scripts/trigger-hot-builder-tests.sh
11
+ - chmod ugo+x test/scripts/trigger-pro-tests.sh
11
12
 
12
13
  after_success:
13
14
  - "./test/scripts/trigger-hot-builder-tests.sh"
15
+ - "./test/scripts/trigger-pro-tests.sh"
14
16
 
15
17
  notifications:
16
18
  email: false
package/README.md CHANGED
@@ -1,13 +1,40 @@
1
- # [![Build Status](https://raw.githubusercontent.com/handsontable/static-files/master/Images/Logo/Handsontable/Handsontable-logo-300-74.png)](https://handsontable.com)
1
+ <br/>
2
+ <div align="center">
3
+ <a href="//handsontable.com" target="_blank"><img src="https://raw.githubusercontent.com/handsontable/static-files/master/Images/Logo/Handsontable/Handsontable-logo-300-74-new.png" alt="Handsontable Community Edition logo" /></a>
4
+ </div>
2
5
 
3
- [**Handsontable**](https://handsontable.com) is a pure JavaScript/HTML5 spreadsheet component with an Excel-like appearance. It can easily integrate with any data source and comes with a variety of useful features like data binding, validation, sorting or powerful custom context menu. Actively supported by the [Handsoncode team](https://handsontable.com/team.html) team and [many contributors](https://github.com/handsontable/handsontable/graphs/contributors).
6
+ <br/><br/>
4
7
 
5
- [![Build status](https://travis-ci.org/handsontable/handsontable.png?branch=master)](https://travis-ci.org/handsontable/handsontable)
6
- [![npm](https://img.shields.io/github/contributors/handsontable/handsontable.svg)](https://github.com/handsontable/handsontable/graphs/contributors)
7
- [![npm](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/handsontable/handsontable/blob/master/LICENSE)
8
+ [**Handsontable Community Edition (CE)**](//handsontable.com) is an open source JavaScript/HTML5 UI Spreadsheet component for web apps. It easily integrates with any data source and comes with a variety of useful features like data binding, validation, sorting or powerful context menu. Actively supported by the Handsoncode team and many contributors.
8
9
 
9
- ## What to use it for?
10
- We have seen Handsontable being used in many different, sometimes completely unexpected fields. The list below is just to give you a rough idea on what you can do with Handsontable, but it doesn't limit you in any way.
10
+ If you are looking for a commercial version, try out [Handsontable Pro](//github.com/handsontable/handsontable-pro).
11
+
12
+ [![Build status](https://travis-ci.org/handsontable/handsontable.png?branch=master)](//travis-ci.org/handsontable/handsontable)
13
+ [![Known Vulnerabilities](https://snyk.io/test/github/handsontable/handsontable/badge.svg)](//snyk.io/test/github/handsontable/handsontable)
14
+ [![npm](https://img.shields.io/npm/dm/handsontable.svg)](//npmjs.com/package/handsontable)
15
+ [![npm](https://img.shields.io/github/contributors/handsontable/handsontable.svg)](//github.com/handsontable/handsontable/graphs/contributors)
16
+
17
+ <br/>
18
+
19
+ ## Table of contents
20
+
21
+ 1. [What to use it for?](#what-to-use-it-for)
22
+ 1. [Installation](#installation)
23
+ 2. [Basic usage](#basic-usage)
24
+ 3. [Examples](#examples)
25
+ 4. [Features](#features)
26
+ 5. [Screenshot](#screenshot)
27
+ 6. [Resources](#resources)
28
+ 7. [Wrappers](#wrappers)
29
+ 8. [Support](#support)
30
+ 9. [Contributing](#contributing)
31
+ 10. [Community](#community)
32
+ 11. [License](#license)
33
+
34
+ <br/>
35
+
36
+ ### What to use it for?
37
+ The list below gives a rough idea on what you can do with Handsontable CE, but it shouldn't limit you in any way:
11
38
 
12
39
  - Database editing
13
40
  - Configuration controlling
@@ -16,55 +43,32 @@ We have seen Handsontable being used in many different, sometimes completely une
16
43
  - Sales reporting
17
44
  - Financial analysis
18
45
 
19
- ## Installation
20
- There are many ways to install Handsontable but we suggest using one of available package managers.
46
+ <br/>
21
47
 
48
+ ### Installation
49
+ There are many ways to install Handsontable CE, but we suggest using npm:
22
50
  ```
23
- npm install handsontable --save
24
- ```
25
- or
26
- ```
27
- bower install handsontable --save
28
- ```
29
-
30
- ### Alternative installation
31
- - [Download ZIP](https://github.com/handsontable/handsontable/archive/master.zip)
32
- - [Download from nuget](https://www.nuget.org/packages/Handsontable/)
33
-
34
- ### AMD support
35
- If you use a modular script loader then you can require Handsontable just like any other module:
36
-
37
- ```javascript
38
- require(['handsontable'], function(Handsontable) {
39
- var hot = new Handsontable(document.getElementById('example'), {
40
- data: [[1, 2, 3, 4], [1, 2, 3, 4]]
41
- });
42
- });
51
+ npm install handsontable
43
52
  ```
44
53
 
45
- ### CommonJS module support
46
- If you use a CommonJS compatible environment you can use the `require` function to import Handsontable:
47
-
48
- ```javascript
49
- var handsontable = require('handsontable');
50
- ```
51
- To bundle Handsontable with [Browserify](http://browserify.org) you must specify the module names of all required modules:
54
+ **Alternative ways to install**
55
+ - See the [download section](//handsontable.com/ce-download.html) on how to install Handsontable CE using nuget, bower, yarn and more.
52
56
 
53
- `browserify main.js -o bundle.js -r moment -r pikaday -r numbro`
57
+ <br/>
54
58
 
55
- ## Basic usage
56
- Assuming you have already installed Handsontable, add an empty `<div>` element that will be turned into a spreadsheet:
59
+ ### Basic usage
60
+ Assuming that you have already installed Handsontable CE, create an empty `<div>` element that will be turned into a spreadsheet:
57
61
 
58
62
  ```html
59
63
  <div id="example"></div>
60
64
  ```
61
- In the next step, pass a reference to that `<div>` element and fill it with sample data:
65
+ In the next step, pass a reference to that `<div>` element into the Handsontable CE constructor and fill the instance with sample data:
62
66
  ```javascript
63
67
  var data = [
64
- ["", "Ford", "Volvo", "Toyota", "Honda"],
65
- ["2016", 10, 11, 12, 13],
66
- ["2017", 20, 11, 14, 13],
67
- ["2018", 30, 15, 12, 13]
68
+ ["", "Tesla", "Volvo", "Toyota", "Honda"],
69
+ ["2017", 10, 11, 12, 13],
70
+ ["2018", 20, 11, 14, 13],
71
+ ["2019", 30, 15, 12, 13]
68
72
  ];
69
73
 
70
74
  var container = document.getElementById('example');
@@ -75,57 +79,84 @@ var hot = new Handsontable(container, {
75
79
  });
76
80
  ```
77
81
 
78
- ## Examples
79
- - [Explore our features](https://handsontable.com/examples.html)
80
- - [Basic demo](http://jsfiddle.net/handsoncode/s6t768pq)
81
- - [Handling a large dataset](http://jsfiddle.net/handsoncode/Lp4qn55v)
82
- - [Finance](http://jsfiddle.net/handsoncode/b2g2h7oh)
83
- - [Sport](http://jsfiddle.net/handsoncode/b5rvw5zk)
84
- - [Science](http://jsfiddle.net/handsoncode/g1hnaxtt)
85
-
86
- ## Resources
87
- - [API Reference](http://docs.handsontable.com/Core.html)
88
- - [List of features](http://docs.handsontable.com/tutorial-features.html)
89
- - [Compatibility](http://docs.handsontable.com/tutorial-compatibility.html)
90
- - [Performance tips](http://docs.handsontable.com/tutorial-performance-tips.html)
91
- - [Roadmap](https://trello.com/b/PztR4hpj/handsontable-roadmap-2016)
92
- - [Known limitations](http://docs.handsontable.com/tutorial-known-limitations.html)
93
-
94
- ## Commercial version
95
- [Handsontable Pro](https://handsontable.com/pricing.html) is a commercial spreadsheet solution packed with additional, business-ready features. It comes with a dedicated support and a [forum support](https://forum.handsontable.com), where you can find the answers to common questions.
96
-
97
- | Pro Feature | Description |
98
- |--------------------------- |---------------------------------------------------------------------------------------- |
99
- | Binding rows with headers | Bind rows with headers to lock the row number and always display one beside the other. |
100
- | Collapsing columns | Expand and collapse columns to better fit the content. |
101
- | Column summary | Carry out pre-defined calculations and display the results in Handsontable. |
102
- | Dropdown menu | Add a menu to the heading to enable additional operations for the columns. |
103
- | Export to file | Export data to a flat file like CSV or a string. |
104
- | Filtering | Display rows that meet your criteria and hide the rest. |
105
- | Gantt Chart | Create a simple Gantt Chart using Handsontable. |
106
- | Header tooltips | Display the header label in a tooltip. |
107
- | Hiding columns | Hide specific columns and show the rest. |
108
- | Hiding rows | Hide specific rows and show the rest. |
109
- | Nested headers | Create a nested, hierarchical structure of headers to get your data into groups. |
110
- | Trimming rows | Exclude specific rows from the rendering process so they won't be displayed. |
111
-
112
- Have questions regarding the Pro version? [Contact us](https://handsontable.com/contact.html?category=general_question) or take a look at the [Frequently Asked Questions](https://handsontable.com/faq.html).
113
-
114
- ## Screenshot
115
- <p align="center">
116
- <img src="https://raw.githubusercontent.com/handsontable/static-files/master/Images/Screenshots/handsontable-showcase.png" align="center" alt="Handsontable Screenshot"/>
117
- </p>
118
-
119
- ## Community
120
- - [Forum](https://forum.handsontable.com)
121
- - [Google group](https://groups.google.com/forum/#!forum/handsontable)
122
- - [GitHub](https://github.com/handsontable/handsontable/issues)
123
- - [Twitter](https://twitter.com/handsontable)
124
-
125
- ## Contributing
126
- If you would like to help us in writing the code, please take a look into [CONTRIBUTING.md](https://github.com/handsontable/handsontable/blob/master/CONTRIBUTING.md)
127
-
128
- ## Copyright and license
129
- Handsontable is released under the [MIT license](https://github.com/handsontable/handsontable/blob/master/LICENSE).
82
+ <br/>
83
+
84
+ ### Examples
85
+ - [See a live demo](//handsontable.com/examples.html)
86
+
87
+ <br/>
88
+
89
+ ### Features
90
+
91
+ **Some of the most popular features include:**
92
+
93
+ - Sorting data
94
+ - Data validation
95
+ - Conditional formatting
96
+ - Freezing rows/columns
97
+ - Merging cells
98
+ - Defining custom cell types
99
+ - Moving rows/columns
100
+ - Resizing rows/columns
101
+ - Context menu
102
+ - Adding comments to cells
103
+ - Dragging fill handle to populate data
104
+
105
+ [See a comparison table](//docs.handsontable.com/tutorial-features.html)
106
+
107
+ <br/>
108
+
109
+ ### Screenshot
110
+ <div align="center">
111
+ <a href="//handsontable.com/examples.html">
112
+ <img src="https://raw.githubusercontent.com/handsontable/static-files/master/Images/Screenshots/handsontable-ce-showcase.png" align="center" alt="Handsontable Community Edition Screenshot"/>
113
+ </a>
114
+ </div>
115
+
116
+ <br/>
117
+
118
+ ### Resources
119
+ - [API Reference](//docs.handsontable.com/Core.html)
120
+ - [Compatibility](//docs.handsontable.com/tutorial-compatibility.html)
121
+ - [Change log](//docs.handsontable.com/tutorial-release-notes.html)
122
+ - [Roadmap](//trello.com/b/PztR4hpj)
123
+ - [Newsroom](//twitter.com/handsontable)
124
+
125
+ <br/>
126
+
127
+ ### Wrappers
128
+ Handsontable CE comes with wrappers and directives for most popular frameworks:
129
+
130
+ - [Angular](//github.com/handsontable/angular-handsontable)
131
+ - [Angular 1](//github.com/handsontable/ngHandsontable)
132
+ - [React](//github.com/handsontable/react-handsontable)
133
+ - [Vue](//github.com/handsontable/vue-handsontable-official)
134
+ - [Polymer](//github.com/handsontable/hot-table)
135
+ - [Typescript file](//github.com/handsontable/handsontable/blob/master/handsontable.d.ts)
136
+
137
+ <br/>
138
+
139
+ ### Support
140
+ Report all the suggestions and problems on [GitHub Issues](//github.com/handsontable/handsontable/issues).
141
+
142
+ An open source version doesn't include a commercial support. You need to purchase [Handsontable Pro](//github.com/handsontable/handsontable-pro) license or [contact us](//handsontable.com/contact.html) directly in order to obtain a technical support from the Handsoncode team.
143
+
144
+ <br/>
145
+
146
+ ### Contributing
147
+ If you would like to help us to develop Handsontable, please take a look at this [guide for contributing](//github.com/handsontable/handsontable/blob/master/CONTRIBUTING.md).
148
+
149
+ <br/>
150
+
151
+ ### Community
152
+ - [GitHub issues](//github.com/handsontable/handsontable/issues)
153
+ - [Stackoverflow](//stackoverflow.com/tags/handsontable)
154
+ - [Forum](//forum.handsontable.com)
155
+ - [Twitter](//twitter.com/handsontable)
156
+
157
+ <br/>
158
+
159
+ ### License
160
+ Handsontable Community Edition is released under the MIT license. [Learn more](//github.com/handsontable/handsontable/blob/master/LICENSE).
130
161
 
131
162
  Copyrights belong to Handsoncode sp. z o.o.
package/commonjs/core.js CHANGED
@@ -1115,7 +1115,7 @@ function Core(rootElement, userSettings) {
1115
1115
  if (result === false && cellProperties.allowInvalid === false) {
1116
1116
  changes.splice(i, 1); // cancel the change
1117
1117
  cellProperties.valid = true; // we cancelled the change, so cell value is still valid
1118
- var cell = instance.getCell(cellProperties.row, cellProperties.col);
1118
+ var cell = instance.getCell(cellProperties.visualRow, cellProperties.visualCol);
1119
1119
  (0, _element.removeClass)(cell, instance.getSettings().invalidCellClassName);
1120
1120
  --i;
1121
1121
  }
@@ -1358,7 +1358,10 @@ function Core(rootElement, userSettings) {
1358
1358
  document.body.focus();
1359
1359
  }
1360
1360
 
1361
- activeGuid = instance.guid;
1361
+ if (instance && !instance.isListening()) {
1362
+ activeGuid = instance.guid;
1363
+ instance.runHooks('afterListen');
1364
+ }
1362
1365
  };
1363
1366
 
1364
1367
  /**
@@ -1371,6 +1374,7 @@ function Core(rootElement, userSettings) {
1371
1374
  this.unlisten = function () {
1372
1375
  if (this.isListening()) {
1373
1376
  activeGuid = null;
1377
+ instance.runHooks('afterUnlisten');
1374
1378
  }
1375
1379
  };
1376
1380
 
@@ -3117,7 +3121,6 @@ function Core(rootElement, userSettings) {
3117
3121
  selection.setRangeEnd(new _src.CellCoords(endRow, endCol), scrollToCell);
3118
3122
  }
3119
3123
  instance.selection.finish();
3120
-
3121
3124
  return true;
3122
3125
  };
3123
3126
 
@@ -3220,10 +3223,12 @@ function Core(rootElement, userSettings) {
3220
3223
  }
3221
3224
  dataSource = null;
3222
3225
 
3223
- var nextSibling = instance.rootElement.nextSibling;
3226
+ if ('ce' !== '\x63\x65' && (0, _rootInstance.isRootInstance)(instance)) {
3227
+ var licenseInfo = document.querySelector('#hot-display-license-info');
3224
3228
 
3225
- if ((0, _rootInstance.isRootInstance)(instance) && nextSibling) {
3226
- instance.rootElement.parentNode.removeChild(nextSibling);
3229
+ if (licenseInfo) {
3230
+ licenseInfo.parentNode.removeChild(licenseInfo);
3231
+ }
3227
3232
  }
3228
3233
  (0, _element.empty)(instance.rootElement);
3229
3234
  eventManager.destroy();
@@ -331,7 +331,7 @@ if (classListSupport) {
331
331
 
332
332
  _hasClass = function _hasClass(element, className) {
333
333
  // http://snipplr.com/view/3561/addclass-removeclass-hasclass/
334
- return element.className !== void 0 && element.className.test(createClassNameRegExp(className));
334
+ return element.className !== void 0 && createClassNameRegExp(className).test(element.className);
335
335
  };
336
336
 
337
337
  _addClass = function _addClass(element, className) {
@@ -653,10 +653,11 @@ function getScrollableElement(element) {
653
653
  }
654
654
  }
655
655
 
656
- if (el.clientHeight <= el.scrollHeight && (props.indexOf(overflowY) !== -1 || props.indexOf(overflow) !== -1 || props.indexOf(computedOverflow) !== -1 || props.indexOf(computedOverflowY) !== -1)) {
656
+ // The '+ 1' after the scrollHeight/scrollWidth is to prevent problems with zoomed out Chrome.
657
+ if (el.clientHeight <= el.scrollHeight + 1 && (props.indexOf(overflowY) !== -1 || props.indexOf(overflow) !== -1 || props.indexOf(computedOverflow) !== -1 || props.indexOf(computedOverflowY) !== -1)) {
657
658
  return el;
658
659
  }
659
- if (el.clientWidth <= el.scrollWidth && (props.indexOf(overflowX) !== -1 || props.indexOf(overflow) !== -1 || props.indexOf(computedOverflow) !== -1 || props.indexOf(computedOverflowX) !== -1)) {
660
+ if (el.clientWidth <= el.scrollWidth + 1 && (props.indexOf(overflowX) !== -1 || props.indexOf(overflow) !== -1 || props.indexOf(computedOverflow) !== -1 || props.indexOf(computedOverflowX) !== -1)) {
660
661
  return el;
661
662
  }
662
663
  el = el.parentNode;
@@ -13,10 +13,14 @@ exports.isEmpty = isEmpty;
13
13
  exports.isRegExp = isRegExp;
14
14
  exports._injectProductInfo = _injectProductInfo;
15
15
 
16
- var _element = require('./dom/element');
16
+ var _moment = require('moment');
17
+
18
+ var _moment2 = _interopRequireDefault(_moment);
17
19
 
18
20
  var _templateLiteralTag = require('./templateLiteralTag');
19
21
 
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
20
24
  function _taggedTemplateLiteral(strings, raw) { return Object.freeze(Object.defineProperties(strings, { raw: { value: Object.freeze(raw) } })); }
21
25
 
22
26
  /**
@@ -103,7 +107,7 @@ var _cp = function _cp(v) {
103
107
  return v['\x63\x6F\x64\x65\x50\x6F\x69\x6E\x74\x41\x74'](0) - 65;
104
108
  };
105
109
  var _norm = function _norm(v) {
106
- return v.replace(/\-/g, '');
110
+ return ('' + v).replace(/\-/g, '');
107
111
  };
108
112
  var _extractTime = function _extractTime(v) {
109
113
  return _hd(_ss(_norm(v), _hd('12'), _cp('\x46'))) / (_hd(_ss(_norm(v), _cp('\x42'), ~~![][_m])) || 9);
@@ -124,7 +128,7 @@ function _injectProductInfo(key, element) {
124
128
 
125
129
  if (trial || schemaValidity) {
126
130
  if (schemaValidity) {
127
- var releaseTime = Math.floor(moment('06/09/2017', 'DD/MM/YYYY').toDate().getTime() / 8.64e7);
131
+ var releaseTime = Math.floor((0, _moment2.default)('12/10/2017', 'DD/MM/YYYY').toDate().getTime() / 8.64e7);
128
132
  var keyGenTime = _extractTime(key);
129
133
 
130
134
  if (keyGenTime > 45000 || keyGenTime !== parseInt(keyGenTime, 10)) {
@@ -155,7 +159,7 @@ function _injectProductInfo(key, element) {
155
159
  if (showDomMessage && element.parentNode) {
156
160
  var message = document.createElement('div');
157
161
 
158
- (0, _element.addClass)(message, 'display-license-info');
162
+ message.id = 'hot-display-license-info';
159
163
  message.appendChild(document.createTextNode('Evaluation version of Handsontable Pro.'));
160
164
  message.appendChild(document.createElement('br'));
161
165
  message.appendChild(document.createTextNode('Not licensed for production use.'));
package/commonjs/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ exports.__esModule = true;
4
+
3
5
  require('core-js/modules/es6.map');
4
6
 
5
7
  require('core-js/modules/es6.set');
@@ -203,9 +205,9 @@ Handsontable.DefaultSettings = _defaultSettings2.default;
203
205
  Handsontable.EventManager = _eventManager2.default;
204
206
  Handsontable._getListenersCounter = _eventManager.getListenersCounter; // For MemoryLeak tests
205
207
 
206
- Handsontable.buildDate = '06/09/2017 13:08:31';
208
+ Handsontable.buildDate = '12/10/2017 10:11:09';
207
209
  Handsontable.packageName = 'handsontable';
208
- Handsontable.version = '0.34.1';
210
+ Handsontable.version = '0.34.5';
209
211
 
210
212
  var baseVersion = '';
211
213
 
@@ -305,5 +307,4 @@ arrayHelpers.arrayEach(Object.getOwnPropertyNames(plugins), function (pluginName
305
307
 
306
308
  Handsontable.plugins.registerPlugin = _plugins.registerPlugin;
307
309
 
308
- // Export Handsontable
309
- module.exports = Handsontable;
310
+ exports.default = Handsontable;
@@ -1116,7 +1116,7 @@ var REGISTERED_HOOKS = [
1116
1116
  /**
1117
1117
  * Fired after values are pasted into table.
1118
1118
  *
1119
- * @event Hooks#afterePaste
1119
+ * @event Hooks#afterPaste
1120
1120
  * @since 0.31.1
1121
1121
  * @param {Array} data An array of arrays which contains the pasted data.
1122
1122
  * @param {Array} coords An array of objects with ranges of the visual indexes (`startRow`, `startCol`, `endRow`, `endCol`)
@@ -1493,7 +1493,23 @@ var REGISTERED_HOOKS = [
1493
1493
  * @param {Number} row Row index of the edited cell.
1494
1494
  * @param {Number} column Column index of the edited cell.
1495
1495
  */
1496
- 'afterBeginEditing'];
1496
+ 'afterBeginEditing',
1497
+
1498
+ /**
1499
+ * Fired after the listening is turned on.
1500
+ *
1501
+ * @event Hooks#afterListen
1502
+ * @since 0.34.5
1503
+ */
1504
+ 'afterListen',
1505
+
1506
+ /**
1507
+ * Fired after the listening is turned off.
1508
+ *
1509
+ * @event Hooks#afterUnlisten
1510
+ * @since 0.34.5
1511
+ */
1512
+ 'afterUnlisten'];
1497
1513
 
1498
1514
  var Hooks = function () {
1499
1515
  _createClass(Hooks, null, [{
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+
5
+ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
6
+
7
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
8
+
9
+ var ClipboardData = function () {
10
+ function ClipboardData() {
11
+ _classCallCheck(this, ClipboardData);
12
+
13
+ this.data = {};
14
+ }
15
+
16
+ _createClass(ClipboardData, [{
17
+ key: "setData",
18
+ value: function setData(type, value) {
19
+ this.data[type] = value;
20
+ }
21
+ }, {
22
+ key: "getData",
23
+ value: function getData(type) {
24
+ return this.data[type] || void 0;
25
+ }
26
+ }]);
27
+
28
+ return ClipboardData;
29
+ }();
30
+
31
+ exports.default = ClipboardData;
@@ -7,8 +7,7 @@ function copyItem(copyPastePlugin) {
7
7
  key: 'copy',
8
8
  name: 'Copy',
9
9
  callback: function callback() {
10
- copyPastePlugin.setCopyableText();
11
- copyPastePlugin.copy(true);
10
+ copyPastePlugin.copy();
12
11
  },
13
12
  disabled: function disabled() {
14
13
  return !copyPastePlugin.hot.getSelected();
@@ -7,8 +7,7 @@ function cutItem(copyPastePlugin) {
7
7
  key: 'cut',
8
8
  name: 'Cut',
9
9
  callback: function callback() {
10
- copyPastePlugin.setCopyableText();
11
- copyPastePlugin.cut(true);
10
+ copyPastePlugin.cut();
12
11
  },
13
12
  disabled: function disabled() {
14
13
  return !copyPastePlugin.hot.getSelected();