trusty-cms 3.1.8 → 3.1.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (215) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +2 -1
  3. data/Gemfile.lock +13 -9
  4. data/app/assets/images/admin/move_higher.png +0 -0
  5. data/app/assets/images/admin/move_lower.png +0 -0
  6. data/app/assets/images/admin/move_to_bottom.png +0 -0
  7. data/app/assets/images/admin/move_to_top.png +0 -0
  8. data/app/assets/images/admin/remove.png +0 -0
  9. data/app/assets/stylesheets/admin/_multi_site_main.scss +85 -0
  10. data/app/assets/stylesheets/admin/_site_chooser.scss +76 -0
  11. data/app/assets/stylesheets/admin/main.scss +3 -0
  12. data/app/controllers/admin/sites_controller.rb +14 -0
  13. data/app/helpers/scoped_helper.rb +19 -0
  14. data/app/helpers/sites_helper.rb +10 -0
  15. data/app/models/site.rb +86 -0
  16. data/app/models/snippet.rb +23 -0
  17. data/app/models/snippet_finder.rb +24 -0
  18. data/app/models/snippet_tags.rb +80 -0
  19. data/app/users/_choose_site.html.haml +8 -0
  20. data/app/views/admin/layouts/_choose_site.html.haml +8 -0
  21. data/app/views/admin/layouts/_site_chooser.html.haml +11 -0
  22. data/app/views/admin/sites/_form.haml +50 -0
  23. data/app/views/admin/sites/edit.haml +7 -0
  24. data/app/views/admin/sites/index.haml +43 -0
  25. data/app/views/admin/sites/new.haml +7 -0
  26. data/app/views/admin/snippets/_choose_site.html.haml +6 -0
  27. data/app/views/{snippets → admin/snippets}/_form.html.haml +0 -0
  28. data/app/views/{snippets → admin/snippets}/_popups.html.haml +0 -0
  29. data/app/views/{snippets → admin/snippets}/edit.html.haml +0 -0
  30. data/app/views/{snippets → admin/snippets}/index.html.haml +0 -0
  31. data/app/views/{snippets → admin/snippets}/new.html.haml +0 -0
  32. data/app/views/{snippets → admin/snippets}/remove.html.haml +0 -0
  33. data/app/views/admin/users/_choose_site.html.haml +8 -0
  34. data/config/application.rb +0 -2
  35. data/config/initializers/trusty_cms_config.rb +6 -0
  36. data/config/routes.rb +8 -0
  37. data/coverage/index.html +3837 -2759
  38. data/db/migrate/006_remove_user_login_index.rb +8 -0
  39. data/db/migrate/010_create_sites.rb +13 -0
  40. data/db/migrate/011_add_order_to_sites.rb +9 -0
  41. data/db/migrate/022_add_admin_fields_to_sites.rb +17 -0
  42. data/db/migrate/023_add_sites.rb +13 -0
  43. data/db/migrate/024_site_abbreviation.rb +9 -0
  44. data/db/migrate/025_recreate_non_unique_index_on_snippets_name.rb +11 -0
  45. data/db/migrate/026_add_site_id_to_pages.rb +24 -0
  46. data/db/migrate/027_add_base_domain_to_sites.rb +9 -0
  47. data/lib/trusty_cms.rb +1 -1
  48. data/spec/dummy/db/schema.rb +20 -2
  49. data/spec/dummy/log/test.log +44621 -0
  50. data/spec/dummy/node_modules/jquery/AUTHORS.txt +301 -0
  51. data/spec/dummy/node_modules/jquery/LICENSE.txt +36 -0
  52. data/spec/dummy/node_modules/jquery/README.md +67 -0
  53. data/spec/dummy/node_modules/jquery/bower.json +14 -0
  54. data/spec/dummy/node_modules/jquery/dist/core.js +476 -0
  55. data/spec/dummy/node_modules/jquery/dist/jquery.js +10253 -0
  56. data/spec/dummy/node_modules/jquery/dist/jquery.min.js +4 -0
  57. data/spec/dummy/node_modules/jquery/dist/jquery.min.map +1 -0
  58. data/spec/dummy/node_modules/jquery/dist/jquery.slim.js +8160 -0
  59. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.js +4 -0
  60. data/spec/dummy/node_modules/jquery/dist/jquery.slim.min.map +1 -0
  61. data/spec/dummy/node_modules/jquery/external/sizzle/LICENSE.txt +36 -0
  62. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.js +2272 -0
  63. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  64. data/spec/dummy/node_modules/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  65. data/spec/dummy/node_modules/jquery/package.json +97 -0
  66. data/spec/dummy/node_modules/jquery/src/ajax/jsonp.js +102 -0
  67. data/spec/dummy/node_modules/jquery/src/ajax/load.js +76 -0
  68. data/spec/dummy/node_modules/jquery/src/ajax/parseXML.js +30 -0
  69. data/spec/dummy/node_modules/jquery/src/ajax/script.js +77 -0
  70. data/spec/dummy/node_modules/jquery/src/ajax/var/location.js +5 -0
  71. data/spec/dummy/node_modules/jquery/src/ajax/var/nonce.js +7 -0
  72. data/spec/dummy/node_modules/jquery/src/ajax/var/rquery.js +5 -0
  73. data/spec/dummy/node_modules/jquery/src/ajax/xhr.js +169 -0
  74. data/spec/dummy/node_modules/jquery/src/ajax.js +855 -0
  75. data/spec/dummy/node_modules/jquery/src/attributes/attr.js +141 -0
  76. data/spec/dummy/node_modules/jquery/src/attributes/classes.js +174 -0
  77. data/spec/dummy/node_modules/jquery/src/attributes/prop.js +143 -0
  78. data/spec/dummy/node_modules/jquery/src/attributes/support.js +33 -0
  79. data/spec/dummy/node_modules/jquery/src/attributes/val.js +190 -0
  80. data/spec/dummy/node_modules/jquery/src/attributes.js +13 -0
  81. data/spec/dummy/node_modules/jquery/src/callbacks.js +234 -0
  82. data/spec/dummy/node_modules/jquery/src/core/DOMEval.js +16 -0
  83. data/spec/dummy/node_modules/jquery/src/core/access.js +70 -0
  84. data/spec/dummy/node_modules/jquery/src/core/init.js +128 -0
  85. data/spec/dummy/node_modules/jquery/src/core/nodeName.js +13 -0
  86. data/spec/dummy/node_modules/jquery/src/core/parseHTML.js +65 -0
  87. data/spec/dummy/node_modules/jquery/src/core/ready-no-deferred.js +96 -0
  88. data/spec/dummy/node_modules/jquery/src/core/ready.js +86 -0
  89. data/spec/dummy/node_modules/jquery/src/core/readyException.js +13 -0
  90. data/spec/dummy/node_modules/jquery/src/core/stripAndCollapse.js +14 -0
  91. data/spec/dummy/node_modules/jquery/src/core/support.js +20 -0
  92. data/spec/dummy/node_modules/jquery/src/core/var/rsingleTag.js +6 -0
  93. data/spec/dummy/node_modules/jquery/src/core.js +476 -0
  94. data/spec/dummy/node_modules/jquery/src/css/addGetHookIf.js +26 -0
  95. data/spec/dummy/node_modules/jquery/src/css/adjustCSS.js +71 -0
  96. data/spec/dummy/node_modules/jquery/src/css/curCSS.js +65 -0
  97. data/spec/dummy/node_modules/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  98. data/spec/dummy/node_modules/jquery/src/css/showHide.js +105 -0
  99. data/spec/dummy/node_modules/jquery/src/css/support.js +89 -0
  100. data/spec/dummy/node_modules/jquery/src/css/var/cssExpand.js +5 -0
  101. data/spec/dummy/node_modules/jquery/src/css/var/getStyles.js +17 -0
  102. data/spec/dummy/node_modules/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  103. data/spec/dummy/node_modules/jquery/src/css/var/rmargin.js +5 -0
  104. data/spec/dummy/node_modules/jquery/src/css/var/rnumnonpx.js +7 -0
  105. data/spec/dummy/node_modules/jquery/src/css/var/swap.js +26 -0
  106. data/spec/dummy/node_modules/jquery/src/css.js +438 -0
  107. data/spec/dummy/node_modules/jquery/src/data/Data.js +161 -0
  108. data/spec/dummy/node_modules/jquery/src/data/var/acceptData.js +19 -0
  109. data/spec/dummy/node_modules/jquery/src/data/var/dataPriv.js +7 -0
  110. data/spec/dummy/node_modules/jquery/src/data/var/dataUser.js +7 -0
  111. data/spec/dummy/node_modules/jquery/src/data.js +179 -0
  112. data/spec/dummy/node_modules/jquery/src/deferred/exceptionHook.js +21 -0
  113. data/spec/dummy/node_modules/jquery/src/deferred.js +391 -0
  114. data/spec/dummy/node_modules/jquery/src/deprecated.js +40 -0
  115. data/spec/dummy/node_modules/jquery/src/dimensions.js +56 -0
  116. data/spec/dummy/node_modules/jquery/src/effects/Tween.js +123 -0
  117. data/spec/dummy/node_modules/jquery/src/effects/animatedSelector.js +15 -0
  118. data/spec/dummy/node_modules/jquery/src/effects.js +699 -0
  119. data/spec/dummy/node_modules/jquery/src/event/ajax.js +22 -0
  120. data/spec/dummy/node_modules/jquery/src/event/alias.js +29 -0
  121. data/spec/dummy/node_modules/jquery/src/event/focusin.js +55 -0
  122. data/spec/dummy/node_modules/jquery/src/event/support.js +11 -0
  123. data/spec/dummy/node_modules/jquery/src/event/trigger.js +185 -0
  124. data/spec/dummy/node_modules/jquery/src/event.js +746 -0
  125. data/spec/dummy/node_modules/jquery/src/exports/amd.js +26 -0
  126. data/spec/dummy/node_modules/jquery/src/exports/global.js +34 -0
  127. data/spec/dummy/node_modules/jquery/src/jquery.js +41 -0
  128. data/spec/dummy/node_modules/jquery/src/manipulation/_evalUrl.js +23 -0
  129. data/spec/dummy/node_modules/jquery/src/manipulation/buildFragment.js +104 -0
  130. data/spec/dummy/node_modules/jquery/src/manipulation/getAll.js +32 -0
  131. data/spec/dummy/node_modules/jquery/src/manipulation/setGlobalEval.js +22 -0
  132. data/spec/dummy/node_modules/jquery/src/manipulation/support.js +35 -0
  133. data/spec/dummy/node_modules/jquery/src/manipulation/var/rcheckableType.js +5 -0
  134. data/spec/dummy/node_modules/jquery/src/manipulation/var/rscriptType.js +5 -0
  135. data/spec/dummy/node_modules/jquery/src/manipulation/var/rtagName.js +5 -0
  136. data/spec/dummy/node_modules/jquery/src/manipulation/wrapMap.js +29 -0
  137. data/spec/dummy/node_modules/jquery/src/manipulation.js +488 -0
  138. data/spec/dummy/node_modules/jquery/src/offset.js +229 -0
  139. data/spec/dummy/node_modules/jquery/src/queue/delay.js +24 -0
  140. data/spec/dummy/node_modules/jquery/src/queue.js +145 -0
  141. data/spec/dummy/node_modules/jquery/src/selector-native.js +237 -0
  142. data/spec/dummy/node_modules/jquery/src/selector-sizzle.js +19 -0
  143. data/spec/dummy/node_modules/jquery/src/selector.js +3 -0
  144. data/spec/dummy/node_modules/jquery/src/serialize.js +130 -0
  145. data/spec/dummy/node_modules/jquery/src/traversing/findFilter.js +106 -0
  146. data/spec/dummy/node_modules/jquery/src/traversing/var/dir.js +22 -0
  147. data/spec/dummy/node_modules/jquery/src/traversing/var/rneedsContext.js +8 -0
  148. data/spec/dummy/node_modules/jquery/src/traversing/var/siblings.js +17 -0
  149. data/spec/dummy/node_modules/jquery/src/traversing.js +191 -0
  150. data/spec/dummy/node_modules/jquery/src/var/ObjectFunctionString.js +7 -0
  151. data/spec/dummy/node_modules/jquery/src/var/arr.js +5 -0
  152. data/spec/dummy/node_modules/jquery/src/var/class2type.js +6 -0
  153. data/spec/dummy/node_modules/jquery/src/var/concat.js +7 -0
  154. data/spec/dummy/node_modules/jquery/src/var/document.js +5 -0
  155. data/spec/dummy/node_modules/jquery/src/var/documentElement.js +7 -0
  156. data/spec/dummy/node_modules/jquery/src/var/fnToString.js +7 -0
  157. data/spec/dummy/node_modules/jquery/src/var/getProto.js +5 -0
  158. data/spec/dummy/node_modules/jquery/src/var/hasOwn.js +7 -0
  159. data/spec/dummy/node_modules/jquery/src/var/indexOf.js +7 -0
  160. data/spec/dummy/node_modules/jquery/src/var/pnum.js +5 -0
  161. data/spec/dummy/node_modules/jquery/src/var/push.js +7 -0
  162. data/spec/dummy/node_modules/jquery/src/var/rcssNum.js +9 -0
  163. data/spec/dummy/node_modules/jquery/src/var/rnothtmlwhite.js +8 -0
  164. data/spec/dummy/node_modules/jquery/src/var/slice.js +7 -0
  165. data/spec/dummy/node_modules/jquery/src/var/support.js +6 -0
  166. data/spec/dummy/node_modules/jquery/src/var/toString.js +7 -0
  167. data/spec/dummy/node_modules/jquery/src/wrap.js +77 -0
  168. data/spec/dummy/node_modules/jquery-ui-bundle/AUTHORS.txt +333 -0
  169. data/spec/dummy/node_modules/jquery-ui-bundle/LICENSE.txt +43 -0
  170. data/spec/dummy/node_modules/jquery-ui-bundle/external/jquery/jquery.js +11008 -0
  171. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_444444_256x240.png +0 -0
  172. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_555555_256x240.png +0 -0
  173. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777620_256x240.png +0 -0
  174. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_777777_256x240.png +0 -0
  175. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_cc0000_256x240.png +0 -0
  176. data/spec/dummy/node_modules/jquery-ui-bundle/images/ui-icons_ffffff_256x240.png +0 -0
  177. data/spec/dummy/node_modules/jquery-ui-bundle/index.html +559 -0
  178. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.css +1312 -0
  179. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.js +18706 -0
  180. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.css +7 -0
  181. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.min.js +13 -0
  182. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.css +886 -0
  183. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.structure.min.css +5 -0
  184. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.css +443 -0
  185. data/spec/dummy/node_modules/jquery-ui-bundle/jquery-ui.theme.min.css +5 -0
  186. data/spec/dummy/node_modules/jquery-ui-bundle/package.json +33 -0
  187. data/spec/dummy/node_modules/jquery-ujs/CONTRIBUTING.md +109 -0
  188. data/spec/dummy/node_modules/jquery-ujs/MIT-LICENSE +20 -0
  189. data/spec/dummy/node_modules/jquery-ujs/README.md +86 -0
  190. data/spec/dummy/node_modules/jquery-ujs/RELEASE.md +23 -0
  191. data/spec/dummy/node_modules/jquery-ujs/bower.json +19 -0
  192. data/spec/dummy/node_modules/jquery-ujs/package.json +26 -0
  193. data/spec/dummy/node_modules/jquery-ujs/src/rails.js +555 -0
  194. data/spec/dummy/tmp/cache/747/A70/TrustyCms%3A%3AConfig +0 -0
  195. data/spec/dummy/tmp/cache/85C/FA0/TrustyCms.cache_mtime +0 -0
  196. data/vendor/extensions/multi-site-extension/lib/multi_site/admin_ui.rb +45 -0
  197. data/vendor/extensions/multi-site-extension/lib/multi_site/application_controller_extensions.rb +40 -0
  198. data/vendor/extensions/multi-site-extension/lib/multi_site/application_controller_filter_extensions.rb +22 -0
  199. data/vendor/extensions/multi-site-extension/lib/multi_site/engine.rb +10 -0
  200. data/vendor/extensions/multi-site-extension/lib/multi_site/page_extensions.rb +81 -0
  201. data/vendor/extensions/multi-site-extension/lib/multi_site/pages_controller_extensions.rb +55 -0
  202. data/vendor/extensions/multi-site-extension/lib/multi_site/resource_controller_extensions.rb +42 -0
  203. data/vendor/extensions/multi-site-extension/lib/multi_site/route_extensions.rb +22 -0
  204. data/vendor/extensions/multi-site-extension/lib/multi_site/route_set_extensions.rb +17 -0
  205. data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_model.rb +133 -0
  206. data/vendor/extensions/multi-site-extension/lib/multi_site/scoped_validation.rb +33 -0
  207. data/vendor/extensions/multi-site-extension/lib/multi_site/site_chooser_helper.rb +14 -0
  208. data/vendor/extensions/multi-site-extension/lib/multi_site/site_controller_extensions.rb +30 -0
  209. data/vendor/extensions/multi-site-extension/lib/tasks/multi_site_extension_tasks.rake +28 -0
  210. data/vendor/extensions/multi-site-extension/lib/tasks/scoped_admin_extension_tasks.rake +28 -0
  211. data/vendor/extensions/multi-site-extension/lib/trusty-multi-site-extension.rb +1 -0
  212. data/vendor/extensions/multi-site-extension/multi_site_extension.rb +61 -0
  213. data/vendor/extensions/snippets-extension/lib/trusty-snippets-extension.rb +0 -0
  214. data/vendor/extensions/snippets-extension/snippets_extension.rb +46 -0
  215. metadata +347 -8
@@ -0,0 +1,438 @@
1
+ define( [
2
+ "./core",
3
+ "./var/pnum",
4
+ "./core/access",
5
+ "./css/var/rmargin",
6
+ "./var/document",
7
+ "./var/rcssNum",
8
+ "./css/var/rnumnonpx",
9
+ "./css/var/cssExpand",
10
+ "./css/var/getStyles",
11
+ "./css/var/swap",
12
+ "./css/curCSS",
13
+ "./css/adjustCSS",
14
+ "./css/addGetHookIf",
15
+ "./css/support",
16
+
17
+ "./core/init",
18
+ "./core/ready",
19
+ "./selector" // contains
20
+ ], function( jQuery, pnum, access, rmargin, document, rcssNum, rnumnonpx, cssExpand,
21
+ getStyles, swap, curCSS, adjustCSS, addGetHookIf, support ) {
22
+
23
+ "use strict";
24
+
25
+ var
26
+
27
+ // Swappable if display is none or starts with table
28
+ // except "table", "table-cell", or "table-caption"
29
+ // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display
30
+ rdisplayswap = /^(none|table(?!-c[ea]).+)/,
31
+ rcustomProp = /^--/,
32
+ cssShow = { position: "absolute", visibility: "hidden", display: "block" },
33
+ cssNormalTransform = {
34
+ letterSpacing: "0",
35
+ fontWeight: "400"
36
+ },
37
+
38
+ cssPrefixes = [ "Webkit", "Moz", "ms" ],
39
+ emptyStyle = document.createElement( "div" ).style;
40
+
41
+ // Return a css property mapped to a potentially vendor prefixed property
42
+ function vendorPropName( name ) {
43
+
44
+ // Shortcut for names that are not vendor prefixed
45
+ if ( name in emptyStyle ) {
46
+ return name;
47
+ }
48
+
49
+ // Check for vendor prefixed names
50
+ var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
51
+ i = cssPrefixes.length;
52
+
53
+ while ( i-- ) {
54
+ name = cssPrefixes[ i ] + capName;
55
+ if ( name in emptyStyle ) {
56
+ return name;
57
+ }
58
+ }
59
+ }
60
+
61
+ // Return a property mapped along what jQuery.cssProps suggests or to
62
+ // a vendor prefixed property.
63
+ function finalPropName( name ) {
64
+ var ret = jQuery.cssProps[ name ];
65
+ if ( !ret ) {
66
+ ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;
67
+ }
68
+ return ret;
69
+ }
70
+
71
+ function setPositiveNumber( elem, value, subtract ) {
72
+
73
+ // Any relative (+/-) values have already been
74
+ // normalized at this point
75
+ var matches = rcssNum.exec( value );
76
+ return matches ?
77
+
78
+ // Guard against undefined "subtract", e.g., when used as in cssHooks
79
+ Math.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || "px" ) :
80
+ value;
81
+ }
82
+
83
+ function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
84
+ var i,
85
+ val = 0;
86
+
87
+ // If we already have the right measurement, avoid augmentation
88
+ if ( extra === ( isBorderBox ? "border" : "content" ) ) {
89
+ i = 4;
90
+
91
+ // Otherwise initialize for horizontal or vertical properties
92
+ } else {
93
+ i = name === "width" ? 1 : 0;
94
+ }
95
+
96
+ for ( ; i < 4; i += 2 ) {
97
+
98
+ // Both box models exclude margin, so add it if we want it
99
+ if ( extra === "margin" ) {
100
+ val += jQuery.css( elem, extra + cssExpand[ i ], true, styles );
101
+ }
102
+
103
+ if ( isBorderBox ) {
104
+
105
+ // border-box includes padding, so remove it if we want content
106
+ if ( extra === "content" ) {
107
+ val -= jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
108
+ }
109
+
110
+ // At this point, extra isn't border nor margin, so remove border
111
+ if ( extra !== "margin" ) {
112
+ val -= jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
113
+ }
114
+ } else {
115
+
116
+ // At this point, extra isn't content, so add padding
117
+ val += jQuery.css( elem, "padding" + cssExpand[ i ], true, styles );
118
+
119
+ // At this point, extra isn't content nor padding, so add border
120
+ if ( extra !== "padding" ) {
121
+ val += jQuery.css( elem, "border" + cssExpand[ i ] + "Width", true, styles );
122
+ }
123
+ }
124
+ }
125
+
126
+ return val;
127
+ }
128
+
129
+ function getWidthOrHeight( elem, name, extra ) {
130
+
131
+ // Start with computed style
132
+ var valueIsBorderBox,
133
+ styles = getStyles( elem ),
134
+ val = curCSS( elem, name, styles ),
135
+ isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box";
136
+
137
+ // Computed unit is not pixels. Stop here and return.
138
+ if ( rnumnonpx.test( val ) ) {
139
+ return val;
140
+ }
141
+
142
+ // Check for style in case a browser which returns unreliable values
143
+ // for getComputedStyle silently falls back to the reliable elem.style
144
+ valueIsBorderBox = isBorderBox &&
145
+ ( support.boxSizingReliable() || val === elem.style[ name ] );
146
+
147
+ // Fall back to offsetWidth/Height when value is "auto"
148
+ // This happens for inline elements with no explicit setting (gh-3571)
149
+ if ( val === "auto" ) {
150
+ val = elem[ "offset" + name[ 0 ].toUpperCase() + name.slice( 1 ) ];
151
+ }
152
+
153
+ // Normalize "", auto, and prepare for extra
154
+ val = parseFloat( val ) || 0;
155
+
156
+ // Use the active box-sizing model to add/subtract irrelevant styles
157
+ return ( val +
158
+ augmentWidthOrHeight(
159
+ elem,
160
+ name,
161
+ extra || ( isBorderBox ? "border" : "content" ),
162
+ valueIsBorderBox,
163
+ styles
164
+ )
165
+ ) + "px";
166
+ }
167
+
168
+ jQuery.extend( {
169
+
170
+ // Add in style property hooks for overriding the default
171
+ // behavior of getting and setting a style property
172
+ cssHooks: {
173
+ opacity: {
174
+ get: function( elem, computed ) {
175
+ if ( computed ) {
176
+
177
+ // We should always get a number back from opacity
178
+ var ret = curCSS( elem, "opacity" );
179
+ return ret === "" ? "1" : ret;
180
+ }
181
+ }
182
+ }
183
+ },
184
+
185
+ // Don't automatically add "px" to these possibly-unitless properties
186
+ cssNumber: {
187
+ "animationIterationCount": true,
188
+ "columnCount": true,
189
+ "fillOpacity": true,
190
+ "flexGrow": true,
191
+ "flexShrink": true,
192
+ "fontWeight": true,
193
+ "lineHeight": true,
194
+ "opacity": true,
195
+ "order": true,
196
+ "orphans": true,
197
+ "widows": true,
198
+ "zIndex": true,
199
+ "zoom": true
200
+ },
201
+
202
+ // Add in properties whose names you wish to fix before
203
+ // setting or getting the value
204
+ cssProps: {
205
+ "float": "cssFloat"
206
+ },
207
+
208
+ // Get and set the style property on a DOM Node
209
+ style: function( elem, name, value, extra ) {
210
+
211
+ // Don't set styles on text and comment nodes
212
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {
213
+ return;
214
+ }
215
+
216
+ // Make sure that we're working with the right name
217
+ var ret, type, hooks,
218
+ origName = jQuery.camelCase( name ),
219
+ isCustomProp = rcustomProp.test( name ),
220
+ style = elem.style;
221
+
222
+ // Make sure that we're working with the right name. We don't
223
+ // want to query the value if it is a CSS custom property
224
+ // since they are user-defined.
225
+ if ( !isCustomProp ) {
226
+ name = finalPropName( origName );
227
+ }
228
+
229
+ // Gets hook for the prefixed version, then unprefixed version
230
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
231
+
232
+ // Check if we're setting a value
233
+ if ( value !== undefined ) {
234
+ type = typeof value;
235
+
236
+ // Convert "+=" or "-=" to relative numbers (#7345)
237
+ if ( type === "string" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {
238
+ value = adjustCSS( elem, name, ret );
239
+
240
+ // Fixes bug #9237
241
+ type = "number";
242
+ }
243
+
244
+ // Make sure that null and NaN values aren't set (#7116)
245
+ if ( value == null || value !== value ) {
246
+ return;
247
+ }
248
+
249
+ // If a number was passed in, add the unit (except for certain CSS properties)
250
+ if ( type === "number" ) {
251
+ value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" );
252
+ }
253
+
254
+ // background-* props affect original clone's values
255
+ if ( !support.clearCloneStyle && value === "" && name.indexOf( "background" ) === 0 ) {
256
+ style[ name ] = "inherit";
257
+ }
258
+
259
+ // If a hook was provided, use that value, otherwise just set the specified value
260
+ if ( !hooks || !( "set" in hooks ) ||
261
+ ( value = hooks.set( elem, value, extra ) ) !== undefined ) {
262
+
263
+ if ( isCustomProp ) {
264
+ style.setProperty( name, value );
265
+ } else {
266
+ style[ name ] = value;
267
+ }
268
+ }
269
+
270
+ } else {
271
+
272
+ // If a hook was provided get the non-computed value from there
273
+ if ( hooks && "get" in hooks &&
274
+ ( ret = hooks.get( elem, false, extra ) ) !== undefined ) {
275
+
276
+ return ret;
277
+ }
278
+
279
+ // Otherwise just get the value from the style object
280
+ return style[ name ];
281
+ }
282
+ },
283
+
284
+ css: function( elem, name, extra, styles ) {
285
+ var val, num, hooks,
286
+ origName = jQuery.camelCase( name ),
287
+ isCustomProp = rcustomProp.test( name );
288
+
289
+ // Make sure that we're working with the right name. We don't
290
+ // want to modify the value if it is a CSS custom property
291
+ // since they are user-defined.
292
+ if ( !isCustomProp ) {
293
+ name = finalPropName( origName );
294
+ }
295
+
296
+ // Try prefixed name followed by the unprefixed name
297
+ hooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];
298
+
299
+ // If a hook was provided get the computed value from there
300
+ if ( hooks && "get" in hooks ) {
301
+ val = hooks.get( elem, true, extra );
302
+ }
303
+
304
+ // Otherwise, if a way to get the computed value exists, use that
305
+ if ( val === undefined ) {
306
+ val = curCSS( elem, name, styles );
307
+ }
308
+
309
+ // Convert "normal" to computed value
310
+ if ( val === "normal" && name in cssNormalTransform ) {
311
+ val = cssNormalTransform[ name ];
312
+ }
313
+
314
+ // Make numeric if forced or a qualifier was provided and val looks numeric
315
+ if ( extra === "" || extra ) {
316
+ num = parseFloat( val );
317
+ return extra === true || isFinite( num ) ? num || 0 : val;
318
+ }
319
+
320
+ return val;
321
+ }
322
+ } );
323
+
324
+ jQuery.each( [ "height", "width" ], function( i, name ) {
325
+ jQuery.cssHooks[ name ] = {
326
+ get: function( elem, computed, extra ) {
327
+ if ( computed ) {
328
+
329
+ // Certain elements can have dimension info if we invisibly show them
330
+ // but it must have a current display style that would benefit
331
+ return rdisplayswap.test( jQuery.css( elem, "display" ) ) &&
332
+
333
+ // Support: Safari 8+
334
+ // Table columns in Safari have non-zero offsetWidth & zero
335
+ // getBoundingClientRect().width unless display is changed.
336
+ // Support: IE <=11 only
337
+ // Running getBoundingClientRect on a disconnected node
338
+ // in IE throws an error.
339
+ ( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?
340
+ swap( elem, cssShow, function() {
341
+ return getWidthOrHeight( elem, name, extra );
342
+ } ) :
343
+ getWidthOrHeight( elem, name, extra );
344
+ }
345
+ },
346
+
347
+ set: function( elem, value, extra ) {
348
+ var matches,
349
+ styles = extra && getStyles( elem ),
350
+ subtract = extra && augmentWidthOrHeight(
351
+ elem,
352
+ name,
353
+ extra,
354
+ jQuery.css( elem, "boxSizing", false, styles ) === "border-box",
355
+ styles
356
+ );
357
+
358
+ // Convert to pixels if value adjustment is needed
359
+ if ( subtract && ( matches = rcssNum.exec( value ) ) &&
360
+ ( matches[ 3 ] || "px" ) !== "px" ) {
361
+
362
+ elem.style[ name ] = value;
363
+ value = jQuery.css( elem, name );
364
+ }
365
+
366
+ return setPositiveNumber( elem, value, subtract );
367
+ }
368
+ };
369
+ } );
370
+
371
+ jQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,
372
+ function( elem, computed ) {
373
+ if ( computed ) {
374
+ return ( parseFloat( curCSS( elem, "marginLeft" ) ) ||
375
+ elem.getBoundingClientRect().left -
376
+ swap( elem, { marginLeft: 0 }, function() {
377
+ return elem.getBoundingClientRect().left;
378
+ } )
379
+ ) + "px";
380
+ }
381
+ }
382
+ );
383
+
384
+ // These hooks are used by animate to expand properties
385
+ jQuery.each( {
386
+ margin: "",
387
+ padding: "",
388
+ border: "Width"
389
+ }, function( prefix, suffix ) {
390
+ jQuery.cssHooks[ prefix + suffix ] = {
391
+ expand: function( value ) {
392
+ var i = 0,
393
+ expanded = {},
394
+
395
+ // Assumes a single number if not a string
396
+ parts = typeof value === "string" ? value.split( " " ) : [ value ];
397
+
398
+ for ( ; i < 4; i++ ) {
399
+ expanded[ prefix + cssExpand[ i ] + suffix ] =
400
+ parts[ i ] || parts[ i - 2 ] || parts[ 0 ];
401
+ }
402
+
403
+ return expanded;
404
+ }
405
+ };
406
+
407
+ if ( !rmargin.test( prefix ) ) {
408
+ jQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;
409
+ }
410
+ } );
411
+
412
+ jQuery.fn.extend( {
413
+ css: function( name, value ) {
414
+ return access( this, function( elem, name, value ) {
415
+ var styles, len,
416
+ map = {},
417
+ i = 0;
418
+
419
+ if ( Array.isArray( name ) ) {
420
+ styles = getStyles( elem );
421
+ len = name.length;
422
+
423
+ for ( ; i < len; i++ ) {
424
+ map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
425
+ }
426
+
427
+ return map;
428
+ }
429
+
430
+ return value !== undefined ?
431
+ jQuery.style( elem, name, value ) :
432
+ jQuery.css( elem, name );
433
+ }, name, value, arguments.length > 1 );
434
+ }
435
+ } );
436
+
437
+ return jQuery;
438
+ } );
@@ -0,0 +1,161 @@
1
+ define( [
2
+ "../core",
3
+ "../var/rnothtmlwhite",
4
+ "./var/acceptData"
5
+ ], function( jQuery, rnothtmlwhite, acceptData ) {
6
+
7
+ "use strict";
8
+
9
+ function Data() {
10
+ this.expando = jQuery.expando + Data.uid++;
11
+ }
12
+
13
+ Data.uid = 1;
14
+
15
+ Data.prototype = {
16
+
17
+ cache: function( owner ) {
18
+
19
+ // Check if the owner object already has a cache
20
+ var value = owner[ this.expando ];
21
+
22
+ // If not, create one
23
+ if ( !value ) {
24
+ value = {};
25
+
26
+ // We can accept data for non-element nodes in modern browsers,
27
+ // but we should not, see #8335.
28
+ // Always return an empty object.
29
+ if ( acceptData( owner ) ) {
30
+
31
+ // If it is a node unlikely to be stringify-ed or looped over
32
+ // use plain assignment
33
+ if ( owner.nodeType ) {
34
+ owner[ this.expando ] = value;
35
+
36
+ // Otherwise secure it in a non-enumerable property
37
+ // configurable must be true to allow the property to be
38
+ // deleted when data is removed
39
+ } else {
40
+ Object.defineProperty( owner, this.expando, {
41
+ value: value,
42
+ configurable: true
43
+ } );
44
+ }
45
+ }
46
+ }
47
+
48
+ return value;
49
+ },
50
+ set: function( owner, data, value ) {
51
+ var prop,
52
+ cache = this.cache( owner );
53
+
54
+ // Handle: [ owner, key, value ] args
55
+ // Always use camelCase key (gh-2257)
56
+ if ( typeof data === "string" ) {
57
+ cache[ jQuery.camelCase( data ) ] = value;
58
+
59
+ // Handle: [ owner, { properties } ] args
60
+ } else {
61
+
62
+ // Copy the properties one-by-one to the cache object
63
+ for ( prop in data ) {
64
+ cache[ jQuery.camelCase( prop ) ] = data[ prop ];
65
+ }
66
+ }
67
+ return cache;
68
+ },
69
+ get: function( owner, key ) {
70
+ return key === undefined ?
71
+ this.cache( owner ) :
72
+
73
+ // Always use camelCase key (gh-2257)
74
+ owner[ this.expando ] && owner[ this.expando ][ jQuery.camelCase( key ) ];
75
+ },
76
+ access: function( owner, key, value ) {
77
+
78
+ // In cases where either:
79
+ //
80
+ // 1. No key was specified
81
+ // 2. A string key was specified, but no value provided
82
+ //
83
+ // Take the "read" path and allow the get method to determine
84
+ // which value to return, respectively either:
85
+ //
86
+ // 1. The entire cache object
87
+ // 2. The data stored at the key
88
+ //
89
+ if ( key === undefined ||
90
+ ( ( key && typeof key === "string" ) && value === undefined ) ) {
91
+
92
+ return this.get( owner, key );
93
+ }
94
+
95
+ // When the key is not a string, or both a key and value
96
+ // are specified, set or extend (existing objects) with either:
97
+ //
98
+ // 1. An object of properties
99
+ // 2. A key and value
100
+ //
101
+ this.set( owner, key, value );
102
+
103
+ // Since the "set" path can have two possible entry points
104
+ // return the expected data based on which path was taken[*]
105
+ return value !== undefined ? value : key;
106
+ },
107
+ remove: function( owner, key ) {
108
+ var i,
109
+ cache = owner[ this.expando ];
110
+
111
+ if ( cache === undefined ) {
112
+ return;
113
+ }
114
+
115
+ if ( key !== undefined ) {
116
+
117
+ // Support array or space separated string of keys
118
+ if ( Array.isArray( key ) ) {
119
+
120
+ // If key is an array of keys...
121
+ // We always set camelCase keys, so remove that.
122
+ key = key.map( jQuery.camelCase );
123
+ } else {
124
+ key = jQuery.camelCase( key );
125
+
126
+ // If a key with the spaces exists, use it.
127
+ // Otherwise, create an array by matching non-whitespace
128
+ key = key in cache ?
129
+ [ key ] :
130
+ ( key.match( rnothtmlwhite ) || [] );
131
+ }
132
+
133
+ i = key.length;
134
+
135
+ while ( i-- ) {
136
+ delete cache[ key[ i ] ];
137
+ }
138
+ }
139
+
140
+ // Remove the expando if there's no more data
141
+ if ( key === undefined || jQuery.isEmptyObject( cache ) ) {
142
+
143
+ // Support: Chrome <=35 - 45
144
+ // Webkit & Blink performance suffers when deleting properties
145
+ // from DOM nodes, so set to undefined instead
146
+ // https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)
147
+ if ( owner.nodeType ) {
148
+ owner[ this.expando ] = undefined;
149
+ } else {
150
+ delete owner[ this.expando ];
151
+ }
152
+ }
153
+ },
154
+ hasData: function( owner ) {
155
+ var cache = owner[ this.expando ];
156
+ return cache !== undefined && !jQuery.isEmptyObject( cache );
157
+ }
158
+ };
159
+
160
+ return Data;
161
+ } );
@@ -0,0 +1,19 @@
1
+ define( function() {
2
+
3
+ "use strict";
4
+
5
+ /**
6
+ * Determines whether an object can have data
7
+ */
8
+ return function( owner ) {
9
+
10
+ // Accepts only:
11
+ // - Node
12
+ // - Node.ELEMENT_NODE
13
+ // - Node.DOCUMENT_NODE
14
+ // - Object
15
+ // - Any
16
+ return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );
17
+ };
18
+
19
+ } );
@@ -0,0 +1,7 @@
1
+ define( [
2
+ "../Data"
3
+ ], function( Data ) {
4
+ "use strict";
5
+
6
+ return new Data();
7
+ } );
@@ -0,0 +1,7 @@
1
+ define( [
2
+ "../Data"
3
+ ], function( Data ) {
4
+ "use strict";
5
+
6
+ return new Data();
7
+ } );