abstracted 0.0.6 → 0.0.14

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 (224) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +11 -8
  4. data/app/assets/javascripts/abstract_resources.js +29 -25
  5. data/app/assets/javascripts/crud.js.coffee +174 -29
  6. data/app/assets/javascripts/initializers.js.coffee +403 -58
  7. data/app/assets/javascripts/pagescrolling.js.coffee +92 -0
  8. data/app/assets/stylesheets/abstract_resources.css +5 -0
  9. data/app/assets/stylesheets/scaffold.css +4 -2
  10. data/app/assets/stylesheets/selectize.css.scss +0 -0
  11. data/app/controllers/abstract_resources_controller.rb +473 -134
  12. data/app/controllers/application_controller.rb +22 -7
  13. data/app/helpers/abstract_resources_helper.rb +515 -9
  14. data/app/helpers/fab_button_helper.rb +82 -0
  15. data/app/models/abstract_resource.rb +141 -89
  16. data/app/models/ancestry_abstract_resource.rb +27 -0
  17. data/app/models/concerns/roleable.rb +1 -1
  18. data/app/policies/abstract_resource_policy.rb +25 -0
  19. data/app/views/abstract_resources/_title.html.haml +2 -0
  20. data/app/views/abstract_resources/activate.html.haml +5 -0
  21. data/app/views/abstract_resources/attach.html.haml +6 -0
  22. data/app/views/abstract_resources/deactivate.html.haml +5 -0
  23. data/app/views/abstract_resources/defer.html.haml +5 -0
  24. data/app/views/abstract_resources/destroy.js.haml +2 -1
  25. data/app/views/abstract_resources/detach.html.haml +5 -0
  26. data/app/views/abstract_resources/edit.html.haml +4 -9
  27. data/app/views/abstract_resources/error.html.haml +2 -0
  28. data/app/views/abstract_resources/error.js.haml +2 -0
  29. data/app/views/abstract_resources/index.html.haml +27 -0
  30. data/app/views/abstract_resources/index.js.haml +2 -0
  31. data/app/views/abstract_resources/new.html.haml +4 -10
  32. data/app/views/abstract_resources/prefer.html.haml +5 -0
  33. data/app/views/abstract_resources/print.html.haml +2 -0
  34. data/app/views/abstract_resources/print.js.haml +2 -0
  35. data/app/views/abstract_resources/show.html.haml +5 -11
  36. data/app/views/layouts/_messages.html.haml +1 -0
  37. data/app/views/layouts/_navigation.html.haml +13 -0
  38. data/bower.json +34 -0
  39. data/config/initializers/exception.rb +19 -0
  40. data/config/initializers/pundit.rb +22 -0
  41. data/config/routes.rb +24 -0
  42. data/lib/abstracted.rb +3 -0
  43. data/lib/abstracted/version.rb +1 -1
  44. data/lib/abstracted_responder.rb +1 -0
  45. data/lib/exceptions.rb +61 -0
  46. data/vendor/assets/components/jquery/.bower.json +38 -0
  47. data/vendor/assets/components/jquery/MIT-LICENSE.txt +21 -0
  48. data/vendor/assets/components/jquery/bower.json +28 -0
  49. data/vendor/assets/components/jquery/dist/jquery.js +9210 -0
  50. data/vendor/assets/components/jquery/dist/jquery.min.js +5 -0
  51. data/vendor/assets/components/jquery/dist/jquery.min.map +1 -0
  52. data/vendor/assets/components/jquery/src/ajax.js +786 -0
  53. data/vendor/assets/components/jquery/src/ajax/jsonp.js +89 -0
  54. data/vendor/assets/components/jquery/src/ajax/load.js +75 -0
  55. data/vendor/assets/components/jquery/src/ajax/parseJSON.js +13 -0
  56. data/vendor/assets/components/jquery/src/ajax/parseXML.js +28 -0
  57. data/vendor/assets/components/jquery/src/ajax/script.js +64 -0
  58. data/vendor/assets/components/jquery/src/ajax/var/nonce.js +5 -0
  59. data/vendor/assets/components/jquery/src/ajax/var/rquery.js +3 -0
  60. data/vendor/assets/components/jquery/src/ajax/xhr.js +136 -0
  61. data/vendor/assets/components/jquery/src/attributes.js +11 -0
  62. data/vendor/assets/components/jquery/src/attributes/attr.js +141 -0
  63. data/vendor/assets/components/jquery/src/attributes/classes.js +158 -0
  64. data/vendor/assets/components/jquery/src/attributes/prop.js +94 -0
  65. data/vendor/assets/components/jquery/src/attributes/support.js +35 -0
  66. data/vendor/assets/components/jquery/src/attributes/val.js +161 -0
  67. data/vendor/assets/components/jquery/src/callbacks.js +205 -0
  68. data/vendor/assets/components/jquery/src/core.js +502 -0
  69. data/vendor/assets/components/jquery/src/core/access.js +60 -0
  70. data/vendor/assets/components/jquery/src/core/init.js +123 -0
  71. data/vendor/assets/components/jquery/src/core/parseHTML.js +39 -0
  72. data/vendor/assets/components/jquery/src/core/ready.js +97 -0
  73. data/vendor/assets/components/jquery/src/core/var/rsingleTag.js +4 -0
  74. data/vendor/assets/components/jquery/src/css.js +450 -0
  75. data/vendor/assets/components/jquery/src/css/addGetHookIf.js +22 -0
  76. data/vendor/assets/components/jquery/src/css/curCSS.js +57 -0
  77. data/vendor/assets/components/jquery/src/css/defaultDisplay.js +70 -0
  78. data/vendor/assets/components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  79. data/vendor/assets/components/jquery/src/css/support.js +96 -0
  80. data/vendor/assets/components/jquery/src/css/swap.js +28 -0
  81. data/vendor/assets/components/jquery/src/css/var/cssExpand.js +3 -0
  82. data/vendor/assets/components/jquery/src/css/var/getStyles.js +12 -0
  83. data/vendor/assets/components/jquery/src/css/var/isHidden.js +13 -0
  84. data/vendor/assets/components/jquery/src/css/var/rmargin.js +3 -0
  85. data/vendor/assets/components/jquery/src/css/var/rnumnonpx.js +5 -0
  86. data/vendor/assets/components/jquery/src/data.js +178 -0
  87. data/vendor/assets/components/jquery/src/data/Data.js +181 -0
  88. data/vendor/assets/components/jquery/src/data/accepts.js +20 -0
  89. data/vendor/assets/components/jquery/src/data/var/data_priv.js +5 -0
  90. data/vendor/assets/components/jquery/src/data/var/data_user.js +5 -0
  91. data/vendor/assets/components/jquery/src/deferred.js +149 -0
  92. data/vendor/assets/components/jquery/src/deprecated.js +13 -0
  93. data/vendor/assets/components/jquery/src/dimensions.js +50 -0
  94. data/vendor/assets/components/jquery/src/effects.js +648 -0
  95. data/vendor/assets/components/jquery/src/effects/Tween.js +114 -0
  96. data/vendor/assets/components/jquery/src/effects/animatedSelector.js +13 -0
  97. data/vendor/assets/components/jquery/src/event.js +868 -0
  98. data/vendor/assets/components/jquery/src/event/ajax.js +13 -0
  99. data/vendor/assets/components/jquery/src/event/alias.js +39 -0
  100. data/vendor/assets/components/jquery/src/event/support.js +9 -0
  101. data/vendor/assets/components/jquery/src/exports/amd.js +24 -0
  102. data/vendor/assets/components/jquery/src/exports/global.js +32 -0
  103. data/vendor/assets/components/jquery/src/intro.js +44 -0
  104. data/vendor/assets/components/jquery/src/jquery.js +37 -0
  105. data/vendor/assets/components/jquery/src/manipulation.js +580 -0
  106. data/vendor/assets/components/jquery/src/manipulation/_evalUrl.js +18 -0
  107. data/vendor/assets/components/jquery/src/manipulation/support.js +32 -0
  108. data/vendor/assets/components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  109. data/vendor/assets/components/jquery/src/offset.js +207 -0
  110. data/vendor/assets/components/jquery/src/outro.js +1 -0
  111. data/vendor/assets/components/jquery/src/queue.js +142 -0
  112. data/vendor/assets/components/jquery/src/queue/delay.js +22 -0
  113. data/vendor/assets/components/jquery/src/selector-native.js +172 -0
  114. data/vendor/assets/components/jquery/src/selector-sizzle.js +14 -0
  115. data/vendor/assets/components/jquery/src/selector.js +1 -0
  116. data/vendor/assets/components/jquery/src/serialize.js +111 -0
  117. data/vendor/assets/components/jquery/src/sizzle/dist/sizzle.js +2067 -0
  118. data/vendor/assets/components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  119. data/vendor/assets/components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  120. data/vendor/assets/components/jquery/src/traversing.js +199 -0
  121. data/vendor/assets/components/jquery/src/traversing/findFilter.js +100 -0
  122. data/vendor/assets/components/jquery/src/traversing/var/rneedsContext.js +6 -0
  123. data/vendor/assets/components/jquery/src/var/arr.js +3 -0
  124. data/vendor/assets/components/jquery/src/var/class2type.js +4 -0
  125. data/vendor/assets/components/jquery/src/var/concat.js +5 -0
  126. data/vendor/assets/components/jquery/src/var/hasOwn.js +5 -0
  127. data/vendor/assets/components/jquery/src/var/indexOf.js +5 -0
  128. data/vendor/assets/components/jquery/src/var/pnum.js +3 -0
  129. data/vendor/assets/components/jquery/src/var/push.js +5 -0
  130. data/vendor/assets/components/jquery/src/var/rnotwhite.js +3 -0
  131. data/vendor/assets/components/jquery/src/var/slice.js +5 -0
  132. data/vendor/assets/components/jquery/src/var/strundefined.js +3 -0
  133. data/vendor/assets/components/jquery/src/var/support.js +4 -0
  134. data/vendor/assets/components/jquery/src/var/toString.js +5 -0
  135. data/vendor/assets/components/jquery/src/wrap.js +79 -0
  136. data/vendor/assets/components/microplugin/.bower.json +38 -0
  137. data/vendor/assets/components/microplugin/.gitignore +2 -0
  138. data/vendor/assets/components/microplugin/.npmignore +3 -0
  139. data/vendor/assets/components/microplugin/README.md +115 -0
  140. data/vendor/assets/components/microplugin/bower.json +22 -0
  141. data/vendor/assets/components/microplugin/package.json +15 -0
  142. data/vendor/assets/components/microplugin/src/microplugin.js +135 -0
  143. data/vendor/assets/components/selectize/.bower.json +60 -0
  144. data/vendor/assets/components/selectize/.gitignore +5 -0
  145. data/vendor/assets/components/selectize/LICENSE +202 -0
  146. data/vendor/assets/components/selectize/README.md +105 -0
  147. data/vendor/assets/components/selectize/bower.json +40 -0
  148. data/vendor/assets/components/selectize/dist/css/selectize.bootstrap2.css +487 -0
  149. data/vendor/assets/components/selectize/dist/css/selectize.bootstrap3.css +401 -0
  150. data/vendor/assets/components/selectize/dist/css/selectize.css +317 -0
  151. data/vendor/assets/components/selectize/dist/css/selectize.default.css +387 -0
  152. data/vendor/assets/components/selectize/dist/css/selectize.legacy.css +364 -0
  153. data/vendor/assets/components/selectize/dist/js/selectize.js +3058 -0
  154. data/vendor/assets/components/selectize/dist/js/selectize.min.js +3 -0
  155. data/vendor/assets/components/selectize/dist/js/standalone/selectize.js +3667 -0
  156. data/vendor/assets/components/selectize/dist/js/standalone/selectize.min.js +3 -0
  157. data/vendor/assets/components/selectize/dist/less/plugins/drag_drop.less +16 -0
  158. data/vendor/assets/components/selectize/dist/less/plugins/dropdown_header.less +20 -0
  159. data/vendor/assets/components/selectize/dist/less/plugins/optgroup_columns.less +17 -0
  160. data/vendor/assets/components/selectize/dist/less/plugins/remove_button.less +37 -0
  161. data/vendor/assets/components/selectize/dist/less/selectize.bootstrap2.less +161 -0
  162. data/vendor/assets/components/selectize/dist/less/selectize.bootstrap3.less +150 -0
  163. data/vendor/assets/components/selectize/dist/less/selectize.default.less +84 -0
  164. data/vendor/assets/components/selectize/dist/less/selectize.legacy.less +75 -0
  165. data/vendor/assets/components/selectize/dist/less/selectize.less +295 -0
  166. data/vendor/assets/components/selectize/karma.conf.js +107 -0
  167. data/vendor/assets/components/sifter/.bower.json +44 -0
  168. data/vendor/assets/components/sifter/.gitignore +3 -0
  169. data/vendor/assets/components/sifter/.npmignore +4 -0
  170. data/vendor/assets/components/sifter/README.md +149 -0
  171. data/vendor/assets/components/sifter/bower.json +23 -0
  172. data/vendor/assets/components/sifter/package.json +48 -0
  173. data/vendor/assets/components/sifter/sifter.js +471 -0
  174. data/vendor/assets/components/sifter/sifter.min.js +2 -0
  175. data/vendor/assets/components/sweetalert/.bower.json +36 -0
  176. data/vendor/assets/components/sweetalert/.editorconfig +11 -0
  177. data/vendor/assets/components/sweetalert/.gitignore +5 -0
  178. data/vendor/assets/components/sweetalert/.jshintrc +11 -0
  179. data/vendor/assets/components/sweetalert/.travis.yml +6 -0
  180. data/vendor/assets/components/sweetalert/LICENSE +22 -0
  181. data/vendor/assets/components/sweetalert/README.md +157 -0
  182. data/vendor/assets/components/sweetalert/bower.json +25 -0
  183. data/vendor/assets/components/sweetalert/dev/gulpfile-wrap-template.js +18 -0
  184. data/vendor/assets/components/sweetalert/dev/ie9.css +23 -0
  185. data/vendor/assets/components/sweetalert/dev/loader-animation.css +209 -0
  186. data/vendor/assets/components/sweetalert/dev/modules/default-params.js +26 -0
  187. data/vendor/assets/components/sweetalert/dev/modules/handle-click.js +128 -0
  188. data/vendor/assets/components/sweetalert/dev/modules/handle-dom.js +161 -0
  189. data/vendor/assets/components/sweetalert/dev/modules/handle-key.js +73 -0
  190. data/vendor/assets/components/sweetalert/dev/modules/handle-swal-dom.js +148 -0
  191. data/vendor/assets/components/sweetalert/dev/modules/injected-html.js +69 -0
  192. data/vendor/assets/components/sweetalert/dev/modules/set-params.js +221 -0
  193. data/vendor/assets/components/sweetalert/dev/modules/utils.js +71 -0
  194. data/vendor/assets/components/sweetalert/dev/sweetalert.es6.js +311 -0
  195. data/vendor/assets/components/sweetalert/dev/sweetalert.scss +648 -0
  196. data/vendor/assets/components/sweetalert/dist/sweetalert-dev.js +1281 -0
  197. data/vendor/assets/components/sweetalert/dist/sweetalert.css +932 -0
  198. data/vendor/assets/components/sweetalert/dist/sweetalert.min.js +1 -0
  199. data/vendor/assets/components/sweetalert/example/example.css +442 -0
  200. data/vendor/assets/components/sweetalert/example/example.scss +580 -0
  201. data/vendor/assets/components/sweetalert/example/images/logo_big.png +0 -0
  202. data/vendor/assets/components/sweetalert/example/images/logo_big@2x.png +0 -0
  203. data/vendor/assets/components/sweetalert/example/images/logo_small.png +0 -0
  204. data/vendor/assets/components/sweetalert/example/images/logo_small@2x.png +0 -0
  205. data/vendor/assets/components/sweetalert/example/images/te-logo-small.svg +12 -0
  206. data/vendor/assets/components/sweetalert/example/images/thumbs-up.jpg +0 -0
  207. data/vendor/assets/components/sweetalert/example/images/vs_icon.png +0 -0
  208. data/vendor/assets/components/sweetalert/example/images/vs_icon@2x.png +0 -0
  209. data/vendor/assets/components/sweetalert/gulpfile.js +97 -0
  210. data/vendor/assets/components/sweetalert/index.html +584 -0
  211. data/vendor/assets/components/sweetalert/package.json +45 -0
  212. data/vendor/assets/components/sweetalert/sweetalert.gif +0 -0
  213. data/vendor/assets/components/sweetalert/test/index.html +20 -0
  214. data/vendor/assets/components/sweetalert/test/tests.js +143 -0
  215. data/vendor/assets/components/sweetalert/themes/facebook/facebook.css +111 -0
  216. data/vendor/assets/components/sweetalert/themes/facebook/facebook.scss +146 -0
  217. data/vendor/assets/components/sweetalert/themes/google/google.css +115 -0
  218. data/vendor/assets/components/sweetalert/themes/google/google.scss +148 -0
  219. data/vendor/assets/components/sweetalert/themes/twitter/twitter.css +140 -0
  220. data/vendor/assets/components/sweetalert/themes/twitter/twitter.scss +177 -0
  221. metadata +214 -5
  222. data/abstracted-0.0.4.gem +0 -0
  223. data/abstracted.gemspec +0 -51
  224. data/app/views/abstract_resources/index.html.erb +0 -1
@@ -0,0 +1,22 @@
1
+ define(function() {
2
+
3
+ function addGetHookIf( conditionFn, hookFn ) {
4
+ // Define the hook, we'll check on the first run if it's really needed.
5
+ return {
6
+ get: function() {
7
+ if ( conditionFn() ) {
8
+ // Hook not needed (or it's not possible to use it due
9
+ // to missing dependency), remove it.
10
+ delete this.get;
11
+ return;
12
+ }
13
+
14
+ // Hook needed; redefine it so that the support test is not executed again.
15
+ return (this.get = hookFn).apply( this, arguments );
16
+ }
17
+ };
18
+ }
19
+
20
+ return addGetHookIf;
21
+
22
+ });
@@ -0,0 +1,57 @@
1
+ define([
2
+ "../core",
3
+ "./var/rnumnonpx",
4
+ "./var/rmargin",
5
+ "./var/getStyles",
6
+ "../selector" // contains
7
+ ], function( jQuery, rnumnonpx, rmargin, getStyles ) {
8
+
9
+ function curCSS( elem, name, computed ) {
10
+ var width, minWidth, maxWidth, ret,
11
+ style = elem.style;
12
+
13
+ computed = computed || getStyles( elem );
14
+
15
+ // Support: IE9
16
+ // getPropertyValue is only needed for .css('filter') (#12537)
17
+ if ( computed ) {
18
+ ret = computed.getPropertyValue( name ) || computed[ name ];
19
+ }
20
+
21
+ if ( computed ) {
22
+
23
+ if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) {
24
+ ret = jQuery.style( elem, name );
25
+ }
26
+
27
+ // Support: iOS < 6
28
+ // A tribute to the "awesome hack by Dean Edwards"
29
+ // iOS < 6 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
30
+ // this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values
31
+ if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
32
+
33
+ // Remember the original values
34
+ width = style.width;
35
+ minWidth = style.minWidth;
36
+ maxWidth = style.maxWidth;
37
+
38
+ // Put in the new values to get a computed value out
39
+ style.minWidth = style.maxWidth = style.width = ret;
40
+ ret = computed.width;
41
+
42
+ // Revert the changed values
43
+ style.width = width;
44
+ style.minWidth = minWidth;
45
+ style.maxWidth = maxWidth;
46
+ }
47
+ }
48
+
49
+ return ret !== undefined ?
50
+ // Support: IE
51
+ // IE returns zIndex value as an integer.
52
+ ret + "" :
53
+ ret;
54
+ }
55
+
56
+ return curCSS;
57
+ });
@@ -0,0 +1,70 @@
1
+ define([
2
+ "../core",
3
+ "../manipulation" // appendTo
4
+ ], function( jQuery ) {
5
+
6
+ var iframe,
7
+ elemdisplay = {};
8
+
9
+ /**
10
+ * Retrieve the actual display of a element
11
+ * @param {String} name nodeName of the element
12
+ * @param {Object} doc Document object
13
+ */
14
+ // Called only from within defaultDisplay
15
+ function actualDisplay( name, doc ) {
16
+ var style,
17
+ elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
18
+
19
+ // getDefaultComputedStyle might be reliably used only on attached element
20
+ display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
21
+
22
+ // Use of this method is a temporary fix (more like optimization) until something better comes along,
23
+ // since it was removed from specification and supported only in FF
24
+ style.display : jQuery.css( elem[ 0 ], "display" );
25
+
26
+ // We don't have any data stored on the element,
27
+ // so use "detach" method as fast way to get rid of the element
28
+ elem.detach();
29
+
30
+ return display;
31
+ }
32
+
33
+ /**
34
+ * Try to determine the default display value of an element
35
+ * @param {String} nodeName
36
+ */
37
+ function defaultDisplay( nodeName ) {
38
+ var doc = document,
39
+ display = elemdisplay[ nodeName ];
40
+
41
+ if ( !display ) {
42
+ display = actualDisplay( nodeName, doc );
43
+
44
+ // If the simple way fails, read from inside an iframe
45
+ if ( display === "none" || !display ) {
46
+
47
+ // Use the already-created iframe if possible
48
+ iframe = (iframe || jQuery( "<iframe frameborder='0' width='0' height='0'/>" )).appendTo( doc.documentElement );
49
+
50
+ // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
51
+ doc = iframe[ 0 ].contentDocument;
52
+
53
+ // Support: IE
54
+ doc.write();
55
+ doc.close();
56
+
57
+ display = actualDisplay( nodeName, doc );
58
+ iframe.detach();
59
+ }
60
+
61
+ // Store the correct default display
62
+ elemdisplay[ nodeName ] = display;
63
+ }
64
+
65
+ return display;
66
+ }
67
+
68
+ return defaultDisplay;
69
+
70
+ });
@@ -0,0 +1,15 @@
1
+ define([
2
+ "../core",
3
+ "../selector"
4
+ ], function( jQuery ) {
5
+
6
+ jQuery.expr.filters.hidden = function( elem ) {
7
+ // Support: Opera <= 12.12
8
+ // Opera reports offsetWidths and offsetHeights less than zero on some elements
9
+ return elem.offsetWidth <= 0 && elem.offsetHeight <= 0;
10
+ };
11
+ jQuery.expr.filters.visible = function( elem ) {
12
+ return !jQuery.expr.filters.hidden( elem );
13
+ };
14
+
15
+ });
@@ -0,0 +1,96 @@
1
+ define([
2
+ "../core",
3
+ "../var/support"
4
+ ], function( jQuery, support ) {
5
+
6
+ (function() {
7
+ var pixelPositionVal, boxSizingReliableVal,
8
+ docElem = document.documentElement,
9
+ container = document.createElement( "div" ),
10
+ div = document.createElement( "div" );
11
+
12
+ if ( !div.style ) {
13
+ return;
14
+ }
15
+
16
+ // Support: IE9-11+
17
+ // Style of cloned element affects source element cloned (#8908)
18
+ div.style.backgroundClip = "content-box";
19
+ div.cloneNode( true ).style.backgroundClip = "";
20
+ support.clearCloneStyle = div.style.backgroundClip === "content-box";
21
+
22
+ container.style.cssText = "border:0;width:0;height:0;top:0;left:-9999px;margin-top:1px;" +
23
+ "position:absolute";
24
+ container.appendChild( div );
25
+
26
+ // Executing both pixelPosition & boxSizingReliable tests require only one layout
27
+ // so they're executed at the same time to save the second computation.
28
+ function computePixelPositionAndBoxSizingReliable() {
29
+ div.style.cssText =
30
+ // Support: Firefox<29, Android 2.3
31
+ // Vendor-prefix box-sizing
32
+ "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;" +
33
+ "box-sizing:border-box;display:block;margin-top:1%;top:1%;" +
34
+ "border:1px;padding:1px;width:4px;position:absolute";
35
+ div.innerHTML = "";
36
+ docElem.appendChild( container );
37
+
38
+ var divStyle = window.getComputedStyle( div, null );
39
+ pixelPositionVal = divStyle.top !== "1%";
40
+ boxSizingReliableVal = divStyle.width === "4px";
41
+
42
+ docElem.removeChild( container );
43
+ }
44
+
45
+ // Support: node.js jsdom
46
+ // Don't assume that getComputedStyle is a property of the global object
47
+ if ( window.getComputedStyle ) {
48
+ jQuery.extend( support, {
49
+ pixelPosition: function() {
50
+
51
+ // This test is executed only once but we still do memoizing
52
+ // since we can use the boxSizingReliable pre-computing.
53
+ // No need to check if the test was already performed, though.
54
+ computePixelPositionAndBoxSizingReliable();
55
+ return pixelPositionVal;
56
+ },
57
+ boxSizingReliable: function() {
58
+ if ( boxSizingReliableVal == null ) {
59
+ computePixelPositionAndBoxSizingReliable();
60
+ }
61
+ return boxSizingReliableVal;
62
+ },
63
+ reliableMarginRight: function() {
64
+
65
+ // Support: Android 2.3
66
+ // Check if div with explicit width and no margin-right incorrectly
67
+ // gets computed margin-right based on width of container. (#3333)
68
+ // WebKit Bug 13343 - getComputedStyle returns wrong value for margin-right
69
+ // This support function is only executed once so no memoizing is needed.
70
+ var ret,
71
+ marginDiv = div.appendChild( document.createElement( "div" ) );
72
+
73
+ // Reset CSS: box-sizing; display; margin; border; padding
74
+ marginDiv.style.cssText = div.style.cssText =
75
+ // Support: Firefox<29, Android 2.3
76
+ // Vendor-prefix box-sizing
77
+ "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;" +
78
+ "box-sizing:content-box;display:block;margin:0;border:0;padding:0";
79
+ marginDiv.style.marginRight = marginDiv.style.width = "0";
80
+ div.style.width = "1px";
81
+ docElem.appendChild( container );
82
+
83
+ ret = !parseFloat( window.getComputedStyle( marginDiv, null ).marginRight );
84
+
85
+ docElem.removeChild( container );
86
+ div.removeChild( marginDiv );
87
+
88
+ return ret;
89
+ }
90
+ });
91
+ }
92
+ })();
93
+
94
+ return support;
95
+
96
+ });
@@ -0,0 +1,28 @@
1
+ define([
2
+ "../core"
3
+ ], function( jQuery ) {
4
+
5
+ // A method for quickly swapping in/out CSS properties to get correct calculations.
6
+ jQuery.swap = function( elem, options, callback, args ) {
7
+ var ret, name,
8
+ old = {};
9
+
10
+ // Remember the old values, and insert the new ones
11
+ for ( name in options ) {
12
+ old[ name ] = elem.style[ name ];
13
+ elem.style[ name ] = options[ name ];
14
+ }
15
+
16
+ ret = callback.apply( elem, args || [] );
17
+
18
+ // Revert the old values
19
+ for ( name in options ) {
20
+ elem.style[ name ] = old[ name ];
21
+ }
22
+
23
+ return ret;
24
+ };
25
+
26
+ return jQuery.swap;
27
+
28
+ });
@@ -0,0 +1,3 @@
1
+ define(function() {
2
+ return [ "Top", "Right", "Bottom", "Left" ];
3
+ });
@@ -0,0 +1,12 @@
1
+ define(function() {
2
+ return function( elem ) {
3
+ // Support: IE<=11+, Firefox<=30+ (#15098, #14150)
4
+ // IE throws on elements created in popups
5
+ // FF meanwhile throws on frame elements through "defaultView.getComputedStyle"
6
+ if ( elem.ownerDocument.defaultView.opener ) {
7
+ return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
8
+ }
9
+
10
+ return window.getComputedStyle( elem, null );
11
+ };
12
+ });
@@ -0,0 +1,13 @@
1
+ define([
2
+ "../../core",
3
+ "../../selector"
4
+ // css is assumed
5
+ ], function( jQuery ) {
6
+
7
+ return function( elem, el ) {
8
+ // isHidden might be called from jQuery#filter function;
9
+ // in that case, element will be second argument
10
+ elem = el || elem;
11
+ return jQuery.css( elem, "display" ) === "none" || !jQuery.contains( elem.ownerDocument, elem );
12
+ };
13
+ });
@@ -0,0 +1,3 @@
1
+ define(function() {
2
+ return (/^margin/);
3
+ });
@@ -0,0 +1,5 @@
1
+ define([
2
+ "../../var/pnum"
3
+ ], function( pnum ) {
4
+ return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" );
5
+ });
@@ -0,0 +1,178 @@
1
+ define([
2
+ "./core",
3
+ "./var/rnotwhite",
4
+ "./core/access",
5
+ "./data/var/data_priv",
6
+ "./data/var/data_user"
7
+ ], function( jQuery, rnotwhite, access, data_priv, data_user ) {
8
+
9
+ // Implementation Summary
10
+ //
11
+ // 1. Enforce API surface and semantic compatibility with 1.9.x branch
12
+ // 2. Improve the module's maintainability by reducing the storage
13
+ // paths to a single mechanism.
14
+ // 3. Use the same single mechanism to support "private" and "user" data.
15
+ // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
16
+ // 5. Avoid exposing implementation details on user objects (eg. expando properties)
17
+ // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
18
+
19
+ var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
20
+ rmultiDash = /([A-Z])/g;
21
+
22
+ function dataAttr( elem, key, data ) {
23
+ var name;
24
+
25
+ // If nothing was found internally, try to fetch any
26
+ // data from the HTML5 data-* attribute
27
+ if ( data === undefined && elem.nodeType === 1 ) {
28
+ name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
29
+ data = elem.getAttribute( name );
30
+
31
+ if ( typeof data === "string" ) {
32
+ try {
33
+ data = data === "true" ? true :
34
+ data === "false" ? false :
35
+ data === "null" ? null :
36
+ // Only convert to a number if it doesn't change the string
37
+ +data + "" === data ? +data :
38
+ rbrace.test( data ) ? jQuery.parseJSON( data ) :
39
+ data;
40
+ } catch( e ) {}
41
+
42
+ // Make sure we set the data so it isn't changed later
43
+ data_user.set( elem, key, data );
44
+ } else {
45
+ data = undefined;
46
+ }
47
+ }
48
+ return data;
49
+ }
50
+
51
+ jQuery.extend({
52
+ hasData: function( elem ) {
53
+ return data_user.hasData( elem ) || data_priv.hasData( elem );
54
+ },
55
+
56
+ data: function( elem, name, data ) {
57
+ return data_user.access( elem, name, data );
58
+ },
59
+
60
+ removeData: function( elem, name ) {
61
+ data_user.remove( elem, name );
62
+ },
63
+
64
+ // TODO: Now that all calls to _data and _removeData have been replaced
65
+ // with direct calls to data_priv methods, these can be deprecated.
66
+ _data: function( elem, name, data ) {
67
+ return data_priv.access( elem, name, data );
68
+ },
69
+
70
+ _removeData: function( elem, name ) {
71
+ data_priv.remove( elem, name );
72
+ }
73
+ });
74
+
75
+ jQuery.fn.extend({
76
+ data: function( key, value ) {
77
+ var i, name, data,
78
+ elem = this[ 0 ],
79
+ attrs = elem && elem.attributes;
80
+
81
+ // Gets all values
82
+ if ( key === undefined ) {
83
+ if ( this.length ) {
84
+ data = data_user.get( elem );
85
+
86
+ if ( elem.nodeType === 1 && !data_priv.get( elem, "hasDataAttrs" ) ) {
87
+ i = attrs.length;
88
+ while ( i-- ) {
89
+
90
+ // Support: IE11+
91
+ // The attrs elements can be null (#14894)
92
+ if ( attrs[ i ] ) {
93
+ name = attrs[ i ].name;
94
+ if ( name.indexOf( "data-" ) === 0 ) {
95
+ name = jQuery.camelCase( name.slice(5) );
96
+ dataAttr( elem, name, data[ name ] );
97
+ }
98
+ }
99
+ }
100
+ data_priv.set( elem, "hasDataAttrs", true );
101
+ }
102
+ }
103
+
104
+ return data;
105
+ }
106
+
107
+ // Sets multiple values
108
+ if ( typeof key === "object" ) {
109
+ return this.each(function() {
110
+ data_user.set( this, key );
111
+ });
112
+ }
113
+
114
+ return access( this, function( value ) {
115
+ var data,
116
+ camelKey = jQuery.camelCase( key );
117
+
118
+ // The calling jQuery object (element matches) is not empty
119
+ // (and therefore has an element appears at this[ 0 ]) and the
120
+ // `value` parameter was not undefined. An empty jQuery object
121
+ // will result in `undefined` for elem = this[ 0 ] which will
122
+ // throw an exception if an attempt to read a data cache is made.
123
+ if ( elem && value === undefined ) {
124
+ // Attempt to get data from the cache
125
+ // with the key as-is
126
+ data = data_user.get( elem, key );
127
+ if ( data !== undefined ) {
128
+ return data;
129
+ }
130
+
131
+ // Attempt to get data from the cache
132
+ // with the key camelized
133
+ data = data_user.get( elem, camelKey );
134
+ if ( data !== undefined ) {
135
+ return data;
136
+ }
137
+
138
+ // Attempt to "discover" the data in
139
+ // HTML5 custom data-* attrs
140
+ data = dataAttr( elem, camelKey, undefined );
141
+ if ( data !== undefined ) {
142
+ return data;
143
+ }
144
+
145
+ // We tried really hard, but the data doesn't exist.
146
+ return;
147
+ }
148
+
149
+ // Set the data...
150
+ this.each(function() {
151
+ // First, attempt to store a copy or reference of any
152
+ // data that might've been store with a camelCased key.
153
+ var data = data_user.get( this, camelKey );
154
+
155
+ // For HTML5 data-* attribute interop, we have to
156
+ // store property names with dashes in a camelCase form.
157
+ // This might not apply to all properties...*
158
+ data_user.set( this, camelKey, value );
159
+
160
+ // *... In the case of properties that might _actually_
161
+ // have dashes, we need to also store a copy of that
162
+ // unchanged property.
163
+ if ( key.indexOf("-") !== -1 && data !== undefined ) {
164
+ data_user.set( this, key, value );
165
+ }
166
+ });
167
+ }, null, value, arguments.length > 1, null, true );
168
+ },
169
+
170
+ removeData: function( key ) {
171
+ return this.each(function() {
172
+ data_user.remove( this, key );
173
+ });
174
+ }
175
+ });
176
+
177
+ return jQuery;
178
+ });