activeadmin 3.3.0 → 4.0.0.beta1

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.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -111
  3. data/CONTRIBUTING.md +25 -108
  4. data/README.md +19 -32
  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/decorators.rb +1 -1
  12. data/{lib → app/controllers}/active_admin/resource_controller/scoping.rb +1 -1
  13. data/{lib → app/controllers}/active_admin/resource_controller/streaming.rb +2 -2
  14. data/app/controllers/active_admin/resource_controller.rb +102 -0
  15. data/app/helpers/active_admin/auto_link_helper.rb +66 -0
  16. data/app/helpers/active_admin/breadcrumb_helper.rb +41 -0
  17. data/app/helpers/active_admin/display_helper.rb +117 -0
  18. data/app/helpers/active_admin/form_helper.rb +95 -0
  19. data/app/helpers/active_admin/index_helper.rb +40 -0
  20. data/app/helpers/active_admin/layout_helper.rb +63 -0
  21. data/app/javascript/active_admin/features/batch_actions.js +89 -0
  22. data/app/javascript/active_admin/features/dark_mode_toggle.js +37 -0
  23. data/app/javascript/active_admin/features/filters.js +34 -0
  24. data/app/javascript/active_admin/features/has_many.js +28 -0
  25. data/app/javascript/active_admin/features/main_menu.js +12 -0
  26. data/app/javascript/active_admin/features/per_page.js +9 -0
  27. data/app/javascript/active_admin/utils/dom.js +17 -0
  28. data/app/javascript/active_admin.js +10 -0
  29. data/app/views/active_admin/_flash_messages.html.erb +22 -0
  30. data/app/views/active_admin/_html_head.html.erb +13 -0
  31. data/app/views/active_admin/_main_navigation.html.erb +28 -0
  32. data/app/views/active_admin/_page_header.html.erb +27 -0
  33. data/app/views/active_admin/_sidebar.html.erb +5 -0
  34. data/app/views/active_admin/_site_footer.html.erb +7 -0
  35. data/app/views/active_admin/_site_header.html.erb +30 -0
  36. data/app/views/active_admin/devise/confirmations/new.html.erb +5 -3
  37. data/app/views/active_admin/devise/passwords/edit.html.erb +5 -3
  38. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  39. data/app/views/active_admin/devise/registrations/new.html.erb +6 -4
  40. data/app/views/active_admin/devise/sessions/new.html.erb +6 -4
  41. data/app/views/active_admin/devise/shared/_links.erb +3 -1
  42. data/app/views/active_admin/devise/unlocks/new.html.erb +6 -4
  43. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_gap.html.erb +3 -1
  44. data/app/views/active_admin/kaminari/_next_page.html.erb +16 -0
  45. data/app/views/active_admin/kaminari/_page.html.erb +14 -0
  46. data/app/views/{kaminari/active_admin_countless → active_admin/kaminari}/_paginator.html.erb +1 -2
  47. data/app/views/active_admin/kaminari/_prev_page.html.erb +16 -0
  48. data/app/views/active_admin/page/index.html.arb +5 -1
  49. data/app/views/active_admin/resource/_active_filters.html.erb +32 -0
  50. data/app/views/active_admin/resource/_batch_actions_dropdown.html.erb +19 -0
  51. data/app/views/active_admin/resource/_form.html.arb +16 -0
  52. data/app/views/active_admin/resource/_form_default.html.arb +12 -0
  53. data/app/views/active_admin/resource/_index_as_table_default.html.arb +9 -0
  54. data/app/views/active_admin/resource/_index_blank_slate.html.erb +14 -0
  55. data/app/views/active_admin/resource/_index_empty_results.html.erb +5 -0
  56. data/app/views/active_admin/resource/_index_table_actions_default.html.erb +9 -0
  57. data/app/views/active_admin/resource/_show_default.html.arb +3 -0
  58. data/app/views/active_admin/resource/edit.html.arb +1 -1
  59. data/app/views/active_admin/resource/index.html.arb +94 -1
  60. data/app/views/active_admin/resource/new.html.arb +1 -1
  61. data/app/views/active_admin/resource/show.html.arb +12 -1
  62. data/app/views/active_admin/shared/_action_items.html.erb +3 -0
  63. data/app/views/active_admin/shared/_download_format_links.html.erb +7 -0
  64. data/app/views/active_admin/shared/_resource_comments.html.erb +51 -0
  65. data/app/views/active_admin/shared/_sidebar_section.html.arb +7 -0
  66. data/app/views/active_admin/shared/_sidebar_sections.html.erb +5 -0
  67. data/app/views/layouts/active_admin.html.erb +20 -0
  68. data/app/views/layouts/active_admin_logged_out.html.erb +8 -45
  69. data/config/locales/ar.yml +0 -16
  70. data/config/locales/az.yml +0 -16
  71. data/config/locales/bg.yml +0 -9
  72. data/config/locales/bs.yml +0 -7
  73. data/config/locales/ca.yml +0 -9
  74. data/config/locales/cs.yml +0 -9
  75. data/config/locales/da.yml +0 -16
  76. data/config/locales/de-CH.yml +0 -10
  77. data/config/locales/de.yml +0 -16
  78. data/config/locales/el.yml +0 -13
  79. data/config/locales/en-CA.yml +0 -16
  80. data/config/locales/en-GB.yml +0 -16
  81. data/config/locales/en.yml +18 -28
  82. data/config/locales/eo.yml +0 -17
  83. data/config/locales/es-MX.yml +0 -9
  84. data/config/locales/es.yml +0 -16
  85. data/config/locales/fa.yml +0 -9
  86. data/config/locales/fi.yml +0 -9
  87. data/config/locales/fr.yml +32 -26
  88. data/config/locales/he.yml +0 -16
  89. data/config/locales/hr.yml +0 -9
  90. data/config/locales/hu.yml +0 -6
  91. data/config/locales/id.yml +0 -16
  92. data/config/locales/it.yml +0 -16
  93. data/config/locales/ja.yml +0 -16
  94. data/config/locales/ko.yml +0 -9
  95. data/config/locales/lt.yml +0 -16
  96. data/config/locales/lv.yml +0 -6
  97. data/config/locales/mk.yml +0 -15
  98. data/config/locales/nb.yml +0 -12
  99. data/config/locales/nl.yml +21 -29
  100. data/config/locales/pl.yml +0 -16
  101. data/config/locales/pt-BR.yml +0 -16
  102. data/config/locales/pt-PT.yml +0 -6
  103. data/config/locales/ro.yml +0 -6
  104. data/config/locales/ru.yml +0 -16
  105. data/config/locales/sk.yml +0 -16
  106. data/config/locales/sv-SE.yml +0 -16
  107. data/config/locales/tr.yml +0 -16
  108. data/config/locales/uk.yml +0 -16
  109. data/config/locales/vi.yml +0 -16
  110. data/config/locales/zh-CN.yml +0 -16
  111. data/config/locales/zh-TW.yml +0 -16
  112. data/lib/active_admin/application.rb +1 -9
  113. data/lib/active_admin/batch_actions/controller.rb +1 -4
  114. data/lib/active_admin/batch_actions/resource_extension.rb +6 -13
  115. data/lib/active_admin/batch_actions/views/batch_action_form.rb +0 -6
  116. data/lib/active_admin/batch_actions/views/selection_cells.rb +2 -2
  117. data/lib/active_admin/batch_actions.rb +0 -5
  118. data/lib/active_admin/callbacks.rb +6 -4
  119. data/lib/active_admin/component.rb +0 -1
  120. data/lib/active_admin/csv_builder.rb +1 -1
  121. data/lib/active_admin/devise.rb +3 -3
  122. data/lib/active_admin/dsl.rb +2 -2
  123. data/lib/active_admin/dynamic_settings_node.rb +4 -4
  124. data/lib/active_admin/engine.rb +19 -6
  125. data/lib/active_admin/filters/active.rb +6 -4
  126. data/lib/active_admin/filters/active_filter.rb +1 -3
  127. data/lib/active_admin/filters/forms.rb +1 -42
  128. data/lib/active_admin/filters/resource_extension.rb +17 -9
  129. data/lib/active_admin/filters.rb +0 -2
  130. data/lib/active_admin/form_builder.rb +19 -17
  131. data/lib/active_admin/inputs/filters/base/search_method_select.rb +8 -10
  132. data/lib/active_admin/inputs/filters/base.rb +1 -1
  133. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -6
  134. data/lib/active_admin/inputs/filters/date_range_input.rb +4 -2
  135. data/lib/active_admin/inputs/filters/select_input.rb +3 -1
  136. data/lib/active_admin/inputs.rb +0 -3
  137. data/lib/active_admin/menu.rb +10 -7
  138. data/lib/active_admin/menu_collection.rb +1 -1
  139. data/lib/active_admin/menu_item.rb +24 -3
  140. data/lib/active_admin/namespace.rb +2 -44
  141. data/lib/active_admin/namespace_settings.rb +2 -35
  142. data/lib/active_admin/order_clause.rb +4 -1
  143. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +3 -75
  144. data/lib/active_admin/orm/active_record/comments.rb +10 -5
  145. data/lib/active_admin/pundit_adapter.rb +1 -1
  146. data/lib/active_admin/resource/action_items.rb +15 -20
  147. data/lib/active_admin/resource/attributes.rb +1 -8
  148. data/lib/active_admin/resource/belongs_to.rb +1 -0
  149. data/lib/active_admin/resource/naming.rb +1 -2
  150. data/lib/active_admin/resource.rb +1 -0
  151. data/lib/active_admin/resource_dsl.rb +1 -1
  152. data/lib/active_admin/scope.rb +1 -1
  153. data/lib/active_admin/settings_node.rb +1 -1
  154. data/lib/active_admin/sidebar_section.rb +0 -5
  155. data/lib/active_admin/version.rb +1 -1
  156. data/lib/active_admin/view_helpers.rb +0 -12
  157. data/lib/active_admin/views/components/active_admin_form.rb +21 -29
  158. data/lib/active_admin/views/components/attributes_table.rb +4 -12
  159. data/lib/active_admin/views/components/index_list.rb +10 -23
  160. data/lib/active_admin/views/components/paginated_collection.rb +34 -42
  161. data/lib/active_admin/views/components/panel.rb +2 -10
  162. data/lib/active_admin/views/components/scopes.rb +12 -21
  163. data/lib/active_admin/views/components/status_tag.rb +22 -19
  164. data/lib/active_admin/views/components/table_for.rb +19 -24
  165. data/lib/active_admin/views/components/tabs.rb +10 -11
  166. data/lib/active_admin/views/index_as_table.rb +26 -104
  167. data/lib/active_admin.rb +7 -11
  168. data/lib/generators/active_admin/assets/assets_generator.rb +4 -4
  169. data/lib/generators/active_admin/assets/templates/active_admin.css +3 -0
  170. data/lib/generators/active_admin/assets/templates/tailwind.config.js +18 -0
  171. data/lib/generators/active_admin/install/install_generator.rb +2 -8
  172. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +10 -87
  173. data/lib/generators/active_admin/install/templates/dashboard.rb +8 -25
  174. data/lib/generators/active_admin/page/page_generator.rb +0 -1
  175. data/lib/generators/active_admin/resource/resource_generator.rb +46 -7
  176. data/lib/generators/active_admin/resource/templates/resource.rb.erb +42 -0
  177. data/lib/generators/active_admin/views_generator.rb +18 -0
  178. metadata +67 -214
  179. data/app/assets/javascripts/active_admin/base.js +0 -521
  180. data/app/assets/stylesheets/active_admin/_base.scss +0 -57
  181. data/app/assets/stylesheets/active_admin/_forms.scss +0 -315
  182. data/app/assets/stylesheets/active_admin/_header.scss +0 -188
  183. data/app/assets/stylesheets/active_admin/_mixins.scss +0 -1
  184. data/app/assets/stylesheets/active_admin/_normalize.scss +0 -349
  185. data/app/assets/stylesheets/active_admin/_print.scss +0 -287
  186. data/app/assets/stylesheets/active_admin/_typography.scss +0 -100
  187. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -6
  188. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -30
  189. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +0 -20
  190. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -6
  191. data/app/assets/stylesheets/active_admin/components/_columns.scss +0 -3
  192. data/app/assets/stylesheets/active_admin/components/_comments.scss +0 -41
  193. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +0 -148
  194. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -154
  195. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +0 -37
  196. data/app/assets/stylesheets/active_admin/components/_grid.scss +0 -9
  197. data/app/assets/stylesheets/active_admin/components/_index_list.scss +0 -12
  198. data/app/assets/stylesheets/active_admin/components/_links.scss +0 -5
  199. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +0 -34
  200. data/app/assets/stylesheets/active_admin/components/_pagination.scss +0 -58
  201. data/app/assets/stylesheets/active_admin/components/_panels.scss +0 -6
  202. data/app/assets/stylesheets/active_admin/components/_scopes.scss +0 -13
  203. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -12
  204. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +0 -70
  205. data/app/assets/stylesheets/active_admin/components/_tables.scss +0 -112
  206. data/app/assets/stylesheets/active_admin/components/_tabs.scss +0 -68
  207. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +0 -16
  208. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -8
  209. data/app/assets/stylesheets/active_admin/mixins/_buttons.scss +0 -65
  210. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +0 -28
  211. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +0 -22
  212. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -41
  213. data/app/assets/stylesheets/active_admin/mixins/_shadows.scss +0 -15
  214. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +0 -3
  215. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -17
  216. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +0 -51
  217. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +0 -44
  218. data/app/assets/stylesheets/active_admin/structure/_footer.scss +0 -19
  219. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +0 -29
  220. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -43
  221. data/app/javascript/active_admin/base.js +0 -28
  222. data/app/javascript/active_admin/ext/jquery-ui.js +0 -7
  223. data/app/javascript/active_admin/ext/jquery.js +0 -9
  224. data/app/javascript/active_admin/initializers/batch-actions.js +0 -61
  225. data/app/javascript/active_admin/initializers/checkbox-toggler.js +0 -3
  226. data/app/javascript/active_admin/initializers/datepicker.js +0 -16
  227. data/app/javascript/active_admin/initializers/dropdown-menu.js +0 -9
  228. data/app/javascript/active_admin/initializers/filters.js +0 -10
  229. data/app/javascript/active_admin/initializers/has-many.js +0 -98
  230. data/app/javascript/active_admin/initializers/per-page.js +0 -13
  231. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +0 -3
  232. data/app/javascript/active_admin/initializers/tabs.js +0 -6
  233. data/app/javascript/active_admin/lib/checkbox-toggler.js +0 -49
  234. data/app/javascript/active_admin/lib/dropdown-menu.js +0 -116
  235. data/app/javascript/active_admin/lib/filters.js +0 -39
  236. data/app/javascript/active_admin/lib/modal-dialog.js +0 -63
  237. data/app/javascript/active_admin/lib/per-page.js +0 -38
  238. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +0 -38
  239. data/app/javascript/active_admin/lib/utils.js +0 -40
  240. data/app/views/kaminari/active_admin/_first_page.html.erb +0 -11
  241. data/app/views/kaminari/active_admin/_gap.html.erb +0 -8
  242. data/app/views/kaminari/active_admin/_last_page.html.erb +0 -11
  243. data/app/views/kaminari/active_admin/_next_page.html.erb +0 -11
  244. data/app/views/kaminari/active_admin/_page.html.erb +0 -12
  245. data/app/views/kaminari/active_admin/_paginator.html.erb +0 -25
  246. data/app/views/kaminari/active_admin/_prev_page.html.erb +0 -11
  247. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +0 -11
  248. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +0 -11
  249. data/app/views/kaminari/active_admin_countless/_page.html.erb +0 -12
  250. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +0 -11
  251. data/app/views/layouts/active_admin.html.arb +0 -2
  252. data/lib/active_admin/abstract_view_factory.rb +0 -48
  253. data/lib/active_admin/asset_registration.rb +0 -30
  254. data/lib/active_admin/base_controller/menu.rb +0 -35
  255. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +0 -59
  256. data/lib/active_admin/filters/active_sidebar.rb +0 -28
  257. data/lib/active_admin/generators/boilerplate.rb +0 -54
  258. data/lib/active_admin/helpers/collection.rb +0 -21
  259. data/lib/active_admin/helpers/i18n.rb +0 -8
  260. data/lib/active_admin/inputs/datepicker_input.rb +0 -28
  261. data/lib/active_admin/inputs/filters/date_picker_input.rb +0 -14
  262. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +0 -24
  263. data/lib/active_admin/orm/mongoid.rb +0 -2
  264. data/lib/active_admin/resource_controller/sidebars.rb +0 -19
  265. data/lib/active_admin/resource_controller.rb +0 -68
  266. data/lib/active_admin/view_factory.rb +0 -28
  267. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +0 -13
  268. data/lib/active_admin/view_helpers/auto_link_helper.rb +0 -46
  269. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +0 -34
  270. data/lib/active_admin/view_helpers/display_helper.rb +0 -119
  271. data/lib/active_admin/view_helpers/download_format_links_helper.rb +0 -60
  272. data/lib/active_admin/view_helpers/fields_for.rb +0 -51
  273. data/lib/active_admin/view_helpers/flash_helper.rb +0 -15
  274. data/lib/active_admin/view_helpers/form_helper.rb +0 -21
  275. data/lib/active_admin/view_helpers/scope_name_helper.rb +0 -17
  276. data/lib/active_admin/view_helpers/sidebar_helper.rb +0 -16
  277. data/lib/active_admin/view_helpers/title_helper.rb +0 -12
  278. data/lib/active_admin/view_helpers/view_factory_helper.rb +0 -12
  279. data/lib/active_admin/views/action_items.rb +0 -18
  280. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +0 -59
  281. data/lib/active_admin/views/components/blank_slate.rb +0 -18
  282. data/lib/active_admin/views/components/columns.rb +0 -162
  283. data/lib/active_admin/views/components/dropdown_menu.rb +0 -69
  284. data/lib/active_admin/views/components/menu.rb +0 -33
  285. data/lib/active_admin/views/components/menu_item.rb +0 -59
  286. data/lib/active_admin/views/components/sidebar.rb +0 -14
  287. data/lib/active_admin/views/components/sidebar_section.rb +0 -35
  288. data/lib/active_admin/views/components/site_title.rb +0 -55
  289. data/lib/active_admin/views/components/unsupported_browser.rb +0 -12
  290. data/lib/active_admin/views/footer.rb +0 -32
  291. data/lib/active_admin/views/header.rb +0 -20
  292. data/lib/active_admin/views/index_as_block.rb +0 -37
  293. data/lib/active_admin/views/index_as_blog.rb +0 -156
  294. data/lib/active_admin/views/index_as_grid.rb +0 -81
  295. data/lib/active_admin/views/pages/base.rb +0 -134
  296. data/lib/active_admin/views/pages/form.rb +0 -65
  297. data/lib/active_admin/views/pages/index.rb +0 -166
  298. data/lib/active_admin/views/pages/layout.rb +0 -27
  299. data/lib/active_admin/views/pages/page.rb +0 -31
  300. data/lib/active_admin/views/pages/show.rb +0 -60
  301. data/lib/active_admin/views/tabbed_navigation.rb +0 -12
  302. data/lib/active_admin/views/title_bar.rb +0 -56
  303. data/lib/generators/active_admin/assets/templates/active_admin.js +0 -1
  304. data/lib/generators/active_admin/assets/templates/active_admin.scss +0 -17
  305. data/lib/generators/active_admin/resource/templates/admin.rb.erb +0 -46
  306. data/lib/generators/active_admin/webpacker/plugins/jquery.js +0 -7
  307. data/lib/generators/active_admin/webpacker/templates/active_admin.js +0 -5
  308. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +0 -17
  309. data/lib/generators/active_admin/webpacker/templates/print.scss +0 -2
  310. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +0 -27
  311. data/vendor/assets/javascripts/jquery-ui/data.js +0 -45
  312. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +0 -51
  313. data/vendor/assets/javascripts/jquery-ui/focusable.js +0 -89
  314. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +0 -83
  315. data/vendor/assets/javascripts/jquery-ui/form.js +0 -25
  316. data/vendor/assets/javascripts/jquery-ui/ie.js +0 -20
  317. data/vendor/assets/javascripts/jquery-ui/keycode.js +0 -51
  318. data/vendor/assets/javascripts/jquery-ui/labels.js +0 -71
  319. data/vendor/assets/javascripts/jquery-ui/plugin.js +0 -49
  320. data/vendor/assets/javascripts/jquery-ui/position.js +0 -513
  321. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +0 -46
  322. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +0 -27
  323. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +0 -50
  324. data/vendor/assets/javascripts/jquery-ui/tabbable.js +0 -41
  325. data/vendor/assets/javascripts/jquery-ui/unique-id.js +0 -54
  326. data/vendor/assets/javascripts/jquery-ui/version.js +0 -20
  327. data/vendor/assets/javascripts/jquery-ui/widget.js +0 -758
  328. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +0 -454
  329. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +0 -294
  330. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +0 -304
  331. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +0 -2243
  332. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +0 -971
  333. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +0 -1268
  334. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +0 -241
  335. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +0 -1228
  336. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +0 -1622
  337. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +0 -931
  338. /data/{lib → app/controllers}/active_admin/base_controller/authorization.rb +0 -0
  339. /data/{lib → app/controllers}/active_admin/resource_controller/polymorphic_routes.rb +0 -0
  340. /data/{lib → app/controllers}/active_admin/resource_controller/resource_class_methods.rb +0 -0
  341. /data/lib/{active_admin/orm/mongoid/.gitkeep → generators/active_admin/assets/templates/builds/.keep} +0 -0
@@ -1,971 +0,0 @@
1
- //= require jquery-ui/widgets/button
2
- //= require jquery-ui/widgets/draggable
3
- //= require jquery-ui/widgets/mouse
4
- //= require jquery-ui/widgets/resizable
5
- //= require jquery-ui/focusable
6
- //= require jquery-ui/keycode
7
- //= require jquery-ui/position
8
- //= require jquery-ui/safe-active-element
9
- //= require jquery-ui/safe-blur
10
- //= require jquery-ui/tabbable
11
- //= require jquery-ui/unique-id
12
- //= require jquery-ui/version
13
- //= require jquery-ui/widget
14
-
15
- /*!
16
- * jQuery UI Dialog 1.13.3
17
- * https://jqueryui.com
18
- *
19
- * Copyright OpenJS Foundation and other contributors
20
- * Released under the MIT license.
21
- * https://jquery.org/license
22
- */
23
-
24
- //>>label: Dialog
25
- //>>group: Widgets
26
- //>>description: Displays customizable dialog windows.
27
- //>>docs: https://api.jqueryui.com/dialog/
28
- //>>demos: https://jqueryui.com/dialog/
29
- //>>css.structure: ../../themes/base/core.css
30
- //>>css.structure: ../../themes/base/dialog.css
31
- //>>css.theme: ../../themes/base/theme.css
32
-
33
- ( function( factory ) {
34
- "use strict";
35
-
36
- if ( typeof define === "function" && define.amd ) {
37
-
38
- // AMD. Register as an anonymous module.
39
- define( [
40
- "jquery",
41
- "./button",
42
- "./draggable",
43
- "./mouse",
44
- "./resizable",
45
- "../focusable",
46
- "../keycode",
47
- "../position",
48
- "../safe-active-element",
49
- "../safe-blur",
50
- "../tabbable",
51
- "../unique-id",
52
- "../version",
53
- "../widget"
54
- ], factory );
55
- } else {
56
-
57
- // Browser globals
58
- factory( jQuery );
59
- }
60
- } )( function( $ ) {
61
- "use strict";
62
-
63
- $.widget( "ui.dialog", {
64
- version: "1.13.3",
65
- options: {
66
- appendTo: "body",
67
- autoOpen: true,
68
- buttons: [],
69
- classes: {
70
- "ui-dialog": "ui-corner-all",
71
- "ui-dialog-titlebar": "ui-corner-all"
72
- },
73
- closeOnEscape: true,
74
- closeText: "Close",
75
- draggable: true,
76
- hide: null,
77
- height: "auto",
78
- maxHeight: null,
79
- maxWidth: null,
80
- minHeight: 150,
81
- minWidth: 150,
82
- modal: false,
83
- position: {
84
- my: "center",
85
- at: "center",
86
- of: window,
87
- collision: "fit",
88
-
89
- // Ensure the titlebar is always visible
90
- using: function( pos ) {
91
- var topOffset = $( this ).css( pos ).offset().top;
92
- if ( topOffset < 0 ) {
93
- $( this ).css( "top", pos.top - topOffset );
94
- }
95
- }
96
- },
97
- resizable: true,
98
- show: null,
99
- title: null,
100
- width: 300,
101
-
102
- // Callbacks
103
- beforeClose: null,
104
- close: null,
105
- drag: null,
106
- dragStart: null,
107
- dragStop: null,
108
- focus: null,
109
- open: null,
110
- resize: null,
111
- resizeStart: null,
112
- resizeStop: null
113
- },
114
-
115
- sizeRelatedOptions: {
116
- buttons: true,
117
- height: true,
118
- maxHeight: true,
119
- maxWidth: true,
120
- minHeight: true,
121
- minWidth: true,
122
- width: true
123
- },
124
-
125
- resizableRelatedOptions: {
126
- maxHeight: true,
127
- maxWidth: true,
128
- minHeight: true,
129
- minWidth: true
130
- },
131
-
132
- _create: function() {
133
- this.originalCss = {
134
- display: this.element[ 0 ].style.display,
135
- width: this.element[ 0 ].style.width,
136
- minHeight: this.element[ 0 ].style.minHeight,
137
- maxHeight: this.element[ 0 ].style.maxHeight,
138
- height: this.element[ 0 ].style.height
139
- };
140
- this.originalPosition = {
141
- parent: this.element.parent(),
142
- index: this.element.parent().children().index( this.element )
143
- };
144
- this.originalTitle = this.element.attr( "title" );
145
- if ( this.options.title == null && this.originalTitle != null ) {
146
- this.options.title = this.originalTitle;
147
- }
148
-
149
- // Dialogs can't be disabled
150
- if ( this.options.disabled ) {
151
- this.options.disabled = false;
152
- }
153
-
154
- this._createWrapper();
155
-
156
- this.element
157
- .show()
158
- .removeAttr( "title" )
159
- .appendTo( this.uiDialog );
160
-
161
- this._addClass( "ui-dialog-content", "ui-widget-content" );
162
-
163
- this._createTitlebar();
164
- this._createButtonPane();
165
-
166
- if ( this.options.draggable && $.fn.draggable ) {
167
- this._makeDraggable();
168
- }
169
- if ( this.options.resizable && $.fn.resizable ) {
170
- this._makeResizable();
171
- }
172
-
173
- this._isOpen = false;
174
-
175
- this._trackFocus();
176
- },
177
-
178
- _init: function() {
179
- if ( this.options.autoOpen ) {
180
- this.open();
181
- }
182
- },
183
-
184
- _appendTo: function() {
185
- var element = this.options.appendTo;
186
- if ( element && ( element.jquery || element.nodeType ) ) {
187
- return $( element );
188
- }
189
- return this.document.find( element || "body" ).eq( 0 );
190
- },
191
-
192
- _destroy: function() {
193
- var next,
194
- originalPosition = this.originalPosition;
195
-
196
- this._untrackInstance();
197
- this._destroyOverlay();
198
-
199
- this.element
200
- .removeUniqueId()
201
- .css( this.originalCss )
202
-
203
- // Without detaching first, the following becomes really slow
204
- .detach();
205
-
206
- this.uiDialog.remove();
207
-
208
- if ( this.originalTitle ) {
209
- this.element.attr( "title", this.originalTitle );
210
- }
211
-
212
- next = originalPosition.parent.children().eq( originalPosition.index );
213
-
214
- // Don't try to place the dialog next to itself (#8613)
215
- if ( next.length && next[ 0 ] !== this.element[ 0 ] ) {
216
- next.before( this.element );
217
- } else {
218
- originalPosition.parent.append( this.element );
219
- }
220
- },
221
-
222
- widget: function() {
223
- return this.uiDialog;
224
- },
225
-
226
- disable: $.noop,
227
- enable: $.noop,
228
-
229
- close: function( event ) {
230
- var that = this;
231
-
232
- if ( !this._isOpen || this._trigger( "beforeClose", event ) === false ) {
233
- return;
234
- }
235
-
236
- this._isOpen = false;
237
- this._focusedElement = null;
238
- this._destroyOverlay();
239
- this._untrackInstance();
240
-
241
- if ( !this.opener.filter( ":focusable" ).trigger( "focus" ).length ) {
242
-
243
- // Hiding a focused element doesn't trigger blur in WebKit
244
- // so in case we have nothing to focus on, explicitly blur the active element
245
- // https://bugs.webkit.org/show_bug.cgi?id=47182
246
- $.ui.safeBlur( $.ui.safeActiveElement( this.document[ 0 ] ) );
247
- }
248
-
249
- this._hide( this.uiDialog, this.options.hide, function() {
250
- that._trigger( "close", event );
251
- } );
252
- },
253
-
254
- isOpen: function() {
255
- return this._isOpen;
256
- },
257
-
258
- moveToTop: function() {
259
- this._moveToTop();
260
- },
261
-
262
- _moveToTop: function( event, silent ) {
263
- var moved = false,
264
- zIndices = this.uiDialog.siblings( ".ui-front:visible" ).map( function() {
265
- return +$( this ).css( "z-index" );
266
- } ).get(),
267
- zIndexMax = Math.max.apply( null, zIndices );
268
-
269
- if ( zIndexMax >= +this.uiDialog.css( "z-index" ) ) {
270
- this.uiDialog.css( "z-index", zIndexMax + 1 );
271
- moved = true;
272
- }
273
-
274
- if ( moved && !silent ) {
275
- this._trigger( "focus", event );
276
- }
277
- return moved;
278
- },
279
-
280
- open: function() {
281
- var that = this;
282
- if ( this._isOpen ) {
283
- if ( this._moveToTop() ) {
284
- this._focusTabbable();
285
- }
286
- return;
287
- }
288
-
289
- this._isOpen = true;
290
- this.opener = $( $.ui.safeActiveElement( this.document[ 0 ] ) );
291
-
292
- this._size();
293
- this._position();
294
- this._createOverlay();
295
- this._moveToTop( null, true );
296
-
297
- // Ensure the overlay is moved to the top with the dialog, but only when
298
- // opening. The overlay shouldn't move after the dialog is open so that
299
- // modeless dialogs opened after the modal dialog stack properly.
300
- if ( this.overlay ) {
301
- this.overlay.css( "z-index", this.uiDialog.css( "z-index" ) - 1 );
302
- }
303
-
304
- this._show( this.uiDialog, this.options.show, function() {
305
- that._focusTabbable();
306
- that._trigger( "focus" );
307
- } );
308
-
309
- // Track the dialog immediately upon opening in case a focus event
310
- // somehow occurs outside of the dialog before an element inside the
311
- // dialog is focused (#10152)
312
- this._makeFocusTarget();
313
-
314
- this._trigger( "open" );
315
- },
316
-
317
- _focusTabbable: function() {
318
-
319
- // Set focus to the first match:
320
- // 1. An element that was focused previously
321
- // 2. First element inside the dialog matching [autofocus]
322
- // 3. Tabbable element inside the content element
323
- // 4. Tabbable element inside the buttonpane
324
- // 5. The close button
325
- // 6. The dialog itself
326
- var hasFocus = this._focusedElement;
327
- if ( !hasFocus ) {
328
- hasFocus = this.element.find( "[autofocus]" );
329
- }
330
- if ( !hasFocus.length ) {
331
- hasFocus = this.element.find( ":tabbable" );
332
- }
333
- if ( !hasFocus.length ) {
334
- hasFocus = this.uiDialogButtonPane.find( ":tabbable" );
335
- }
336
- if ( !hasFocus.length ) {
337
- hasFocus = this.uiDialogTitlebarClose.filter( ":tabbable" );
338
- }
339
- if ( !hasFocus.length ) {
340
- hasFocus = this.uiDialog;
341
- }
342
- hasFocus.eq( 0 ).trigger( "focus" );
343
- },
344
-
345
- _restoreTabbableFocus: function() {
346
- var activeElement = $.ui.safeActiveElement( this.document[ 0 ] ),
347
- isActive = this.uiDialog[ 0 ] === activeElement ||
348
- $.contains( this.uiDialog[ 0 ], activeElement );
349
- if ( !isActive ) {
350
- this._focusTabbable();
351
- }
352
- },
353
-
354
- _keepFocus: function( event ) {
355
- event.preventDefault();
356
- this._restoreTabbableFocus();
357
-
358
- // support: IE
359
- // IE <= 8 doesn't prevent moving focus even with event.preventDefault()
360
- // so we check again later
361
- this._delay( this._restoreTabbableFocus );
362
- },
363
-
364
- _createWrapper: function() {
365
- this.uiDialog = $( "<div>" )
366
- .hide()
367
- .attr( {
368
-
369
- // Setting tabIndex makes the div focusable
370
- tabIndex: -1,
371
- role: "dialog"
372
- } )
373
- .appendTo( this._appendTo() );
374
-
375
- this._addClass( this.uiDialog, "ui-dialog", "ui-widget ui-widget-content ui-front" );
376
- this._on( this.uiDialog, {
377
- keydown: function( event ) {
378
- if ( this.options.closeOnEscape && !event.isDefaultPrevented() && event.keyCode &&
379
- event.keyCode === $.ui.keyCode.ESCAPE ) {
380
- event.preventDefault();
381
- this.close( event );
382
- return;
383
- }
384
-
385
- // Prevent tabbing out of dialogs
386
- if ( event.keyCode !== $.ui.keyCode.TAB || event.isDefaultPrevented() ) {
387
- return;
388
- }
389
- var tabbables = this.uiDialog.find( ":tabbable" ),
390
- first = tabbables.first(),
391
- last = tabbables.last();
392
-
393
- if ( ( event.target === last[ 0 ] || event.target === this.uiDialog[ 0 ] ) &&
394
- !event.shiftKey ) {
395
- this._delay( function() {
396
- first.trigger( "focus" );
397
- } );
398
- event.preventDefault();
399
- } else if ( ( event.target === first[ 0 ] ||
400
- event.target === this.uiDialog[ 0 ] ) && event.shiftKey ) {
401
- this._delay( function() {
402
- last.trigger( "focus" );
403
- } );
404
- event.preventDefault();
405
- }
406
- },
407
- mousedown: function( event ) {
408
- if ( this._moveToTop( event ) ) {
409
- this._focusTabbable();
410
- }
411
- }
412
- } );
413
-
414
- // We assume that any existing aria-describedby attribute means
415
- // that the dialog content is marked up properly
416
- // otherwise we brute force the content as the description
417
- if ( !this.element.find( "[aria-describedby]" ).length ) {
418
- this.uiDialog.attr( {
419
- "aria-describedby": this.element.uniqueId().attr( "id" )
420
- } );
421
- }
422
- },
423
-
424
- _createTitlebar: function() {
425
- var uiDialogTitle;
426
-
427
- this.uiDialogTitlebar = $( "<div>" );
428
- this._addClass( this.uiDialogTitlebar,
429
- "ui-dialog-titlebar", "ui-widget-header ui-helper-clearfix" );
430
- this._on( this.uiDialogTitlebar, {
431
- mousedown: function( event ) {
432
-
433
- // Don't prevent click on close button (#8838)
434
- // Focusing a dialog that is partially scrolled out of view
435
- // causes the browser to scroll it into view, preventing the click event
436
- if ( !$( event.target ).closest( ".ui-dialog-titlebar-close" ) ) {
437
-
438
- // Dialog isn't getting focus when dragging (#8063)
439
- this.uiDialog.trigger( "focus" );
440
- }
441
- }
442
- } );
443
-
444
- // Support: IE
445
- // Use type="button" to prevent enter keypresses in textboxes from closing the
446
- // dialog in IE (#9312)
447
- this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
448
- .button( {
449
- label: $( "<a>" ).text( this.options.closeText ).html(),
450
- icon: "ui-icon-closethick",
451
- showLabel: false
452
- } )
453
- .appendTo( this.uiDialogTitlebar );
454
-
455
- this._addClass( this.uiDialogTitlebarClose, "ui-dialog-titlebar-close" );
456
- this._on( this.uiDialogTitlebarClose, {
457
- click: function( event ) {
458
- event.preventDefault();
459
- this.close( event );
460
- }
461
- } );
462
-
463
- uiDialogTitle = $( "<span>" ).uniqueId().prependTo( this.uiDialogTitlebar );
464
- this._addClass( uiDialogTitle, "ui-dialog-title" );
465
- this._title( uiDialogTitle );
466
-
467
- this.uiDialogTitlebar.prependTo( this.uiDialog );
468
-
469
- this.uiDialog.attr( {
470
- "aria-labelledby": uiDialogTitle.attr( "id" )
471
- } );
472
- },
473
-
474
- _title: function( title ) {
475
- if ( this.options.title ) {
476
- title.text( this.options.title );
477
- } else {
478
- title.html( "&#160;" );
479
- }
480
- },
481
-
482
- _createButtonPane: function() {
483
- this.uiDialogButtonPane = $( "<div>" );
484
- this._addClass( this.uiDialogButtonPane, "ui-dialog-buttonpane",
485
- "ui-widget-content ui-helper-clearfix" );
486
-
487
- this.uiButtonSet = $( "<div>" )
488
- .appendTo( this.uiDialogButtonPane );
489
- this._addClass( this.uiButtonSet, "ui-dialog-buttonset" );
490
-
491
- this._createButtons();
492
- },
493
-
494
- _createButtons: function() {
495
- var that = this,
496
- buttons = this.options.buttons;
497
-
498
- // If we already have a button pane, remove it
499
- this.uiDialogButtonPane.remove();
500
- this.uiButtonSet.empty();
501
-
502
- if ( $.isEmptyObject( buttons ) || ( Array.isArray( buttons ) && !buttons.length ) ) {
503
- this._removeClass( this.uiDialog, "ui-dialog-buttons" );
504
- return;
505
- }
506
-
507
- $.each( buttons, function( name, props ) {
508
- var click, buttonOptions;
509
- props = typeof props === "function" ?
510
- { click: props, text: name } :
511
- props;
512
-
513
- // Default to a non-submitting button
514
- props = $.extend( { type: "button" }, props );
515
-
516
- // Change the context for the click callback to be the main element
517
- click = props.click;
518
- buttonOptions = {
519
- icon: props.icon,
520
- iconPosition: props.iconPosition,
521
- showLabel: props.showLabel,
522
-
523
- // Deprecated options
524
- icons: props.icons,
525
- text: props.text
526
- };
527
-
528
- delete props.click;
529
- delete props.icon;
530
- delete props.iconPosition;
531
- delete props.showLabel;
532
-
533
- // Deprecated options
534
- delete props.icons;
535
- if ( typeof props.text === "boolean" ) {
536
- delete props.text;
537
- }
538
-
539
- $( "<button></button>", props )
540
- .button( buttonOptions )
541
- .appendTo( that.uiButtonSet )
542
- .on( "click", function() {
543
- click.apply( that.element[ 0 ], arguments );
544
- } );
545
- } );
546
- this._addClass( this.uiDialog, "ui-dialog-buttons" );
547
- this.uiDialogButtonPane.appendTo( this.uiDialog );
548
- },
549
-
550
- _makeDraggable: function() {
551
- var that = this,
552
- options = this.options;
553
-
554
- function filteredUi( ui ) {
555
- return {
556
- position: ui.position,
557
- offset: ui.offset
558
- };
559
- }
560
-
561
- this.uiDialog.draggable( {
562
- cancel: ".ui-dialog-content, .ui-dialog-titlebar-close",
563
- handle: ".ui-dialog-titlebar",
564
- containment: "document",
565
- start: function( event, ui ) {
566
- that._addClass( $( this ), "ui-dialog-dragging" );
567
- that._blockFrames();
568
- that._trigger( "dragStart", event, filteredUi( ui ) );
569
- },
570
- drag: function( event, ui ) {
571
- that._trigger( "drag", event, filteredUi( ui ) );
572
- },
573
- stop: function( event, ui ) {
574
- var left = ui.offset.left - that.document.scrollLeft(),
575
- top = ui.offset.top - that.document.scrollTop();
576
-
577
- options.position = {
578
- my: "left top",
579
- at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
580
- "top" + ( top >= 0 ? "+" : "" ) + top,
581
- of: that.window
582
- };
583
- that._removeClass( $( this ), "ui-dialog-dragging" );
584
- that._unblockFrames();
585
- that._trigger( "dragStop", event, filteredUi( ui ) );
586
- }
587
- } );
588
- },
589
-
590
- _makeResizable: function() {
591
- var that = this,
592
- options = this.options,
593
- handles = options.resizable,
594
-
595
- // .ui-resizable has position: relative defined in the stylesheet
596
- // but dialogs have to use absolute or fixed positioning
597
- position = this.uiDialog.css( "position" ),
598
- resizeHandles = typeof handles === "string" ?
599
- handles :
600
- "n,e,s,w,se,sw,ne,nw";
601
-
602
- function filteredUi( ui ) {
603
- return {
604
- originalPosition: ui.originalPosition,
605
- originalSize: ui.originalSize,
606
- position: ui.position,
607
- size: ui.size
608
- };
609
- }
610
-
611
- this.uiDialog.resizable( {
612
- cancel: ".ui-dialog-content",
613
- containment: "document",
614
- alsoResize: this.element,
615
- maxWidth: options.maxWidth,
616
- maxHeight: options.maxHeight,
617
- minWidth: options.minWidth,
618
- minHeight: this._minHeight(),
619
- handles: resizeHandles,
620
- start: function( event, ui ) {
621
- that._addClass( $( this ), "ui-dialog-resizing" );
622
- that._blockFrames();
623
- that._trigger( "resizeStart", event, filteredUi( ui ) );
624
- },
625
- resize: function( event, ui ) {
626
- that._trigger( "resize", event, filteredUi( ui ) );
627
- },
628
- stop: function( event, ui ) {
629
- var offset = that.uiDialog.offset(),
630
- left = offset.left - that.document.scrollLeft(),
631
- top = offset.top - that.document.scrollTop();
632
-
633
- options.height = that.uiDialog.height();
634
- options.width = that.uiDialog.width();
635
- options.position = {
636
- my: "left top",
637
- at: "left" + ( left >= 0 ? "+" : "" ) + left + " " +
638
- "top" + ( top >= 0 ? "+" : "" ) + top,
639
- of: that.window
640
- };
641
- that._removeClass( $( this ), "ui-dialog-resizing" );
642
- that._unblockFrames();
643
- that._trigger( "resizeStop", event, filteredUi( ui ) );
644
- }
645
- } )
646
- .css( "position", position );
647
- },
648
-
649
- _trackFocus: function() {
650
- this._on( this.widget(), {
651
- focusin: function( event ) {
652
- this._makeFocusTarget();
653
- this._focusedElement = $( event.target );
654
- }
655
- } );
656
- },
657
-
658
- _makeFocusTarget: function() {
659
- this._untrackInstance();
660
- this._trackingInstances().unshift( this );
661
- },
662
-
663
- _untrackInstance: function() {
664
- var instances = this._trackingInstances(),
665
- exists = $.inArray( this, instances );
666
- if ( exists !== -1 ) {
667
- instances.splice( exists, 1 );
668
- }
669
- },
670
-
671
- _trackingInstances: function() {
672
- var instances = this.document.data( "ui-dialog-instances" );
673
- if ( !instances ) {
674
- instances = [];
675
- this.document.data( "ui-dialog-instances", instances );
676
- }
677
- return instances;
678
- },
679
-
680
- _minHeight: function() {
681
- var options = this.options;
682
-
683
- return options.height === "auto" ?
684
- options.minHeight :
685
- Math.min( options.minHeight, options.height );
686
- },
687
-
688
- _position: function() {
689
-
690
- // Need to show the dialog to get the actual offset in the position plugin
691
- var isVisible = this.uiDialog.is( ":visible" );
692
- if ( !isVisible ) {
693
- this.uiDialog.show();
694
- }
695
- this.uiDialog.position( this.options.position );
696
- if ( !isVisible ) {
697
- this.uiDialog.hide();
698
- }
699
- },
700
-
701
- _setOptions: function( options ) {
702
- var that = this,
703
- resize = false,
704
- resizableOptions = {};
705
-
706
- $.each( options, function( key, value ) {
707
- that._setOption( key, value );
708
-
709
- if ( key in that.sizeRelatedOptions ) {
710
- resize = true;
711
- }
712
- if ( key in that.resizableRelatedOptions ) {
713
- resizableOptions[ key ] = value;
714
- }
715
- } );
716
-
717
- if ( resize ) {
718
- this._size();
719
- this._position();
720
- }
721
- if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
722
- this.uiDialog.resizable( "option", resizableOptions );
723
- }
724
- },
725
-
726
- _setOption: function( key, value ) {
727
- var isDraggable, isResizable,
728
- uiDialog = this.uiDialog;
729
-
730
- if ( key === "disabled" ) {
731
- return;
732
- }
733
-
734
- this._super( key, value );
735
-
736
- if ( key === "appendTo" ) {
737
- this.uiDialog.appendTo( this._appendTo() );
738
- }
739
-
740
- if ( key === "buttons" ) {
741
- this._createButtons();
742
- }
743
-
744
- if ( key === "closeText" ) {
745
- this.uiDialogTitlebarClose.button( {
746
-
747
- // Ensure that we always pass a string
748
- label: $( "<a>" ).text( "" + this.options.closeText ).html()
749
- } );
750
- }
751
-
752
- if ( key === "draggable" ) {
753
- isDraggable = uiDialog.is( ":data(ui-draggable)" );
754
- if ( isDraggable && !value ) {
755
- uiDialog.draggable( "destroy" );
756
- }
757
-
758
- if ( !isDraggable && value ) {
759
- this._makeDraggable();
760
- }
761
- }
762
-
763
- if ( key === "position" ) {
764
- this._position();
765
- }
766
-
767
- if ( key === "resizable" ) {
768
-
769
- // currently resizable, becoming non-resizable
770
- isResizable = uiDialog.is( ":data(ui-resizable)" );
771
- if ( isResizable && !value ) {
772
- uiDialog.resizable( "destroy" );
773
- }
774
-
775
- // Currently resizable, changing handles
776
- if ( isResizable && typeof value === "string" ) {
777
- uiDialog.resizable( "option", "handles", value );
778
- }
779
-
780
- // Currently non-resizable, becoming resizable
781
- if ( !isResizable && value !== false ) {
782
- this._makeResizable();
783
- }
784
- }
785
-
786
- if ( key === "title" ) {
787
- this._title( this.uiDialogTitlebar.find( ".ui-dialog-title" ) );
788
- }
789
- },
790
-
791
- _size: function() {
792
-
793
- // If the user has resized the dialog, the .ui-dialog and .ui-dialog-content
794
- // divs will both have width and height set, so we need to reset them
795
- var nonContentHeight, minContentHeight, maxContentHeight,
796
- options = this.options;
797
-
798
- // Reset content sizing
799
- this.element.show().css( {
800
- width: "auto",
801
- minHeight: 0,
802
- maxHeight: "none",
803
- height: 0
804
- } );
805
-
806
- if ( options.minWidth > options.width ) {
807
- options.width = options.minWidth;
808
- }
809
-
810
- // Reset wrapper sizing
811
- // determine the height of all the non-content elements
812
- nonContentHeight = this.uiDialog.css( {
813
- height: "auto",
814
- width: options.width
815
- } )
816
- .outerHeight();
817
- minContentHeight = Math.max( 0, options.minHeight - nonContentHeight );
818
- maxContentHeight = typeof options.maxHeight === "number" ?
819
- Math.max( 0, options.maxHeight - nonContentHeight ) :
820
- "none";
821
-
822
- if ( options.height === "auto" ) {
823
- this.element.css( {
824
- minHeight: minContentHeight,
825
- maxHeight: maxContentHeight,
826
- height: "auto"
827
- } );
828
- } else {
829
- this.element.height( Math.max( 0, options.height - nonContentHeight ) );
830
- }
831
-
832
- if ( this.uiDialog.is( ":data(ui-resizable)" ) ) {
833
- this.uiDialog.resizable( "option", "minHeight", this._minHeight() );
834
- }
835
- },
836
-
837
- _blockFrames: function() {
838
- this.iframeBlocks = this.document.find( "iframe" ).map( function() {
839
- var iframe = $( this );
840
-
841
- return $( "<div>" )
842
- .css( {
843
- position: "absolute",
844
- width: iframe.outerWidth(),
845
- height: iframe.outerHeight()
846
- } )
847
- .appendTo( iframe.parent() )
848
- .offset( iframe.offset() )[ 0 ];
849
- } );
850
- },
851
-
852
- _unblockFrames: function() {
853
- if ( this.iframeBlocks ) {
854
- this.iframeBlocks.remove();
855
- delete this.iframeBlocks;
856
- }
857
- },
858
-
859
- _allowInteraction: function( event ) {
860
- if ( $( event.target ).closest( ".ui-dialog" ).length ) {
861
- return true;
862
- }
863
-
864
- // TODO: Remove hack when datepicker implements
865
- // the .ui-front logic (#8989)
866
- return !!$( event.target ).closest( ".ui-datepicker" ).length;
867
- },
868
-
869
- _createOverlay: function() {
870
- if ( !this.options.modal ) {
871
- return;
872
- }
873
-
874
- var jqMinor = $.fn.jquery.substring( 0, 4 );
875
-
876
- // We use a delay in case the overlay is created from an
877
- // event that we're going to be cancelling (#2804)
878
- var isOpening = true;
879
- this._delay( function() {
880
- isOpening = false;
881
- } );
882
-
883
- if ( !this.document.data( "ui-dialog-overlays" ) ) {
884
-
885
- // Prevent use of anchors and inputs
886
- // This doesn't use `_on()` because it is a shared event handler
887
- // across all open modal dialogs.
888
- this.document.on( "focusin.ui-dialog", function( event ) {
889
- if ( isOpening ) {
890
- return;
891
- }
892
-
893
- var instance = this._trackingInstances()[ 0 ];
894
- if ( !instance._allowInteraction( event ) ) {
895
- event.preventDefault();
896
- instance._focusTabbable();
897
-
898
- // Support: jQuery >=3.4 <3.7 only
899
- // In jQuery 3.4-3.6, there are multiple issues with focus/blur
900
- // trigger chains or when triggering is done on a hidden element
901
- // at least once.
902
- // Trigger focus in a delay in addition if needed to avoid the issues.
903
- // See https://github.com/jquery/jquery/issues/4382
904
- // See https://github.com/jquery/jquery/issues/4856
905
- // See https://github.com/jquery/jquery/issues/4950
906
- if ( jqMinor === "3.4." || jqMinor === "3.5." || jqMinor === "3.6." ) {
907
- instance._delay( instance._restoreTabbableFocus );
908
- }
909
- }
910
- }.bind( this ) );
911
- }
912
-
913
- this.overlay = $( "<div>" )
914
- .appendTo( this._appendTo() );
915
-
916
- this._addClass( this.overlay, null, "ui-widget-overlay ui-front" );
917
- this._on( this.overlay, {
918
- mousedown: "_keepFocus"
919
- } );
920
- this.document.data( "ui-dialog-overlays",
921
- ( this.document.data( "ui-dialog-overlays" ) || 0 ) + 1 );
922
- },
923
-
924
- _destroyOverlay: function() {
925
- if ( !this.options.modal ) {
926
- return;
927
- }
928
-
929
- if ( this.overlay ) {
930
- var overlays = this.document.data( "ui-dialog-overlays" ) - 1;
931
-
932
- if ( !overlays ) {
933
- this.document.off( "focusin.ui-dialog" );
934
- this.document.removeData( "ui-dialog-overlays" );
935
- } else {
936
- this.document.data( "ui-dialog-overlays", overlays );
937
- }
938
-
939
- this.overlay.remove();
940
- this.overlay = null;
941
- }
942
- }
943
- } );
944
-
945
- // DEPRECATED
946
- // TODO: switch return back to widget declaration at top of file when this is removed
947
- if ( $.uiBackCompat !== false ) {
948
-
949
- // Backcompat for dialogClass option
950
- $.widget( "ui.dialog", $.ui.dialog, {
951
- options: {
952
- dialogClass: ""
953
- },
954
- _createWrapper: function() {
955
- this._super();
956
- this.uiDialog.addClass( this.options.dialogClass );
957
- },
958
- _setOption: function( key, value ) {
959
- if ( key === "dialogClass" ) {
960
- this.uiDialog
961
- .removeClass( this.options.dialogClass )
962
- .addClass( value );
963
- }
964
- this._superApply( arguments );
965
- }
966
- } );
967
- }
968
-
969
- return $.ui.dialog;
970
-
971
- } );