clipboard-rails 1.5.10 → 1.5.13

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 555b4837bfd3cce57e5232bcc0d0eb62827574d0
4
- data.tar.gz: b5f3b55fad5450dedbd51021314fc6601b01b706
3
+ metadata.gz: 646a03bc972a12e9b0fb6a03246af0e21110bd2d
4
+ data.tar.gz: e1149425bd891bcdf2990fc2bf7d6d05ee68a98d
5
5
  SHA512:
6
- metadata.gz: d9fa1727b97d59fff6eb049aef697b646c82da43b65cb5af76fbdaf887d1d8144757af7a680cf24a403a239ded3f735b8a9ef323eb888bb8cdb10ba50c0c93d5
7
- data.tar.gz: bef94d87e72fa417ad23d361f31d9fe1f7c6f7669cdb4642be8b8d3b22e5e8be71158fe0b5df8969d137f08b06aeb656bcdd20034d0b1b921a1c5bfa4b7d3f1b
6
+ metadata.gz: 531b45ab1167fd0134a961257cba3374a52d67d6cf0da2493988f86156641db30c6390928626b8fe4228b1d140ead8b2f4aa9963531c23bd77be91d96f1446a8
7
+ data.tar.gz: 004605312e2e345d080d71a4bed28d32b7206c3ea1e801bbd2dc0d7094f23772e5fbe218c8bbed76d14e5d474faccbd2e6019ecfd458ddc6e959320d9a444eb2
@@ -1,5 +1,5 @@
1
1
  module Clipboard
2
2
  module Rails
3
- VERSION = "1.5.10"
3
+ VERSION = "1.5.13"
4
4
  end
5
5
  end
@@ -1,23 +1,124 @@
1
1
  /*!
2
- * clipboard.js v1.5.10
2
+ * clipboard.js v1.5.13
3
3
  * https://zenorocha.github.io/clipboard.js
4
4
  *
5
5
  * Licensed MIT © Zeno Rocha
6
6
  */
7
7
  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Clipboard = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
8
- var matches = require('matches-selector')
8
+ /**
9
+ * Module Dependencies
10
+ */
11
+
12
+ try {
13
+ var matches = require('matches-selector')
14
+ } catch (err) {
15
+ var matches = require('component-matches-selector')
16
+ }
17
+
18
+ /**
19
+ * Export `closest`
20
+ */
21
+
22
+ module.exports = closest
23
+
24
+ /**
25
+ * Closest
26
+ *
27
+ * @param {Element} el
28
+ * @param {String} selector
29
+ * @param {Element} scope (optional)
30
+ */
31
+
32
+ function closest (el, selector, scope) {
33
+ scope = scope || document.documentElement;
34
+
35
+ // walk up the dom
36
+ while (el && el !== scope) {
37
+ if (matches(el, selector)) return el;
38
+ el = el.parentNode;
39
+ }
40
+
41
+ // check scope for match
42
+ return matches(el, selector) ? el : null;
43
+ }
44
+
45
+ },{"component-matches-selector":2,"matches-selector":2}],2:[function(require,module,exports){
46
+ /**
47
+ * Module dependencies.
48
+ */
49
+
50
+ try {
51
+ var query = require('query');
52
+ } catch (err) {
53
+ var query = require('component-query');
54
+ }
55
+
56
+ /**
57
+ * Element prototype.
58
+ */
59
+
60
+ var proto = Element.prototype;
9
61
 
10
- module.exports = function (element, selector, checkYoSelf) {
11
- var parent = checkYoSelf ? element : element.parentNode
62
+ /**
63
+ * Vendor function.
64
+ */
65
+
66
+ var vendor = proto.matches
67
+ || proto.webkitMatchesSelector
68
+ || proto.mozMatchesSelector
69
+ || proto.msMatchesSelector
70
+ || proto.oMatchesSelector;
71
+
72
+ /**
73
+ * Expose `match()`.
74
+ */
75
+
76
+ module.exports = match;
77
+
78
+ /**
79
+ * Match `el` to `selector`.
80
+ *
81
+ * @param {Element} el
82
+ * @param {String} selector
83
+ * @return {Boolean}
84
+ * @api public
85
+ */
12
86
 
13
- while (parent && parent !== document) {
14
- if (matches(parent, selector)) return parent;
15
- parent = parent.parentNode
87
+ function match(el, selector) {
88
+ if (!el || el.nodeType !== 1) return false;
89
+ if (vendor) return vendor.call(el, selector);
90
+ var nodes = query.all(selector, el.parentNode);
91
+ for (var i = 0; i < nodes.length; ++i) {
92
+ if (nodes[i] == el) return true;
16
93
  }
94
+ return false;
95
+ }
96
+
97
+ },{"component-query":3,"query":3}],3:[function(require,module,exports){
98
+ function one(selector, el) {
99
+ return el.querySelector(selector);
17
100
  }
18
101
 
19
- },{"matches-selector":5}],2:[function(require,module,exports){
20
- var closest = require('closest');
102
+ exports = module.exports = function(selector, el){
103
+ el = el || document;
104
+ return one(selector, el);
105
+ };
106
+
107
+ exports.all = function(selector, el){
108
+ el = el || document;
109
+ return el.querySelectorAll(selector);
110
+ };
111
+
112
+ exports.engine = function(obj){
113
+ if (!obj.one) throw new Error('.one callback required');
114
+ if (!obj.all) throw new Error('.all callback required');
115
+ one = obj.one;
116
+ exports.all = obj.all;
117
+ return exports;
118
+ };
119
+
120
+ },{}],4:[function(require,module,exports){
121
+ var closest = require('component-closest');
21
122
 
22
123
  /**
23
124
  * Delegates event to a selector.
@@ -62,7 +163,7 @@ function listener(element, selector, type, callback) {
62
163
 
63
164
  module.exports = delegate;
64
165
 
65
- },{"closest":1}],3:[function(require,module,exports){
166
+ },{"component-closest":1}],5:[function(require,module,exports){
66
167
  /**
67
168
  * Check if argument is a HTML element.
68
169
  *
@@ -113,7 +214,7 @@ exports.fn = function(value) {
113
214
  return type === '[object Function]';
114
215
  };
115
216
 
116
- },{}],4:[function(require,module,exports){
217
+ },{}],6:[function(require,module,exports){
117
218
  var is = require('./is');
118
219
  var delegate = require('delegate');
119
220
 
@@ -210,52 +311,16 @@ function listenSelector(selector, type, callback) {
210
311
 
211
312
  module.exports = listen;
212
313
 
213
- },{"./is":3,"delegate":2}],5:[function(require,module,exports){
214
-
215
- /**
216
- * Element prototype.
217
- */
218
-
219
- var proto = Element.prototype;
220
-
221
- /**
222
- * Vendor function.
223
- */
224
-
225
- var vendor = proto.matchesSelector
226
- || proto.webkitMatchesSelector
227
- || proto.mozMatchesSelector
228
- || proto.msMatchesSelector
229
- || proto.oMatchesSelector;
230
-
231
- /**
232
- * Expose `match()`.
233
- */
234
-
235
- module.exports = match;
236
-
237
- /**
238
- * Match `el` to `selector`.
239
- *
240
- * @param {Element} el
241
- * @param {String} selector
242
- * @return {Boolean}
243
- * @api public
244
- */
245
-
246
- function match(el, selector) {
247
- if (vendor) return vendor.call(el, selector);
248
- var nodes = el.parentNode.querySelectorAll(selector);
249
- for (var i = 0; i < nodes.length; ++i) {
250
- if (nodes[i] == el) return true;
251
- }
252
- return false;
253
- }
254
- },{}],6:[function(require,module,exports){
314
+ },{"./is":5,"delegate":4}],7:[function(require,module,exports){
255
315
  function select(element) {
256
316
  var selectedText;
257
317
 
258
- if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
318
+ if (element.nodeName === 'SELECT') {
319
+ element.focus();
320
+
321
+ selectedText = element.value;
322
+ }
323
+ else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {
259
324
  element.focus();
260
325
  element.setSelectionRange(0, element.value.length);
261
326
 
@@ -281,14 +346,14 @@ function select(element) {
281
346
 
282
347
  module.exports = select;
283
348
 
284
- },{}],7:[function(require,module,exports){
349
+ },{}],8:[function(require,module,exports){
285
350
  function E () {
286
- // Keep this empty so it's easier to inherit from
351
+ // Keep this empty so it's easier to inherit from
287
352
  // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)
288
353
  }
289
354
 
290
355
  E.prototype = {
291
- on: function (name, callback, ctx) {
356
+ on: function (name, callback, ctx) {
292
357
  var e = this.e || (this.e = {});
293
358
 
294
359
  (e[name] || (e[name] = [])).push({
@@ -349,7 +414,7 @@ E.prototype = {
349
414
 
350
415
  module.exports = E;
351
416
 
352
- },{}],8:[function(require,module,exports){
417
+ },{}],9:[function(require,module,exports){
353
418
  (function (global, factory) {
354
419
  if (typeof define === "function" && define.amd) {
355
420
  define(['module', 'select'], factory);
@@ -407,7 +472,6 @@ module.exports = E;
407
472
  /**
408
473
  * @param {Object} options
409
474
  */
410
-
411
475
  function ClipboardAction(options) {
412
476
  _classCallCheck(this, ClipboardAction);
413
477
 
@@ -448,9 +512,10 @@ module.exports = E;
448
512
 
449
513
  this.removeFake();
450
514
 
451
- this.fakeHandler = document.body.addEventListener('click', function () {
515
+ this.fakeHandlerCallback = function () {
452
516
  return _this.removeFake();
453
- });
517
+ };
518
+ this.fakeHandler = document.body.addEventListener('click', this.fakeHandlerCallback) || true;
454
519
 
455
520
  this.fakeElem = document.createElement('textarea');
456
521
  // Prevent zooming on iOS
@@ -460,10 +525,13 @@ module.exports = E;
460
525
  this.fakeElem.style.padding = '0';
461
526
  this.fakeElem.style.margin = '0';
462
527
  // Move element out of screen horizontally
463
- this.fakeElem.style.position = 'fixed';
528
+ this.fakeElem.style.position = 'absolute';
464
529
  this.fakeElem.style[isRTL ? 'right' : 'left'] = '-9999px';
465
530
  // Move element to the same position vertically
466
- this.fakeElem.style.top = (window.pageYOffset || document.documentElement.scrollTop) + 'px';
531
+ var yPosition = window.pageYOffset || document.documentElement.scrollTop;
532
+ this.fakeElem.addEventListener('focus', window.scrollTo(0, yPosition));
533
+ this.fakeElem.style.top = yPosition + 'px';
534
+
467
535
  this.fakeElem.setAttribute('readonly', '');
468
536
  this.fakeElem.value = this.text;
469
537
 
@@ -475,8 +543,9 @@ module.exports = E;
475
543
 
476
544
  ClipboardAction.prototype.removeFake = function removeFake() {
477
545
  if (this.fakeHandler) {
478
- document.body.removeEventListener('click');
546
+ document.body.removeEventListener('click', this.fakeHandlerCallback);
479
547
  this.fakeHandler = null;
548
+ this.fakeHandlerCallback = null;
480
549
  }
481
550
 
482
551
  if (this.fakeElem) {
@@ -491,7 +560,7 @@ module.exports = E;
491
560
  };
492
561
 
493
562
  ClipboardAction.prototype.copyText = function copyText() {
494
- var succeeded = undefined;
563
+ var succeeded = void 0;
495
564
 
496
565
  try {
497
566
  succeeded = document.execCommand(this.action);
@@ -503,20 +572,12 @@ module.exports = E;
503
572
  };
504
573
 
505
574
  ClipboardAction.prototype.handleResult = function handleResult(succeeded) {
506
- if (succeeded) {
507
- this.emitter.emit('success', {
508
- action: this.action,
509
- text: this.selectedText,
510
- trigger: this.trigger,
511
- clearSelection: this.clearSelection.bind(this)
512
- });
513
- } else {
514
- this.emitter.emit('error', {
515
- action: this.action,
516
- trigger: this.trigger,
517
- clearSelection: this.clearSelection.bind(this)
518
- });
519
- }
575
+ this.emitter.emit(succeeded ? 'success' : 'error', {
576
+ action: this.action,
577
+ text: this.selectedText,
578
+ trigger: this.trigger,
579
+ clearSelection: this.clearSelection.bind(this)
580
+ });
520
581
  };
521
582
 
522
583
  ClipboardAction.prototype.clearSelection = function clearSelection() {
@@ -575,7 +636,7 @@ module.exports = E;
575
636
  module.exports = ClipboardAction;
576
637
  });
577
638
 
578
- },{"select":6}],9:[function(require,module,exports){
639
+ },{"select":7}],10:[function(require,module,exports){
579
640
  (function (global, factory) {
580
641
  if (typeof define === "function" && define.amd) {
581
642
  define(['module', './clipboard-action', 'tiny-emitter', 'good-listener'], factory);
@@ -640,7 +701,6 @@ module.exports = E;
640
701
  * @param {String|HTMLElement|HTMLCollection|NodeList} trigger
641
702
  * @param {Object} options
642
703
  */
643
-
644
704
  function Clipboard(trigger, options) {
645
705
  _classCallCheck(this, Clipboard);
646
706
 
@@ -736,5 +796,5 @@ module.exports = E;
736
796
  module.exports = Clipboard;
737
797
  });
738
798
 
739
- },{"./clipboard-action":8,"good-listener":4,"tiny-emitter":7}]},{},[9])(9)
799
+ },{"./clipboard-action":9,"good-listener":6,"tiny-emitter":8}]},{},[10])(10)
740
800
  });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clipboard-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.10
4
+ version: 1.5.13
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mohammed Sadiq
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-04-15 00:00:00.000000000 Z
11
+ date: 2016-10-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler