jquery-atwho-rails 0.5.0 → 0.5.1
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24d19f42cd98cc9e875d75ceecfc3a876aae8b62
|
4
|
+
data.tar.gz: ff5e30310eb57d9c48645e646e1ad1f18f44ac7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0aec51b126719a9242cde57c459518cc3a3dd44ade8dd455d3fb9d4c389313a8f80d68bf6e028473ac85d0f3405882f55c6faf363633f3fd04532157881848d7
|
7
|
+
data.tar.gz: 2bb034a106b2d3a94911c24bf3aa36974eefc0becec36b03466c0de1ab22f39d417b76eb6daee5421ae338f9990c4fa7e7500bdafa45d30a839122f280641c4c
|
data/Rakefile
CHANGED
@@ -14,18 +14,15 @@ task :sync do
|
|
14
14
|
else
|
15
15
|
Dir.chdir(at_dir) { puts %x{git pull -X theirs} }
|
16
16
|
end
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
unless Dir.exist? bower_dir
|
22
|
-
Dir.chdir(at_dir) { puts %x{bower install} }
|
23
|
-
end
|
17
|
+
Dir.chdir(at_dir) {
|
18
|
+
puts "* bower install..."
|
19
|
+
puts %x{bower install}
|
20
|
+
}
|
24
21
|
end
|
25
22
|
|
26
23
|
desc "copy assets"
|
27
|
-
task
|
28
|
-
puts "
|
24
|
+
task fresh: :sync do
|
25
|
+
puts " * Copying..."
|
29
26
|
source_dir = "tmp/At.js/dist"
|
30
27
|
dist_dir = "lib/assets"
|
31
28
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
/*! jquery.atwho - v0.5.
|
1
|
+
/*! jquery.atwho - v0.5.1 - 2014-09-16
|
2
2
|
* Copyright (c) 2014 chord.luo <chord.luo@gmail.com>;
|
3
3
|
* homepage: http://ichord.github.com/At.js
|
4
4
|
* Licensed MIT
|
@@ -13,7 +13,7 @@
|
|
13
13
|
}
|
14
14
|
})(function($) {
|
15
15
|
|
16
|
-
var
|
16
|
+
var Api, App, Controller, DEFAULT_CALLBACKS, KEY_CODE, Model, View,
|
17
17
|
__slice = [].slice;
|
18
18
|
|
19
19
|
App = (function() {
|
@@ -22,20 +22,37 @@ App = (function() {
|
|
22
22
|
this.controllers = {};
|
23
23
|
this.alias_maps = {};
|
24
24
|
this.$inputor = $(inputor);
|
25
|
-
this.iframe = null;
|
26
25
|
this.setIframe();
|
27
26
|
this.listen();
|
28
27
|
}
|
29
28
|
|
30
|
-
App.prototype.
|
29
|
+
App.prototype.createContainer = function(doc) {
|
30
|
+
if ((this.$el = $("#atwho-container", doc)).length === 0) {
|
31
|
+
return $(doc.body).append(this.$el = $("<div id='atwho-container'></div>"));
|
32
|
+
}
|
33
|
+
};
|
34
|
+
|
35
|
+
App.prototype.setIframe = function(iframe, standalone) {
|
36
|
+
var _ref;
|
37
|
+
if (standalone == null) {
|
38
|
+
standalone = false;
|
39
|
+
}
|
31
40
|
if (iframe) {
|
32
41
|
this.window = iframe.contentWindow;
|
33
42
|
this.document = iframe.contentDocument || this.window.document;
|
34
|
-
|
43
|
+
this.iframe = iframe;
|
35
44
|
} else {
|
36
45
|
this.document = document;
|
37
46
|
this.window = window;
|
38
|
-
|
47
|
+
this.iframe = null;
|
48
|
+
}
|
49
|
+
if (this.iframeStandalone = standalone) {
|
50
|
+
if ((_ref = this.$el) != null) {
|
51
|
+
_ref.remove();
|
52
|
+
}
|
53
|
+
return this.createContainer(this.document);
|
54
|
+
} else {
|
55
|
+
return this.createContainer(document);
|
39
56
|
}
|
40
57
|
};
|
41
58
|
|
@@ -112,7 +129,8 @@ App = (function() {
|
|
112
129
|
c.destroy();
|
113
130
|
delete this.controllers[_];
|
114
131
|
}
|
115
|
-
|
132
|
+
this.$inputor.off('.atwhoInner');
|
133
|
+
return this.$el.remove();
|
116
134
|
};
|
117
135
|
|
118
136
|
App.prototype.dispatch = function() {
|
@@ -225,7 +243,9 @@ Controller = (function() {
|
|
225
243
|
this.pos = 0;
|
226
244
|
this.cur_rect = null;
|
227
245
|
this.range = null;
|
228
|
-
|
246
|
+
if ((this.$el = $("#atwho-ground-" + this.id, this.app.$el)).length === 0) {
|
247
|
+
this.app.$el.append(this.$el = $("<div id='atwho-ground-" + this.id + "'></div>"));
|
248
|
+
}
|
229
249
|
this.model = new Model(this);
|
230
250
|
this.view = new View(this);
|
231
251
|
}
|
@@ -313,14 +333,19 @@ Controller = (function() {
|
|
313
333
|
};
|
314
334
|
|
315
335
|
Controller.prototype.rect = function() {
|
316
|
-
var c, scale_bottom;
|
336
|
+
var c, iframe_offset, scale_bottom;
|
317
337
|
if (!(c = this.$inputor.caret('offset', this.pos - 1, {
|
318
338
|
iframe: this.app.iframe
|
319
339
|
}))) {
|
320
340
|
return;
|
321
341
|
}
|
342
|
+
if (this.app.iframe && !this.app.iframeStandalone) {
|
343
|
+
iframe_offset = $(this.app.iframe).offset();
|
344
|
+
c.left += iframe_offset.left;
|
345
|
+
c.top += iframe_offset.top;
|
346
|
+
}
|
322
347
|
if (this.$inputor.attr('contentEditable') === 'true') {
|
323
|
-
c =
|
348
|
+
c = this.cur_rect || (this.cur_rect = c);
|
324
349
|
}
|
325
350
|
scale_bottom = this.app.document.selection ? 0 : 2;
|
326
351
|
return {
|
@@ -541,10 +566,14 @@ View = (function() {
|
|
541
566
|
};
|
542
567
|
|
543
568
|
View.prototype.reposition = function(rect) {
|
544
|
-
var offset, _ref;
|
545
|
-
|
569
|
+
var offset, overflowOffset, _ref, _window;
|
570
|
+
_window = this.context.app.iframeStandalone ? this.context.app.window : window;
|
571
|
+
if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {
|
546
572
|
rect.bottom = rect.top - this.$el.height();
|
547
573
|
}
|
574
|
+
if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {
|
575
|
+
rect.left = overflowOffset;
|
576
|
+
}
|
548
577
|
offset = {
|
549
578
|
left: rect.left,
|
550
579
|
top: rect.bottom
|
@@ -677,7 +706,7 @@ DEFAULT_CALLBACKS = {
|
|
677
706
|
if (should_start_with_space) {
|
678
707
|
flag = '(?:^|\\s)' + flag;
|
679
708
|
}
|
680
|
-
regexp = new RegExp(flag + '([A-Za-
|
709
|
+
regexp = new RegExp(flag + '([A-Za-zÀ-ÿ0-9_\+\-]*)$|' + flag + '([^\\x00-\\xff]*)$', 'gi');
|
681
710
|
match = regexp.exec(subtext);
|
682
711
|
if (match) {
|
683
712
|
return match[2] || match[1];
|
@@ -690,7 +719,7 @@ DEFAULT_CALLBACKS = {
|
|
690
719
|
_results = [];
|
691
720
|
for (_i = 0, _len = data.length; _i < _len; _i++) {
|
692
721
|
item = data[_i];
|
693
|
-
if (~item[search_key].toLowerCase().indexOf(query.toLowerCase())) {
|
722
|
+
if (~new String(item[search_key]).toLowerCase().indexOf(query.toLowerCase())) {
|
694
723
|
_results.push(item);
|
695
724
|
}
|
696
725
|
}
|
@@ -705,7 +734,7 @@ DEFAULT_CALLBACKS = {
|
|
705
734
|
_results = [];
|
706
735
|
for (_i = 0, _len = items.length; _i < _len; _i++) {
|
707
736
|
item = items[_i];
|
708
|
-
item.atwho_order = item[search_key].toLowerCase().indexOf(query.toLowerCase());
|
737
|
+
item.atwho_order = new String(item[search_key]).toLowerCase().indexOf(query.toLowerCase());
|
709
738
|
if (item.atwho_order > -1) {
|
710
739
|
_results.push(item);
|
711
740
|
}
|
@@ -766,8 +795,8 @@ Api = {
|
|
766
795
|
return c.model.load(data);
|
767
796
|
}
|
768
797
|
},
|
769
|
-
setIframe: function(iframe) {
|
770
|
-
this.setIframe(iframe);
|
798
|
+
setIframe: function(iframe, standalone) {
|
799
|
+
this.setIframe(iframe, standalone);
|
771
800
|
return null;
|
772
801
|
},
|
773
802
|
run: function() {
|
@@ -779,14 +808,11 @@ Api = {
|
|
779
808
|
}
|
780
809
|
};
|
781
810
|
|
782
|
-
$CONTAINER = $("<div id='atwho-container'></div>");
|
783
|
-
|
784
811
|
$.fn.atwho = function(method) {
|
785
812
|
var result, _args;
|
786
813
|
_args = arguments;
|
787
|
-
$('body').append($CONTAINER);
|
788
814
|
result = null;
|
789
|
-
this.filter('textarea, input, [contenteditable=true]').each(function() {
|
815
|
+
this.filter('textarea, input, [contenteditable=""], [contenteditable=true]').each(function() {
|
790
816
|
var $this, app;
|
791
817
|
if (!(app = ($this = $(this)).data("atwho"))) {
|
792
818
|
$this.data('atwho', (app = new App(this)));
|
@@ -37,11 +37,16 @@
|
|
37
37
|
};
|
38
38
|
|
39
39
|
EditableCaret.prototype.getIEPosition = function() {
|
40
|
-
return
|
40
|
+
return this.getPosition();
|
41
41
|
};
|
42
42
|
|
43
43
|
EditableCaret.prototype.getPosition = function() {
|
44
|
-
|
44
|
+
var inputor_offset, offset;
|
45
|
+
offset = this.getOffset();
|
46
|
+
inputor_offset = this.$inputor.offset();
|
47
|
+
offset.left -= inputor_offset.left;
|
48
|
+
offset.top -= inputor_offset.top;
|
49
|
+
return offset;
|
45
50
|
};
|
46
51
|
|
47
52
|
EditableCaret.prototype.getOldIEPos = function() {
|
@@ -98,7 +103,7 @@
|
|
98
103
|
} else if (oDocument.selection) {
|
99
104
|
offset = this.getOldIEOffset();
|
100
105
|
}
|
101
|
-
if (offset
|
106
|
+
if (offset) {
|
102
107
|
offset.top += $(oWindow).scrollTop();
|
103
108
|
offset.left += $(oWindow).scrollLeft();
|
104
109
|
}
|
@@ -207,7 +212,7 @@
|
|
207
212
|
var $inputor, at_rect, end_range, format, html, mirror, start_range;
|
208
213
|
$inputor = this.$inputor;
|
209
214
|
format = function(value) {
|
210
|
-
return
|
215
|
+
return $('<div></div>').text(value).html();
|
211
216
|
};
|
212
217
|
if (pos === void 0) {
|
213
218
|
pos = this.getPos();
|
@@ -308,13 +313,8 @@
|
|
308
313
|
}
|
309
314
|
},
|
310
315
|
offset: function(pos) {
|
311
|
-
var
|
316
|
+
var offset;
|
312
317
|
offset = this.getOffset(pos);
|
313
|
-
if (oFrame) {
|
314
|
-
iOffset = $(oFrame).offset();
|
315
|
-
offset.top += iOffset.top;
|
316
|
-
offset.left += iOffset.left;
|
317
|
-
}
|
318
318
|
return offset;
|
319
319
|
}
|
320
320
|
};
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jquery-atwho-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ichord
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-09-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|