activeadmin 3.2.0 → 4.0.0.beta2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (339) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -22
  3. data/CONTRIBUTING.md +28 -109
  4. data/README.md +17 -30
  5. data/app/assets/config/active_admin_manifest.js +2 -0
  6. data/app/controllers/active_admin/base_controller/menu.rb +39 -0
  7. data/{lib → app/controllers}/active_admin/base_controller.rb +46 -18
  8. data/{lib → app/controllers}/active_admin/page_controller.rb +0 -4
  9. data/{lib → app/controllers}/active_admin/resource_controller/action_builder.rb +1 -1
  10. data/{lib → app/controllers}/active_admin/resource_controller/data_access.rb +2 -2
  11. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
  13. data/app/controllers/active_admin/resource_controller.rb +102 -0
  14. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  15. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  16. data/app/helpers/active_admin/display_helper.rb +117 -0
  17. data/app/helpers/active_admin/form_helper.rb +95 -0
  18. data/app/helpers/active_admin/index_helper.rb +40 -0
  19. data/app/helpers/active_admin/layout_helper.rb +63 -0
  20. data/app/javascript/active_admin/features/batch_actions.js +89 -0
  21. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  22. data/app/javascript/active_admin/features/filters.js +34 -0
  23. data/app/javascript/active_admin/features/has_many.js +28 -0
  24. data/app/javascript/active_admin/features/main_menu.js +12 -0
  25. data/app/javascript/active_admin/features/per_page.js +9 -0
  26. data/app/javascript/active_admin/utils/dom.js +17 -0
  27. data/app/javascript/active_admin.js +10 -0
  28. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  29. data/app/views/active_admin/_html_head.html.erb +13 -0
  30. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  31. data/app/views/active_admin/_page_header.html.erb +27 -0
  32. data/app/views/active_admin/_sidebar.html.erb +5 -0
  33. data/app/views/active_admin/_site_footer.html.erb +7 -0
  34. data/app/views/active_admin/_site_header.html.erb +30 -0
  35. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  36. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  37. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  38. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  39. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  40. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  41. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  42. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  43. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  44. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  45. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  46. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  47. data/app/views/active_admin/page/index.html.arb +5 -1
  48. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  49. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  50. data/app/views/active_admin/resource/_form.html.arb +16 -0
  51. data/app/views/active_admin/resource/_form_default.html.arb +12 -0
  52. data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
  53. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  54. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  55. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  56. data/app/views/active_admin/resource/_show_default.html.arb +3 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -1
  58. data/app/views/active_admin/resource/index.html.arb +94 -1
  59. data/app/views/active_admin/resource/new.html.arb +1 -1
  60. data/app/views/active_admin/resource/show.html.arb +12 -1
  61. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  62. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  63. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  64. data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
  65. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  66. data/app/views/layouts/active_admin.html.erb +20 -0
  67. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  68. data/config/locales/ar.yml +0 -16
  69. data/config/locales/az.yml +0 -16
  70. data/config/locales/bg.yml +0 -9
  71. data/config/locales/bs.yml +0 -7
  72. data/config/locales/ca.yml +0 -9
  73. data/config/locales/cs.yml +0 -9
  74. data/config/locales/da.yml +0 -16
  75. data/config/locales/de-CH.yml +0 -10
  76. data/config/locales/de.yml +0 -16
  77. data/config/locales/el.yml +0 -13
  78. data/config/locales/en-CA.yml +0 -16
  79. data/config/locales/en-GB.yml +0 -16
  80. data/config/locales/en.yml +18 -28
  81. data/config/locales/eo.yml +0 -17
  82. data/config/locales/es-MX.yml +0 -9
  83. data/config/locales/es.yml +0 -16
  84. data/config/locales/fa.yml +0 -9
  85. data/config/locales/fi.yml +0 -9
  86. data/config/locales/fr.yml +32 -26
  87. data/config/locales/he.yml +0 -16
  88. data/config/locales/hr.yml +0 -9
  89. data/config/locales/hu.yml +0 -6
  90. data/config/locales/id.yml +0 -16
  91. data/config/locales/it.yml +0 -16
  92. data/config/locales/ja.yml +0 -16
  93. data/config/locales/ko.yml +0 -9
  94. data/config/locales/lt.yml +0 -16
  95. data/config/locales/lv.yml +0 -6
  96. data/config/locales/mk.yml +0 -15
  97. data/config/locales/nb.yml +0 -12
  98. data/config/locales/nl.yml +21 -29
  99. data/config/locales/pl.yml +0 -16
  100. data/config/locales/pt-BR.yml +0 -16
  101. data/config/locales/pt-PT.yml +0 -6
  102. data/config/locales/ro.yml +0 -6
  103. data/config/locales/ru.yml +0 -16
  104. data/config/locales/sk.yml +0 -16
  105. data/config/locales/sv-SE.yml +0 -16
  106. data/config/locales/tr.yml +0 -16
  107. data/config/locales/uk.yml +0 -16
  108. data/config/locales/vi.yml +0 -16
  109. data/config/locales/zh-CN.yml +0 -16
  110. data/config/locales/zh-TW.yml +0 -16
  111. data/lib/active_admin/application.rb +1 -9
  112. data/lib/active_admin/batch_actions/controller.rb +1 -4
  113. data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
  114. data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
  115. data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
  116. data/lib/active_admin/batch_actions.rb +0 -5
  117. data/lib/active_admin/callbacks.rb +6 -4
  118. data/lib/active_admin/component.rb +0 -1
  119. data/lib/active_admin/csv_builder.rb +1 -1
  120. data/lib/active_admin/devise.rb +3 -3
  121. data/lib/active_admin/dsl.rb +2 -2
  122. data/lib/active_admin/dynamic_settings_node.rb +4 -4
  123. data/lib/active_admin/engine.rb +19 -6
  124. data/lib/active_admin/filters/active.rb +6 -4
  125. data/lib/active_admin/filters/active_filter.rb +1 -3
  126. data/lib/active_admin/filters/forms.rb +1 -42
  127. data/lib/active_admin/filters/resource_extension.rb +17 -9
  128. data/lib/active_admin/filters.rb +0 -2
  129. data/lib/active_admin/form_builder.rb +15 -14
  130. data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
  131. data/lib/active_admin/inputs/filters/base.rb +1 -1
  132. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  133. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  134. data/lib/active_admin/inputs.rb +0 -3
  135. data/lib/active_admin/menu.rb +10 -7
  136. data/lib/active_admin/menu_collection.rb +1 -1
  137. data/lib/active_admin/menu_item.rb +24 -3
  138. data/lib/active_admin/namespace.rb +2 -44
  139. data/lib/active_admin/namespace_settings.rb +2 -35
  140. data/lib/active_admin/order_clause.rb +4 -1
  141. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
  142. data/lib/active_admin/orm/active_record/comments.rb +10 -5
  143. data/lib/active_admin/resource/action_items.rb +15 -20
  144. data/lib/active_admin/resource/naming.rb +1 -2
  145. data/lib/active_admin/resource.rb +1 -0
  146. data/lib/active_admin/resource_dsl.rb +1 -1
  147. data/lib/active_admin/scope.rb +1 -1
  148. data/lib/active_admin/settings_node.rb +1 -1
  149. data/lib/active_admin/sidebar_section.rb +0 -5
  150. data/lib/active_admin/version.rb +1 -1
  151. data/lib/active_admin/view_helpers.rb +0 -12
  152. data/lib/active_admin/views/components/active_admin_form.rb +20 -16
  153. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  154. data/lib/active_admin/views/components/index_list.rb +10 -23
  155. data/lib/active_admin/views/components/paginated_collection.rb +34 -39
  156. data/lib/active_admin/views/components/panel.rb +2 -10
  157. data/lib/active_admin/views/components/scopes.rb +12 -21
  158. data/lib/active_admin/views/components/status_tag.rb +22 -19
  159. data/lib/active_admin/views/components/table_for.rb +19 -24
  160. data/lib/active_admin/views/components/tabs.rb +10 -11
  161. data/lib/active_admin/views/index_as_table.rb +24 -97
  162. data/lib/active_admin.rb +7 -11
  163. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  164. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  165. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  166. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  167. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  168. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  169. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  170. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  171. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  172. data/lib/generators/active_admin/views_generator.rb +18 -0
  173. data/vendor/javascript/flowbite.js +2 -0
  174. metadata +68 -201
  175. data/app/assets/javascripts/active_admin/base.js +0 -521
  176. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  177. data/app/assets/stylesheets/active_admin/_forms.scss +0 -316
  178. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  179. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  180. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  181. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  182. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  183. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  184. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  185. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  186. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  187. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  188. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  189. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  190. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -151
  191. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  192. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  193. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  194. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  195. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  196. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -55
  197. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  198. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  199. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  200. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -67
  201. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  202. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -65
  203. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  204. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  205. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  206. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  207. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  208. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  209. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  210. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  211. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  212. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  213. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  214. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  215. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  216. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -40
  217. data/app/javascript/active_admin/base.js +0 -28
  218. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  219. data/app/javascript/active_admin/ext/jquery.js +0 -9
  220. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  221. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  222. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  223. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  224. data/app/javascript/active_admin/initializers/filters.js +0 -10
  225. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  226. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  227. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  228. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  229. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  230. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  231. data/app/javascript/active_admin/lib/filters.js +0 -39
  232. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  233. data/app/javascript/active_admin/lib/per-page.js +0 -38
  234. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  235. data/app/javascript/active_admin/lib/utils.js +0 -40
  236. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  237. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  238. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  239. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  240. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  241. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  242. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  243. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  244. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  245. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  246. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  247. data/app/views/layouts/active_admin.html.arb +0 -2
  248. data/lib/active_admin/abstract_view_factory.rb +0 -48
  249. data/lib/active_admin/asset_registration.rb +0 -30
  250. data/lib/active_admin/base_controller/menu.rb +0 -35
  251. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  252. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  253. data/lib/active_admin/generators/boilerplate.rb +0 -54
  254. data/lib/active_admin/helpers/collection.rb +0 -21
  255. data/lib/active_admin/helpers/i18n.rb +0 -8
  256. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  257. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  258. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  259. data/lib/active_admin/orm/mongoid.rb +0 -2
  260. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  261. data/lib/active_admin/resource_controller.rb +0 -68
  262. data/lib/active_admin/view_factory.rb +0 -28
  263. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  264. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  265. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  266. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  267. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  268. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  269. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  270. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  271. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  272. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  273. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  274. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  275. data/lib/active_admin/views/action_items.rb +0 -18
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  277. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  278. data/lib/active_admin/views/components/columns.rb +0 -162
  279. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  280. data/lib/active_admin/views/components/menu.rb +0 -33
  281. data/lib/active_admin/views/components/menu_item.rb +0 -59
  282. data/lib/active_admin/views/components/sidebar.rb +0 -14
  283. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  284. data/lib/active_admin/views/components/site_title.rb +0 -55
  285. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  286. data/lib/active_admin/views/footer.rb +0 -32
  287. data/lib/active_admin/views/header.rb +0 -20
  288. data/lib/active_admin/views/index_as_block.rb +0 -37
  289. data/lib/active_admin/views/index_as_blog.rb +0 -156
  290. data/lib/active_admin/views/index_as_grid.rb +0 -81
  291. data/lib/active_admin/views/pages/base.rb +0 -134
  292. data/lib/active_admin/views/pages/form.rb +0 -65
  293. data/lib/active_admin/views/pages/index.rb +0 -166
  294. data/lib/active_admin/views/pages/layout.rb +0 -27
  295. data/lib/active_admin/views/pages/page.rb +0 -31
  296. data/lib/active_admin/views/pages/show.rb +0 -60
  297. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  298. data/lib/active_admin/views/title_bar.rb +0 -56
  299. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  300. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  301. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  302. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  303. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  304. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  305. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  306. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  307. data/vendor/assets/javascripts/jquery-ui/data.js +0 -41
  308. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -48
  309. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +0 -23
  310. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -86
  311. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -80
  312. data/vendor/assets/javascripts/jquery-ui/form.js +0 -22
  313. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -17
  314. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -47
  315. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -65
  316. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -46
  317. data/vendor/assets/javascripts/jquery-ui/position.js +0 -500
  318. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -42
  319. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -23
  320. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -47
  321. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -38
  322. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -51
  323. data/vendor/assets/javascripts/jquery-ui/version.js +0 -17
  324. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -735
  325. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -391
  326. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -291
  327. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -300
  328. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2123
  329. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -954
  330. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1259
  331. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -230
  332. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1207
  333. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1561
  334. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  335. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  336. /data/{lib → app/controllers}/active_admin/resource_controller/decorators.rb +0 -0
  337. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  338. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  339. /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,1207 +0,0 @@
1
- //= require jquery-ui/widgets/mouse
2
- //= require jquery-ui/disable-selection
3
- //= require jquery-ui/plugin
4
- //= require jquery-ui/version
5
- //= require jquery-ui/widget
6
-
7
- /*!
8
- * jQuery UI Resizable 1.12.1
9
- * http://jqueryui.com
10
- *
11
- * Copyright jQuery Foundation and other contributors
12
- * Released under the MIT license.
13
- * http://jquery.org/license
14
- */
15
-
16
- //>>label: Resizable
17
- //>>group: Interactions
18
- //>>description: Enables resize functionality for any element.
19
- //>>docs: http://api.jqueryui.com/resizable/
20
- //>>demos: http://jqueryui.com/resizable/
21
- //>>css.structure: ../../themes/base/core.css
22
- //>>css.structure: ../../themes/base/resizable.css
23
- //>>css.theme: ../../themes/base/theme.css
24
-
25
- ( function( factory ) {
26
- if ( typeof define === "function" && define.amd ) {
27
-
28
- // AMD. Register as an anonymous module.
29
- define( [
30
- "jquery",
31
- "./mouse",
32
- "../disable-selection",
33
- "../plugin",
34
- "../version",
35
- "../widget"
36
- ], factory );
37
- } else {
38
-
39
- // Browser globals
40
- factory( jQuery );
41
- }
42
- }( function( $ ) {
43
-
44
- $.widget( "ui.resizable", $.ui.mouse, {
45
- version: "1.12.1",
46
- widgetEventPrefix: "resize",
47
- options: {
48
- alsoResize: false,
49
- animate: false,
50
- animateDuration: "slow",
51
- animateEasing: "swing",
52
- aspectRatio: false,
53
- autoHide: false,
54
- classes: {
55
- "ui-resizable-se": "ui-icon ui-icon-gripsmall-diagonal-se"
56
- },
57
- containment: false,
58
- ghost: false,
59
- grid: false,
60
- handles: "e,s,se",
61
- helper: false,
62
- maxHeight: null,
63
- maxWidth: null,
64
- minHeight: 10,
65
- minWidth: 10,
66
-
67
- // See #7960
68
- zIndex: 90,
69
-
70
- // Callbacks
71
- resize: null,
72
- start: null,
73
- stop: null
74
- },
75
-
76
- _num: function( value ) {
77
- return parseFloat( value ) || 0;
78
- },
79
-
80
- _isNumber: function( value ) {
81
- return !isNaN( parseFloat( value ) );
82
- },
83
-
84
- _hasScroll: function( el, a ) {
85
-
86
- if ( $( el ).css( "overflow" ) === "hidden" ) {
87
- return false;
88
- }
89
-
90
- var scroll = ( a && a === "left" ) ? "scrollLeft" : "scrollTop",
91
- has = false;
92
-
93
- if ( el[ scroll ] > 0 ) {
94
- return true;
95
- }
96
-
97
- // TODO: determine which cases actually cause this to happen
98
- // if the element doesn't have the scroll set, see if it's possible to
99
- // set the scroll
100
- el[ scroll ] = 1;
101
- has = ( el[ scroll ] > 0 );
102
- el[ scroll ] = 0;
103
- return has;
104
- },
105
-
106
- _create: function() {
107
-
108
- var margins,
109
- o = this.options,
110
- that = this;
111
- this._addClass( "ui-resizable" );
112
-
113
- $.extend( this, {
114
- _aspectRatio: !!( o.aspectRatio ),
115
- aspectRatio: o.aspectRatio,
116
- originalElement: this.element,
117
- _proportionallyResizeElements: [],
118
- _helper: o.helper || o.ghost || o.animate ? o.helper || "ui-resizable-helper" : null
119
- } );
120
-
121
- // Wrap the element if it cannot hold child nodes
122
- if ( this.element[ 0 ].nodeName.match( /^(canvas|textarea|input|select|button|img)$/i ) ) {
123
-
124
- this.element.wrap(
125
- $( "<div class='ui-wrapper' style='overflow: hidden;'></div>" ).css( {
126
- position: this.element.css( "position" ),
127
- width: this.element.outerWidth(),
128
- height: this.element.outerHeight(),
129
- top: this.element.css( "top" ),
130
- left: this.element.css( "left" )
131
- } )
132
- );
133
-
134
- this.element = this.element.parent().data(
135
- "ui-resizable", this.element.resizable( "instance" )
136
- );
137
-
138
- this.elementIsWrapper = true;
139
-
140
- margins = {
141
- marginTop: this.originalElement.css( "marginTop" ),
142
- marginRight: this.originalElement.css( "marginRight" ),
143
- marginBottom: this.originalElement.css( "marginBottom" ),
144
- marginLeft: this.originalElement.css( "marginLeft" )
145
- };
146
-
147
- this.element.css( margins );
148
- this.originalElement.css( "margin", 0 );
149
-
150
- // support: Safari
151
- // Prevent Safari textarea resize
152
- this.originalResizeStyle = this.originalElement.css( "resize" );
153
- this.originalElement.css( "resize", "none" );
154
-
155
- this._proportionallyResizeElements.push( this.originalElement.css( {
156
- position: "static",
157
- zoom: 1,
158
- display: "block"
159
- } ) );
160
-
161
- // Support: IE9
162
- // avoid IE jump (hard set the margin)
163
- this.originalElement.css( margins );
164
-
165
- this._proportionallyResize();
166
- }
167
-
168
- this._setupHandles();
169
-
170
- if ( o.autoHide ) {
171
- $( this.element )
172
- .on( "mouseenter", function() {
173
- if ( o.disabled ) {
174
- return;
175
- }
176
- that._removeClass( "ui-resizable-autohide" );
177
- that._handles.show();
178
- } )
179
- .on( "mouseleave", function() {
180
- if ( o.disabled ) {
181
- return;
182
- }
183
- if ( !that.resizing ) {
184
- that._addClass( "ui-resizable-autohide" );
185
- that._handles.hide();
186
- }
187
- } );
188
- }
189
-
190
- this._mouseInit();
191
- },
192
-
193
- _destroy: function() {
194
-
195
- this._mouseDestroy();
196
-
197
- var wrapper,
198
- _destroy = function( exp ) {
199
- $( exp )
200
- .removeData( "resizable" )
201
- .removeData( "ui-resizable" )
202
- .off( ".resizable" )
203
- .find( ".ui-resizable-handle" )
204
- .remove();
205
- };
206
-
207
- // TODO: Unwrap at same DOM position
208
- if ( this.elementIsWrapper ) {
209
- _destroy( this.element );
210
- wrapper = this.element;
211
- this.originalElement.css( {
212
- position: wrapper.css( "position" ),
213
- width: wrapper.outerWidth(),
214
- height: wrapper.outerHeight(),
215
- top: wrapper.css( "top" ),
216
- left: wrapper.css( "left" )
217
- } ).insertAfter( wrapper );
218
- wrapper.remove();
219
- }
220
-
221
- this.originalElement.css( "resize", this.originalResizeStyle );
222
- _destroy( this.originalElement );
223
-
224
- return this;
225
- },
226
-
227
- _setOption: function( key, value ) {
228
- this._super( key, value );
229
-
230
- switch ( key ) {
231
- case "handles":
232
- this._removeHandles();
233
- this._setupHandles();
234
- break;
235
- default:
236
- break;
237
- }
238
- },
239
-
240
- _setupHandles: function() {
241
- var o = this.options, handle, i, n, hname, axis, that = this;
242
- this.handles = o.handles ||
243
- ( !$( ".ui-resizable-handle", this.element ).length ?
244
- "e,s,se" : {
245
- n: ".ui-resizable-n",
246
- e: ".ui-resizable-e",
247
- s: ".ui-resizable-s",
248
- w: ".ui-resizable-w",
249
- se: ".ui-resizable-se",
250
- sw: ".ui-resizable-sw",
251
- ne: ".ui-resizable-ne",
252
- nw: ".ui-resizable-nw"
253
- } );
254
-
255
- this._handles = $();
256
- if ( this.handles.constructor === String ) {
257
-
258
- if ( this.handles === "all" ) {
259
- this.handles = "n,e,s,w,se,sw,ne,nw";
260
- }
261
-
262
- n = this.handles.split( "," );
263
- this.handles = {};
264
-
265
- for ( i = 0; i < n.length; i++ ) {
266
-
267
- handle = $.trim( n[ i ] );
268
- hname = "ui-resizable-" + handle;
269
- axis = $( "<div>" );
270
- this._addClass( axis, "ui-resizable-handle " + hname );
271
-
272
- axis.css( { zIndex: o.zIndex } );
273
-
274
- this.handles[ handle ] = ".ui-resizable-" + handle;
275
- this.element.append( axis );
276
- }
277
-
278
- }
279
-
280
- this._renderAxis = function( target ) {
281
-
282
- var i, axis, padPos, padWrapper;
283
-
284
- target = target || this.element;
285
-
286
- for ( i in this.handles ) {
287
-
288
- if ( this.handles[ i ].constructor === String ) {
289
- this.handles[ i ] = this.element.children( this.handles[ i ] ).first().show();
290
- } else if ( this.handles[ i ].jquery || this.handles[ i ].nodeType ) {
291
- this.handles[ i ] = $( this.handles[ i ] );
292
- this._on( this.handles[ i ], { "mousedown": that._mouseDown } );
293
- }
294
-
295
- if ( this.elementIsWrapper &&
296
- this.originalElement[ 0 ]
297
- .nodeName
298
- .match( /^(textarea|input|select|button)$/i ) ) {
299
- axis = $( this.handles[ i ], this.element );
300
-
301
- padWrapper = /sw|ne|nw|se|n|s/.test( i ) ?
302
- axis.outerHeight() :
303
- axis.outerWidth();
304
-
305
- padPos = [ "padding",
306
- /ne|nw|n/.test( i ) ? "Top" :
307
- /se|sw|s/.test( i ) ? "Bottom" :
308
- /^e$/.test( i ) ? "Right" : "Left" ].join( "" );
309
-
310
- target.css( padPos, padWrapper );
311
-
312
- this._proportionallyResize();
313
- }
314
-
315
- this._handles = this._handles.add( this.handles[ i ] );
316
- }
317
- };
318
-
319
- // TODO: make renderAxis a prototype function
320
- this._renderAxis( this.element );
321
-
322
- this._handles = this._handles.add( this.element.find( ".ui-resizable-handle" ) );
323
- this._handles.disableSelection();
324
-
325
- this._handles.on( "mouseover", function() {
326
- if ( !that.resizing ) {
327
- if ( this.className ) {
328
- axis = this.className.match( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i );
329
- }
330
- that.axis = axis && axis[ 1 ] ? axis[ 1 ] : "se";
331
- }
332
- } );
333
-
334
- if ( o.autoHide ) {
335
- this._handles.hide();
336
- this._addClass( "ui-resizable-autohide" );
337
- }
338
- },
339
-
340
- _removeHandles: function() {
341
- this._handles.remove();
342
- },
343
-
344
- _mouseCapture: function( event ) {
345
- var i, handle,
346
- capture = false;
347
-
348
- for ( i in this.handles ) {
349
- handle = $( this.handles[ i ] )[ 0 ];
350
- if ( handle === event.target || $.contains( handle, event.target ) ) {
351
- capture = true;
352
- }
353
- }
354
-
355
- return !this.options.disabled && capture;
356
- },
357
-
358
- _mouseStart: function( event ) {
359
-
360
- var curleft, curtop, cursor,
361
- o = this.options,
362
- el = this.element;
363
-
364
- this.resizing = true;
365
-
366
- this._renderProxy();
367
-
368
- curleft = this._num( this.helper.css( "left" ) );
369
- curtop = this._num( this.helper.css( "top" ) );
370
-
371
- if ( o.containment ) {
372
- curleft += $( o.containment ).scrollLeft() || 0;
373
- curtop += $( o.containment ).scrollTop() || 0;
374
- }
375
-
376
- this.offset = this.helper.offset();
377
- this.position = { left: curleft, top: curtop };
378
-
379
- this.size = this._helper ? {
380
- width: this.helper.width(),
381
- height: this.helper.height()
382
- } : {
383
- width: el.width(),
384
- height: el.height()
385
- };
386
-
387
- this.originalSize = this._helper ? {
388
- width: el.outerWidth(),
389
- height: el.outerHeight()
390
- } : {
391
- width: el.width(),
392
- height: el.height()
393
- };
394
-
395
- this.sizeDiff = {
396
- width: el.outerWidth() - el.width(),
397
- height: el.outerHeight() - el.height()
398
- };
399
-
400
- this.originalPosition = { left: curleft, top: curtop };
401
- this.originalMousePosition = { left: event.pageX, top: event.pageY };
402
-
403
- this.aspectRatio = ( typeof o.aspectRatio === "number" ) ?
404
- o.aspectRatio :
405
- ( ( this.originalSize.width / this.originalSize.height ) || 1 );
406
-
407
- cursor = $( ".ui-resizable-" + this.axis ).css( "cursor" );
408
- $( "body" ).css( "cursor", cursor === "auto" ? this.axis + "-resize" : cursor );
409
-
410
- this._addClass( "ui-resizable-resizing" );
411
- this._propagate( "start", event );
412
- return true;
413
- },
414
-
415
- _mouseDrag: function( event ) {
416
-
417
- var data, props,
418
- smp = this.originalMousePosition,
419
- a = this.axis,
420
- dx = ( event.pageX - smp.left ) || 0,
421
- dy = ( event.pageY - smp.top ) || 0,
422
- trigger = this._change[ a ];
423
-
424
- this._updatePrevProperties();
425
-
426
- if ( !trigger ) {
427
- return false;
428
- }
429
-
430
- data = trigger.apply( this, [ event, dx, dy ] );
431
-
432
- this._updateVirtualBoundaries( event.shiftKey );
433
- if ( this._aspectRatio || event.shiftKey ) {
434
- data = this._updateRatio( data, event );
435
- }
436
-
437
- data = this._respectSize( data, event );
438
-
439
- this._updateCache( data );
440
-
441
- this._propagate( "resize", event );
442
-
443
- props = this._applyChanges();
444
-
445
- if ( !this._helper && this._proportionallyResizeElements.length ) {
446
- this._proportionallyResize();
447
- }
448
-
449
- if ( !$.isEmptyObject( props ) ) {
450
- this._updatePrevProperties();
451
- this._trigger( "resize", event, this.ui() );
452
- this._applyChanges();
453
- }
454
-
455
- return false;
456
- },
457
-
458
- _mouseStop: function( event ) {
459
-
460
- this.resizing = false;
461
- var pr, ista, soffseth, soffsetw, s, left, top,
462
- o = this.options, that = this;
463
-
464
- if ( this._helper ) {
465
-
466
- pr = this._proportionallyResizeElements;
467
- ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName );
468
- soffseth = ista && this._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height;
469
- soffsetw = ista ? 0 : that.sizeDiff.width;
470
-
471
- s = {
472
- width: ( that.helper.width() - soffsetw ),
473
- height: ( that.helper.height() - soffseth )
474
- };
475
- left = ( parseFloat( that.element.css( "left" ) ) +
476
- ( that.position.left - that.originalPosition.left ) ) || null;
477
- top = ( parseFloat( that.element.css( "top" ) ) +
478
- ( that.position.top - that.originalPosition.top ) ) || null;
479
-
480
- if ( !o.animate ) {
481
- this.element.css( $.extend( s, { top: top, left: left } ) );
482
- }
483
-
484
- that.helper.height( that.size.height );
485
- that.helper.width( that.size.width );
486
-
487
- if ( this._helper && !o.animate ) {
488
- this._proportionallyResize();
489
- }
490
- }
491
-
492
- $( "body" ).css( "cursor", "auto" );
493
-
494
- this._removeClass( "ui-resizable-resizing" );
495
-
496
- this._propagate( "stop", event );
497
-
498
- if ( this._helper ) {
499
- this.helper.remove();
500
- }
501
-
502
- return false;
503
-
504
- },
505
-
506
- _updatePrevProperties: function() {
507
- this.prevPosition = {
508
- top: this.position.top,
509
- left: this.position.left
510
- };
511
- this.prevSize = {
512
- width: this.size.width,
513
- height: this.size.height
514
- };
515
- },
516
-
517
- _applyChanges: function() {
518
- var props = {};
519
-
520
- if ( this.position.top !== this.prevPosition.top ) {
521
- props.top = this.position.top + "px";
522
- }
523
- if ( this.position.left !== this.prevPosition.left ) {
524
- props.left = this.position.left + "px";
525
- }
526
- if ( this.size.width !== this.prevSize.width ) {
527
- props.width = this.size.width + "px";
528
- }
529
- if ( this.size.height !== this.prevSize.height ) {
530
- props.height = this.size.height + "px";
531
- }
532
-
533
- this.helper.css( props );
534
-
535
- return props;
536
- },
537
-
538
- _updateVirtualBoundaries: function( forceAspectRatio ) {
539
- var pMinWidth, pMaxWidth, pMinHeight, pMaxHeight, b,
540
- o = this.options;
541
-
542
- b = {
543
- minWidth: this._isNumber( o.minWidth ) ? o.minWidth : 0,
544
- maxWidth: this._isNumber( o.maxWidth ) ? o.maxWidth : Infinity,
545
- minHeight: this._isNumber( o.minHeight ) ? o.minHeight : 0,
546
- maxHeight: this._isNumber( o.maxHeight ) ? o.maxHeight : Infinity
547
- };
548
-
549
- if ( this._aspectRatio || forceAspectRatio ) {
550
- pMinWidth = b.minHeight * this.aspectRatio;
551
- pMinHeight = b.minWidth / this.aspectRatio;
552
- pMaxWidth = b.maxHeight * this.aspectRatio;
553
- pMaxHeight = b.maxWidth / this.aspectRatio;
554
-
555
- if ( pMinWidth > b.minWidth ) {
556
- b.minWidth = pMinWidth;
557
- }
558
- if ( pMinHeight > b.minHeight ) {
559
- b.minHeight = pMinHeight;
560
- }
561
- if ( pMaxWidth < b.maxWidth ) {
562
- b.maxWidth = pMaxWidth;
563
- }
564
- if ( pMaxHeight < b.maxHeight ) {
565
- b.maxHeight = pMaxHeight;
566
- }
567
- }
568
- this._vBoundaries = b;
569
- },
570
-
571
- _updateCache: function( data ) {
572
- this.offset = this.helper.offset();
573
- if ( this._isNumber( data.left ) ) {
574
- this.position.left = data.left;
575
- }
576
- if ( this._isNumber( data.top ) ) {
577
- this.position.top = data.top;
578
- }
579
- if ( this._isNumber( data.height ) ) {
580
- this.size.height = data.height;
581
- }
582
- if ( this._isNumber( data.width ) ) {
583
- this.size.width = data.width;
584
- }
585
- },
586
-
587
- _updateRatio: function( data ) {
588
-
589
- var cpos = this.position,
590
- csize = this.size,
591
- a = this.axis;
592
-
593
- if ( this._isNumber( data.height ) ) {
594
- data.width = ( data.height * this.aspectRatio );
595
- } else if ( this._isNumber( data.width ) ) {
596
- data.height = ( data.width / this.aspectRatio );
597
- }
598
-
599
- if ( a === "sw" ) {
600
- data.left = cpos.left + ( csize.width - data.width );
601
- data.top = null;
602
- }
603
- if ( a === "nw" ) {
604
- data.top = cpos.top + ( csize.height - data.height );
605
- data.left = cpos.left + ( csize.width - data.width );
606
- }
607
-
608
- return data;
609
- },
610
-
611
- _respectSize: function( data ) {
612
-
613
- var o = this._vBoundaries,
614
- a = this.axis,
615
- ismaxw = this._isNumber( data.width ) && o.maxWidth && ( o.maxWidth < data.width ),
616
- ismaxh = this._isNumber( data.height ) && o.maxHeight && ( o.maxHeight < data.height ),
617
- isminw = this._isNumber( data.width ) && o.minWidth && ( o.minWidth > data.width ),
618
- isminh = this._isNumber( data.height ) && o.minHeight && ( o.minHeight > data.height ),
619
- dw = this.originalPosition.left + this.originalSize.width,
620
- dh = this.originalPosition.top + this.originalSize.height,
621
- cw = /sw|nw|w/.test( a ), ch = /nw|ne|n/.test( a );
622
- if ( isminw ) {
623
- data.width = o.minWidth;
624
- }
625
- if ( isminh ) {
626
- data.height = o.minHeight;
627
- }
628
- if ( ismaxw ) {
629
- data.width = o.maxWidth;
630
- }
631
- if ( ismaxh ) {
632
- data.height = o.maxHeight;
633
- }
634
-
635
- if ( isminw && cw ) {
636
- data.left = dw - o.minWidth;
637
- }
638
- if ( ismaxw && cw ) {
639
- data.left = dw - o.maxWidth;
640
- }
641
- if ( isminh && ch ) {
642
- data.top = dh - o.minHeight;
643
- }
644
- if ( ismaxh && ch ) {
645
- data.top = dh - o.maxHeight;
646
- }
647
-
648
- // Fixing jump error on top/left - bug #2330
649
- if ( !data.width && !data.height && !data.left && data.top ) {
650
- data.top = null;
651
- } else if ( !data.width && !data.height && !data.top && data.left ) {
652
- data.left = null;
653
- }
654
-
655
- return data;
656
- },
657
-
658
- _getPaddingPlusBorderDimensions: function( element ) {
659
- var i = 0,
660
- widths = [],
661
- borders = [
662
- element.css( "borderTopWidth" ),
663
- element.css( "borderRightWidth" ),
664
- element.css( "borderBottomWidth" ),
665
- element.css( "borderLeftWidth" )
666
- ],
667
- paddings = [
668
- element.css( "paddingTop" ),
669
- element.css( "paddingRight" ),
670
- element.css( "paddingBottom" ),
671
- element.css( "paddingLeft" )
672
- ];
673
-
674
- for ( ; i < 4; i++ ) {
675
- widths[ i ] = ( parseFloat( borders[ i ] ) || 0 );
676
- widths[ i ] += ( parseFloat( paddings[ i ] ) || 0 );
677
- }
678
-
679
- return {
680
- height: widths[ 0 ] + widths[ 2 ],
681
- width: widths[ 1 ] + widths[ 3 ]
682
- };
683
- },
684
-
685
- _proportionallyResize: function() {
686
-
687
- if ( !this._proportionallyResizeElements.length ) {
688
- return;
689
- }
690
-
691
- var prel,
692
- i = 0,
693
- element = this.helper || this.element;
694
-
695
- for ( ; i < this._proportionallyResizeElements.length; i++ ) {
696
-
697
- prel = this._proportionallyResizeElements[ i ];
698
-
699
- // TODO: Seems like a bug to cache this.outerDimensions
700
- // considering that we are in a loop.
701
- if ( !this.outerDimensions ) {
702
- this.outerDimensions = this._getPaddingPlusBorderDimensions( prel );
703
- }
704
-
705
- prel.css( {
706
- height: ( element.height() - this.outerDimensions.height ) || 0,
707
- width: ( element.width() - this.outerDimensions.width ) || 0
708
- } );
709
-
710
- }
711
-
712
- },
713
-
714
- _renderProxy: function() {
715
-
716
- var el = this.element, o = this.options;
717
- this.elementOffset = el.offset();
718
-
719
- if ( this._helper ) {
720
-
721
- this.helper = this.helper || $( "<div style='overflow:hidden;'></div>" );
722
-
723
- this._addClass( this.helper, this._helper );
724
- this.helper.css( {
725
- width: this.element.outerWidth(),
726
- height: this.element.outerHeight(),
727
- position: "absolute",
728
- left: this.elementOffset.left + "px",
729
- top: this.elementOffset.top + "px",
730
- zIndex: ++o.zIndex //TODO: Don't modify option
731
- } );
732
-
733
- this.helper
734
- .appendTo( "body" )
735
- .disableSelection();
736
-
737
- } else {
738
- this.helper = this.element;
739
- }
740
-
741
- },
742
-
743
- _change: {
744
- e: function( event, dx ) {
745
- return { width: this.originalSize.width + dx };
746
- },
747
- w: function( event, dx ) {
748
- var cs = this.originalSize, sp = this.originalPosition;
749
- return { left: sp.left + dx, width: cs.width - dx };
750
- },
751
- n: function( event, dx, dy ) {
752
- var cs = this.originalSize, sp = this.originalPosition;
753
- return { top: sp.top + dy, height: cs.height - dy };
754
- },
755
- s: function( event, dx, dy ) {
756
- return { height: this.originalSize.height + dy };
757
- },
758
- se: function( event, dx, dy ) {
759
- return $.extend( this._change.s.apply( this, arguments ),
760
- this._change.e.apply( this, [ event, dx, dy ] ) );
761
- },
762
- sw: function( event, dx, dy ) {
763
- return $.extend( this._change.s.apply( this, arguments ),
764
- this._change.w.apply( this, [ event, dx, dy ] ) );
765
- },
766
- ne: function( event, dx, dy ) {
767
- return $.extend( this._change.n.apply( this, arguments ),
768
- this._change.e.apply( this, [ event, dx, dy ] ) );
769
- },
770
- nw: function( event, dx, dy ) {
771
- return $.extend( this._change.n.apply( this, arguments ),
772
- this._change.w.apply( this, [ event, dx, dy ] ) );
773
- }
774
- },
775
-
776
- _propagate: function( n, event ) {
777
- $.ui.plugin.call( this, n, [ event, this.ui() ] );
778
- ( n !== "resize" && this._trigger( n, event, this.ui() ) );
779
- },
780
-
781
- plugins: {},
782
-
783
- ui: function() {
784
- return {
785
- originalElement: this.originalElement,
786
- element: this.element,
787
- helper: this.helper,
788
- position: this.position,
789
- size: this.size,
790
- originalSize: this.originalSize,
791
- originalPosition: this.originalPosition
792
- };
793
- }
794
-
795
- } );
796
-
797
- /*
798
- * Resizable Extensions
799
- */
800
-
801
- $.ui.plugin.add( "resizable", "animate", {
802
-
803
- stop: function( event ) {
804
- var that = $( this ).resizable( "instance" ),
805
- o = that.options,
806
- pr = that._proportionallyResizeElements,
807
- ista = pr.length && ( /textarea/i ).test( pr[ 0 ].nodeName ),
808
- soffseth = ista && that._hasScroll( pr[ 0 ], "left" ) ? 0 : that.sizeDiff.height,
809
- soffsetw = ista ? 0 : that.sizeDiff.width,
810
- style = {
811
- width: ( that.size.width - soffsetw ),
812
- height: ( that.size.height - soffseth )
813
- },
814
- left = ( parseFloat( that.element.css( "left" ) ) +
815
- ( that.position.left - that.originalPosition.left ) ) || null,
816
- top = ( parseFloat( that.element.css( "top" ) ) +
817
- ( that.position.top - that.originalPosition.top ) ) || null;
818
-
819
- that.element.animate(
820
- $.extend( style, top && left ? { top: top, left: left } : {} ), {
821
- duration: o.animateDuration,
822
- easing: o.animateEasing,
823
- step: function() {
824
-
825
- var data = {
826
- width: parseFloat( that.element.css( "width" ) ),
827
- height: parseFloat( that.element.css( "height" ) ),
828
- top: parseFloat( that.element.css( "top" ) ),
829
- left: parseFloat( that.element.css( "left" ) )
830
- };
831
-
832
- if ( pr && pr.length ) {
833
- $( pr[ 0 ] ).css( { width: data.width, height: data.height } );
834
- }
835
-
836
- // Propagating resize, and updating values for each animation step
837
- that._updateCache( data );
838
- that._propagate( "resize", event );
839
-
840
- }
841
- }
842
- );
843
- }
844
-
845
- } );
846
-
847
- $.ui.plugin.add( "resizable", "containment", {
848
-
849
- start: function() {
850
- var element, p, co, ch, cw, width, height,
851
- that = $( this ).resizable( "instance" ),
852
- o = that.options,
853
- el = that.element,
854
- oc = o.containment,
855
- ce = ( oc instanceof $ ) ?
856
- oc.get( 0 ) :
857
- ( /parent/.test( oc ) ) ? el.parent().get( 0 ) : oc;
858
-
859
- if ( !ce ) {
860
- return;
861
- }
862
-
863
- that.containerElement = $( ce );
864
-
865
- if ( /document/.test( oc ) || oc === document ) {
866
- that.containerOffset = {
867
- left: 0,
868
- top: 0
869
- };
870
- that.containerPosition = {
871
- left: 0,
872
- top: 0
873
- };
874
-
875
- that.parentData = {
876
- element: $( document ),
877
- left: 0,
878
- top: 0,
879
- width: $( document ).width(),
880
- height: $( document ).height() || document.body.parentNode.scrollHeight
881
- };
882
- } else {
883
- element = $( ce );
884
- p = [];
885
- $( [ "Top", "Right", "Left", "Bottom" ] ).each( function( i, name ) {
886
- p[ i ] = that._num( element.css( "padding" + name ) );
887
- } );
888
-
889
- that.containerOffset = element.offset();
890
- that.containerPosition = element.position();
891
- that.containerSize = {
892
- height: ( element.innerHeight() - p[ 3 ] ),
893
- width: ( element.innerWidth() - p[ 1 ] )
894
- };
895
-
896
- co = that.containerOffset;
897
- ch = that.containerSize.height;
898
- cw = that.containerSize.width;
899
- width = ( that._hasScroll ( ce, "left" ) ? ce.scrollWidth : cw );
900
- height = ( that._hasScroll ( ce ) ? ce.scrollHeight : ch ) ;
901
-
902
- that.parentData = {
903
- element: ce,
904
- left: co.left,
905
- top: co.top,
906
- width: width,
907
- height: height
908
- };
909
- }
910
- },
911
-
912
- resize: function( event ) {
913
- var woset, hoset, isParent, isOffsetRelative,
914
- that = $( this ).resizable( "instance" ),
915
- o = that.options,
916
- co = that.containerOffset,
917
- cp = that.position,
918
- pRatio = that._aspectRatio || event.shiftKey,
919
- cop = {
920
- top: 0,
921
- left: 0
922
- },
923
- ce = that.containerElement,
924
- continueResize = true;
925
-
926
- if ( ce[ 0 ] !== document && ( /static/ ).test( ce.css( "position" ) ) ) {
927
- cop = co;
928
- }
929
-
930
- if ( cp.left < ( that._helper ? co.left : 0 ) ) {
931
- that.size.width = that.size.width +
932
- ( that._helper ?
933
- ( that.position.left - co.left ) :
934
- ( that.position.left - cop.left ) );
935
-
936
- if ( pRatio ) {
937
- that.size.height = that.size.width / that.aspectRatio;
938
- continueResize = false;
939
- }
940
- that.position.left = o.helper ? co.left : 0;
941
- }
942
-
943
- if ( cp.top < ( that._helper ? co.top : 0 ) ) {
944
- that.size.height = that.size.height +
945
- ( that._helper ?
946
- ( that.position.top - co.top ) :
947
- that.position.top );
948
-
949
- if ( pRatio ) {
950
- that.size.width = that.size.height * that.aspectRatio;
951
- continueResize = false;
952
- }
953
- that.position.top = that._helper ? co.top : 0;
954
- }
955
-
956
- isParent = that.containerElement.get( 0 ) === that.element.parent().get( 0 );
957
- isOffsetRelative = /relative|absolute/.test( that.containerElement.css( "position" ) );
958
-
959
- if ( isParent && isOffsetRelative ) {
960
- that.offset.left = that.parentData.left + that.position.left;
961
- that.offset.top = that.parentData.top + that.position.top;
962
- } else {
963
- that.offset.left = that.element.offset().left;
964
- that.offset.top = that.element.offset().top;
965
- }
966
-
967
- woset = Math.abs( that.sizeDiff.width +
968
- ( that._helper ?
969
- that.offset.left - cop.left :
970
- ( that.offset.left - co.left ) ) );
971
-
972
- hoset = Math.abs( that.sizeDiff.height +
973
- ( that._helper ?
974
- that.offset.top - cop.top :
975
- ( that.offset.top - co.top ) ) );
976
-
977
- if ( woset + that.size.width >= that.parentData.width ) {
978
- that.size.width = that.parentData.width - woset;
979
- if ( pRatio ) {
980
- that.size.height = that.size.width / that.aspectRatio;
981
- continueResize = false;
982
- }
983
- }
984
-
985
- if ( hoset + that.size.height >= that.parentData.height ) {
986
- that.size.height = that.parentData.height - hoset;
987
- if ( pRatio ) {
988
- that.size.width = that.size.height * that.aspectRatio;
989
- continueResize = false;
990
- }
991
- }
992
-
993
- if ( !continueResize ) {
994
- that.position.left = that.prevPosition.left;
995
- that.position.top = that.prevPosition.top;
996
- that.size.width = that.prevSize.width;
997
- that.size.height = that.prevSize.height;
998
- }
999
- },
1000
-
1001
- stop: function() {
1002
- var that = $( this ).resizable( "instance" ),
1003
- o = that.options,
1004
- co = that.containerOffset,
1005
- cop = that.containerPosition,
1006
- ce = that.containerElement,
1007
- helper = $( that.helper ),
1008
- ho = helper.offset(),
1009
- w = helper.outerWidth() - that.sizeDiff.width,
1010
- h = helper.outerHeight() - that.sizeDiff.height;
1011
-
1012
- if ( that._helper && !o.animate && ( /relative/ ).test( ce.css( "position" ) ) ) {
1013
- $( this ).css( {
1014
- left: ho.left - cop.left - co.left,
1015
- width: w,
1016
- height: h
1017
- } );
1018
- }
1019
-
1020
- if ( that._helper && !o.animate && ( /static/ ).test( ce.css( "position" ) ) ) {
1021
- $( this ).css( {
1022
- left: ho.left - cop.left - co.left,
1023
- width: w,
1024
- height: h
1025
- } );
1026
- }
1027
- }
1028
- } );
1029
-
1030
- $.ui.plugin.add( "resizable", "alsoResize", {
1031
-
1032
- start: function() {
1033
- var that = $( this ).resizable( "instance" ),
1034
- o = that.options;
1035
-
1036
- $( o.alsoResize ).each( function() {
1037
- var el = $( this );
1038
- el.data( "ui-resizable-alsoresize", {
1039
- width: parseFloat( el.width() ), height: parseFloat( el.height() ),
1040
- left: parseFloat( el.css( "left" ) ), top: parseFloat( el.css( "top" ) )
1041
- } );
1042
- } );
1043
- },
1044
-
1045
- resize: function( event, ui ) {
1046
- var that = $( this ).resizable( "instance" ),
1047
- o = that.options,
1048
- os = that.originalSize,
1049
- op = that.originalPosition,
1050
- delta = {
1051
- height: ( that.size.height - os.height ) || 0,
1052
- width: ( that.size.width - os.width ) || 0,
1053
- top: ( that.position.top - op.top ) || 0,
1054
- left: ( that.position.left - op.left ) || 0
1055
- };
1056
-
1057
- $( o.alsoResize ).each( function() {
1058
- var el = $( this ), start = $( this ).data( "ui-resizable-alsoresize" ), style = {},
1059
- css = el.parents( ui.originalElement[ 0 ] ).length ?
1060
- [ "width", "height" ] :
1061
- [ "width", "height", "top", "left" ];
1062
-
1063
- $.each( css, function( i, prop ) {
1064
- var sum = ( start[ prop ] || 0 ) + ( delta[ prop ] || 0 );
1065
- if ( sum && sum >= 0 ) {
1066
- style[ prop ] = sum || null;
1067
- }
1068
- } );
1069
-
1070
- el.css( style );
1071
- } );
1072
- },
1073
-
1074
- stop: function() {
1075
- $( this ).removeData( "ui-resizable-alsoresize" );
1076
- }
1077
- } );
1078
-
1079
- $.ui.plugin.add( "resizable", "ghost", {
1080
-
1081
- start: function() {
1082
-
1083
- var that = $( this ).resizable( "instance" ), cs = that.size;
1084
-
1085
- that.ghost = that.originalElement.clone();
1086
- that.ghost.css( {
1087
- opacity: 0.25,
1088
- display: "block",
1089
- position: "relative",
1090
- height: cs.height,
1091
- width: cs.width,
1092
- margin: 0,
1093
- left: 0,
1094
- top: 0
1095
- } );
1096
-
1097
- that._addClass( that.ghost, "ui-resizable-ghost" );
1098
-
1099
- // DEPRECATED
1100
- // TODO: remove after 1.12
1101
- if ( $.uiBackCompat !== false && typeof that.options.ghost === "string" ) {
1102
-
1103
- // Ghost option
1104
- that.ghost.addClass( this.options.ghost );
1105
- }
1106
-
1107
- that.ghost.appendTo( that.helper );
1108
-
1109
- },
1110
-
1111
- resize: function() {
1112
- var that = $( this ).resizable( "instance" );
1113
- if ( that.ghost ) {
1114
- that.ghost.css( {
1115
- position: "relative",
1116
- height: that.size.height,
1117
- width: that.size.width
1118
- } );
1119
- }
1120
- },
1121
-
1122
- stop: function() {
1123
- var that = $( this ).resizable( "instance" );
1124
- if ( that.ghost && that.helper ) {
1125
- that.helper.get( 0 ).removeChild( that.ghost.get( 0 ) );
1126
- }
1127
- }
1128
-
1129
- } );
1130
-
1131
- $.ui.plugin.add( "resizable", "grid", {
1132
-
1133
- resize: function() {
1134
- var outerDimensions,
1135
- that = $( this ).resizable( "instance" ),
1136
- o = that.options,
1137
- cs = that.size,
1138
- os = that.originalSize,
1139
- op = that.originalPosition,
1140
- a = that.axis,
1141
- grid = typeof o.grid === "number" ? [ o.grid, o.grid ] : o.grid,
1142
- gridX = ( grid[ 0 ] || 1 ),
1143
- gridY = ( grid[ 1 ] || 1 ),
1144
- ox = Math.round( ( cs.width - os.width ) / gridX ) * gridX,
1145
- oy = Math.round( ( cs.height - os.height ) / gridY ) * gridY,
1146
- newWidth = os.width + ox,
1147
- newHeight = os.height + oy,
1148
- isMaxWidth = o.maxWidth && ( o.maxWidth < newWidth ),
1149
- isMaxHeight = o.maxHeight && ( o.maxHeight < newHeight ),
1150
- isMinWidth = o.minWidth && ( o.minWidth > newWidth ),
1151
- isMinHeight = o.minHeight && ( o.minHeight > newHeight );
1152
-
1153
- o.grid = grid;
1154
-
1155
- if ( isMinWidth ) {
1156
- newWidth += gridX;
1157
- }
1158
- if ( isMinHeight ) {
1159
- newHeight += gridY;
1160
- }
1161
- if ( isMaxWidth ) {
1162
- newWidth -= gridX;
1163
- }
1164
- if ( isMaxHeight ) {
1165
- newHeight -= gridY;
1166
- }
1167
-
1168
- if ( /^(se|s|e)$/.test( a ) ) {
1169
- that.size.width = newWidth;
1170
- that.size.height = newHeight;
1171
- } else if ( /^(ne)$/.test( a ) ) {
1172
- that.size.width = newWidth;
1173
- that.size.height = newHeight;
1174
- that.position.top = op.top - oy;
1175
- } else if ( /^(sw)$/.test( a ) ) {
1176
- that.size.width = newWidth;
1177
- that.size.height = newHeight;
1178
- that.position.left = op.left - ox;
1179
- } else {
1180
- if ( newHeight - gridY <= 0 || newWidth - gridX <= 0 ) {
1181
- outerDimensions = that._getPaddingPlusBorderDimensions( this );
1182
- }
1183
-
1184
- if ( newHeight - gridY > 0 ) {
1185
- that.size.height = newHeight;
1186
- that.position.top = op.top - oy;
1187
- } else {
1188
- newHeight = gridY - outerDimensions.height;
1189
- that.size.height = newHeight;
1190
- that.position.top = op.top + os.height - newHeight;
1191
- }
1192
- if ( newWidth - gridX > 0 ) {
1193
- that.size.width = newWidth;
1194
- that.position.left = op.left - ox;
1195
- } else {
1196
- newWidth = gridX - outerDimensions.width;
1197
- that.size.width = newWidth;
1198
- that.position.left = op.left + os.width - newWidth;
1199
- }
1200
- }
1201
- }
1202
-
1203
- } );
1204
-
1205
- return $.ui.resizable;
1206
-
1207
- } ) );