vue_crud 0.1.9.6 → 0.1.9.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/vue_crud/froala_generator.rb +12 -0
  3. data/lib/generators/vue_crud/sortable.rb +10 -0
  4. data/lib/generators/vue_crud/templates/assets/images/froala_editor/color_picker.png +0 -0
  5. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/froala_editor.js +11089 -0
  6. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/languages/en_gb.js +178 -0
  7. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/languages/zh_cn.js +234 -0
  8. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/languages/zh_tw.js +234 -0
  9. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/align.js +119 -0
  10. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/char_counter.js +150 -0
  11. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/code_beautifier.js +3271 -0
  12. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/code_view.js +311 -0
  13. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/colors.js +350 -0
  14. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/draggable.js +379 -0
  15. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/emoticons.js +347 -0
  16. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/entities.js +113 -0
  17. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/file.js +609 -0
  18. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/font_family.js +178 -0
  19. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/font_size.js +116 -0
  20. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/forms.js +415 -0
  21. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/fullscreen.js +209 -0
  22. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/image.js +2401 -0
  23. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/image_manager.js +921 -0
  24. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/inline_style.js +86 -0
  25. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/line_breaker.js +435 -0
  26. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/link.js +997 -0
  27. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/lists.js +382 -0
  28. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/paragraph_format.js +293 -0
  29. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/paragraph_style.js +139 -0
  30. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/quick_insert.js +342 -0
  31. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/quote.js +138 -0
  32. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/save.js +176 -0
  33. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/table.js +3123 -0
  34. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/url.js +113 -0
  35. data/lib/generators/vue_crud/templates/assets/javascripts/froala_editor/plugins/video.js +1135 -0
  36. data/lib/generators/vue_crud/templates/assets/javascripts/sortable.js +1249 -0
  37. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/froala_editor.scss +1008 -0
  38. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/froala_style.scss +273 -0
  39. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/char_counter.scss +46 -0
  40. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/code_view.scss +102 -0
  41. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/colors.scss +129 -0
  42. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/draggable.scss +32 -0
  43. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/emoticons.scss +27 -0
  44. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/file.scss +135 -0
  45. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/fullscreen.scss +28 -0
  46. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/image.scss +233 -0
  47. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/image_manager.scss +370 -0
  48. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/line_breaker.scss +26 -0
  49. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/quick_insert.scss +56 -0
  50. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/table.scss +156 -0
  51. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/plugins/video.scss +136 -0
  52. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/themes/dark.scss +1087 -0
  53. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/themes/gray.scss +1087 -0
  54. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/themes/red.scss +1087 -0
  55. data/lib/generators/vue_crud/templates/assets/stylesheets/froala_editor/themes/royal.scss +1087 -0
  56. data/lib/generators/vue_crud/templates/vue_crud.html +54 -71
  57. data/lib/vue_crud/version.rb +1 -1
  58. data/vendor/assets/javascripts/vue_crud.js +212 -59
  59. metadata +56 -2
@@ -0,0 +1,379 @@
1
+ /*!
2
+ * froala_editor v2.3.3 (https://www.froala.com/wysiwyg-editor)
3
+ * License https://froala.com/wysiwyg-editor/terms/
4
+ * Copyright 2014-2016 Froala Labs
5
+ */
6
+
7
+ (function (factory) {
8
+ if (typeof define === 'function' && define.amd) {
9
+ // AMD. Register as an anonymous module.
10
+ define(['jquery'], factory);
11
+ } else if (typeof module === 'object' && module.exports) {
12
+ // Node/CommonJS
13
+ module.exports = function( root, jQuery ) {
14
+ if ( jQuery === undefined ) {
15
+ // require('jQuery') returns a factory that requires window to
16
+ // build a jQuery instance, we normalize how we use modules
17
+ // that require this pattern but the window provided is a noop
18
+ // if it's defined (how jquery works)
19
+ if ( typeof window !== 'undefined' ) {
20
+ jQuery = require('jquery');
21
+ }
22
+ else {
23
+ jQuery = require('jquery')(root);
24
+ }
25
+ }
26
+ factory(jQuery);
27
+ return jQuery;
28
+ };
29
+ } else {
30
+ // Browser globals
31
+ factory(jQuery);
32
+ }
33
+ }(function ($) {
34
+
35
+ 'use strict';
36
+ // Extend defaults.
37
+ $.extend($.FE.DEFAULTS, {
38
+ dragInline: true
39
+ });
40
+
41
+
42
+ $.FE.PLUGINS.draggable = function (editor) {
43
+ function _dragStart (e) {
44
+ // Image with link.
45
+ if (e.target && e.target.tagName == 'A' && e.target.childNodes.length == 1 && e.target.childNodes[0].tagName == 'IMG') {
46
+ e.target = e.target.childNodes[0];
47
+ }
48
+
49
+ if (!$(e.target).hasClass('fr-draggable')) {
50
+ e.preventDefault();
51
+ return false;
52
+ }
53
+
54
+ $(e.target).addClass('fr-dragging');
55
+
56
+ if (editor.opts.dragInline) {
57
+ editor.$el.attr('contenteditable', true);
58
+ }
59
+ else {
60
+ editor.$el.attr('contenteditable', false);
61
+ }
62
+
63
+ if (editor.opts.toolbarInline) editor.toolbar.hide();
64
+
65
+ // Save in undo step if we cannot do.
66
+ if (!editor.undo.canDo()) editor.undo.saveStep();
67
+
68
+ if (!editor.browser.msie && !editor.browser.edge) {
69
+ editor.selection.clear();
70
+ }
71
+
72
+ e.originalEvent.dataTransfer.setData('text', 'Froala');
73
+ }
74
+
75
+ function _tagOK (tag_under) {
76
+ return !(tag_under && (tag_under.tagName == 'HTML' || tag_under.tagName == 'BODY' || editor.node.isElement(tag_under)));
77
+ }
78
+
79
+ function _setHelperSize (top, left, width) {
80
+ if (editor.opts.iframe) {
81
+ top += editor.$iframe.offset().top;
82
+ left += editor.$iframe.offset().left;
83
+ }
84
+
85
+ if ($draggable_helper.offset().top != top) $draggable_helper.css('top', top);
86
+ if ($draggable_helper.offset().left != left) $draggable_helper.css('left', left);
87
+ if ($draggable_helper.width() != width) $draggable_helper.css('width', width);
88
+ }
89
+
90
+ function _positionHelper (e) {
91
+ // The tag under the mouse cursor.
92
+ var tag_under = editor.doc.elementFromPoint(e.originalEvent.pageX - editor.win.pageXOffset, e.originalEvent.pageY - editor.win.pageYOffset);
93
+ if (!_tagOK(tag_under)) {
94
+
95
+ // Look above for the closest tag.
96
+ var top_offset = 0;
97
+ var top_tag = tag_under;
98
+ while (!_tagOK(top_tag) && top_tag == tag_under && e.originalEvent.pageY - editor.win.pageYOffset - top_offset > 0) {
99
+ top_offset++;
100
+ top_tag = editor.doc.elementFromPoint(e.originalEvent.pageX - editor.win.pageXOffset, e.originalEvent.pageY - editor.win.pageYOffset - top_offset);
101
+ }
102
+ if (!_tagOK(top_tag) || ($draggable_helper && editor.$el.find(top_tag).length === 0 && top_tag != $draggable_helper.get(0))) { top_tag = null; }
103
+
104
+ // Look below for the closest tag.
105
+ var bottom_offset = 0;
106
+ var bottom_tag = tag_under;
107
+ while (!_tagOK(bottom_tag) && bottom_tag == tag_under && e.originalEvent.pageY - editor.win.pageYOffset + bottom_offset < $(editor.doc).height()) {
108
+ bottom_offset++;
109
+ bottom_tag = editor.doc.elementFromPoint(e.originalEvent.pageX - editor.win.pageXOffset, e.originalEvent.pageY - editor.win.pageYOffset + bottom_offset);
110
+ }
111
+
112
+ if (!_tagOK(bottom_tag) || ($draggable_helper && editor.$el.find(bottom_tag).length === 0 && bottom_tag != $draggable_helper.get(0))) { bottom_tag = null; }
113
+
114
+ if (bottom_tag == null && top_tag) tag_under = top_tag;
115
+ else if (bottom_tag && top_tag == null) tag_under = bottom_tag;
116
+ else if (bottom_tag && top_tag) {
117
+ tag_under = (top_offset < bottom_offset ? top_tag : bottom_tag);
118
+ }
119
+ else {
120
+ tag_under = null;
121
+ }
122
+ }
123
+
124
+ // Stop if tag under is draggable helper.
125
+ if ($(tag_under).hasClass('fr-drag-helper')) return false;
126
+
127
+ // Get block parent.
128
+ if (tag_under && !editor.node.isBlock(tag_under)) {
129
+ tag_under = editor.node.blockParent(tag_under);
130
+ }
131
+
132
+ // Normalize TABLE parent.
133
+ if (tag_under && ['TD', 'TH', 'TR', 'THEAD', 'TBODY'].indexOf(tag_under.tagName) >= 0) {
134
+ tag_under = $(tag_under).parents('table').get(0);
135
+ }
136
+
137
+ // Normalize LIST parent.
138
+ if (tag_under && ['LI'].indexOf(tag_under.tagName) >= 0) {
139
+ tag_under = $(tag_under).parents('UL, OL').get(0);
140
+ }
141
+
142
+ if (tag_under && !$(tag_under).hasClass('fr-drag-helper')) {
143
+ // Init helper.
144
+ if (!$draggable_helper) {
145
+ if (!$.FE.$draggable_helper) $.FE.$draggable_helper = $('<div class="fr-drag-helper"></div>');
146
+
147
+ $draggable_helper = $.FE.$draggable_helper;
148
+
149
+ editor.events.on('shared.destroy', function () {
150
+ $draggable_helper.html('').removeData().remove();
151
+ $draggable_helper = null;
152
+ }, true);
153
+ }
154
+
155
+ var above;
156
+ var mouse_y = e.originalEvent.pageY;
157
+
158
+ if (mouse_y < $(tag_under).offset().top + $(tag_under).outerHeight() / 2) above = true;
159
+ else above = false;
160
+
161
+ var $tag_under = $(tag_under);
162
+ var margin = 0 ;
163
+
164
+ // Should go below and there is no tag below.
165
+ if (!above && $tag_under.next().length === 0) {
166
+ if ($draggable_helper.data('fr-position') != 'after' || !$tag_under.is($draggable_helper.data('fr-tag'))) {
167
+ margin = parseFloat($tag_under.css('margin-bottom')) || 0;
168
+
169
+ _setHelperSize(
170
+ $tag_under.offset().top + $(tag_under).height() + margin / 2 - editor.$box.offset().top,
171
+ $tag_under.offset().left - editor.win.pageXOffset - editor.$box.offset().left,
172
+ $tag_under.width()
173
+ );
174
+
175
+ $draggable_helper.data('fr-position', 'after');
176
+ }
177
+ }
178
+ else {
179
+ // Should go below then we take the next tag.
180
+ if (!above) {
181
+ $tag_under = $tag_under.next();
182
+ }
183
+
184
+ if ($draggable_helper.data('fr-position') != 'before' || !$tag_under.is($draggable_helper.data('fr-tag'))) {
185
+ if ($tag_under.prev().length > 0) {
186
+ margin = parseFloat($tag_under.prev().css('margin-bottom')) || 0;
187
+ }
188
+ margin = Math.max(margin, parseFloat($tag_under.css('margin-top')) || 0);
189
+
190
+ _setHelperSize(
191
+ $tag_under.offset().top - margin / 2 - editor.$box.offset().top,
192
+ $tag_under.offset().left - editor.win.pageXOffset - editor.$box.offset().left,
193
+ $tag_under.width()
194
+ )
195
+
196
+ $draggable_helper.data('fr-position', 'before');
197
+ }
198
+ }
199
+
200
+ $draggable_helper.data('fr-tag', $tag_under);
201
+
202
+ $draggable_helper.addClass('fr-visible');
203
+ $draggable_helper.appendTo(editor.$box);
204
+ }
205
+ else if ($draggable_helper && editor.$box.find($draggable_helper).length > 0) {
206
+ $draggable_helper.removeClass('fr-visible');
207
+ }
208
+ }
209
+
210
+ function _dragOver (e) {
211
+ e.originalEvent.dataTransfer.dropEffect = 'move';
212
+
213
+ if (!editor.opts.dragInline) {
214
+ e.preventDefault();
215
+
216
+ _positionHelper(e);
217
+ }
218
+
219
+ else if (!_getDraggedEl() && (editor.browser.msie || editor.browser.edge)) {
220
+ e.preventDefault();
221
+ }
222
+ }
223
+
224
+ function _dragEnter (e) {
225
+ e.originalEvent.dataTransfer.dropEffect = 'move';
226
+
227
+ if (!editor.opts.dragInline) {
228
+ e.preventDefault();
229
+ }
230
+ }
231
+
232
+ function _documentDragEnd (e) {
233
+ editor.$el.attr('contenteditable', true);
234
+ var $draggedEl = editor.$el.find('.fr-dragging');
235
+
236
+ if ($draggable_helper && $draggable_helper.hasClass('fr-visible') && editor.$box.find($draggable_helper).length) {
237
+ _drop(e);
238
+ }
239
+ else if ($draggedEl.length) {
240
+ e.preventDefault();
241
+ e.stopPropagation();
242
+
243
+ if ($draggable_helper && !$draggable_helper.hasClass('fr-visible')) {
244
+ $draggedEl.removeClass('fr-dragging');
245
+ }
246
+ }
247
+
248
+ if ($draggable_helper && editor.$box.find($draggable_helper).length) {
249
+ $draggable_helper.removeClass('fr-visible');
250
+ }
251
+ }
252
+
253
+ function _getDraggedEl () {
254
+ var $draggedEl = null;
255
+
256
+ // Search of the instance we're dragging from.
257
+ for (var i = 0; i < $.FE.INSTANCES.length; i++) {
258
+ $draggedEl = $.FE.INSTANCES[i].$el.find('.fr-dragging');
259
+ if ($draggedEl.length) {
260
+ return $draggedEl.get(0);
261
+ }
262
+ }
263
+ }
264
+
265
+ function _drop (e) {
266
+ var $draggedEl;
267
+ var inst;
268
+
269
+ // Search of the instance we're dragging from.
270
+ for (var i = 0; i < $.FE.INSTANCES.length; i++) {
271
+ $draggedEl = $.FE.INSTANCES[i].$el.find('.fr-dragging');
272
+ if ($draggedEl.length) {
273
+ inst = $.FE.INSTANCES[i];
274
+ break;
275
+ }
276
+ }
277
+
278
+ if ($draggedEl.length) {
279
+ // Cancel anything else.
280
+ e.preventDefault();
281
+ e.stopPropagation();
282
+
283
+ if ($draggable_helper && $draggable_helper.hasClass('fr-visible') && editor.$box.find($draggable_helper).length) {
284
+ $draggable_helper.data('fr-tag')[$draggable_helper.data('fr-position')]('<span class="fr-marker"></span>');
285
+ $draggable_helper.removeClass('fr-visible');
286
+ }
287
+ else {
288
+ var ok = editor.markers.insertAtPoint(e.originalEvent);
289
+ if (ok === false) return false;
290
+ }
291
+
292
+ // Hide all popups.
293
+ editor.popups.hideAll();
294
+
295
+ // Save undo step if the current instance is different than the original one.
296
+ if (inst != editor && !editor.undo.canDo()) {
297
+ editor.undo.saveStep();
298
+ }
299
+
300
+ // Image with link.
301
+ var $droppedEl = $draggedEl;
302
+ if ($draggedEl.parent().is('A')) {
303
+ $droppedEl = $draggedEl.parent();
304
+ }
305
+
306
+ // Replace marker with the dragged element.
307
+ if (!editor.core.isEmpty()) {
308
+ var $marker = editor.$el.find('.fr-marker');
309
+ $marker.replaceWith($droppedEl);
310
+ $draggedEl.after($.FE.MARKERS);
311
+ editor.selection.restore();
312
+ }
313
+ else {
314
+ editor.$el.html($droppedEl);
315
+ }
316
+
317
+ $draggedEl.removeClass('fr-dragging');
318
+ editor.$el.find(editor.html.emptyBlockTagsQuery()).not('TD, TH, LI, .fr-inner').remove();
319
+ editor.html.wrap();
320
+ editor.html.fillEmptyBlocks();
321
+ editor.undo.saveStep();
322
+
323
+ if (editor.opts.iframe) editor.size.syncIframe();
324
+
325
+ // Mark changes in the original instance as well.
326
+ if (inst != editor) {
327
+ inst.popups.hideAll();
328
+ inst.$el.find(editor.html.emptyBlockTagsQuery()).not('TD, TH, LI, .fr-inner').remove();
329
+ inst.html.wrap();
330
+ inst.html.fillEmptyBlocks();
331
+ inst.undo.saveStep();
332
+ inst.events.trigger('element.dropped');
333
+
334
+ if (inst.opts.iframe) inst.size.syncIframe();
335
+ }
336
+
337
+ editor.events.trigger('element.dropped', [$draggedEl]);
338
+
339
+ // Stop bubbling.
340
+ return false;
341
+ }
342
+ }
343
+
344
+ /*
345
+ * Initialize.
346
+ */
347
+ var $draggable_helper;
348
+ function _init () {
349
+ // Force drag inline when ENTER_BR is active.
350
+ if (editor.opts.enter == $.FE.ENTER_BR) editor.opts.dragInline = true;
351
+
352
+ // Starting to drag.
353
+ editor.events.on('dragstart', _dragStart, true);
354
+
355
+ // Inline dragging is off.
356
+ editor.events.on('dragover', _dragOver, true);
357
+ editor.events.on('dragenter', _dragEnter, true);
358
+
359
+ // Document drop. Remove moving class.
360
+ editor.events.on('document.dragend', _documentDragEnd, true);
361
+ editor.events.on('document.drop', _documentDragEnd, true);
362
+
363
+ // Drop.
364
+ editor.events.on('drop', _drop, true);
365
+
366
+ // Clean getting the HTML.
367
+ editor.events.on('html.get', function (html) {
368
+ html = html.replace(/<(div)((?:[\w\W]*?))class="([\w\W]*?)fr-drag-helper([\w\W]*?)"((?:[\w\W]*?))>((?:[\w\W]*?))<\/(div)>/g, '');
369
+
370
+ return html;
371
+ });
372
+ }
373
+
374
+ return {
375
+ _init: _init
376
+ }
377
+ }
378
+
379
+ }));