copy_tuner_client 0.4.9 → 0.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a33bd4280e6a8ab21ec3be11456a926e046f4140
4
- data.tar.gz: 480b49a90a9232599b9ae21731d45cf74293b6ad
3
+ metadata.gz: 61aa74274a245b69cde8eb43ed26d9b4d5696005
4
+ data.tar.gz: c680e03badd13031ebc4bdc1f7cd069da05ed448
5
5
  SHA512:
6
- metadata.gz: db49f57dbafa29ec5f870b8bd59f56f0b3ed9f5c181ccb6e574a725fdc23bedd8064c1979003c41260ce42f286694b469a566b2d7721ac55076f6f3fef681dd3
7
- data.tar.gz: 2031048572a8fb4c5c70439dc87f378f551416fc54f4a66ec2a6919ed5973bb65350f62502f3fd4072a28a781c4be51954b916833229ce5349fcea5091698fc4
6
+ metadata.gz: e1e629a82d95b98b134f2ceae2db73b43239af4478ed48024df036d63e143b0b5de443aed71e15be20a9eec4798210a555b1b5267dcfdc7b1edaca8250688cf6
7
+ data.tar.gz: 71ae27b8375680700d71d1bf8a2b51be9464a0dbaf43e4955724f36ce35fec8fb133f089c1253e6d24a321b98412dec282b45893d29bcb6e0d434ffe4a2d7a65
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.4.10
2
+ - changes
3
+ - Hide copyray bar on all media.
4
+
1
5
  ## 0.4.9
2
6
  - changes
3
7
  - Smaller toggle button.
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- copy_tuner_client (0.4.9)
4
+ copy_tuner_client (0.4.10)
5
5
  i18n (>= 0.5.0)
6
6
  json
7
7
 
@@ -53,8 +53,6 @@ GEM
53
53
  childprocess (>= 0.3.6)
54
54
  cucumber (>= 1.1.1)
55
55
  rspec-expectations (>= 2.7.0)
56
- bourne (1.6.0)
57
- mocha (~> 1.1)
58
56
  builder (3.2.3)
59
57
  childprocess (0.6.3)
60
58
  ffi (~> 1.0, >= 1.0.11)
@@ -83,14 +81,11 @@ GEM
83
81
  nokogiri (>= 1.5.9)
84
82
  mail (2.6.4)
85
83
  mime-types (>= 1.16, < 4)
86
- metaclass (0.0.4)
87
84
  mime-types (3.1)
88
85
  mime-types-data (~> 3.2015)
89
86
  mime-types-data (3.2016.0521)
90
87
  mini_portile2 (2.3.0)
91
88
  minitest (5.10.1)
92
- mocha (1.2.1)
93
- metaclass (~> 0.0.1)
94
89
  multi_json (1.12.1)
95
90
  multi_test (0.1.2)
96
91
  nokogiri (1.8.2)
@@ -175,7 +170,6 @@ PLATFORMS
175
170
  DEPENDENCIES
176
171
  appraisal (~> 2.1)
177
172
  aruba (~> 0.6.0)
178
- bourne
179
173
  copy_tuner_client!
180
174
  cucumber (~> 1.3.16)
181
175
  rails (~> 4.2.6)
@@ -189,4 +183,4 @@ DEPENDENCIES
189
183
  yard
190
184
 
191
185
  BUNDLED WITH
192
- 1.16.2
186
+ 1.16.3
@@ -1,996 +1,1069 @@
1
1
  (function () {
2
- 'use strict';
3
-
4
- var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
5
-
6
-
7
-
8
-
9
-
10
- function createCommonjsModule(fn, module) {
11
- return module = { exports: {} }, fn(module, module.exports), module.exports;
12
- }
13
-
14
- var KeyCode$1 = createCommonjsModule(function (module, exports) {
15
- "use strict";
16
-
17
- Object.defineProperty(exports, "__esModule", {
18
- value: true
19
- });
20
-
21
- exports.default = function () {
22
-
23
- var keys = {
24
- KEY_CANCEL: 3,
25
- KEY_HELP: 6,
26
- KEY_BACK_SPACE: 8,
27
- KEY_TAB: 9,
28
- KEY_CLEAR: 12,
29
- KEY_RETURN: 13,
30
- KEY_ENTER: 14,
31
- KEY_SHIFT: 16,
32
- KEY_CONTROL: 17,
33
- KEY_ALT: 18,
34
- KEY_PAUSE: 19,
35
- KEY_CAPS_LOCK: 20,
36
- KEY_ESCAPE: 27,
37
- KEY_SPACE: 32,
38
- KEY_PAGE_UP: 33,
39
- KEY_PAGE_DOWN: 34,
40
- KEY_END: 35,
41
- KEY_HOME: 36,
42
- KEY_LEFT: 37,
43
- KEY_UP: 38,
44
- KEY_RIGHT: 39,
45
- KEY_DOWN: 40,
46
- KEY_PRINTSCREEN: 44,
47
- KEY_INSERT: 45,
48
- KEY_DELETE: 46,
49
- KEY_0: 48,
50
- KEY_1: 49,
51
- KEY_2: 50,
52
- KEY_3: 51,
53
- KEY_4: 52,
54
- KEY_5: 53,
55
- KEY_6: 54,
56
- KEY_7: 55,
57
- KEY_8: 56,
58
- KEY_9: 57,
59
- KEY_SEMICOLON: 59,
60
- KEY_EQUALS: 61,
61
- KEY_A: 65,
62
- KEY_B: 66,
63
- KEY_C: 67,
64
- KEY_D: 68,
65
- KEY_E: 69,
66
- KEY_F: 70,
67
- KEY_G: 71,
68
- KEY_H: 72,
69
- KEY_I: 73,
70
- KEY_J: 74,
71
- KEY_K: 75,
72
- KEY_L: 76,
73
- KEY_M: 77,
74
- KEY_N: 78,
75
- KEY_O: 79,
76
- KEY_P: 80,
77
- KEY_Q: 81,
78
- KEY_R: 82,
79
- KEY_S: 83,
80
- KEY_T: 84,
81
- KEY_U: 85,
82
- KEY_V: 86,
83
- KEY_W: 87,
84
- KEY_X: 88,
85
- KEY_Y: 89,
86
- KEY_Z: 90,
87
- KEY_CONTEXT_MENU: 93,
88
- KEY_NUMPAD0: 96,
89
- KEY_NUMPAD1: 97,
90
- KEY_NUMPAD2: 98,
91
- KEY_NUMPAD3: 99,
92
- KEY_NUMPAD4: 100,
93
- KEY_NUMPAD5: 101,
94
- KEY_NUMPAD6: 102,
95
- KEY_NUMPAD7: 103,
96
- KEY_NUMPAD8: 104,
97
- KEY_NUMPAD9: 105,
98
- KEY_MULTIPLY: 106,
99
- KEY_ADD: 107,
100
- KEY_SEPARATOR: 108,
101
- KEY_SUBTRACT: 109,
102
- KEY_DECIMAL: 110,
103
- KEY_DIVIDE: 111,
104
- KEY_F1: 112,
105
- KEY_F2: 113,
106
- KEY_F3: 114,
107
- KEY_F4: 115,
108
- KEY_F5: 116,
109
- KEY_F6: 117,
110
- KEY_F7: 118,
111
- KEY_F8: 119,
112
- KEY_F9: 120,
113
- KEY_F10: 121,
114
- KEY_F11: 122,
115
- KEY_F12: 123,
116
- KEY_F13: 124,
117
- KEY_F14: 125,
118
- KEY_F15: 126,
119
- KEY_F16: 127,
120
- KEY_F17: 128,
121
- KEY_F18: 129,
122
- KEY_F19: 130,
123
- KEY_F20: 131,
124
- KEY_F21: 132,
125
- KEY_F22: 133,
126
- KEY_F23: 134,
127
- KEY_F24: 135,
128
- KEY_NUM_LOCK: 144,
129
- KEY_SCROLL_LOCK: 145,
130
- KEY_COMMA: 188,
131
- KEY_PERIOD: 190,
132
- KEY_SLASH: 191,
133
- KEY_BACK_QUOTE: 192,
134
- KEY_OPEN_BRACKET: 219,
135
- KEY_BACK_SLASH: 220,
136
- KEY_CLOSE_BRACKET: 221,
137
- KEY_QUOTE: 222,
138
- KEY_META: 224
139
- };
140
-
141
- function KeyCode() {}
142
-
143
- Object.keys(keys).forEach(function (key) {
144
- KeyCode[key] = keys[key];
145
- });
146
-
147
- return KeyCode;
148
- }();
149
- });
2
+ 'use strict';
3
+
4
+ var KEY_CANCEL = 3;
5
+ var KEY_HELP = 6;
6
+ var KEY_BACK_SPACE = 8;
7
+ var KEY_TAB = 9;
8
+ var KEY_CLEAR = 12;
9
+ var KEY_RETURN = 13;
10
+ var KEY_ENTER = 14;
11
+ var KEY_SHIFT = 16;
12
+ var KEY_CONTROL = 17;
13
+ var KEY_ALT = 18;
14
+ var KEY_PAUSE = 19;
15
+ var KEY_CAPS_LOCK = 20;
16
+ var KEY_ESCAPE = 27;
17
+ var KEY_SPACE = 32;
18
+ var KEY_PAGE_UP = 33;
19
+ var KEY_PAGE_DOWN = 34;
20
+ var KEY_END = 35;
21
+ var KEY_HOME = 36;
22
+ var KEY_LEFT = 37;
23
+ var KEY_UP = 38;
24
+ var KEY_RIGHT = 39;
25
+ var KEY_DOWN = 40;
26
+ var KEY_PRINTSCREEN = 44;
27
+ var KEY_INSERT = 45;
28
+ var KEY_DELETE = 46;
29
+ var KEY_0 = 48;
30
+ var KEY_1 = 49;
31
+ var KEY_2 = 50;
32
+ var KEY_3 = 51;
33
+ var KEY_4 = 52;
34
+ var KEY_5 = 53;
35
+ var KEY_6 = 54;
36
+ var KEY_7 = 55;
37
+ var KEY_8 = 56;
38
+ var KEY_9 = 57;
39
+ var KEY_SEMICOLON = 59;
40
+ var KEY_EQUALS = 61;
41
+ var KEY_A = 65;
42
+ var KEY_B = 66;
43
+ var KEY_C = 67;
44
+ var KEY_D = 68;
45
+ var KEY_E = 69;
46
+ var KEY_F = 70;
47
+ var KEY_G = 71;
48
+ var KEY_H = 72;
49
+ var KEY_I = 73;
50
+ var KEY_J = 74;
51
+ var KEY_K = 75;
52
+ var KEY_L = 76;
53
+ var KEY_M = 77;
54
+ var KEY_N = 78;
55
+ var KEY_O = 79;
56
+ var KEY_P = 80;
57
+ var KEY_Q = 81;
58
+ var KEY_R = 82;
59
+ var KEY_S = 83;
60
+ var KEY_T = 84;
61
+ var KEY_U = 85;
62
+ var KEY_V = 86;
63
+ var KEY_W = 87;
64
+ var KEY_X = 88;
65
+ var KEY_Y = 89;
66
+ var KEY_Z = 90;
67
+ var KEY_CONTEXT_MENU = 93;
68
+ var KEY_NUMPAD0 = 96;
69
+ var KEY_NUMPAD1 = 97;
70
+ var KEY_NUMPAD2 = 98;
71
+ var KEY_NUMPAD3 = 99;
72
+ var KEY_NUMPAD4 = 100;
73
+ var KEY_NUMPAD5 = 101;
74
+ var KEY_NUMPAD6 = 102;
75
+ var KEY_NUMPAD7 = 103;
76
+ var KEY_NUMPAD8 = 104;
77
+ var KEY_NUMPAD9 = 105;
78
+ var KEY_MULTIPLY = 106;
79
+ var KEY_ADD = 107;
80
+ var KEY_SEPARATOR = 108;
81
+ var KEY_SUBTRACT = 109;
82
+ var KEY_DECIMAL = 110;
83
+ var KEY_DIVIDE = 111;
84
+ var KEY_F1 = 112;
85
+ var KEY_F2 = 113;
86
+ var KEY_F3 = 114;
87
+ var KEY_F4 = 115;
88
+ var KEY_F5 = 116;
89
+ var KEY_F6 = 117;
90
+ var KEY_F7 = 118;
91
+ var KEY_F8 = 119;
92
+ var KEY_F9 = 120;
93
+ var KEY_F10 = 121;
94
+ var KEY_F11 = 122;
95
+ var KEY_F12 = 123;
96
+ var KEY_F13 = 124;
97
+ var KEY_F14 = 125;
98
+ var KEY_F15 = 126;
99
+ var KEY_F16 = 127;
100
+ var KEY_F17 = 128;
101
+ var KEY_F18 = 129;
102
+ var KEY_F19 = 130;
103
+ var KEY_F20 = 131;
104
+ var KEY_F21 = 132;
105
+ var KEY_F22 = 133;
106
+ var KEY_F23 = 134;
107
+ var KEY_F24 = 135;
108
+ var KEY_NUM_LOCK = 144;
109
+ var KEY_SCROLL_LOCK = 145;
110
+ var KEY_COMMA = 188;
111
+ var KEY_PERIOD = 190;
112
+ var KEY_SLASH = 191;
113
+ var KEY_BACK_QUOTE = 192;
114
+ var KEY_OPEN_BRACKET = 219;
115
+ var KEY_BACK_SLASH = 220;
116
+ var KEY_CLOSE_BRACKET = 221;
117
+ var KEY_QUOTE = 222;
118
+ var KEY_META = 224;
119
+
120
+ var KeyCode = {
121
+ KEY_CANCEL: KEY_CANCEL,
122
+ KEY_HELP: KEY_HELP,
123
+ KEY_BACK_SPACE: KEY_BACK_SPACE,
124
+ KEY_TAB: KEY_TAB,
125
+ KEY_CLEAR: KEY_CLEAR,
126
+ KEY_RETURN: KEY_RETURN,
127
+ KEY_ENTER: KEY_ENTER,
128
+ KEY_SHIFT: KEY_SHIFT,
129
+ KEY_CONTROL: KEY_CONTROL,
130
+ KEY_ALT: KEY_ALT,
131
+ KEY_PAUSE: KEY_PAUSE,
132
+ KEY_CAPS_LOCK: KEY_CAPS_LOCK,
133
+ KEY_ESCAPE: KEY_ESCAPE,
134
+ KEY_SPACE: KEY_SPACE,
135
+ KEY_PAGE_UP: KEY_PAGE_UP,
136
+ KEY_PAGE_DOWN: KEY_PAGE_DOWN,
137
+ KEY_END: KEY_END,
138
+ KEY_HOME: KEY_HOME,
139
+ KEY_LEFT: KEY_LEFT,
140
+ KEY_UP: KEY_UP,
141
+ KEY_RIGHT: KEY_RIGHT,
142
+ KEY_DOWN: KEY_DOWN,
143
+ KEY_PRINTSCREEN: KEY_PRINTSCREEN,
144
+ KEY_INSERT: KEY_INSERT,
145
+ KEY_DELETE: KEY_DELETE,
146
+ KEY_0: KEY_0,
147
+ KEY_1: KEY_1,
148
+ KEY_2: KEY_2,
149
+ KEY_3: KEY_3,
150
+ KEY_4: KEY_4,
151
+ KEY_5: KEY_5,
152
+ KEY_6: KEY_6,
153
+ KEY_7: KEY_7,
154
+ KEY_8: KEY_8,
155
+ KEY_9: KEY_9,
156
+ KEY_SEMICOLON: KEY_SEMICOLON,
157
+ KEY_EQUALS: KEY_EQUALS,
158
+ KEY_A: KEY_A,
159
+ KEY_B: KEY_B,
160
+ KEY_C: KEY_C,
161
+ KEY_D: KEY_D,
162
+ KEY_E: KEY_E,
163
+ KEY_F: KEY_F,
164
+ KEY_G: KEY_G,
165
+ KEY_H: KEY_H,
166
+ KEY_I: KEY_I,
167
+ KEY_J: KEY_J,
168
+ KEY_K: KEY_K,
169
+ KEY_L: KEY_L,
170
+ KEY_M: KEY_M,
171
+ KEY_N: KEY_N,
172
+ KEY_O: KEY_O,
173
+ KEY_P: KEY_P,
174
+ KEY_Q: KEY_Q,
175
+ KEY_R: KEY_R,
176
+ KEY_S: KEY_S,
177
+ KEY_T: KEY_T,
178
+ KEY_U: KEY_U,
179
+ KEY_V: KEY_V,
180
+ KEY_W: KEY_W,
181
+ KEY_X: KEY_X,
182
+ KEY_Y: KEY_Y,
183
+ KEY_Z: KEY_Z,
184
+ KEY_CONTEXT_MENU: KEY_CONTEXT_MENU,
185
+ KEY_NUMPAD0: KEY_NUMPAD0,
186
+ KEY_NUMPAD1: KEY_NUMPAD1,
187
+ KEY_NUMPAD2: KEY_NUMPAD2,
188
+ KEY_NUMPAD3: KEY_NUMPAD3,
189
+ KEY_NUMPAD4: KEY_NUMPAD4,
190
+ KEY_NUMPAD5: KEY_NUMPAD5,
191
+ KEY_NUMPAD6: KEY_NUMPAD6,
192
+ KEY_NUMPAD7: KEY_NUMPAD7,
193
+ KEY_NUMPAD8: KEY_NUMPAD8,
194
+ KEY_NUMPAD9: KEY_NUMPAD9,
195
+ KEY_MULTIPLY: KEY_MULTIPLY,
196
+ KEY_ADD: KEY_ADD,
197
+ KEY_SEPARATOR: KEY_SEPARATOR,
198
+ KEY_SUBTRACT: KEY_SUBTRACT,
199
+ KEY_DECIMAL: KEY_DECIMAL,
200
+ KEY_DIVIDE: KEY_DIVIDE,
201
+ KEY_F1: KEY_F1,
202
+ KEY_F2: KEY_F2,
203
+ KEY_F3: KEY_F3,
204
+ KEY_F4: KEY_F4,
205
+ KEY_F5: KEY_F5,
206
+ KEY_F6: KEY_F6,
207
+ KEY_F7: KEY_F7,
208
+ KEY_F8: KEY_F8,
209
+ KEY_F9: KEY_F9,
210
+ KEY_F10: KEY_F10,
211
+ KEY_F11: KEY_F11,
212
+ KEY_F12: KEY_F12,
213
+ KEY_F13: KEY_F13,
214
+ KEY_F14: KEY_F14,
215
+ KEY_F15: KEY_F15,
216
+ KEY_F16: KEY_F16,
217
+ KEY_F17: KEY_F17,
218
+ KEY_F18: KEY_F18,
219
+ KEY_F19: KEY_F19,
220
+ KEY_F20: KEY_F20,
221
+ KEY_F21: KEY_F21,
222
+ KEY_F22: KEY_F22,
223
+ KEY_F23: KEY_F23,
224
+ KEY_F24: KEY_F24,
225
+ KEY_NUM_LOCK: KEY_NUM_LOCK,
226
+ KEY_SCROLL_LOCK: KEY_SCROLL_LOCK,
227
+ KEY_COMMA: KEY_COMMA,
228
+ KEY_PERIOD: KEY_PERIOD,
229
+ KEY_SLASH: KEY_SLASH,
230
+ KEY_BACK_QUOTE: KEY_BACK_QUOTE,
231
+ KEY_OPEN_BRACKET: KEY_OPEN_BRACKET,
232
+ KEY_BACK_SLASH: KEY_BACK_SLASH,
233
+ KEY_CLOSE_BRACKET: KEY_CLOSE_BRACKET,
234
+ KEY_QUOTE: KEY_QUOTE,
235
+ KEY_META: KEY_META
236
+ };
150
237
 
151
- var index = KeyCode$1.default;
238
+ var keycodeJs = KeyCode;
152
239
 
153
- var isMac = navigator.platform.toUpperCase().indexOf('MAC') !== -1;
240
+ var isMac = navigator.platform.toUpperCase().indexOf('MAC') !== -1;
154
241
 
155
- var isVisible = function isVisible(element) {
156
- return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
157
- };
242
+ var isVisible = function isVisible(element) {
243
+ return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length);
244
+ };
158
245
 
159
- var getOffset = function getOffset(elment) {
160
- var box = elment.getBoundingClientRect();
246
+ var getOffset = function getOffset(elment) {
247
+ var box = elment.getBoundingClientRect();
161
248
 
162
- return {
163
- top: box.top + (window.pageYOffset - document.documentElement.clientTop),
164
- left: box.left + (window.pageXOffset - document.documentElement.clientLeft)
249
+ return {
250
+ top: box.top + (window.pageYOffset - document.documentElement.clientTop),
251
+ left: box.left + (window.pageXOffset - document.documentElement.clientLeft)
252
+ };
165
253
  };
166
- };
167
254
 
168
- var computeBoundingBox = function computeBoundingBox(element) {
169
- if (!isVisible(element)) {
170
- return null;
171
- }
255
+ var computeBoundingBox = function computeBoundingBox(element) {
256
+ if (!isVisible(element)) {
257
+ return null;
258
+ }
172
259
 
173
- var boxFrame = getOffset(element);
174
- boxFrame.right = boxFrame.left + element.offsetWidth;
175
- boxFrame.bottom = boxFrame.top + element.offsetHeight;
260
+ var boxFrame = getOffset(element);
261
+ boxFrame.right = boxFrame.left + element.offsetWidth;
262
+ boxFrame.bottom = boxFrame.top + element.offsetHeight;
176
263
 
177
- return {
178
- left: boxFrame.left,
179
- top: boxFrame.top,
180
- width: boxFrame.right - boxFrame.left,
181
- height: boxFrame.bottom - boxFrame.top
264
+ return {
265
+ left: boxFrame.left,
266
+ top: boxFrame.top,
267
+ width: boxFrame.right - boxFrame.left,
268
+ height: boxFrame.bottom - boxFrame.top
269
+ };
182
270
  };
183
- };
184
271
 
185
- var classCallCheck = function (instance, Constructor) {
186
- if (!(instance instanceof Constructor)) {
187
- throw new TypeError("Cannot call a class as a function");
188
- }
189
- };
190
-
191
- var createClass = function () {
192
- function defineProperties(target, props) {
193
- for (var i = 0; i < props.length; i++) {
194
- var descriptor = props[i];
195
- descriptor.enumerable = descriptor.enumerable || false;
196
- descriptor.configurable = true;
197
- if ("value" in descriptor) descriptor.writable = true;
198
- Object.defineProperty(target, descriptor.key, descriptor);
272
+ var classCallCheck = function (instance, Constructor) {
273
+ if (!(instance instanceof Constructor)) {
274
+ throw new TypeError("Cannot call a class as a function");
199
275
  }
200
- }
201
-
202
- return function (Constructor, protoProps, staticProps) {
203
- if (protoProps) defineProperties(Constructor.prototype, protoProps);
204
- if (staticProps) defineProperties(Constructor, staticProps);
205
- return Constructor;
206
276
  };
207
- }();
208
-
209
-
210
-
211
-
212
-
213
-
214
-
215
-
216
-
217
-
218
-
219
-
220
-
221
-
222
-
223
277
 
278
+ var createClass = function () {
279
+ function defineProperties(target, props) {
280
+ for (var i = 0; i < props.length; i++) {
281
+ var descriptor = props[i];
282
+ descriptor.enumerable = descriptor.enumerable || false;
283
+ descriptor.configurable = true;
284
+ if ("value" in descriptor) descriptor.writable = true;
285
+ Object.defineProperty(target, descriptor.key, descriptor);
286
+ }
287
+ }
224
288
 
289
+ return function (Constructor, protoProps, staticProps) {
290
+ if (protoProps) defineProperties(Constructor.prototype, protoProps);
291
+ if (staticProps) defineProperties(Constructor, staticProps);
292
+ return Constructor;
293
+ };
294
+ }();
225
295
 
296
+ var slicedToArray = function () {
297
+ function sliceIterator(arr, i) {
298
+ var _arr = [];
299
+ var _n = true;
300
+ var _d = false;
301
+ var _e = undefined;
226
302
 
303
+ try {
304
+ for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
305
+ _arr.push(_s.value);
227
306
 
307
+ if (i && _arr.length === i) break;
308
+ }
309
+ } catch (err) {
310
+ _d = true;
311
+ _e = err;
312
+ } finally {
313
+ try {
314
+ if (!_n && _i["return"]) _i["return"]();
315
+ } finally {
316
+ if (_d) throw _e;
317
+ }
318
+ }
228
319
 
320
+ return _arr;
321
+ }
229
322
 
323
+ return function (arr, i) {
324
+ if (Array.isArray(arr)) {
325
+ return arr;
326
+ } else if (Symbol.iterator in Object(arr)) {
327
+ return sliceIterator(arr, i);
328
+ } else {
329
+ throw new TypeError("Invalid attempt to destructure non-iterable instance");
330
+ }
331
+ };
332
+ }();
230
333
 
334
+ var ZINDEX = 2000000000;
231
335
 
336
+ var Specimen = function () {
337
+ function Specimen(element, key, callback) {
338
+ classCallCheck(this, Specimen);
232
339
 
340
+ this.element = element;
341
+ this.key = key;
342
+ this.callback = callback;
343
+ }
233
344
 
345
+ createClass(Specimen, [{
346
+ key: 'show',
347
+ value: function show() {
348
+ var _this = this;
234
349
 
235
- var slicedToArray = function () {
236
- function sliceIterator(arr, i) {
237
- var _arr = [];
238
- var _n = true;
239
- var _d = false;
240
- var _e = undefined;
350
+ this.box = this.makeBox();
351
+ if (this.box === null) return;
241
352
 
242
- try {
243
- for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
244
- _arr.push(_s.value);
353
+ this.box.addEventListener('click', function () {
354
+ _this.callback(_this.key);
355
+ });
245
356
 
246
- if (i && _arr.length === i) break;
357
+ document.body.appendChild(this.box);
247
358
  }
248
- } catch (err) {
249
- _d = true;
250
- _e = err;
251
- } finally {
252
- try {
253
- if (!_n && _i["return"]) _i["return"]();
254
- } finally {
255
- if (_d) throw _e;
359
+ }, {
360
+ key: 'remove',
361
+ value: function remove() {
362
+ if (!this.box) {
363
+ return;
364
+ }
365
+ this.box.remove();
366
+ this.box = null;
256
367
  }
257
- }
258
-
259
- return _arr;
260
- }
261
-
262
- return function (arr, i) {
263
- if (Array.isArray(arr)) {
264
- return arr;
265
- } else if (Symbol.iterator in Object(arr)) {
266
- return sliceIterator(arr, i);
267
- } else {
268
- throw new TypeError("Invalid attempt to destructure non-iterable instance");
269
- }
270
- };
271
- }();
272
-
273
- var ZINDEX = 2000000000;
274
-
275
- var Specimen = function () {
276
- function Specimen(element, key, callback) {
277
- classCallCheck(this, Specimen);
278
-
279
- this.element = element;
280
- this.key = key;
281
- this.callback = callback;
282
- }
283
-
284
- createClass(Specimen, [{
285
- key: 'show',
286
- value: function show() {
287
- var _this = this;
368
+ }, {
369
+ key: 'makeBox',
370
+ value: function makeBox() {
371
+ var box = document.createElement('div');
372
+ box.classList.add('copyray-specimen');
373
+ box.classList.add('Specimen');
374
+
375
+ var bounds = computeBoundingBox(this.element);
376
+ if (bounds === null) return null;
377
+
378
+ Object.keys(bounds).forEach(function (key) {
379
+ var value = bounds[key];
380
+ box.style[key] = value + 'px';
381
+ });
382
+ box.style.zIndex = ZINDEX;
288
383
 
289
- this.box = this.makeBox();
290
- if (this.box === null) return;
384
+ var _getComputedStyle = getComputedStyle(this.element),
385
+ position = _getComputedStyle.position,
386
+ top = _getComputedStyle.top,
387
+ left = _getComputedStyle.left;
291
388
 
292
- this.box.addEventListener('click', function () {
293
- _this.callback(_this.key);
294
- });
389
+ if (position === 'fixed') {
390
+ this.box.style.position = 'fixed';
391
+ this.box.style.top = top + 'px';
392
+ this.box.style.left = left + 'px';
393
+ }
295
394
 
296
- document.body.appendChild(this.box);
297
- }
298
- }, {
299
- key: 'remove',
300
- value: function remove() {
301
- if (!this.box) {
302
- return;
395
+ box.appendChild(this.makeLabel());
396
+ return box;
303
397
  }
304
- this.box.remove();
305
- this.box = null;
306
- }
307
- }, {
308
- key: 'makeBox',
309
- value: function makeBox() {
310
- var box = document.createElement('div');
311
- box.classList.add('copyray-specimen');
312
- box.classList.add('Specimen');
313
-
314
- var bounds = computeBoundingBox(this.element);
315
- if (bounds === null) return null;
316
-
317
- Object.keys(bounds).forEach(function (key) {
318
- var value = bounds[key];
319
- box.style[key] = value + 'px';
320
- });
321
- box.style.zIndex = ZINDEX;
322
-
323
- var _getComputedStyle = getComputedStyle(this.element),
324
- position = _getComputedStyle.position,
325
- top = _getComputedStyle.top,
326
- left = _getComputedStyle.left;
327
-
328
- if (position === 'fixed') {
329
- this.box.style.position = 'fixed';
330
- this.box.style.top = top + 'px';
331
- this.box.style.left = left + 'px';
398
+ }, {
399
+ key: 'makeLabel',
400
+ value: function makeLabel() {
401
+ var div = document.createElement('div');
402
+ div.classList.add('copyray-specimen-handle');
403
+ div.classList.add('Specimen');
404
+ div.textContent = this.key;
405
+ return div;
332
406
  }
407
+ }]);
408
+ return Specimen;
409
+ }();
410
+
411
+ var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
412
+
413
+ /**
414
+ * lodash (Custom Build) <https://lodash.com/>
415
+ * Build: `lodash modularize exports="npm" -o ./`
416
+ * Copyright jQuery Foundation and other contributors <https://jquery.org/>
417
+ * Released under MIT license <https://lodash.com/license>
418
+ * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
419
+ * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
420
+ */
421
+
422
+ /** Used as the `TypeError` message for "Functions" methods. */
423
+ var FUNC_ERROR_TEXT = 'Expected a function';
424
+
425
+ /** Used as references for various `Number` constants. */
426
+ var NAN = 0 / 0;
427
+
428
+ /** `Object#toString` result references. */
429
+ var symbolTag = '[object Symbol]';
430
+
431
+ /** Used to match leading and trailing whitespace. */
432
+ var reTrim = /^\s+|\s+$/g;
433
+
434
+ /** Used to detect bad signed hexadecimal string values. */
435
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
436
+
437
+ /** Used to detect binary string values. */
438
+ var reIsBinary = /^0b[01]+$/i;
439
+
440
+ /** Used to detect octal string values. */
441
+ var reIsOctal = /^0o[0-7]+$/i;
442
+
443
+ /** Built-in method references without a dependency on `root`. */
444
+ var freeParseInt = parseInt;
445
+
446
+ /** Detect free variable `global` from Node.js. */
447
+ var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
448
+
449
+ /** Detect free variable `self`. */
450
+ var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
451
+
452
+ /** Used as a reference to the global object. */
453
+ var root = freeGlobal || freeSelf || Function('return this')();
454
+
455
+ /** Used for built-in method references. */
456
+ var objectProto = Object.prototype;
457
+
458
+ /**
459
+ * Used to resolve the
460
+ * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
461
+ * of values.
462
+ */
463
+ var objectToString = objectProto.toString;
464
+
465
+ /* Built-in method references for those with the same name as other `lodash` methods. */
466
+ var nativeMax = Math.max,
467
+ nativeMin = Math.min;
468
+
469
+ /**
470
+ * Gets the timestamp of the number of milliseconds that have elapsed since
471
+ * the Unix epoch (1 January 1970 00:00:00 UTC).
472
+ *
473
+ * @static
474
+ * @memberOf _
475
+ * @since 2.4.0
476
+ * @category Date
477
+ * @returns {number} Returns the timestamp.
478
+ * @example
479
+ *
480
+ * _.defer(function(stamp) {
481
+ * console.log(_.now() - stamp);
482
+ * }, _.now());
483
+ * // => Logs the number of milliseconds it took for the deferred invocation.
484
+ */
485
+ var now = function() {
486
+ return root.Date.now();
487
+ };
333
488
 
334
- box.appendChild(this.makeLabel());
335
- return box;
489
+ /**
490
+ * Creates a debounced function that delays invoking `func` until after `wait`
491
+ * milliseconds have elapsed since the last time the debounced function was
492
+ * invoked. The debounced function comes with a `cancel` method to cancel
493
+ * delayed `func` invocations and a `flush` method to immediately invoke them.
494
+ * Provide `options` to indicate whether `func` should be invoked on the
495
+ * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
496
+ * with the last arguments provided to the debounced function. Subsequent
497
+ * calls to the debounced function return the result of the last `func`
498
+ * invocation.
499
+ *
500
+ * **Note:** If `leading` and `trailing` options are `true`, `func` is
501
+ * invoked on the trailing edge of the timeout only if the debounced function
502
+ * is invoked more than once during the `wait` timeout.
503
+ *
504
+ * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
505
+ * until to the next tick, similar to `setTimeout` with a timeout of `0`.
506
+ *
507
+ * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
508
+ * for details over the differences between `_.debounce` and `_.throttle`.
509
+ *
510
+ * @static
511
+ * @memberOf _
512
+ * @since 0.1.0
513
+ * @category Function
514
+ * @param {Function} func The function to debounce.
515
+ * @param {number} [wait=0] The number of milliseconds to delay.
516
+ * @param {Object} [options={}] The options object.
517
+ * @param {boolean} [options.leading=false]
518
+ * Specify invoking on the leading edge of the timeout.
519
+ * @param {number} [options.maxWait]
520
+ * The maximum time `func` is allowed to be delayed before it's invoked.
521
+ * @param {boolean} [options.trailing=true]
522
+ * Specify invoking on the trailing edge of the timeout.
523
+ * @returns {Function} Returns the new debounced function.
524
+ * @example
525
+ *
526
+ * // Avoid costly calculations while the window size is in flux.
527
+ * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
528
+ *
529
+ * // Invoke `sendMail` when clicked, debouncing subsequent calls.
530
+ * jQuery(element).on('click', _.debounce(sendMail, 300, {
531
+ * 'leading': true,
532
+ * 'trailing': false
533
+ * }));
534
+ *
535
+ * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
536
+ * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
537
+ * var source = new EventSource('/stream');
538
+ * jQuery(source).on('message', debounced);
539
+ *
540
+ * // Cancel the trailing debounced invocation.
541
+ * jQuery(window).on('popstate', debounced.cancel);
542
+ */
543
+ function debounce(func, wait, options) {
544
+ var lastArgs,
545
+ lastThis,
546
+ maxWait,
547
+ result,
548
+ timerId,
549
+ lastCallTime,
550
+ lastInvokeTime = 0,
551
+ leading = false,
552
+ maxing = false,
553
+ trailing = true;
554
+
555
+ if (typeof func != 'function') {
556
+ throw new TypeError(FUNC_ERROR_TEXT);
336
557
  }
337
- }, {
338
- key: 'makeLabel',
339
- value: function makeLabel() {
340
- var div = document.createElement('div');
341
- div.classList.add('copyray-specimen-handle');
342
- div.classList.add('Specimen');
343
- div.textContent = this.key;
344
- return div;
558
+ wait = toNumber(wait) || 0;
559
+ if (isObject(options)) {
560
+ leading = !!options.leading;
561
+ maxing = 'maxWait' in options;
562
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
563
+ trailing = 'trailing' in options ? !!options.trailing : trailing;
345
564
  }
346
- }]);
347
- return Specimen;
348
- }();
349
-
350
- var FUNC_ERROR_TEXT = 'Expected a function';
351
-
352
- /** Used as references for various `Number` constants. */
353
- var NAN = 0 / 0;
354
-
355
- /** `Object#toString` result references. */
356
- var symbolTag = '[object Symbol]';
357
-
358
- /** Used to match leading and trailing whitespace. */
359
- var reTrim = /^\s+|\s+$/g;
360
-
361
- /** Used to detect bad signed hexadecimal string values. */
362
- var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
363
-
364
- /** Used to detect binary string values. */
365
- var reIsBinary = /^0b[01]+$/i;
366
-
367
- /** Used to detect octal string values. */
368
- var reIsOctal = /^0o[0-7]+$/i;
369
-
370
- /** Built-in method references without a dependency on `root`. */
371
- var freeParseInt = parseInt;
372
-
373
- /** Detect free variable `global` from Node.js. */
374
- var freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
375
-
376
- /** Detect free variable `self`. */
377
- var freeSelf = typeof self == 'object' && self && self.Object === Object && self;
378
-
379
- /** Used as a reference to the global object. */
380
- var root = freeGlobal || freeSelf || Function('return this')();
381
-
382
- /** Used for built-in method references. */
383
- var objectProto = Object.prototype;
384
-
385
- /**
386
- * Used to resolve the
387
- * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)
388
- * of values.
389
- */
390
- var objectToString = objectProto.toString;
391
-
392
- /* Built-in method references for those with the same name as other `lodash` methods. */
393
- var nativeMax = Math.max;
394
- var nativeMin = Math.min;
395
-
396
- /**
397
- * Gets the timestamp of the number of milliseconds that have elapsed since
398
- * the Unix epoch (1 January 1970 00:00:00 UTC).
399
- *
400
- * @static
401
- * @memberOf _
402
- * @since 2.4.0
403
- * @category Date
404
- * @returns {number} Returns the timestamp.
405
- * @example
406
- *
407
- * _.defer(function(stamp) {
408
- * console.log(_.now() - stamp);
409
- * }, _.now());
410
- * // => Logs the number of milliseconds it took for the deferred invocation.
411
- */
412
- var now = function() {
413
- return root.Date.now();
414
- };
415
-
416
- /**
417
- * Creates a debounced function that delays invoking `func` until after `wait`
418
- * milliseconds have elapsed since the last time the debounced function was
419
- * invoked. The debounced function comes with a `cancel` method to cancel
420
- * delayed `func` invocations and a `flush` method to immediately invoke them.
421
- * Provide `options` to indicate whether `func` should be invoked on the
422
- * leading and/or trailing edge of the `wait` timeout. The `func` is invoked
423
- * with the last arguments provided to the debounced function. Subsequent
424
- * calls to the debounced function return the result of the last `func`
425
- * invocation.
426
- *
427
- * **Note:** If `leading` and `trailing` options are `true`, `func` is
428
- * invoked on the trailing edge of the timeout only if the debounced function
429
- * is invoked more than once during the `wait` timeout.
430
- *
431
- * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred
432
- * until to the next tick, similar to `setTimeout` with a timeout of `0`.
433
- *
434
- * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)
435
- * for details over the differences between `_.debounce` and `_.throttle`.
436
- *
437
- * @static
438
- * @memberOf _
439
- * @since 0.1.0
440
- * @category Function
441
- * @param {Function} func The function to debounce.
442
- * @param {number} [wait=0] The number of milliseconds to delay.
443
- * @param {Object} [options={}] The options object.
444
- * @param {boolean} [options.leading=false]
445
- * Specify invoking on the leading edge of the timeout.
446
- * @param {number} [options.maxWait]
447
- * The maximum time `func` is allowed to be delayed before it's invoked.
448
- * @param {boolean} [options.trailing=true]
449
- * Specify invoking on the trailing edge of the timeout.
450
- * @returns {Function} Returns the new debounced function.
451
- * @example
452
- *
453
- * // Avoid costly calculations while the window size is in flux.
454
- * jQuery(window).on('resize', _.debounce(calculateLayout, 150));
455
- *
456
- * // Invoke `sendMail` when clicked, debouncing subsequent calls.
457
- * jQuery(element).on('click', _.debounce(sendMail, 300, {
458
- * 'leading': true,
459
- * 'trailing': false
460
- * }));
461
- *
462
- * // Ensure `batchLog` is invoked once after 1 second of debounced calls.
463
- * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });
464
- * var source = new EventSource('/stream');
465
- * jQuery(source).on('message', debounced);
466
- *
467
- * // Cancel the trailing debounced invocation.
468
- * jQuery(window).on('popstate', debounced.cancel);
469
- */
470
- function debounce(func, wait, options) {
471
- var lastArgs,
472
- lastThis,
473
- maxWait,
474
- result,
475
- timerId,
476
- lastCallTime,
477
- lastInvokeTime = 0,
478
- leading = false,
479
- maxing = false,
480
- trailing = true;
481
-
482
- if (typeof func != 'function') {
483
- throw new TypeError(FUNC_ERROR_TEXT);
484
- }
485
- wait = toNumber(wait) || 0;
486
- if (isObject(options)) {
487
- leading = !!options.leading;
488
- maxing = 'maxWait' in options;
489
- maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
490
- trailing = 'trailing' in options ? !!options.trailing : trailing;
491
- }
492
565
 
493
- function invokeFunc(time) {
494
- var args = lastArgs,
495
- thisArg = lastThis;
566
+ function invokeFunc(time) {
567
+ var args = lastArgs,
568
+ thisArg = lastThis;
496
569
 
497
- lastArgs = lastThis = undefined;
498
- lastInvokeTime = time;
499
- result = func.apply(thisArg, args);
500
- return result;
501
- }
570
+ lastArgs = lastThis = undefined;
571
+ lastInvokeTime = time;
572
+ result = func.apply(thisArg, args);
573
+ return result;
574
+ }
502
575
 
503
- function leadingEdge(time) {
504
- // Reset any `maxWait` timer.
505
- lastInvokeTime = time;
506
- // Start the timer for the trailing edge.
507
- timerId = setTimeout(timerExpired, wait);
508
- // Invoke the leading edge.
509
- return leading ? invokeFunc(time) : result;
510
- }
576
+ function leadingEdge(time) {
577
+ // Reset any `maxWait` timer.
578
+ lastInvokeTime = time;
579
+ // Start the timer for the trailing edge.
580
+ timerId = setTimeout(timerExpired, wait);
581
+ // Invoke the leading edge.
582
+ return leading ? invokeFunc(time) : result;
583
+ }
511
584
 
512
- function remainingWait(time) {
513
- var timeSinceLastCall = time - lastCallTime,
514
- timeSinceLastInvoke = time - lastInvokeTime,
515
- result = wait - timeSinceLastCall;
585
+ function remainingWait(time) {
586
+ var timeSinceLastCall = time - lastCallTime,
587
+ timeSinceLastInvoke = time - lastInvokeTime,
588
+ result = wait - timeSinceLastCall;
516
589
 
517
- return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
518
- }
590
+ return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;
591
+ }
519
592
 
520
- function shouldInvoke(time) {
521
- var timeSinceLastCall = time - lastCallTime,
522
- timeSinceLastInvoke = time - lastInvokeTime;
593
+ function shouldInvoke(time) {
594
+ var timeSinceLastCall = time - lastCallTime,
595
+ timeSinceLastInvoke = time - lastInvokeTime;
523
596
 
524
- // Either this is the first call, activity has stopped and we're at the
525
- // trailing edge, the system time has gone backwards and we're treating
526
- // it as the trailing edge, or we've hit the `maxWait` limit.
527
- return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
528
- (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
529
- }
597
+ // Either this is the first call, activity has stopped and we're at the
598
+ // trailing edge, the system time has gone backwards and we're treating
599
+ // it as the trailing edge, or we've hit the `maxWait` limit.
600
+ return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||
601
+ (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));
602
+ }
530
603
 
531
- function timerExpired() {
532
- var time = now();
533
- if (shouldInvoke(time)) {
534
- return trailingEdge(time);
604
+ function timerExpired() {
605
+ var time = now();
606
+ if (shouldInvoke(time)) {
607
+ return trailingEdge(time);
608
+ }
609
+ // Restart the timer.
610
+ timerId = setTimeout(timerExpired, remainingWait(time));
535
611
  }
536
- // Restart the timer.
537
- timerId = setTimeout(timerExpired, remainingWait(time));
538
- }
539
612
 
540
- function trailingEdge(time) {
541
- timerId = undefined;
613
+ function trailingEdge(time) {
614
+ timerId = undefined;
542
615
 
543
- // Only invoke if we have `lastArgs` which means `func` has been
544
- // debounced at least once.
545
- if (trailing && lastArgs) {
546
- return invokeFunc(time);
616
+ // Only invoke if we have `lastArgs` which means `func` has been
617
+ // debounced at least once.
618
+ if (trailing && lastArgs) {
619
+ return invokeFunc(time);
620
+ }
621
+ lastArgs = lastThis = undefined;
622
+ return result;
547
623
  }
548
- lastArgs = lastThis = undefined;
549
- return result;
550
- }
551
624
 
552
- function cancel() {
553
- if (timerId !== undefined) {
554
- clearTimeout(timerId);
625
+ function cancel() {
626
+ if (timerId !== undefined) {
627
+ clearTimeout(timerId);
628
+ }
629
+ lastInvokeTime = 0;
630
+ lastArgs = lastCallTime = lastThis = timerId = undefined;
555
631
  }
556
- lastInvokeTime = 0;
557
- lastArgs = lastCallTime = lastThis = timerId = undefined;
558
- }
559
632
 
560
- function flush() {
561
- return timerId === undefined ? result : trailingEdge(now());
562
- }
633
+ function flush() {
634
+ return timerId === undefined ? result : trailingEdge(now());
635
+ }
563
636
 
564
- function debounced() {
565
- var time = now(),
566
- isInvoking = shouldInvoke(time);
637
+ function debounced() {
638
+ var time = now(),
639
+ isInvoking = shouldInvoke(time);
567
640
 
568
- lastArgs = arguments;
569
- lastThis = this;
570
- lastCallTime = time;
641
+ lastArgs = arguments;
642
+ lastThis = this;
643
+ lastCallTime = time;
571
644
 
572
- if (isInvoking) {
573
- if (timerId === undefined) {
574
- return leadingEdge(lastCallTime);
645
+ if (isInvoking) {
646
+ if (timerId === undefined) {
647
+ return leadingEdge(lastCallTime);
648
+ }
649
+ if (maxing) {
650
+ // Handle invocations in a tight loop.
651
+ timerId = setTimeout(timerExpired, wait);
652
+ return invokeFunc(lastCallTime);
653
+ }
575
654
  }
576
- if (maxing) {
577
- // Handle invocations in a tight loop.
655
+ if (timerId === undefined) {
578
656
  timerId = setTimeout(timerExpired, wait);
579
- return invokeFunc(lastCallTime);
580
657
  }
658
+ return result;
581
659
  }
582
- if (timerId === undefined) {
583
- timerId = setTimeout(timerExpired, wait);
584
- }
585
- return result;
586
- }
587
- debounced.cancel = cancel;
588
- debounced.flush = flush;
589
- return debounced;
590
- }
591
-
592
- /**
593
- * Checks if `value` is the
594
- * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
595
- * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
596
- *
597
- * @static
598
- * @memberOf _
599
- * @since 0.1.0
600
- * @category Lang
601
- * @param {*} value The value to check.
602
- * @returns {boolean} Returns `true` if `value` is an object, else `false`.
603
- * @example
604
- *
605
- * _.isObject({});
606
- * // => true
607
- *
608
- * _.isObject([1, 2, 3]);
609
- * // => true
610
- *
611
- * _.isObject(_.noop);
612
- * // => true
613
- *
614
- * _.isObject(null);
615
- * // => false
616
- */
617
- function isObject(value) {
618
- var type = typeof value;
619
- return !!value && (type == 'object' || type == 'function');
620
- }
621
-
622
- /**
623
- * Checks if `value` is object-like. A value is object-like if it's not `null`
624
- * and has a `typeof` result of "object".
625
- *
626
- * @static
627
- * @memberOf _
628
- * @since 4.0.0
629
- * @category Lang
630
- * @param {*} value The value to check.
631
- * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
632
- * @example
633
- *
634
- * _.isObjectLike({});
635
- * // => true
636
- *
637
- * _.isObjectLike([1, 2, 3]);
638
- * // => true
639
- *
640
- * _.isObjectLike(_.noop);
641
- * // => false
642
- *
643
- * _.isObjectLike(null);
644
- * // => false
645
- */
646
- function isObjectLike(value) {
647
- return !!value && typeof value == 'object';
648
- }
649
-
650
- /**
651
- * Checks if `value` is classified as a `Symbol` primitive or object.
652
- *
653
- * @static
654
- * @memberOf _
655
- * @since 4.0.0
656
- * @category Lang
657
- * @param {*} value The value to check.
658
- * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
659
- * @example
660
- *
661
- * _.isSymbol(Symbol.iterator);
662
- * // => true
663
- *
664
- * _.isSymbol('abc');
665
- * // => false
666
- */
667
- function isSymbol(value) {
668
- return typeof value == 'symbol' ||
669
- (isObjectLike(value) && objectToString.call(value) == symbolTag);
670
- }
671
-
672
- /**
673
- * Converts `value` to a number.
674
- *
675
- * @static
676
- * @memberOf _
677
- * @since 4.0.0
678
- * @category Lang
679
- * @param {*} value The value to process.
680
- * @returns {number} Returns the number.
681
- * @example
682
- *
683
- * _.toNumber(3.2);
684
- * // => 3.2
685
- *
686
- * _.toNumber(Number.MIN_VALUE);
687
- * // => 5e-324
688
- *
689
- * _.toNumber(Infinity);
690
- * // => Infinity
691
- *
692
- * _.toNumber('3.2');
693
- * // => 3.2
694
- */
695
- function toNumber(value) {
696
- if (typeof value == 'number') {
697
- return value;
698
- }
699
- if (isSymbol(value)) {
700
- return NAN;
701
- }
702
- if (isObject(value)) {
703
- var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
704
- value = isObject(other) ? (other + '') : other;
705
- }
706
- if (typeof value != 'string') {
707
- return value === 0 ? value : +value;
660
+ debounced.cancel = cancel;
661
+ debounced.flush = flush;
662
+ return debounced;
708
663
  }
709
- value = value.replace(reTrim, '');
710
- var isBinary = reIsBinary.test(value);
711
- return (isBinary || reIsOctal.test(value))
712
- ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
713
- : (reIsBadHex.test(value) ? NAN : +value);
714
- }
715
664
 
716
- var index$1 = debounce;
717
-
718
- var HIDDEN_CLASS = 'copy-tuner-hidden';
719
-
720
- var CopytunerBar = function () {
721
- function CopytunerBar(element, data, callback) {
722
- classCallCheck(this, CopytunerBar);
723
-
724
- this.element = element;
725
- this.data = data;
726
- this.callback = callback;
727
- this.searchBoxElement = element.querySelector('.js-copy-tuner-bar-search');
728
- this.logMenuElement = this.makeLogMenu();
729
- this.element.appendChild(this.logMenuElement);
730
-
731
- this.addHandler();
665
+ /**
666
+ * Checks if `value` is the
667
+ * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)
668
+ * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
669
+ *
670
+ * @static
671
+ * @memberOf _
672
+ * @since 0.1.0
673
+ * @category Lang
674
+ * @param {*} value The value to check.
675
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
676
+ * @example
677
+ *
678
+ * _.isObject({});
679
+ * // => true
680
+ *
681
+ * _.isObject([1, 2, 3]);
682
+ * // => true
683
+ *
684
+ * _.isObject(_.noop);
685
+ * // => true
686
+ *
687
+ * _.isObject(null);
688
+ * // => false
689
+ */
690
+ function isObject(value) {
691
+ var type = typeof value;
692
+ return !!value && (type == 'object' || type == 'function');
732
693
  }
733
694
 
734
- createClass(CopytunerBar, [{
735
- key: 'addHandler',
736
- value: function addHandler() {
737
- var _this = this;
695
+ /**
696
+ * Checks if `value` is object-like. A value is object-like if it's not `null`
697
+ * and has a `typeof` result of "object".
698
+ *
699
+ * @static
700
+ * @memberOf _
701
+ * @since 4.0.0
702
+ * @category Lang
703
+ * @param {*} value The value to check.
704
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
705
+ * @example
706
+ *
707
+ * _.isObjectLike({});
708
+ * // => true
709
+ *
710
+ * _.isObjectLike([1, 2, 3]);
711
+ * // => true
712
+ *
713
+ * _.isObjectLike(_.noop);
714
+ * // => false
715
+ *
716
+ * _.isObjectLike(null);
717
+ * // => false
718
+ */
719
+ function isObjectLike(value) {
720
+ return !!value && typeof value == 'object';
721
+ }
738
722
 
739
- var openLogButton = this.element.querySelector('.js-copy-tuner-bar-open-log');
740
- openLogButton.addEventListener('click', function (event) {
741
- event.preventDefault();
742
- _this.toggleLogMenu();
743
- });
723
+ /**
724
+ * Checks if `value` is classified as a `Symbol` primitive or object.
725
+ *
726
+ * @static
727
+ * @memberOf _
728
+ * @since 4.0.0
729
+ * @category Lang
730
+ * @param {*} value The value to check.
731
+ * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.
732
+ * @example
733
+ *
734
+ * _.isSymbol(Symbol.iterator);
735
+ * // => true
736
+ *
737
+ * _.isSymbol('abc');
738
+ * // => false
739
+ */
740
+ function isSymbol(value) {
741
+ return typeof value == 'symbol' ||
742
+ (isObjectLike(value) && objectToString.call(value) == symbolTag);
743
+ }
744
744
 
745
- this.searchBoxElement.addEventListener('input', index$1(this.onKeyup.bind(this), 250));
746
- }
747
- }, {
748
- key: 'show',
749
- value: function show() {
750
- this.element.classList.remove(HIDDEN_CLASS);
751
- this.searchBoxElement.focus();
745
+ /**
746
+ * Converts `value` to a number.
747
+ *
748
+ * @static
749
+ * @memberOf _
750
+ * @since 4.0.0
751
+ * @category Lang
752
+ * @param {*} value The value to process.
753
+ * @returns {number} Returns the number.
754
+ * @example
755
+ *
756
+ * _.toNumber(3.2);
757
+ * // => 3.2
758
+ *
759
+ * _.toNumber(Number.MIN_VALUE);
760
+ * // => 5e-324
761
+ *
762
+ * _.toNumber(Infinity);
763
+ * // => Infinity
764
+ *
765
+ * _.toNumber('3.2');
766
+ * // => 3.2
767
+ */
768
+ function toNumber(value) {
769
+ if (typeof value == 'number') {
770
+ return value;
752
771
  }
753
- }, {
754
- key: 'hide',
755
- value: function hide() {
756
- this.element.classList.add(HIDDEN_CLASS);
772
+ if (isSymbol(value)) {
773
+ return NAN;
757
774
  }
758
- }, {
759
- key: 'showLogMenu',
760
- value: function showLogMenu() {
761
- this.logMenuElement.classList.remove(HIDDEN_CLASS);
775
+ if (isObject(value)) {
776
+ var other = typeof value.valueOf == 'function' ? value.valueOf() : value;
777
+ value = isObject(other) ? (other + '') : other;
762
778
  }
763
- }, {
764
- key: 'toggleLogMenu',
765
- value: function toggleLogMenu() {
766
- this.logMenuElement.classList.toggle(HIDDEN_CLASS);
779
+ if (typeof value != 'string') {
780
+ return value === 0 ? value : +value;
767
781
  }
768
- }, {
769
- key: 'makeLogMenu',
770
- value: function makeLogMenu() {
771
- var _this2 = this;
782
+ value = value.replace(reTrim, '');
783
+ var isBinary = reIsBinary.test(value);
784
+ return (isBinary || reIsOctal.test(value))
785
+ ? freeParseInt(value.slice(2), isBinary ? 2 : 8)
786
+ : (reIsBadHex.test(value) ? NAN : +value);
787
+ }
772
788
 
773
- var div = document.createElement('div');
774
- div.setAttribute('id', 'copy-tuner-bar-log-menu');
775
- div.classList.add(HIDDEN_CLASS);
789
+ var lodash_debounce = debounce;
776
790
 
777
- var table = document.createElement('table');
778
- var tbody = document.createElement('tbody');
779
- tbody.classList.remove('is-not-initialized');
791
+ var HIDDEN_CLASS = 'copy-tuner-hidden';
780
792
 
781
- Object.keys(this.data).sort().forEach(function (key) {
782
- var value = _this2.data[key];
793
+ var CopytunerBar = function () {
794
+ function CopytunerBar(element, data, callback) {
795
+ classCallCheck(this, CopytunerBar);
783
796
 
784
- if (value === '') {
785
- return;
786
- }
797
+ this.element = element;
798
+ this.data = data;
799
+ this.callback = callback;
800
+ this.searchBoxElement = element.querySelector('.js-copy-tuner-bar-search');
801
+ this.logMenuElement = this.makeLogMenu();
802
+ this.element.appendChild(this.logMenuElement);
787
803
 
788
- var td1 = document.createElement('td');
789
- td1.textContent = key;
790
- var td2 = document.createElement('td');
791
- td2.textContent = value;
792
- var tr = document.createElement('tr');
793
- tr.classList.add('copy-tuner-bar-log-menu__row');
794
- tr.dataset.key = key;
804
+ this.addHandler();
805
+ }
795
806
 
796
- tr.addEventListener('click', function (_ref) {
797
- var currentTarget = _ref.currentTarget;
807
+ createClass(CopytunerBar, [{
808
+ key: 'addHandler',
809
+ value: function addHandler() {
810
+ var _this = this;
798
811
 
799
- _this2.callback(currentTarget.dataset.key);
812
+ var openLogButton = this.element.querySelector('.js-copy-tuner-bar-open-log');
813
+ openLogButton.addEventListener('click', function (event) {
814
+ event.preventDefault();
815
+ _this.toggleLogMenu();
800
816
  });
801
817
 
802
- tr.appendChild(td1);
803
- tr.appendChild(td2);
804
- tbody.appendChild(tr);
805
- });
818
+ this.searchBoxElement.addEventListener('input', lodash_debounce(this.onKeyup.bind(this), 250));
819
+ }
820
+ }, {
821
+ key: 'show',
822
+ value: function show() {
823
+ this.element.classList.remove(HIDDEN_CLASS);
824
+ this.searchBoxElement.focus();
825
+ }
826
+ }, {
827
+ key: 'hide',
828
+ value: function hide() {
829
+ this.element.classList.add(HIDDEN_CLASS);
830
+ }
831
+ }, {
832
+ key: 'showLogMenu',
833
+ value: function showLogMenu() {
834
+ this.logMenuElement.classList.remove(HIDDEN_CLASS);
835
+ }
836
+ }, {
837
+ key: 'toggleLogMenu',
838
+ value: function toggleLogMenu() {
839
+ this.logMenuElement.classList.toggle(HIDDEN_CLASS);
840
+ }
841
+ }, {
842
+ key: 'makeLogMenu',
843
+ value: function makeLogMenu() {
844
+ var _this2 = this;
845
+
846
+ var div = document.createElement('div');
847
+ div.setAttribute('id', 'copy-tuner-bar-log-menu');
848
+ div.classList.add(HIDDEN_CLASS);
849
+
850
+ var table = document.createElement('table');
851
+ var tbody = document.createElement('tbody');
852
+ tbody.classList.remove('is-not-initialized');
853
+
854
+ Object.keys(this.data).sort().forEach(function (key) {
855
+ var value = _this2.data[key];
856
+
857
+ if (value === '') {
858
+ return;
859
+ }
860
+
861
+ var td1 = document.createElement('td');
862
+ td1.textContent = key;
863
+ var td2 = document.createElement('td');
864
+ td2.textContent = value;
865
+ var tr = document.createElement('tr');
866
+ tr.classList.add('copy-tuner-bar-log-menu__row');
867
+ tr.dataset.key = key;
868
+
869
+ tr.addEventListener('click', function (_ref) {
870
+ var currentTarget = _ref.currentTarget;
871
+
872
+ _this2.callback(currentTarget.dataset.key);
873
+ });
874
+
875
+ tr.appendChild(td1);
876
+ tr.appendChild(td2);
877
+ tbody.appendChild(tr);
878
+ });
806
879
 
807
- table.appendChild(tbody);
808
- div.appendChild(table);
880
+ table.appendChild(tbody);
881
+ div.appendChild(table);
809
882
 
810
- return div;
811
- }
812
- }, {
813
- key: 'onKeyup',
814
- value: function onKeyup(_ref2) {
815
- var target = _ref2.target;
883
+ return div;
884
+ }
885
+ }, {
886
+ key: 'onKeyup',
887
+ value: function onKeyup(_ref2) {
888
+ var target = _ref2.target;
816
889
 
817
- var keyword = target.value.trim();
818
- this.showLogMenu();
890
+ var keyword = target.value.trim();
891
+ this.showLogMenu();
819
892
 
820
- var rows = Array.from(this.logMenuElement.getElementsByTagName('tr'));
893
+ var rows = Array.from(this.logMenuElement.getElementsByTagName('tr'));
821
894
 
822
- rows.forEach(function (row) {
823
- var isShow = keyword === '' || Array.from(row.getElementsByTagName('td')).some(function (td) {
824
- return td.textContent.includes(keyword);
895
+ rows.forEach(function (row) {
896
+ var isShow = keyword === '' || Array.from(row.getElementsByTagName('td')).some(function (td) {
897
+ return td.textContent.includes(keyword);
898
+ });
899
+ row.classList.toggle(HIDDEN_CLASS, !isShow);
825
900
  });
826
- row.classList.toggle(HIDDEN_CLASS, !isShow);
827
- });
901
+ }
902
+ }]);
903
+ return CopytunerBar;
904
+ }();
905
+
906
+ var findBlurbs = function findBlurbs() {
907
+ var filterNone = function filterNone() {
908
+ return NodeFilter.FILTER_ACCEPT;
909
+ };
910
+
911
+ var iterator = document.createNodeIterator(document.body, NodeFilter.SHOW_COMMENT, filterNone, false);
912
+
913
+ var comments = [];
914
+ var curNode = void 0;
915
+ // eslint-disable-next-line no-cond-assign
916
+ while (curNode = iterator.nextNode()) {
917
+ comments.push(curNode);
828
918
  }
829
- }]);
830
- return CopytunerBar;
831
- }();
832
919
 
833
- var findBlurbs = function findBlurbs() {
834
- var filterNone = function filterNone() {
835
- return NodeFilter.FILTER_ACCEPT;
920
+ return comments.filter(function (comment) {
921
+ return comment.nodeValue.startsWith('COPYRAY');
922
+ }).map(function (comment) {
923
+ var _comment$nodeValue$ma = comment.nodeValue.match(/^COPYRAY (\S*)$/),
924
+ _comment$nodeValue$ma2 = slicedToArray(_comment$nodeValue$ma, 2),
925
+ key = _comment$nodeValue$ma2[1];
926
+
927
+ var element = comment.parentNode;
928
+ return { key: key, element: element };
929
+ });
836
930
  };
837
931
 
838
- var iterator = document.createNodeIterator(document.body, NodeFilter.SHOW_COMMENT, filterNone, false);
932
+ var Copyray = function () {
933
+ function Copyray(baseUrl, data) {
934
+ classCallCheck(this, Copyray);
839
935
 
840
- var comments = [];
841
- var curNode = void 0;
842
- // eslint-disable-next-line no-cond-assign
843
- while (curNode = iterator.nextNode()) {
844
- comments.push(curNode);
845
- }
936
+ this.baseUrl = baseUrl;
937
+ this.data = data;
938
+ this.isShowing = false;
939
+ this.specimens = [];
940
+ this.overlay = this.makeOverlay();
941
+ this.toggleButton = this.makeToggleButton();
942
+ this.boundOpen = this.open.bind(this);
846
943
 
847
- return comments.filter(function (comment) {
848
- return comment.nodeValue.startsWith('COPYRAY');
849
- }).map(function (comment) {
850
- var _comment$nodeValue$ma = comment.nodeValue.match(/^COPYRAY (\S*)$/),
851
- _comment$nodeValue$ma2 = slicedToArray(_comment$nodeValue$ma, 2),
852
- key = _comment$nodeValue$ma2[1];
853
-
854
- var element = comment.parentNode;
855
- return { key: key, element: element };
856
- });
857
- };
858
-
859
- var Copyray = function () {
860
- function Copyray(baseUrl, data) {
861
- classCallCheck(this, Copyray);
862
-
863
- this.baseUrl = baseUrl;
864
- this.data = data;
865
- this.isShowing = false;
866
- this.specimens = [];
867
- this.overlay = this.makeOverlay();
868
- this.toggleButton = this.makeToggleButton();
869
- this.boundOpen = this.open.bind(this);
870
-
871
- this.copyTunerBar = new CopytunerBar(document.getElementById('copy-tuner-bar'), this.data, this.boundOpen);
872
- }
944
+ this.copyTunerBar = new CopytunerBar(document.getElementById('copy-tuner-bar'), this.data, this.boundOpen);
945
+ }
873
946
 
874
- createClass(Copyray, [{
875
- key: 'show',
876
- value: function show() {
877
- this.reset();
947
+ createClass(Copyray, [{
948
+ key: 'show',
949
+ value: function show() {
950
+ this.reset();
878
951
 
879
- document.body.appendChild(this.overlay);
880
- this.makeSpecimens();
952
+ document.body.appendChild(this.overlay);
953
+ this.makeSpecimens();
881
954
 
882
- this.specimens.forEach(function (specimen) {
883
- specimen.show();
884
- });
955
+ this.specimens.forEach(function (specimen) {
956
+ specimen.show();
957
+ });
885
958
 
886
- this.copyTunerBar.show();
887
- this.isShowing = true;
888
- }
889
- }, {
890
- key: 'hide',
891
- value: function hide() {
892
- this.overlay.remove();
893
- this.reset();
894
- this.copyTunerBar.hide();
895
- this.isShowing = false;
896
- }
897
- }, {
898
- key: 'toggle',
899
- value: function toggle() {
900
- if (this.isShowing) {
901
- this.hide();
902
- } else {
903
- this.show();
959
+ this.copyTunerBar.show();
960
+ this.isShowing = true;
904
961
  }
905
- }
906
- }, {
907
- key: 'open',
908
- value: function open(key) {
909
- var url = this.baseUrl + '/blurbs/' + key + '/edit';
910
- window.open(url, null, 'width=700, height=600');
911
- }
912
- }, {
913
- key: 'makeSpecimens',
914
- value: function makeSpecimens() {
915
- var _this = this;
962
+ }, {
963
+ key: 'hide',
964
+ value: function hide() {
965
+ this.overlay.remove();
966
+ this.reset();
967
+ this.copyTunerBar.hide();
968
+ this.isShowing = false;
969
+ }
970
+ }, {
971
+ key: 'toggle',
972
+ value: function toggle() {
973
+ if (this.isShowing) {
974
+ this.hide();
975
+ } else {
976
+ this.show();
977
+ }
978
+ }
979
+ }, {
980
+ key: 'open',
981
+ value: function open(key) {
982
+ var url = this.baseUrl + '/blurbs/' + key + '/edit';
983
+ window.open(url, null, 'width=700, height=600');
984
+ }
985
+ }, {
986
+ key: 'makeSpecimens',
987
+ value: function makeSpecimens() {
988
+ var _this = this;
916
989
 
917
- findBlurbs().forEach(function (_ref) {
918
- var element = _ref.element,
919
- key = _ref.key;
990
+ findBlurbs().forEach(function (_ref) {
991
+ var element = _ref.element,
992
+ key = _ref.key;
920
993
 
921
- _this.specimens.push(new Specimen(element, key, _this.boundOpen));
922
- });
923
- }
924
- }, {
925
- key: 'makeToggleButton',
926
- value: function makeToggleButton() {
927
- var _this2 = this;
994
+ _this.specimens.push(new Specimen(element, key, _this.boundOpen));
995
+ });
996
+ }
997
+ }, {
998
+ key: 'makeToggleButton',
999
+ value: function makeToggleButton() {
1000
+ var _this2 = this;
928
1001
 
929
- var element = document.createElement('a');
1002
+ var element = document.createElement('a');
930
1003
 
931
- element.addEventListener('click', function () {
932
- _this2.show();
933
- });
1004
+ element.addEventListener('click', function () {
1005
+ _this2.show();
1006
+ });
934
1007
 
935
- element.classList.add('copyray-toggle-button');
936
- element.classList.add('hidden-on-mobile');
937
- element.textContent = 'Open CopyTuner';
938
- document.body.appendChild(element);
1008
+ element.classList.add('copyray-toggle-button');
1009
+ element.classList.add('hidden-on-mobile');
1010
+ element.textContent = 'Open CopyTuner';
1011
+ document.body.appendChild(element);
939
1012
 
940
- return element;
941
- }
942
- }, {
943
- key: 'makeOverlay',
944
- value: function makeOverlay() {
945
- var _this3 = this;
946
-
947
- var div = document.createElement('div');
948
- div.setAttribute('id', 'copyray-overlay');
949
- div.addEventListener('click', function () {
950
- return _this3.hide();
951
- });
952
- return div;
953
- }
954
- }, {
955
- key: 'reset',
956
- value: function reset() {
957
- this.specimens.forEach(function (specimen) {
958
- specimen.remove();
959
- });
960
- }
961
- }]);
962
- return Copyray;
963
- }();
964
-
965
- var start = function start() {
966
- var dataElement = document.getElementById('copy-tuner-data');
967
- var copyTunerUrl = dataElement.dataset.copyTunerUrl;
968
- var data = JSON.parse(document.getElementById('copy-tuner-data').dataset.copyTunerTranslationLog);
969
- var copyray = new Copyray(copyTunerUrl, data);
970
-
971
- document.addEventListener('keydown', function (event) {
972
- if (copyray.isShowing && event.keyCode === index.KEY_ESCAPE) {
973
- copyray.hide();
974
- return;
975
- }
1013
+ return element;
1014
+ }
1015
+ }, {
1016
+ key: 'makeOverlay',
1017
+ value: function makeOverlay() {
1018
+ var _this3 = this;
1019
+
1020
+ var div = document.createElement('div');
1021
+ div.setAttribute('id', 'copyray-overlay');
1022
+ div.addEventListener('click', function () {
1023
+ return _this3.hide();
1024
+ });
1025
+ return div;
1026
+ }
1027
+ }, {
1028
+ key: 'reset',
1029
+ value: function reset() {
1030
+ this.specimens.forEach(function (specimen) {
1031
+ specimen.remove();
1032
+ });
1033
+ }
1034
+ }]);
1035
+ return Copyray;
1036
+ }();
1037
+
1038
+ var start = function start() {
1039
+ var dataElement = document.getElementById('copy-tuner-data');
1040
+ var copyTunerUrl = dataElement.dataset.copyTunerUrl;
1041
+ var data = JSON.parse(document.getElementById('copy-tuner-data').dataset.copyTunerTranslationLog);
1042
+ var copyray = new Copyray(copyTunerUrl, data);
1043
+
1044
+ document.addEventListener('keydown', function (event) {
1045
+ if (copyray.isShowing && event.keyCode === keycodeJs.KEY_ESCAPE) {
1046
+ copyray.hide();
1047
+ return;
1048
+ }
976
1049
 
977
- if ((isMac && event.metaKey || !isMac && event.ctrlKey) && event.shiftKey && event.keyCode === index.KEY_K) {
978
- copyray.toggle();
979
- }
980
- });
1050
+ if ((isMac && event.metaKey || !isMac && event.ctrlKey) && event.shiftKey && event.keyCode === keycodeJs.KEY_K) {
1051
+ copyray.toggle();
1052
+ }
1053
+ });
981
1054
 
982
- if (console) {
983
- // eslint-disable-next-line no-console
984
- console.log('Ready to Copyray. Press ' + (isMac ? 'cmd+shift+k' : 'ctrl+shift+k') + ' to scan your UI.');
985
- }
1055
+ if (console) {
1056
+ // eslint-disable-next-line no-console
1057
+ console.log('Ready to Copyray. Press ' + (isMac ? 'cmd+shift+k' : 'ctrl+shift+k') + ' to scan your UI.');
1058
+ }
986
1059
 
987
- window.copyray = copyray;
988
- };
1060
+ window.copyray = copyray;
1061
+ };
989
1062
 
990
- if (document.readyState === 'complete' || document.readyState !== 'loading') {
991
- start();
992
- } else {
993
- document.addEventListener('DOMContentLoaded', start);
994
- }
1063
+ if (document.readyState === 'complete' || document.readyState !== 'loading') {
1064
+ start();
1065
+ } else {
1066
+ document.addEventListener('DOMContentLoaded', start);
1067
+ }
995
1068
 
996
1069
  }());