card-mod-script 0.11.0

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.
Files changed (126) hide show
  1. checksums.yaml +7 -0
  2. data/lib/javascript/decko/autosave.js.coffee +30 -0
  3. data/lib/javascript/decko/bridge.js.coffee +31 -0
  4. data/lib/javascript/decko/card_menu.js.coffee +26 -0
  5. data/lib/javascript/decko/components.js.coffee +51 -0
  6. data/lib/javascript/decko/decko.js.coffee +100 -0
  7. data/lib/javascript/decko/doubleclick.js.coffee +30 -0
  8. data/lib/javascript/decko/editor.js.coffee +55 -0
  9. data/lib/javascript/decko/filter.js.coffee +176 -0
  10. data/lib/javascript/decko/filter_items.js.coffee +128 -0
  11. data/lib/javascript/decko/filter_links.js.coffee +81 -0
  12. data/lib/javascript/decko/follow.js.coffee +22 -0
  13. data/lib/javascript/decko/layout.js.coffee +76 -0
  14. data/lib/javascript/decko/link_editor.js.coffee +61 -0
  15. data/lib/javascript/decko/mod.js.coffee +85 -0
  16. data/lib/javascript/decko/modal.js.coffee +110 -0
  17. data/lib/javascript/decko/name_editor.js.coffee +51 -0
  18. data/lib/javascript/decko/navbox.js.coffee +74 -0
  19. data/lib/javascript/decko/nest_editor.js.coffee +166 -0
  20. data/lib/javascript/decko/nest_editor_name.js.coffee +102 -0
  21. data/lib/javascript/decko/nest_editor_options.js.coffee +93 -0
  22. data/lib/javascript/decko/nest_editor_rules.js.coffee +3 -0
  23. data/lib/javascript/decko/overlay.js.coffee +57 -0
  24. data/lib/javascript/decko/recaptcha.js.coffee +19 -0
  25. data/lib/javascript/decko/selectable_filtered_content.js.coffee +12 -0
  26. data/lib/javascript/decko/slot.js.coffee +172 -0
  27. data/lib/javascript/decko/slot_ready.js.coffee +11 -0
  28. data/lib/javascript/decko/slotter.js.coffee +269 -0
  29. data/lib/javascript/decko/upload.js.coffee +57 -0
  30. data/lib/javascript/jquery-ui.js +10 -0
  31. data/lib/javascript/jquery.autosize.js +274 -0
  32. data/lib/javascript/jquery.iframe-transport.js +185 -0
  33. data/lib/javascript/script_html5shiv_printshiv.js +1 -0
  34. data/lib/javascript/script_pointer_config.js.coffee +80 -0
  35. data/lib/javascript/script_pointer_list_editor.js.coffee +67 -0
  36. data/lib/javascript/theme-textmate.js +130 -0
  37. data/set/abstract/script.rb +85 -0
  38. data/set/right/script.rb +19 -0
  39. data/set/self/01_script_libraries.rb +1 -0
  40. data/set/self/script.rb +1 -0
  41. data/set/self/script_decko.rb +12 -0
  42. data/set/self/script_editors.rb +1 -0
  43. data/set/self/script_html5shiv_printshiv.rb +11 -0
  44. data/set/self/script_jquery.rb +10 -0
  45. data/set/self/script_jquery_helper.rb +14 -0
  46. data/set/self/script_mods.rb +1 -0
  47. data/set/self/script_pointer_config.rb +9 -0
  48. data/set/type/coffee_script.rb +25 -0
  49. data/set/type/java_script.rb +9 -0
  50. data/vendor/jquery_file_upload/CONTRIBUTING.md +15 -0
  51. data/vendor/jquery_file_upload/LICENSE.txt +21 -0
  52. data/vendor/jquery_file_upload/README.md +107 -0
  53. data/vendor/jquery_file_upload/angularjs.html +211 -0
  54. data/vendor/jquery_file_upload/basic-plus.html +226 -0
  55. data/vendor/jquery_file_upload/basic.html +136 -0
  56. data/vendor/jquery_file_upload/bower-version-update.js +16 -0
  57. data/vendor/jquery_file_upload/bower.json +64 -0
  58. data/vendor/jquery_file_upload/cors/postmessage.html +75 -0
  59. data/vendor/jquery_file_upload/cors/result.html +24 -0
  60. data/vendor/jquery_file_upload/css/jquery-ui-demo-ie8.css +21 -0
  61. data/vendor/jquery_file_upload/css/jquery-ui-demo.css +67 -0
  62. data/vendor/jquery_file_upload/css/jquery.fileupload-noscript.css +22 -0
  63. data/vendor/jquery_file_upload/css/jquery.fileupload-ui-noscript.css +17 -0
  64. data/vendor/jquery_file_upload/css/jquery.fileupload-ui.css +57 -0
  65. data/vendor/jquery_file_upload/css/jquery.fileupload.css +37 -0
  66. data/vendor/jquery_file_upload/css/style.css +15 -0
  67. data/vendor/jquery_file_upload/img/loading.gif +0 -0
  68. data/vendor/jquery_file_upload/img/progressbar.gif +0 -0
  69. data/vendor/jquery_file_upload/index.html +255 -0
  70. data/vendor/jquery_file_upload/jquery-ui.html +252 -0
  71. data/vendor/jquery_file_upload/js/app.js +101 -0
  72. data/vendor/jquery_file_upload/js/cors/jquery.postmessage-transport.js +126 -0
  73. data/vendor/jquery_file_upload/js/cors/jquery.xdr-transport.js +89 -0
  74. data/vendor/jquery_file_upload/js/jquery.fileupload-angular.js +437 -0
  75. data/vendor/jquery_file_upload/js/jquery.fileupload-audio.js +113 -0
  76. data/vendor/jquery_file_upload/js/jquery.fileupload-image.js +326 -0
  77. data/vendor/jquery_file_upload/js/jquery.fileupload-jquery-ui.js +161 -0
  78. data/vendor/jquery_file_upload/js/jquery.fileupload-process.js +178 -0
  79. data/vendor/jquery_file_upload/js/jquery.fileupload-ui.js +714 -0
  80. data/vendor/jquery_file_upload/js/jquery.fileupload-validate.js +125 -0
  81. data/vendor/jquery_file_upload/js/jquery.fileupload-video.js +113 -0
  82. data/vendor/jquery_file_upload/js/jquery.fileupload.js +1486 -0
  83. data/vendor/jquery_file_upload/js/jquery.iframe-transport.js +224 -0
  84. data/vendor/jquery_file_upload/js/main.js +75 -0
  85. data/vendor/jquery_file_upload/js/vendor/jquery.ui.widget.js +748 -0
  86. data/vendor/jquery_file_upload/package.json +55 -0
  87. data/vendor/jquery_file_upload/server/gae-go/app.yaml +12 -0
  88. data/vendor/jquery_file_upload/server/gae-go/app/main.go +361 -0
  89. data/vendor/jquery_file_upload/server/gae-go/static/favicon.ico +0 -0
  90. data/vendor/jquery_file_upload/server/gae-go/static/robots.txt +2 -0
  91. data/vendor/jquery_file_upload/server/gae-python/app.yaml +17 -0
  92. data/vendor/jquery_file_upload/server/gae-python/main.py +204 -0
  93. data/vendor/jquery_file_upload/server/gae-python/static/favicon.ico +0 -0
  94. data/vendor/jquery_file_upload/server/gae-python/static/robots.txt +2 -0
  95. data/vendor/jquery_file_upload/server/php/Dockerfile +38 -0
  96. data/vendor/jquery_file_upload/server/php/UploadHandler.php +1411 -0
  97. data/vendor/jquery_file_upload/server/php/docker-compose.yml +9 -0
  98. data/vendor/jquery_file_upload/server/php/index.php +15 -0
  99. data/vendor/jquery_file_upload/test/index.html +172 -0
  100. data/vendor/jquery_file_upload/test/test.js +1292 -0
  101. data/vendor/jquery_rails/CHANGELOG.md +359 -0
  102. data/vendor/jquery_rails/CONTRIBUTING.md +132 -0
  103. data/vendor/jquery_rails/Gemfile +22 -0
  104. data/vendor/jquery_rails/MIT-LICENSE +21 -0
  105. data/vendor/jquery_rails/README.md +75 -0
  106. data/vendor/jquery_rails/Rakefile +59 -0
  107. data/vendor/jquery_rails/VERSIONS.md +62 -0
  108. data/vendor/jquery_rails/jquery-rails.gemspec +26 -0
  109. data/vendor/jquery_rails/lib/jquery-rails.rb +1 -0
  110. data/vendor/jquery_rails/lib/jquery/assert_select.rb +149 -0
  111. data/vendor/jquery_rails/lib/jquery/rails.rb +8 -0
  112. data/vendor/jquery_rails/lib/jquery/rails/engine.rb +6 -0
  113. data/vendor/jquery_rails/lib/jquery/rails/version.rb +9 -0
  114. data/vendor/jquery_rails/test/assert_select_jquery_test.rb +85 -0
  115. data/vendor/jquery_rails/test/test_helper.rb +6 -0
  116. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.js +11008 -0
  117. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.js +5 -0
  118. data/vendor/jquery_rails/vendor/assets/javascripts/jquery.min.map +1 -0
  119. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.js +9814 -0
  120. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.js +4 -0
  121. data/vendor/jquery_rails/vendor/assets/javascripts/jquery2.min.map +1 -0
  122. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.js +10364 -0
  123. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.js +2 -0
  124. data/vendor/jquery_rails/vendor/assets/javascripts/jquery3.min.map +1 -0
  125. data/vendor/jquery_rails/vendor/assets/javascripts/jquery_ujs.js +555 -0
  126. metadata +212 -0
@@ -0,0 +1 @@
1
+ !function(e,t){function n(e,t){var n=e.createElement("p"),r=e.getElementsByTagName("head")[0]||e.documentElement;return n.innerHTML="x<style>"+t+"</style>",r.insertBefore(n.lastChild,r.firstChild)}function r(){var e=T.elements;return"string"==typeof e?e.split(" "):e}function a(e){var t=N[e[b]];return t||(t={},S++,e[b]=S,N[S]=t),t}function o(e,n,r){if(n||(n=t),p)return n.createElement(e);r||(r=a(n));var o;return o=r.cache[e]?r.cache[e].cloneNode():E.test(e)?(r.cache[e]=r.createElem(e)).cloneNode():r.createElem(e),o.canHaveChildren&&!y.test(e)?r.frag.appendChild(o):o}function i(e,n){if(e||(e=t),p)return e.createDocumentFragment();n=n||a(e);for(var o=n.frag.cloneNode(),i=0,c=r(),l=c.length;l>i;i++)o.createElement(c[i]);return o}function c(e,t){t.cache||(t.cache={},t.createElem=e.createElement,t.createFrag=e.createDocumentFragment,t.frag=t.createFrag()),e.createElement=function(n){return T.shivMethods?o(n,e,t):t.createElem(n)},e.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+r().join().replace(/\w+/g,function(e){return t.createElem(e),t.frag.createElement(e),'c("'+e+'")'})+");return n}")(T,t.frag)}function l(e){e||(e=t);var r=a(e);return!T.shivCSS||h||r.hasCSS||(r.hasCSS=!!n(e,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),p||c(e,r),e}function u(e){for(var t,n=e.getElementsByTagName("*"),a=n.length,o=RegExp("^(?:"+r().join("|")+")$","i"),i=[];a--;)t=n[a],o.test(t.nodeName)&&i.push(t.applyElement(s(t)));return i}function s(e){for(var t,n=e.attributes,r=n.length,a=e.ownerDocument.createElement(x+":"+e.nodeName);r--;)t=n[r],t.specified&&a.setAttribute(t.nodeName,t.nodeValue);return a.style.cssText=e.style.cssText,a}function m(e){for(var t,n=e.split("{"),a=n.length,o=RegExp("(^|[\\s,>+~])("+r().join("|")+")(?=[[\\s,>+~#.:]|$)","gi"),i="$1"+x+"\\:$2";a--;)t=n[a]=n[a].split("}"),t[t.length-1]=t[t.length-1].replace(o,i),n[a]=t.join("}");return n.join("{")}function d(e){for(var t=e.length;t--;)e[t].removeNode()}function f(e){function t(){clearTimeout(i._removeSheetTimer),r&&r.removeNode(!0),r=null}var r,o,i=a(e),c=e.namespaces,l=e.parentWindow;return!C||e.printShived?e:("undefined"==typeof c[x]&&c.add(x),l.attachEvent("onbeforeprint",function(){t();for(var a,i,c,l=e.styleSheets,s=[],d=l.length,f=Array(d);d--;)f[d]=l[d];for(;c=f.pop();)if(!c.disabled&&F.test(c.media)){try{a=c.imports,i=a.length}catch(h){i=0}for(d=0;i>d;d++)f.push(a[d]);try{s.push(c.cssText)}catch(h){}}s=m(s.reverse().join("")),o=u(e),r=n(e,s)}),l.attachEvent("onafterprint",function(){d(o),clearTimeout(i._removeSheetTimer),i._removeSheetTimer=setTimeout(t,500)}),e.printShived=!0,e)}var h,p,v="3.6.2",g=e.html5||{},y=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,E=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,b="_html5shiv",S=0,N={};!function(){try{var e=t.createElement("a");e.innerHTML="<xyz></xyz>",h="hidden"in e,p=1==e.childNodes.length||function(){t.createElement("a");var e=t.createDocumentFragment();return"undefined"==typeof e.cloneNode||"undefined"==typeof e.createDocumentFragment||"undefined"==typeof e.createElement}()}catch(n){h=!0,p=!0}}();var T={elements:g.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output progress section summary template time video",version:v,shivCSS:g.shivCSS!==!1,supportsUnknownElements:p,shivMethods:g.shivMethods!==!1,type:"default",shivDocument:l,createElement:o,createDocumentFragment:i};e.html5=T,l(t);var F=/^$|\b(?:all|print)\b/,x="html5shiv",C=!p&&function(){var n=t.documentElement;return!("undefined"==typeof t.namespaces||"undefined"==typeof t.parentWindow||"undefined"==typeof n.applyElement||"undefined"==typeof n.removeNode||"undefined"==typeof e.attachEvent)}();T.type+=" print",T.shivPrint=f,f(t)}(this,document);
@@ -0,0 +1,80 @@
1
+ $.extend decko.editorContentFunctionMap,
2
+ 'select.pointer-select': ->
3
+ pointerContent @val()
4
+ 'select.pointer-multiselect': ->
5
+ pointerContent @val()
6
+ '.pointer-radio-list': ->
7
+ pointerContent @find('input:checked').val()
8
+ '.pointer-list-ul': ->
9
+ pointerContent @find('input').map( -> $(this).val() )
10
+ '.pointer-link-list-ul': ->
11
+ decko.linkListContent @find('.input-group')
12
+ '._nest-list-ul': ->
13
+ decko.nestListContent @find('.input-group')
14
+ '.pointer-checkbox-list': ->
15
+ pointerContent @find('input:checked').map( -> $(this).val() )
16
+ '.pointer-select-list': ->
17
+ pointerContent @find('.pointer-select select').map( -> $(this).val() )
18
+ '._pointer-filtered-list': ->
19
+ pointerContent @find('._filtered-list-item').map( -> $(this).data('cardName') )
20
+ '._pointer-list': ->
21
+ pointerContent @find('._pointer-item').map( -> $(this).val() )
22
+ # can't find evidence that the following is in use: #efm
23
+ # '.pointer-mixed': ->
24
+ # element = '.pointer-checkbox-sublist input:checked,\
25
+ # .pointer-sublist-ul input'
26
+ # pointerContent @find(element).map( -> $(this).val() )
27
+ # must happen after pointer-list-ul, I think
28
+ '.perm-editor': -> permissionsContent this
29
+
30
+ decko.editorInitFunctionMap['.pointer-list-editor'] = ->
31
+ @sortable({handle: '.handle', cancel: ''})
32
+ decko.initPointerList @find('input')
33
+
34
+ decko.editorInitFunctionMap['._pointer-filtered-list'] = ->
35
+ @sortable({handle: '._handle', cancel: ''})
36
+
37
+ $.extend decko,
38
+ initPointerList: (input) ->
39
+ decko.initAutoCardPlete input
40
+
41
+ initAutoCardPlete: (input) ->
42
+ optionsCard = input.data 'options-card'
43
+ return unless !!optionsCard
44
+ path = optionsCard + '.json?view=name_match'
45
+ input.autocomplete { source: decko.slotPath(path) }
46
+
47
+ pointerContent: (vals) ->
48
+ list = $.map $.makeArray(vals), (v) -> if v then '[[' + v + ']]'
49
+ $.makeArray(list).join "\n"
50
+
51
+ linkListContent: (input_groups) ->
52
+ vals = input_groups.map( ->
53
+ v = $(this).find('input._reference').val()
54
+ title = $(this).find('input._title').val()
55
+ v += "|#{title}" if title.length > 0
56
+ v
57
+ )
58
+ list = $.map $.makeArray(vals), (v) -> if v then '[[' + v + ']]'
59
+ $.makeArray(list).join "\n"
60
+
61
+ nestListContent: (input_groups) ->
62
+ vals = input_groups.map( ->
63
+ v = $(this).find('input._reference').val()
64
+ options = $(this).find('input._nest-options').val()
65
+ v += "|#{options}" if options.length > 0
66
+ v
67
+ )
68
+ list = $.map $.makeArray(vals), (v) -> if v then '{{' + v + '}}'
69
+ $.makeArray(list).join "\n"
70
+
71
+
72
+ pointerContent = (vals) ->
73
+ decko.pointerContent vals
74
+ # deprecated. backwards compatibility
75
+
76
+ permissionsContent = (ed) ->
77
+ return '_left' if ed.find('#inherit').is(':checked')
78
+ groups = ed.find('.perm-group input:checked').map( -> $(this).val() )
79
+ indivs = ed.find('.perm-indiv input' ).map( -> $(this).val() )
80
+ pointerContent $.makeArray(groups).concat($.makeArray(indivs))
@@ -0,0 +1,67 @@
1
+ $(window).ready ->
2
+ # add pointer item when clicking on "add another" button
3
+ $('body').on 'click', '._pointer-item-add', (event)->
4
+ decko.addPointerItem this
5
+ event.preventDefault() # Prevent link from following its href
6
+
7
+ # add pointer item when you hit enter in an item
8
+ $('body').on 'keydown', '.pointer-item-text', (event)->
9
+ if event.key == 'Enter'
10
+ decko.addPointerItem this
11
+ event.preventDefault() # was triggering extra item in unrelated pointer
12
+
13
+ # enable/disable add
14
+ $('body').on 'keyup', '.pointer-item-text', (_event)->
15
+ decko.updateAddItemButton this
16
+
17
+ $('body').on 'click', '.pointer-item-delete', ->
18
+ item = $(this).closest 'li'
19
+ list = item.closest('ul')
20
+ if list.find('.pointer-li').length > 1
21
+ item.remove()
22
+ else
23
+ item.find('input').val ''
24
+ decko.updateAddItemButton(list)
25
+
26
+ decko.slotReady (slot) ->
27
+ slot.find('.pointer-list-editor').each ->
28
+ decko.updateAddItemButton this
29
+
30
+ $.extend decko,
31
+ addPointerItem: (el) ->
32
+ slot = $(el).slot()
33
+ slot.trigger "slotDestroy"
34
+ # why is this necessary?
35
+ # this can have a lot of side effects in a multi-card form.
36
+
37
+ newInput = decko.nextPointerInput decko.lastPointerItem(el)
38
+ newInput.val ''
39
+
40
+ slot.trigger "slotReady"
41
+ decko.initializeEditors slot
42
+ # should be (but is not) handled by slotReady
43
+ # without this, "add another" was breaking tinymce editors in same slot
44
+
45
+ newInput.first().focus()
46
+ decko.updateAddItemButton el
47
+ decko.initPointerList newInput
48
+
49
+ nextPointerInput: (lastItem)->
50
+ lastInputs = lastItem.find 'input'
51
+ all_empty = true
52
+ for input in lastInputs
53
+ all_empty = all_empty and $(input).val() == ''
54
+ return lastInputs if all_empty
55
+
56
+ newItem = lastItem.clone()
57
+ lastItem.after newItem
58
+ newItem.attr("data-index", parseInt(lastItem.attr("data-index") + 1))
59
+ newItem.find 'input'
60
+
61
+ lastPointerItem: (el)->
62
+ $(el).closest('.content-editor').find '.pointer-li:last'
63
+
64
+ updateAddItemButton: (el)->
65
+ button = $(el).closest('.content-editor').find '._pointer-item-add'
66
+ disabled = decko.lastPointerItem(el).find('input').val() == ''
67
+ button.prop 'disabled', disabled
@@ -0,0 +1,130 @@
1
+ define("ace/theme/textmate",["require","exports","module","ace/lib/dom"], function(require, exports, module) {
2
+ "use strict";
3
+
4
+ exports.isDark = false;
5
+ exports.cssClass = "ace-tm";
6
+ exports.cssText = ".ace-tm .ace_gutter {\
7
+ background: #f0f0f0;\
8
+ color: #333;\
9
+ }\
10
+ .ace-tm .ace_print-margin {\
11
+ width: 1px;\
12
+ background: #e8e8e8;\
13
+ }\
14
+ .ace-tm .ace_fold {\
15
+ background-color: #6B72E6;\
16
+ }\
17
+ .ace-tm {\
18
+ background-color: #FFFFFF;\
19
+ color: black;\
20
+ }\
21
+ .ace-tm .ace_cursor {\
22
+ color: black;\
23
+ }\
24
+ .ace-tm .ace_invisible {\
25
+ color: rgb(191, 191, 191);\
26
+ }\
27
+ .ace-tm .ace_storage,\
28
+ .ace-tm .ace_keyword {\
29
+ color: blue;\
30
+ }\
31
+ .ace-tm .ace_constant {\
32
+ color: rgb(197, 6, 11);\
33
+ }\
34
+ .ace-tm .ace_constant.ace_buildin {\
35
+ color: rgb(88, 72, 246);\
36
+ }\
37
+ .ace-tm .ace_constant.ace_language {\
38
+ color: rgb(88, 92, 246);\
39
+ }\
40
+ .ace-tm .ace_constant.ace_library {\
41
+ color: rgb(6, 150, 14);\
42
+ }\
43
+ .ace-tm .ace_invalid {\
44
+ background-color: rgba(255, 0, 0, 0.1);\
45
+ color: red;\
46
+ }\
47
+ .ace-tm .ace_support.ace_function {\
48
+ color: rgb(60, 76, 114);\
49
+ }\
50
+ .ace-tm .ace_support.ace_constant {\
51
+ color: rgb(6, 150, 14);\
52
+ }\
53
+ .ace-tm .ace_support.ace_type,\
54
+ .ace-tm .ace_support.ace_class {\
55
+ color: rgb(109, 121, 222);\
56
+ }\
57
+ .ace-tm .ace_keyword.ace_operator {\
58
+ color: rgb(104, 118, 135);\
59
+ }\
60
+ .ace-tm .ace_string {\
61
+ color: rgb(3, 106, 7);\
62
+ }\
63
+ .ace-tm .ace_comment {\
64
+ color: rgb(76, 136, 107);\
65
+ }\
66
+ .ace-tm .ace_comment.ace_doc {\
67
+ color: rgb(0, 102, 255);\
68
+ }\
69
+ .ace-tm .ace_comment.ace_doc.ace_tag {\
70
+ color: rgb(128, 159, 191);\
71
+ }\
72
+ .ace-tm .ace_constant.ace_numeric {\
73
+ color: rgb(0, 0, 205);\
74
+ }\
75
+ .ace-tm .ace_variable {\
76
+ color: rgb(49, 132, 149);\
77
+ }\
78
+ .ace-tm .ace_xml-pe {\
79
+ color: rgb(104, 104, 91);\
80
+ }\
81
+ .ace-tm .ace_entity.ace_name.ace_function {\
82
+ color: #0000A2;\
83
+ }\
84
+ .ace-tm .ace_heading {\
85
+ color: rgb(12, 7, 255);\
86
+ }\
87
+ .ace-tm .ace_list {\
88
+ color:rgb(185, 6, 144);\
89
+ }\
90
+ .ace-tm .ace_meta.ace_tag {\
91
+ color:rgb(0, 22, 142);\
92
+ }\
93
+ .ace-tm .ace_string.ace_regex {\
94
+ color: rgb(255, 0, 0)\
95
+ }\
96
+ .ace-tm .ace_marker-layer .ace_selection {\
97
+ background: rgb(181, 213, 255);\
98
+ }\
99
+ .ace-tm.ace_multiselect .ace_selection.ace_start {\
100
+ box-shadow: 0 0 3px 0px white;\
101
+ border-radius: 2px;\
102
+ }\
103
+ .ace-tm .ace_marker-layer .ace_step {\
104
+ background: rgb(252, 255, 0);\
105
+ }\
106
+ .ace-tm .ace_marker-layer .ace_stack {\
107
+ background: rgb(164, 229, 101);\
108
+ }\
109
+ .ace-tm .ace_marker-layer .ace_bracket {\
110
+ margin: -1px 0 0 -1px;\
111
+ border: 1px solid rgb(192, 192, 192);\
112
+ }\
113
+ .ace-tm .ace_marker-layer .ace_active-line {\
114
+ background: rgba(0, 0, 0, 0.07);\
115
+ }\
116
+ .ace-tm .ace_gutter-active-line {\
117
+ background-color : #dcdcdc;\
118
+ }\
119
+ .ace-tm .ace_marker-layer .ace_selected-word {\
120
+ background: rgb(250, 250, 255);\
121
+ border: 1px solid rgb(200, 200, 250);\
122
+ }\
123
+ .ace-tm .ace_indent-guide {\
124
+ background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\
125
+ }\
126
+ ";
127
+
128
+ var dom = require("../lib/dom");
129
+ dom.importCssString(exports.cssText, exports.cssClass);
130
+ });
@@ -0,0 +1,85 @@
1
+ # -*- encoding : utf-8 -*-
2
+
3
+ require "uglifier"
4
+
5
+ def self.included host_class
6
+ host_class.include_set Abstract::Machine
7
+ host_class.include_set Abstract::MachineInput
8
+
9
+ host_class.machine_input { standard_machine_input }
10
+ host_class.store_machine_output filetype: "js"
11
+ end
12
+
13
+ def standard_machine_input
14
+ js = format(:js)._render_core
15
+ js = compress_js js if compress_js?
16
+ comment_with_source js
17
+ end
18
+
19
+ def comment_with_source js
20
+ "//#{name}\n#{js}"
21
+ end
22
+
23
+ def compress_js input
24
+ Uglifier.compile input
25
+ rescue => e
26
+ # CoffeeScript is compiled in a view
27
+ # If there is a CoffeeScript syntax error we get the rescued view here
28
+ # and the error that the rescued view is no valid Javascript
29
+ # To get the original error we have to refer to Card::Error.current
30
+ raise Card::Error, compression_error_message(e)
31
+ end
32
+
33
+ def compression_error_message e
34
+ if Card::Error.current
35
+ Card::Error.current.message
36
+ else
37
+ "JavaScript::SyntaxError (#{name}): #{e.message}"
38
+ end
39
+ end
40
+
41
+ def compress_js?
42
+ Cardio.config.compress_javascript
43
+ end
44
+
45
+ def clean_html?
46
+ false
47
+ end
48
+
49
+ format do
50
+ def chunk_list
51
+ # turn off autodetection of uri's
52
+ :nest_only
53
+ end
54
+
55
+ # def default_nest_view
56
+ # :raw
57
+ # end
58
+ end
59
+
60
+ format :html do
61
+ def input_type
62
+ :ace_editor
63
+ end
64
+
65
+ def ace_mode
66
+ :javascript
67
+ end
68
+
69
+ def content_changes action, diff_type, hide_diff=false
70
+ wrap_with(:pre) { super }
71
+ end
72
+
73
+ view :core do
74
+ script = card.format(:js).render_core
75
+ process_content highlight(script)
76
+ end
77
+
78
+ def highlight script
79
+ ::CodeRay.scan(script, :js).div
80
+ end
81
+ end
82
+
83
+ def diff_args
84
+ { diff_format: :text }
85
+ end
@@ -0,0 +1,19 @@
1
+ include_set Abstract::Machine
2
+
3
+ store_machine_output filetype: "js"
4
+
5
+ def ok_to_read
6
+ true
7
+ end
8
+
9
+ view :javascript_include_tag do
10
+ %(
11
+ <script src="#{card.machine_output_url}" type="text/javascript"></script>
12
+ )
13
+ end
14
+
15
+ format :html do
16
+ def raw_help_text
17
+ "JavaScript (or CoffeeScript) for card's page."
18
+ end
19
+ end
@@ -0,0 +1 @@
1
+ include_set Abstract::CodePointer
@@ -0,0 +1 @@
1
+ setting_opts group: :webpage, position: 5
@@ -0,0 +1,12 @@
1
+ include_set Abstract::CodeFile
2
+
3
+ def source_files
4
+ %w[mod editor name_editor autosave doubleclick layout navbox upload
5
+ slot modal overlay recaptcha slotter bridge
6
+ nest_editor nest_editor_rules nest_editor_options nest_editor_name
7
+ link_editor
8
+ components decko follow card_menu slot_ready
9
+ filter filter_links filter_items selectable_filtered_content].map do |n|
10
+ "decko/#{n}.js.coffee"
11
+ end
12
+ end
@@ -0,0 +1 @@
1
+ include_set Abstract::CodePointer
@@ -0,0 +1,11 @@
1
+ include_set Abstract::CodeFile
2
+
3
+ format :html do
4
+ view :script_tag, perms: :none do
5
+ <<-HTML.strip_heredoc
6
+ <!--[if lt IE 9]>
7
+ #{javascript_include_tag card.machine_output_url}
8
+ <![endif]-->
9
+ HTML
10
+ end
11
+ end
@@ -0,0 +1,10 @@
1
+ include_set Abstract::CodeFile
2
+
3
+ def source_files
4
+ ["vendor/jquery_rails/vendor/assets/javascripts/jquery3.js",
5
+ "vendor/jquery_rails/vendor/assets/javascripts/jquery_ujs.js"]
6
+ end
7
+
8
+ def source_dir
9
+ ""
10
+ end
@@ -0,0 +1,14 @@
1
+ include_set Abstract::CodeFile
2
+ Self::ScriptLibraries.add_item :script_jquery_helper
3
+
4
+ def source_files
5
+ # jquery-ui includes all interaction components, the dialog and the autocomplete widget
6
+ # and all dependencies for those
7
+ # decko depends on autocomplete, sortable, jquery.autosize and jquery.fileupload
8
+ # the dialog widget is not used in decko but in wikirate
9
+ # don't know if iframe-transport is needed but it used to be there
10
+ %w[jquery-ui.js
11
+ jquery.autosize.js
12
+ ../../vendor/jquery_file_upload/js/jquery.fileupload.js
13
+ ../../vendor/jquery_file_upload/js/jquery.iframe-transport.js]
14
+ end