ui_bibz 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. checksums.yaml +4 -4
  2. data/.overcommit.yml +5 -0
  3. data/.rubocop.yml +52 -0
  4. data/.rubocop_todo.yml +25 -0
  5. data/Gemfile +5 -3
  6. data/Gemfile.lock +25 -1
  7. data/Rakefile +8 -6
  8. data/config/initializers/simple_form_init.rb +3 -1
  9. data/config/initializers/will_paginate.rb +11 -6
  10. data/lib/generators/ui_bibz/install_generator.rb +6 -5
  11. data/lib/generators/ui_bibz/templates/ui_bibz_initializer.rb +1 -1
  12. data/lib/tasks/ui_bibz_tasks.rake +2 -0
  13. data/lib/ui_bibz.rb +91 -100
  14. data/lib/ui_bibz/concerns/models/searchable.rb +56 -61
  15. data/lib/ui_bibz/helpers/ui/core/boxes_helper.rb +9 -9
  16. data/lib/ui_bibz/helpers/ui/core/forms_helper.rb +26 -26
  17. data/lib/ui_bibz/helpers/ui/core/icons_helper.rb +6 -6
  18. data/lib/ui_bibz/helpers/ui/core/layouts_helper.rb +5 -5
  19. data/lib/ui_bibz/helpers/ui/core/lists_helper.rb +5 -4
  20. data/lib/ui_bibz/helpers/ui/core/navigations_helper.rb +9 -9
  21. data/lib/ui_bibz/helpers/ui/core/notifications_helper.rb +11 -11
  22. data/lib/ui_bibz/helpers/ui/core/windows_helper.rb +3 -3
  23. data/lib/ui_bibz/helpers/ui/core_helper.rb +2 -0
  24. data/lib/ui_bibz/helpers/ui/ux_helper.rb +12 -12
  25. data/lib/ui_bibz/helpers/utils_helper.rb +8 -11
  26. data/lib/ui_bibz/infos.rb +9 -7
  27. data/lib/ui_bibz/inputs/ui_bibz_form/ui_bibz_form_builder.rb +40 -39
  28. data/lib/ui_bibz/inputs/ui_bibz_inputs/base_input.rb +6 -5
  29. data/lib/ui_bibz/inputs/ui_bibz_inputs/collection_input.rb +8 -6
  30. data/lib/ui_bibz/inputs/ui_bibz_inputs/string_input.rb +18 -18
  31. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_auto_complete_field_input.rb +3 -2
  32. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_box_switch_field_input.rb +3 -2
  33. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_checkbox_field_input.rb +3 -2
  34. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_choice_group_input.rb +6 -5
  35. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_date_picker_field_input.rb +3 -2
  36. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_dropdown_select_field_input.rb +3 -3
  37. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_file_field_input.rb +3 -2
  38. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_formula_field_input.rb +5 -4
  39. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_markdown_editor_field_input.rb +3 -2
  40. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_column_field_input.rb +3 -2
  41. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_multi_select_field_input.rb +3 -3
  42. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_number_field_input.rb +3 -2
  43. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_radio_field_input.rb +7 -7
  44. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_range_field_input.rb +3 -2
  45. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_select_field_input.rb +3 -2
  46. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_switch_field_input.rb +3 -2
  47. data/lib/ui_bibz/inputs/ui_bibz_inputs/ui_text_field_input.rb +3 -2
  48. data/lib/ui_bibz/rails/engine.rb +11 -15
  49. data/lib/ui_bibz/ui/base.rb +10 -6
  50. data/lib/ui_bibz/ui/core/boxes/card.rb +31 -32
  51. data/lib/ui_bibz/ui/core/boxes/card_accordion.rb +7 -8
  52. data/lib/ui_bibz/ui/core/boxes/card_column.rb +11 -12
  53. data/lib/ui_bibz/ui/core/boxes/card_deck.rb +11 -12
  54. data/lib/ui_bibz/ui/core/boxes/card_group.rb +11 -12
  55. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_link.rb +5 -6
  56. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_text.rb +5 -6
  57. data/lib/ui_bibz/ui/core/boxes/components/body/card_body_title.rb +5 -6
  58. data/lib/ui_bibz/ui/core/boxes/components/card_body.rb +11 -12
  59. data/lib/ui_bibz/ui/core/boxes/components/card_footer.rb +7 -8
  60. data/lib/ui_bibz/ui/core/boxes/components/card_header.rb +12 -13
  61. data/lib/ui_bibz/ui/core/boxes/components/card_image.rb +6 -7
  62. data/lib/ui_bibz/ui/core/boxes/components/card_list_group.rb +4 -5
  63. data/lib/ui_bibz/ui/core/boxes/components/card_tab_group.rb +5 -6
  64. data/lib/ui_bibz/ui/core/boxes/jumbotron.rb +5 -6
  65. data/lib/ui_bibz/ui/core/component.rb +22 -20
  66. data/lib/ui_bibz/ui/core/forms/buttons/button.rb +14 -15
  67. data/lib/ui_bibz/ui/core/forms/buttons/button_group.rb +14 -15
  68. data/lib/ui_bibz/ui/core/forms/buttons/button_link.rb +5 -6
  69. data/lib/ui_bibz/ui/core/forms/buttons/button_refresh.rb +11 -11
  70. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_dropdown.rb +5 -6
  71. data/lib/ui_bibz/ui/core/forms/buttons/components/button_group_split_dropdown.rb +5 -6
  72. data/lib/ui_bibz/ui/core/forms/choices/box_switch_field.rb +5 -6
  73. data/lib/ui_bibz/ui/core/forms/choices/checkbox_field.rb +10 -11
  74. data/lib/ui_bibz/ui/core/forms/choices/choice_group.rb +8 -9
  75. data/lib/ui_bibz/ui/core/forms/choices/components/choice.rb +5 -6
  76. data/lib/ui_bibz/ui/core/forms/choices/radio_field.rb +6 -7
  77. data/lib/ui_bibz/ui/core/forms/choices/switch_field.rb +4 -5
  78. data/lib/ui_bibz/ui/core/forms/dates/date_picker_field.rb +22 -23
  79. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_divider.rb +3 -5
  80. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_header.rb +4 -5
  81. data/lib/ui_bibz/ui/core/forms/dropdowns/components/dropdown_link.rb +6 -7
  82. data/lib/ui_bibz/ui/core/forms/dropdowns/dropdown.rb +21 -22
  83. data/lib/ui_bibz/ui/core/forms/dropdowns/split_dropdown.rb +8 -9
  84. data/lib/ui_bibz/ui/core/forms/files/file_field.rb +5 -6
  85. data/lib/ui_bibz/ui/core/forms/numbers/formula_field.rb +10 -11
  86. data/lib/ui_bibz/ui/core/forms/numbers/number_field.rb +3 -4
  87. data/lib/ui_bibz/ui/core/forms/numbers/range_field.rb +3 -4
  88. data/lib/ui_bibz/ui/core/forms/selects/abstract_select.rb +9 -9
  89. data/lib/ui_bibz/ui/core/forms/selects/dropdown_select_field.rb +6 -7
  90. data/lib/ui_bibz/ui/core/forms/selects/multi_column_field.rb +9 -10
  91. data/lib/ui_bibz/ui/core/forms/selects/multi_select_field.rb +13 -14
  92. data/lib/ui_bibz/ui/core/forms/selects/select_field.rb +6 -7
  93. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_addon.rb +4 -4
  94. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button.rb +3 -3
  95. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_group.rb +3 -3
  96. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_link.rb +3 -3
  97. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_button_refresh.rb +3 -3
  98. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_checkbox_field.rb +4 -4
  99. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_dropdown.rb +3 -3
  100. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_radio_field.rb +3 -3
  101. data/lib/ui_bibz/ui/core/forms/surrounds/components/surround_switch_field.rb +3 -3
  102. data/lib/ui_bibz/ui/core/forms/surrounds/surround_field.rb +24 -25
  103. data/lib/ui_bibz/ui/core/forms/textareas/markdown_editor_field.rb +4 -5
  104. data/lib/ui_bibz/ui/core/forms/texts/auto_complete_field.rb +6 -7
  105. data/lib/ui_bibz/ui/core/forms/texts/text_field.rb +6 -6
  106. data/lib/ui_bibz/ui/core/icons/components/glyph_counter.rb +5 -6
  107. data/lib/ui_bibz/ui/core/icons/components/glyph_text.rb +5 -6
  108. data/lib/ui_bibz/ui/core/icons/glyph.rb +13 -14
  109. data/lib/ui_bibz/ui/core/icons/glyph_group.rb +16 -17
  110. data/lib/ui_bibz/ui/core/icons/star.rb +7 -9
  111. data/lib/ui_bibz/ui/core/layouts/col.rb +20 -21
  112. data/lib/ui_bibz/ui/core/layouts/container.rb +5 -6
  113. data/lib/ui_bibz/ui/core/layouts/row.rb +4 -5
  114. data/lib/ui_bibz/ui/core/lists/components/list.rb +19 -20
  115. data/lib/ui_bibz/ui/core/lists/components/list/list_body.rb +4 -5
  116. data/lib/ui_bibz/ui/core/lists/components/list/list_header.rb +5 -6
  117. data/lib/ui_bibz/ui/core/lists/list_group.rb +15 -16
  118. data/lib/ui_bibz/ui/core/navigations/breadcrumb.rb +5 -6
  119. data/lib/ui_bibz/ui/core/navigations/components/breadcrumb_link.rb +7 -8
  120. data/lib/ui_bibz/ui/core/navigations/components/nav_dropdown.rb +6 -7
  121. data/lib/ui_bibz/ui/core/navigations/components/nav_link.rb +12 -13
  122. data/lib/ui_bibz/ui/core/navigations/components/nav_link_link.rb +7 -8
  123. data/lib/ui_bibz/ui/core/navigations/components/nav_link_list.rb +4 -5
  124. data/lib/ui_bibz/ui/core/navigations/components/nav_link_span.rb +8 -9
  125. data/lib/ui_bibz/ui/core/navigations/components/nav_text.rb +8 -9
  126. data/lib/ui_bibz/ui/core/navigations/components/navbar_brand.rb +5 -6
  127. data/lib/ui_bibz/ui/core/navigations/components/navbar_form.rb +8 -8
  128. data/lib/ui_bibz/ui/core/navigations/components/navbar_nav.rb +6 -7
  129. data/lib/ui_bibz/ui/core/navigations/components/navbar_text.rb +6 -7
  130. data/lib/ui_bibz/ui/core/navigations/components/pagination_link.rb +5 -6
  131. data/lib/ui_bibz/ui/core/navigations/components/toolbar_form.rb +7 -7
  132. data/lib/ui_bibz/ui/core/navigations/link.rb +6 -7
  133. data/lib/ui_bibz/ui/core/navigations/nav.rb +20 -27
  134. data/lib/ui_bibz/ui/core/navigations/navbar.rb +23 -24
  135. data/lib/ui_bibz/ui/core/navigations/pagination.rb +9 -12
  136. data/lib/ui_bibz/ui/core/navigations/tab_group.rb +7 -8
  137. data/lib/ui_bibz/ui/core/navigations/toolbar.rb +14 -15
  138. data/lib/ui_bibz/ui/core/notifications/alert.rb +11 -12
  139. data/lib/ui_bibz/ui/core/notifications/badge.rb +7 -8
  140. data/lib/ui_bibz/ui/core/notifications/components/alert_body.rb +5 -6
  141. data/lib/ui_bibz/ui/core/notifications/components/alert_header.rb +8 -9
  142. data/lib/ui_bibz/ui/core/notifications/components/bar.rb +11 -12
  143. data/lib/ui_bibz/ui/core/notifications/components/toast_body.rb +5 -6
  144. data/lib/ui_bibz/ui/core/notifications/components/toast_header.rb +7 -8
  145. data/lib/ui_bibz/ui/core/notifications/progress_bar.rb +12 -13
  146. data/lib/ui_bibz/ui/core/notifications/spinner.rb +11 -12
  147. data/lib/ui_bibz/ui/core/notifications/toast.rb +9 -10
  148. data/lib/ui_bibz/ui/core/windows/components/modal_body.rb +4 -5
  149. data/lib/ui_bibz/ui/core/windows/components/modal_footer.rb +4 -5
  150. data/lib/ui_bibz/ui/core/windows/components/modal_header.rb +6 -7
  151. data/lib/ui_bibz/ui/core/windows/modal.rb +8 -9
  152. data/lib/ui_bibz/ui/extensions/core/component/glyph_extension.rb +13 -15
  153. data/lib/ui_bibz/ui/extensions/core/component/klass_extension.rb +9 -10
  154. data/lib/ui_bibz/ui/extensions/core/component/popover_extension.rb +22 -21
  155. data/lib/ui_bibz/ui/extensions/core/forms/connect_extension.rb +9 -9
  156. data/lib/ui_bibz/ui/extensions/core/forms/surround_extension.rb +8 -10
  157. data/lib/ui_bibz/ui/ux/containers/components/panel_body.rb +5 -6
  158. data/lib/ui_bibz/ui/ux/containers/components/panel_column.rb +6 -7
  159. data/lib/ui_bibz/ui/ux/containers/components/panel_deck.rb +6 -7
  160. data/lib/ui_bibz/ui/ux/containers/components/panel_footer.rb +5 -6
  161. data/lib/ui_bibz/ui/ux/containers/components/panel_group.rb +6 -7
  162. data/lib/ui_bibz/ui/ux/containers/components/panel_header.rb +12 -12
  163. data/lib/ui_bibz/ui/ux/containers/components/panel_tab_group.rb +5 -6
  164. data/lib/ui_bibz/ui/ux/containers/components/panel_toolbar.rb +5 -6
  165. data/lib/ui_bibz/ui/ux/containers/panel.rb +21 -22
  166. data/lib/ui_bibz/ui/ux/tables/components/actions.rb +14 -16
  167. data/lib/ui_bibz/ui/ux/tables/components/as.rb +8 -9
  168. data/lib/ui_bibz/ui/ux/tables/components/column.rb +4 -4
  169. data/lib/ui_bibz/ui/ux/tables/components/columns.rb +4 -3
  170. data/lib/ui_bibz/ui/ux/tables/components/store.rb +5 -7
  171. data/lib/ui_bibz/ui/ux/tables/components/thead.rb +5 -6
  172. data/lib/ui_bibz/ui/ux/tables/extensions/actionable.rb +24 -23
  173. data/lib/ui_bibz/ui/ux/tables/extensions/paginable.rb +8 -10
  174. data/lib/ui_bibz/ui/ux/tables/extensions/searchable.rb +9 -9
  175. data/lib/ui_bibz/ui/ux/tables/extensions/sortable.rb +26 -26
  176. data/lib/ui_bibz/ui/ux/tables/table.rb +32 -39
  177. data/lib/ui_bibz/ui/ux/tables/table_card.rb +18 -26
  178. data/lib/ui_bibz/ui/ux/tables/table_pagination.rb +15 -18
  179. data/lib/ui_bibz/ui/ux/tables/table_pagination_per_page.rb +15 -18
  180. data/lib/ui_bibz/ui/ux/tables/table_search_field.rb +19 -23
  181. data/lib/ui_bibz/utils/glyph_changer.rb +13 -13
  182. data/lib/ui_bibz/utils/internationalization.rb +10 -7
  183. data/lib/ui_bibz/utils/screwdriver.rb +7 -5
  184. data/test/dummy/Rakefile +3 -1
  185. data/test/dummy/app/controllers/application_controller.rb +2 -0
  186. data/test/dummy/app/controllers/users_controller.rb +15 -14
  187. data/test/dummy/app/helpers/application_helper.rb +2 -0
  188. data/test/dummy/app/models/application_record.rb +2 -0
  189. data/test/dummy/app/models/continent.rb +2 -0
  190. data/test/dummy/app/models/country.rb +2 -0
  191. data/test/dummy/app/models/user.rb +2 -0
  192. data/test/dummy/bin/bundle +3 -1
  193. data/test/dummy/bin/rails +3 -1
  194. data/test/dummy/bin/rake +2 -0
  195. data/test/dummy/bin/setup +10 -8
  196. data/test/dummy/config.ru +2 -0
  197. data/test/dummy/config/application.rb +5 -4
  198. data/test/dummy/config/boot.rb +4 -2
  199. data/test/dummy/config/environment.rb +3 -1
  200. data/test/dummy/config/environments/development.rb +2 -0
  201. data/test/dummy/config/environments/production.rb +2 -0
  202. data/test/dummy/config/environments/test.rb +2 -0
  203. data/test/dummy/config/initializers/assets.rb +2 -0
  204. data/test/dummy/config/initializers/backtrace_silencers.rb +2 -0
  205. data/test/dummy/config/initializers/cookies_serializer.rb +2 -0
  206. data/test/dummy/config/initializers/filter_parameter_logging.rb +2 -0
  207. data/test/dummy/config/initializers/inflections.rb +2 -0
  208. data/test/dummy/config/initializers/mime_types.rb +2 -0
  209. data/test/dummy/config/initializers/session_store.rb +2 -0
  210. data/test/dummy/config/initializers/simple_form_bootstrap.rb +3 -1
  211. data/test/dummy/config/initializers/ui_bibz.rb +1 -1
  212. data/test/dummy/config/initializers/wrap_parameters.rb +2 -0
  213. data/test/dummy/config/routes.rb +2 -0
  214. data/test/dummy/db/migrate/20150123191805_create_users.rb +2 -0
  215. data/test/dummy/db/migrate/20170309084406_continents.rb +2 -0
  216. data/test/dummy/db/migrate/20170309084453_countries.rb +2 -0
  217. data/test/dummy/db/schema.rb +22 -22
  218. data/test/dummy/test/models/user_test.rb +2 -0
  219. data/test/factories/user.rb +6 -4
  220. data/test/simple_form_test.rb +28 -34
  221. data/test/store_test.rb +10 -9
  222. data/test/support/factory_bot.rb +9 -5
  223. data/test/test_helper.rb +8 -8
  224. data/test/ui/core/boxes/card_test.rb +28 -26
  225. data/test/ui/core/boxes/jumbotron_test.rb +4 -3
  226. data/test/ui/core/component_test.rb +4 -4
  227. data/test/ui/core/forms/buttons/button_group_test.rb +8 -7
  228. data/test/ui/core/forms/buttons/button_link_test.rb +16 -14
  229. data/test/ui/core/forms/buttons/button_refresh_test.rb +5 -5
  230. data/test/ui/core/forms/buttons/button_test.rb +25 -23
  231. data/test/ui/core/forms/choices/box_switch_field_test.rb +62 -62
  232. data/test/ui/core/forms/choices/checkbox_field_test.rb +7 -6
  233. data/test/ui/core/forms/choices/choice_group_test.rb +6 -5
  234. data/test/ui/core/forms/choices/radio_field_test.rb +7 -6
  235. data/test/ui/core/forms/dates/date_picker_field_test.rb +12 -11
  236. data/test/ui/core/forms/dropdowns/dropdown_test.rb +12 -11
  237. data/test/ui/core/forms/files/text_field_test.rb +7 -6
  238. data/test/ui/core/forms/numbers/formula_field_test.rb +7 -6
  239. data/test/ui/core/forms/numbers/number_field_test.rb +12 -11
  240. data/test/ui/core/forms/numbers/range_field_test.rb +12 -11
  241. data/test/ui/core/forms/selects/dropdown_select_field_test.rb +61 -60
  242. data/test/ui/core/forms/selects/multi_column_field_test.rb +14 -13
  243. data/test/ui/core/forms/selects/multi_select_field_test.rb +19 -18
  244. data/test/ui/core/forms/selects/select_field_test.rb +13 -13
  245. data/test/ui/core/forms/surrounds/surround_field_test.rb +54 -54
  246. data/test/ui/core/forms/textareas/markdown_editor_field_test.rb +7 -6
  247. data/test/ui/core/forms/texts/auto_complete_field_test.rb +8 -7
  248. data/test/ui/core/forms/texts/text_field_test.rb +17 -16
  249. data/test/ui/core/icons/glyph_group_test.rb +8 -8
  250. data/test/ui/core/icons/glyph_test.rb +4 -4
  251. data/test/ui/core/icons/star_test.rb +37 -36
  252. data/test/ui/core/layouts/col_test.rb +11 -10
  253. data/test/ui/core/layouts/container_test.rb +3 -2
  254. data/test/ui/core/layouts/row_test.rb +4 -3
  255. data/test/ui/core/lists/list_group_test.rb +7 -6
  256. data/test/ui/core/navigations/breadcrumb_test.rb +12 -14
  257. data/test/ui/core/navigations/link_test.rb +9 -8
  258. data/test/ui/core/navigations/nav_test.rb +22 -21
  259. data/test/ui/core/navigations/navbar_test.rb +11 -11
  260. data/test/ui/core/navigations/pagination_test.rb +14 -13
  261. data/test/ui/core/navigations/tab_group_test.rb +22 -21
  262. data/test/ui/core/navigations/toolbar_test.rb +4 -3
  263. data/test/ui/core/notifications/alert_test.rb +5 -4
  264. data/test/ui/core/notifications/badge_test.rb +5 -4
  265. data/test/ui/core/notifications/progress_bar_test.rb +13 -13
  266. data/test/ui/core/notifications/spinner_test.rb +9 -8
  267. data/test/ui/core/notifications/toast_test.rb +3 -2
  268. data/test/ui/core/windows/modal_test.rb +3 -2
  269. data/test/ui/ux/containers/panel_test.rb +7 -6
  270. data/test/ui/ux/tables/table_test.rb +33 -33
  271. data/test/ui_bibz_test.rb +3 -1
  272. data/ui_bibz.gemspec +32 -28
  273. metadata +73 -42
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ui_bibz/utils/internationalization'
2
4
  module UiBibz::Ui
3
5
  class Base
@@ -7,17 +9,19 @@ module UiBibz::Ui
7
9
  attr_accessor :output_buffer
8
10
 
9
11
  # To know if translation missing
10
- def i18n_set? key
11
- I18n.t key, :raise => true rescue false
12
+ def i18n_set?(key)
13
+ I18n.t key, raise: true
14
+ rescue StandardError
15
+ false
12
16
  end
13
17
 
14
18
  # Add "id" in url to match with current record
15
- def inject_url url, record
16
- url.gsub(/(\/id\/?)/, "/#{ record.id }/")
19
+ def inject_url(url, record)
20
+ url.gsub(%r{(/id/?)}, "/#{record.id}/")
17
21
  end
18
22
 
19
- def generate_id name = nil
20
- "#{ name || 'id' }-#{ Random.rand(99999) }"
23
+ def generate_id(name = nil)
24
+ "#{name || 'id'}-#{Random.rand(99_999)}"
21
25
  end
22
26
  end
23
27
  end
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'ui_bibz/ui/core/boxes/components/card_header'
2
4
  require 'ui_bibz/ui/core/boxes/components/card_footer'
3
5
  require 'ui_bibz/ui/core/boxes/components/card_body'
4
6
  require 'ui_bibz/ui/core/boxes/components/card_image'
5
7
  require 'ui_bibz/ui/core/boxes/components/card_list_group'
6
8
  module UiBibz::Ui::Core::Boxes
7
-
8
9
  # Create a card
9
10
  #
10
11
  # This element is an extend of UiBibz::Ui::Core::Component.
@@ -20,7 +21,7 @@ module UiBibz::Ui::Core::Boxes
20
21
  #
21
22
  # You can add HTML attributes using the +html_options+.
22
23
  # You can pass arguments in options attribute:
23
- # * +status+ - status of élement with symbol value:
24
+ # * +status+ - status of element with symbol value:
24
25
  # (+:primary+, +:secondary+, +:info+, +:warning+, +:danger+)
25
26
  # * text - Hash (+:size+, +:position+)
26
27
  # (+:left+, +:right+, +:center+)
@@ -87,48 +88,47 @@ module UiBibz::Ui::Core::Boxes
87
88
  # end
88
89
  #
89
90
  class Card < UiBibz::Ui::Core::Component
90
-
91
91
  # See UiBibz::Ui::Core::Component.initialize
92
- def initialize content = nil, options = nil, html_options = nil, &block
92
+ def initialize(content = nil, options = nil, html_options = nil, &block)
93
93
  super
94
94
  @items = @content.nil? ? [] : [UiBibz::Ui::Core::Boxes::Components::CardBody.new(@content).render]
95
95
  end
96
96
 
97
97
  # Add Header which is a component
98
- def header content = nil, options = nil, html_options = nil, &block
98
+ def header(content = nil, options = nil, html_options = nil, &block)
99
99
  options, content = inherit_options(content, options, block)
100
- if is_tap(content, options)
101
- @header = UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options).tap(&block).render
102
- else
103
- @header = UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options, &block).render
104
- end
100
+ @header = if tap?(content, options)
101
+ UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options).tap(&block).render
102
+ else
103
+ UiBibz::Ui::Core::Boxes::Components::CardHeader.new(content, options, html_options, &block).render
104
+ end
105
105
  end
106
106
 
107
107
  # Add Body div which is a component
108
- def body content = nil, options = nil, html_options = nil, &block
108
+ def body(content = nil, options = nil, html_options = nil, &block)
109
109
  options, content = inherit_options(content, options, block)
110
- if is_tap(content, options)
111
- content = (content || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse] )
110
+ if tap?(content, options)
111
+ content = (content || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse])
112
112
  @items << UiBibz::Ui::Core::Boxes::Components::CardBody.new(content, options, html_options).tap(&block).render
113
113
  else
114
- options = (options || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse] )
114
+ options = (options || {}).merge(collapse: options.try(:[], :collapse), parent_collapse: @options[:parent_collapse])
115
115
  @items << UiBibz::Ui::Core::Boxes::Components::CardBody.new(content, options, html_options, &block).render
116
116
  end
117
117
  end
118
118
 
119
119
  # Add Footer which is a component
120
- def footer content = nil, options = nil, html_options = nil, &block
120
+ def footer(content = nil, options = nil, html_options = nil, &block)
121
121
  options, content = inherit_options(content, options, block)
122
122
  @footer = UiBibz::Ui::Core::Boxes::Components::CardFooter.new(content, options, html_options, &block).render
123
123
  end
124
124
 
125
125
  # Add List group which is a component
126
- def list_group content = nil, options = nil, html_options = nil, &block
126
+ def list_group(content = nil, options = nil, html_options = nil, &block)
127
127
  @items << UiBibz::Ui::Core::Boxes::Components::CardListGroup.new(content, options, html_options).tap(&block).render
128
128
  end
129
129
 
130
130
  # Add Image which is a component
131
- def image content = nil, options = nil, html_options = nil, &block
131
+ def image(content = nil, options = nil, html_options = nil, &block)
132
132
  @items << UiBibz::Ui::Core::Boxes::Components::CardImage.new(content, options, html_options, &block).render
133
133
  end
134
134
 
@@ -137,15 +137,15 @@ module UiBibz::Ui::Core::Boxes
137
137
  content_tag :div, html_structure, html_options
138
138
  end
139
139
 
140
- protected
140
+ protected
141
141
 
142
142
  def html_structure
143
143
  [@header, @items.join, @footer].compact.join.html_safe
144
144
  end
145
145
 
146
- def inherit_options content, options, block
146
+ def inherit_options(content, options, block)
147
147
  if block.nil?
148
- options = (options || {}).merge({ outline: @options[:outline] , status: @options[:status] })
148
+ options = (options || {}).merge({ outline: @options[:outline], status: @options[:status] })
149
149
  else
150
150
  content = (content || {}).merge({ outline: @options[:outline], status: @options[:status] })
151
151
  end
@@ -153,36 +153,35 @@ module UiBibz::Ui::Core::Boxes
153
153
  end
154
154
 
155
155
  def component_html_classes
156
- ["card", text, type, tab_pane, outline]
156
+ ['card', text, type, tab_pane, outline]
157
157
  end
158
158
 
159
159
  def status
160
- unless @options[:status].nil?
161
- output = @options[:outline] ? ["border-#{ @options[:status] }"] : ["bg-#{ @options[:status] }"]
162
- output << "text-white" if @options[:status] != :light && @options[:status] != :warning
163
- output.join(' ')
164
- end
160
+ return if @options[:status].nil?
161
+
162
+ output = @options[:outline] ? ["border-#{@options[:status]}"] : ["bg-#{@options[:status]}"]
163
+ output << 'text-white' if @options[:status] != :light && @options[:status] != :warning
164
+ output.join(' ')
165
165
  end
166
166
 
167
167
  def text
168
- "text-#{ @options[:text][:size] || :md }-#{ @options[:text][:position] || :left }" unless @options[:text].nil?
168
+ "text-#{@options[:text][:size] || :md}-#{@options[:text][:position] || :left}" unless @options[:text].nil?
169
169
  end
170
170
 
171
171
  def card_block
172
- "card-block" if !@options[:block].nil? || @options[:tap].nil?
172
+ 'card-block' if !@options[:block].nil? || @options[:tap].nil?
173
173
  end
174
174
 
175
175
  def type
176
- "card-#{ @options[:type] }" unless @options[:type].nil?
176
+ "card-#{@options[:type]}" unless @options[:type].nil?
177
177
  end
178
178
 
179
179
  def tab_pane
180
- "tab-pane" if @options[:tab]
180
+ 'tab-pane' if @options[:tab]
181
181
  end
182
182
 
183
183
  def outline
184
- "bg-transparent" if @options[:outline]
184
+ 'bg-transparent' if @options[:outline]
185
185
  end
186
-
187
186
  end
188
187
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card accordion
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardAccordion < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -42,24 +42,23 @@ module UiBibz::Ui::Core::Boxes
42
42
  content_tag :div, @items.join.html_safe, html_options
43
43
  end
44
44
 
45
- def card content = nil, options = nil, html_options = nil, &block
45
+ def card(content = nil, options = nil, html_options = nil, &block)
46
46
  content = (content || {}).merge({ parent_collapse: id })
47
47
  @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
48
  end
49
49
 
50
- private
50
+ private
51
51
 
52
52
  def id
53
- @id ||= generate_id("card-accordion-id")
53
+ @id ||= generate_id('card-accordion-id')
54
54
  end
55
55
 
56
56
  def component_html_classes
57
- "accordion"
57
+ 'accordion'
58
58
  end
59
59
 
60
60
  def component_html_options
61
61
  { id: id }
62
62
  end
63
-
64
63
  end
65
64
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card column
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardColumn < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -42,19 +42,18 @@ module UiBibz::Ui::Core::Boxes
42
42
  content_tag :div, @items.join.html_safe, html_options
43
43
  end
44
44
 
45
- def card content = nil, options = nil, html_options = nil, &block
46
- if is_tap content, options
47
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
- else
49
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
- end
45
+ def card(content = nil, options = nil, html_options = nil, &block)
46
+ @items << if tap? content, options
47
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
+ else
49
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
+ end
51
51
  end
52
52
 
53
- private
53
+ private
54
54
 
55
55
  def component_html_classes
56
- "card-columns"
56
+ 'card-columns'
57
57
  end
58
-
59
58
  end
60
59
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card deck
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardDeck < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -44,19 +44,18 @@ module UiBibz::Ui::Core::Boxes
44
44
  end
45
45
  end
46
46
 
47
- def card content = nil, options = nil, html_options = nil, &block
48
- if is_tap content, options
49
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
50
- else
51
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
52
- end
47
+ def card(content = nil, options = nil, html_options = nil, &block)
48
+ @items << if tap? content, options
49
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
50
+ else
51
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
52
+ end
53
53
  end
54
54
 
55
- private
55
+ private
56
56
 
57
57
  def component_html_classes
58
- "card-deck-wrapper"
58
+ 'card-deck-wrapper'
59
59
  end
60
-
61
60
  end
62
61
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes
3
4
  # Create a card group
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes
30
31
  # end.render
31
32
  #
32
33
  class CardGroup < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  @items = []
38
38
  end
@@ -42,19 +42,18 @@ module UiBibz::Ui::Core::Boxes
42
42
  content_tag :div, @items.join.html_safe, html_options
43
43
  end
44
44
 
45
- def card content = nil, options = nil, html_options = nil, &block
46
- if is_tap content, options
47
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
- else
49
- @items << UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
- end
45
+ def card(content = nil, options = nil, html_options = nil, &block)
46
+ @items << if tap? content, options
47
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options).tap(&block).render
48
+ else
49
+ UiBibz::Ui::Core::Boxes::Card.new(content, options, html_options, &block).render
50
+ end
51
51
  end
52
52
 
53
- private
53
+ private
54
54
 
55
55
  def component_html_classes
56
- "card-group"
56
+ 'card-group'
57
57
  end
58
-
59
58
  end
60
59
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes::Components::Body
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes::Components::Body
3
4
  # Create a card block title
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes::Components::Body
30
31
  # end.render
31
32
  #
32
33
  class CardBodyLink < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  end
38
38
 
@@ -41,11 +41,10 @@ module UiBibz::Ui::Core::Boxes::Components::Body
41
41
  link_to content, options[:url], html_options
42
42
  end
43
43
 
44
- private
44
+ private
45
45
 
46
46
  def component_html_classes
47
- "card-link"
47
+ 'card-link'
48
48
  end
49
-
50
49
  end
51
50
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes::Components::Body
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes::Components::Body
3
4
  # Create a card block title
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes::Components::Body
30
31
  # end.render
31
32
  #
32
33
  class CardBodyText < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  end
38
38
 
@@ -41,11 +41,10 @@ module UiBibz::Ui::Core::Boxes::Components::Body
41
41
  content_tag :p, content.html_safe, html_options
42
42
  end
43
43
 
44
- private
44
+ private
45
45
 
46
46
  def component_html_classes
47
- "card-text"
47
+ 'card-text'
48
48
  end
49
-
50
49
  end
51
50
  end
@@ -1,5 +1,6 @@
1
- module UiBibz::Ui::Core::Boxes::Components::Body
1
+ # frozen_string_literal: true
2
2
 
3
+ module UiBibz::Ui::Core::Boxes::Components::Body
3
4
  # Create a card block title
4
5
  #
5
6
  # ==== Attributes
@@ -30,9 +31,8 @@ module UiBibz::Ui::Core::Boxes::Components::Body
30
31
  # end.render
31
32
  #
32
33
  class CardBodyTitle < UiBibz::Ui::Core::Component
33
-
34
34
  # See UiBibz::Ui::Core::Component.initialize
35
- def initialize content = nil, options = nil, html_options = nil, &block
35
+ def initialize(content = nil, options = nil, html_options = nil, &block)
36
36
  super
37
37
  end
38
38
 
@@ -41,11 +41,10 @@ module UiBibz::Ui::Core::Boxes::Components::Body
41
41
  content_tag :h4, content, html_options
42
42
  end
43
43
 
44
- private
44
+ private
45
45
 
46
46
  def component_html_classes
47
- "card-title"
47
+ 'card-title'
48
48
  end
49
-
50
49
  end
51
50
  end