hakumi_components 0.1.17.pre → 0.1.19.pre
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +33 -3
- data/README.md +218 -369
- data/app/assets/javascripts/hakumi_components.js +40 -34
- data/app/assets/stylesheets/hakumi_components.css +1 -1
- data/app/components/{hakumi → hakumi_components}/admin_panel/component.html.erb +2 -2
- data/app/components/hakumi_components/admin_panel/component.rb +50 -0
- data/app/components/hakumi_components/affix/component.rb +112 -0
- data/app/components/{hakumi → hakumi_components}/alert/component.html.erb +3 -3
- data/app/components/hakumi_components/alert/component.rb +134 -0
- data/app/components/hakumi_components/anchor/component.rb +88 -0
- data/app/components/{hakumi → hakumi_components}/anchor/link/component.html.erb +1 -1
- data/app/components/hakumi_components/anchor/link/component.rb +53 -0
- data/app/components/hakumi_components/autocomplete/component.html.erb +94 -0
- data/app/components/hakumi_components/autocomplete/component.rb +228 -0
- data/app/components/hakumi_components/avatar/component.rb +124 -0
- data/app/components/hakumi_components/badge/component.rb +139 -0
- data/app/components/hakumi_components/base_component.rb +391 -0
- data/app/components/hakumi_components/breadcrumb/component.rb +38 -0
- data/app/components/hakumi_components/breadcrumb/item/component.html.erb +17 -0
- data/app/components/hakumi_components/breadcrumb/item/component.rb +83 -0
- data/app/components/hakumi_components/breadcrumb/item/menu_entry.rb +71 -0
- data/app/components/hakumi_components/button/component.rb +163 -0
- data/app/components/{hakumi → hakumi_components}/calendar/component.html.erb +24 -24
- data/app/components/hakumi_components/calendar/component.rb +471 -0
- data/app/components/hakumi_components/calendar/day_cell.rb +62 -0
- data/app/components/hakumi_components/calendar/display_model.rb +237 -0
- data/app/components/hakumi_components/calendar/event_entry.rb +54 -0
- data/app/components/hakumi_components/calendar/locale_pack.rb +28 -0
- data/app/components/hakumi_components/calendar/panel_entry.rb +48 -0
- data/app/components/hakumi_components/calendar/week_row.rb +28 -0
- data/app/components/{hakumi → hakumi_components}/card/component.html.erb +2 -2
- data/app/components/hakumi_components/card/component.rb +121 -0
- data/app/components/hakumi_components/card/grid/component.html.erb +3 -0
- data/app/components/hakumi_components/card/grid/component.rb +43 -0
- data/app/components/hakumi_components/card/meta/component.html.erb +23 -0
- data/app/components/hakumi_components/card/meta/component.rb +64 -0
- data/app/components/hakumi_components/carousel/autoplay_config.rb +27 -0
- data/app/components/{hakumi → hakumi_components}/carousel/component.html.erb +2 -2
- data/app/components/hakumi_components/carousel/component.rb +165 -0
- data/app/components/hakumi_components/carousel/dots_config.rb +36 -0
- data/app/components/hakumi_components/cascader/component.html.erb +59 -0
- data/app/components/hakumi_components/cascader/component.rb +168 -0
- data/app/components/{hakumi → hakumi_components}/checkbox/component.html.erb +5 -5
- data/app/components/hakumi_components/checkbox/component.rb +98 -0
- data/app/components/hakumi_components/checkbox/group/component.html.erb +12 -0
- data/app/components/hakumi_components/checkbox/group/component.rb +91 -0
- data/app/components/hakumi_components/checkbox/group/option.rb +34 -0
- data/app/components/{hakumi → hakumi_components}/collapse/component.html.erb +1 -1
- data/app/components/hakumi_components/collapse/component.rb +133 -0
- data/app/components/hakumi_components/collapse/panel/component.rb +108 -0
- data/app/components/{hakumi → hakumi_components}/color_picker/component.html.erb +21 -22
- data/app/components/hakumi_components/color_picker/component.rb +279 -0
- data/app/components/hakumi_components/color_picker/preset_group.rb +27 -0
- data/app/components/hakumi_components/concerns/form_field.rb +236 -0
- data/app/components/hakumi_components/concerns/form_field_contract.rb +57 -0
- data/app/components/hakumi_components/concerns/form_field_interface.rb +16 -0
- data/app/components/hakumi_components/concerns/input_control.rb +111 -0
- data/app/components/hakumi_components/concerns/input_control_contract.rb +47 -0
- data/app/components/hakumi_components/concerns/input_control_interface.rb +34 -0
- data/app/components/hakumi_components/concerns/selection_control.rb +122 -0
- data/app/components/hakumi_components/concerns/selection_control_contract.rb +47 -0
- data/app/components/hakumi_components/concerns/selection_control_interface.rb +34 -0
- data/app/components/{hakumi → hakumi_components}/container/component.rb +31 -16
- data/app/components/{hakumi → hakumi_components}/date_picker/component.html.erb +4 -6
- data/app/components/hakumi_components/date_picker/component.rb +254 -0
- data/app/components/{hakumi → hakumi_components}/date_picker/range_picker.html.erb +4 -4
- data/app/components/hakumi_components/date_picker/range_picker.rb +267 -0
- data/app/components/hakumi_components/date_picker/shared_rendering.rb +289 -0
- data/app/components/{hakumi → hakumi_components}/descriptions/component.html.erb +6 -6
- data/app/components/hakumi_components/descriptions/component.rb +219 -0
- data/app/components/hakumi_components/descriptions/item/component.rb +52 -0
- data/app/components/hakumi_components/divider/component.rb +86 -0
- data/app/components/{hakumi → hakumi_components}/drawer/component.html.erb +3 -3
- data/app/components/hakumi_components/drawer/component.rb +191 -0
- data/app/components/hakumi_components/dropdown/component.rb +94 -0
- data/app/components/{hakumi → hakumi_components}/dropdown/divider/component.rb +6 -2
- data/app/components/hakumi_components/dropdown/item/component.rb +73 -0
- data/app/components/{hakumi → hakumi_components}/empty/component.rb +68 -33
- data/app/components/hakumi_components/flex/component.rb +96 -0
- data/app/components/hakumi_components/float_button/back_top/component.rb +86 -0
- data/app/components/hakumi_components/float_button/component.rb +289 -0
- data/app/components/hakumi_components/float_button/group/component.rb +214 -0
- data/app/components/hakumi_components/float_button/group_cluster/component.rb +133 -0
- data/app/components/hakumi_components/float_button/group_spec.rb +259 -0
- data/app/components/hakumi_components/float_button/item_spec.rb +115 -0
- data/app/components/hakumi_components/float_button/position_config.rb +68 -0
- data/app/components/{hakumi → hakumi_components}/form/item/component.rb +36 -29
- data/app/components/hakumi_components/grid/col/component.rb +169 -0
- data/app/components/hakumi_components/grid/row/component.rb +97 -0
- data/app/components/{hakumi → hakumi_components}/icon/component.rb +53 -53
- data/app/components/{hakumi → hakumi_components}/image/component.html.erb +17 -17
- data/app/components/hakumi_components/image/component.rb +175 -0
- data/app/components/{hakumi → hakumi_components}/image/preview_group/component.html.erb +10 -10
- data/app/components/hakumi_components/image/preview_group/component.rb +75 -0
- data/app/components/hakumi_components/image/preview_group/item.rb +48 -0
- data/app/components/{hakumi → hakumi_components}/input/component.html.erb +1 -1
- data/app/components/hakumi_components/input/component.rb +261 -0
- data/app/components/hakumi_components/input/password/component.rb +84 -0
- data/app/components/{hakumi → hakumi_components}/input/text_area/component.html.erb +2 -2
- data/app/components/hakumi_components/input/text_area/component.rb +178 -0
- data/app/components/{hakumi → hakumi_components}/input_number/component.html.erb +9 -9
- data/app/components/hakumi_components/input_number/component.rb +280 -0
- data/app/components/hakumi_components/layout/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/component.rb +28 -0
- data/app/components/hakumi_components/layout/content/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/content/component.rb +29 -0
- data/app/components/hakumi_components/layout/footer/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/footer/component.rb +29 -0
- data/app/components/hakumi_components/layout/header/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/header/component.rb +29 -0
- data/app/components/hakumi_components/layout/sider/component.html.erb +1 -0
- data/app/components/hakumi_components/layout/sider/component.rb +90 -0
- data/app/components/hakumi_components/mentions/coercion.rb +46 -0
- data/app/components/{hakumi → hakumi_components}/mentions/component.html.erb +6 -6
- data/app/components/hakumi_components/mentions/component.rb +229 -0
- data/app/components/hakumi_components/mentions/option.rb +30 -0
- data/app/components/hakumi_components/menu/component.rb +117 -0
- data/app/components/{hakumi → hakumi_components}/menu/divider/component.rb +6 -2
- data/app/components/hakumi_components/menu/group/component.rb +48 -0
- data/app/components/hakumi_components/menu/item/component.rb +70 -0
- data/app/components/hakumi_components/menu/sub_menu/component.rb +104 -0
- data/app/components/hakumi_components/message/component.rb +141 -0
- data/app/components/{hakumi → hakumi_components}/modal/component.html.erb +7 -7
- data/app/components/hakumi_components/modal/component.rb +152 -0
- data/app/components/hakumi_components/modal/confirm/component.html.erb +23 -0
- data/app/components/hakumi_components/modal/confirm/component.rb +87 -0
- data/app/components/hakumi_components/modal/error/component.rb +20 -0
- data/app/components/hakumi_components/modal/info/component.rb +17 -0
- data/app/components/hakumi_components/modal/status_component.rb +150 -0
- data/app/components/hakumi_components/modal/success/component.rb +17 -0
- data/app/components/hakumi_components/modal/warning/component.rb +26 -0
- data/app/components/hakumi_components/notification/component.rb +160 -0
- data/app/components/{hakumi → hakumi_components}/pagination/component.html.erb +8 -12
- data/app/components/hakumi_components/pagination/component.rb +238 -0
- data/app/components/hakumi_components/pagination/page_item.rb +49 -0
- data/app/components/{hakumi → hakumi_components}/popconfirm/component.html.erb +2 -2
- data/app/components/hakumi_components/popconfirm/component.rb +120 -0
- data/app/components/{hakumi → hakumi_components}/popover/component.html.erb +2 -2
- data/app/components/hakumi_components/popover/component.rb +196 -0
- data/app/components/hakumi_components/progress/attribute_renderer.rb +354 -0
- data/app/components/hakumi_components/progress/circle_geometry.rb +76 -0
- data/app/components/{hakumi → hakumi_components}/progress/component.html.erb +19 -18
- data/app/components/hakumi_components/progress/component.rb +393 -0
- data/app/components/hakumi_components/progress/controller_locals_parser.rb +130 -0
- data/app/components/hakumi_components/progress/info_tooltip_policy.rb +39 -0
- data/app/components/hakumi_components/progress/info_value.rb +75 -0
- data/app/components/hakumi_components/progress/status_state.rb +31 -0
- data/app/components/hakumi_components/progress/steps_renderer.rb +149 -0
- data/app/components/hakumi_components/progress/stroke_gradient_value.rb +90 -0
- data/app/components/hakumi_components/qr_code/component.rb +405 -0
- data/app/components/{hakumi → hakumi_components}/radio/component.html.erb +3 -3
- data/app/components/hakumi_components/radio/component.rb +113 -0
- data/app/components/{hakumi → hakumi_components}/radio/group/component.html.erb +10 -10
- data/app/components/hakumi_components/radio/group/component.rb +181 -0
- data/app/components/hakumi_components/radio/group/option.rb +43 -0
- data/app/components/{hakumi → hakumi_components}/rate/component.html.erb +2 -2
- data/app/components/{hakumi → hakumi_components}/rate/component.rb +58 -12
- data/app/components/hakumi_components/result/component.rb +175 -0
- data/app/components/{hakumi → hakumi_components}/segmented/component.html.erb +1 -1
- data/app/components/hakumi_components/segmented/component.rb +232 -0
- data/app/components/hakumi_components/segmented/option.rb +191 -0
- data/app/components/{hakumi → hakumi_components}/select/component.html.erb +22 -22
- data/app/components/hakumi_components/select/component.rb +176 -0
- data/app/components/hakumi_components/selection_control/coercion.rb +161 -0
- data/app/components/hakumi_components/selection_control/entry.rb +22 -0
- data/app/components/hakumi_components/selection_control/option.rb +42 -0
- data/app/components/hakumi_components/selection_control/option_group.rb +34 -0
- data/app/components/hakumi_components/selection_control/tree_node.rb +123 -0
- data/app/components/hakumi_components/skeleton/avatar/component.rb +88 -0
- data/app/components/hakumi_components/skeleton/avatar_config.rb +79 -0
- data/app/components/hakumi_components/skeleton/button/component.rb +77 -0
- data/app/components/hakumi_components/skeleton/component.rb +186 -0
- data/app/components/{hakumi → hakumi_components}/skeleton/image/component.html.erb +1 -1
- data/app/components/hakumi_components/skeleton/image/component.rb +104 -0
- data/app/components/hakumi_components/skeleton/input/component.rb +66 -0
- data/app/components/hakumi_components/skeleton/node/component.rb +59 -0
- data/app/components/hakumi_components/skeleton/paragraph_config.rb +92 -0
- data/app/components/hakumi_components/skeleton/title_config.rb +31 -0
- data/app/components/{hakumi → hakumi_components}/slider/component.html.erb +11 -11
- data/app/components/hakumi_components/slider/component.rb +347 -0
- data/app/components/hakumi_components/slider/mark.rb +27 -0
- data/app/components/hakumi_components/space/compact/component.html.erb +1 -0
- data/app/components/hakumi_components/space/compact/component.rb +52 -0
- data/app/components/{hakumi → hakumi_components}/space/component.html.erb +1 -1
- data/app/components/hakumi_components/space/component.rb +109 -0
- data/app/components/hakumi_components/spin/component.rb +270 -0
- data/app/components/hakumi_components/splitter/component.html.erb +9 -0
- data/app/components/hakumi_components/splitter/component.rb +71 -0
- data/app/components/hakumi_components/splitter/panel/component.html.erb +1 -0
- data/app/components/hakumi_components/splitter/panel/component.rb +98 -0
- data/app/components/hakumi_components/statistic/component.rb +371 -0
- data/app/components/{hakumi → hakumi_components}/steps/component.html.erb +4 -4
- data/app/components/hakumi_components/steps/component.rb +177 -0
- data/app/components/hakumi_components/steps/item/component.rb +130 -0
- data/app/components/{hakumi → hakumi_components}/switch/component.html.erb +2 -3
- data/app/components/hakumi_components/switch/component.rb +150 -0
- data/app/components/hakumi_components/table/column/component.rb +137 -0
- data/app/components/hakumi_components/table/column_definition.rb +181 -0
- data/app/components/{hakumi → hakumi_components}/table/column_group/component.rb +35 -24
- data/app/components/{hakumi → hakumi_components}/table/component.html.erb +22 -31
- data/app/components/hakumi_components/table/component.rb +470 -0
- data/app/components/hakumi_components/table/concerns/attribute_helpers.rb +22 -0
- data/app/components/hakumi_components/table/concerns/cell_rendering.rb +277 -0
- data/app/components/hakumi_components/table/concerns/columns.rb +421 -0
- data/app/components/hakumi_components/table/concerns/editable.rb +68 -0
- data/app/components/hakumi_components/table/concerns/ellipsis.rb +64 -0
- data/app/components/hakumi_components/table/concerns/fixed_columns.rb +94 -0
- data/app/components/hakumi_components/table/concerns/surface_rendering.rb +365 -0
- data/app/components/hakumi_components/table/configs.rb +518 -0
- data/app/components/hakumi_components/table/definition_types.rb +40 -0
- data/app/components/hakumi_components/table/display_rows.rb +56 -0
- data/app/components/hakumi_components/table/ellipsis_config.rb +143 -0
- data/app/components/hakumi_components/table/fixed_offset.rb +36 -0
- data/app/components/hakumi_components/table/header_cell.rb +23 -0
- data/app/components/hakumi_components/table/row_record.rb +60 -0
- data/app/components/hakumi_components/table/row_render_state.rb +85 -0
- data/app/components/{hakumi → hakumi_components}/tabs/component.html.erb +11 -11
- data/app/components/hakumi_components/tabs/component.rb +246 -0
- data/app/components/hakumi_components/tabs/indicator_config.rb +34 -0
- data/app/components/hakumi_components/tabs/item/component.rb +147 -0
- data/app/components/hakumi_components/tag/component.rb +282 -0
- data/app/components/{hakumi → hakumi_components}/tag/group/component.rb +20 -8
- data/app/components/{hakumi → hakumi_components}/time_picker/component.html.erb +10 -10
- data/app/components/{hakumi → hakumi_components}/time_picker/component.rb +75 -21
- data/app/components/hakumi_components/timeline/component.html.erb +8 -0
- data/app/components/hakumi_components/timeline/component.rb +301 -0
- data/app/components/{hakumi → hakumi_components}/timeline/item/component.html.erb +2 -2
- data/app/components/hakumi_components/timeline/item/component.rb +198 -0
- data/app/components/{hakumi → hakumi_components}/tooltip/component.html.erb +1 -1
- data/app/components/hakumi_components/tooltip/component.rb +146 -0
- data/app/components/hakumi_components/tour/component.rb +183 -0
- data/app/components/hakumi_components/tour/step.rb +86 -0
- data/app/components/hakumi_components/transfer/coercion.rb +66 -0
- data/app/components/hakumi_components/transfer/component.html.erb +204 -0
- data/app/components/hakumi_components/transfer/component.rb +395 -0
- data/app/components/hakumi_components/transfer/item.rb +54 -0
- data/app/components/hakumi_components/transfer/operations.rb +31 -0
- data/app/components/{hakumi → hakumi_components}/tree/component.html.erb +1 -1
- data/app/components/hakumi_components/tree/component.rb +342 -0
- data/app/components/hakumi_components/tree/concerns/node_rendering.rb +365 -0
- data/app/components/hakumi_components/tree/node.rb +276 -0
- data/app/components/{hakumi → hakumi_components}/tree_select/component.html.erb +27 -13
- data/app/components/hakumi_components/tree_select/component.rb +270 -0
- data/app/components/hakumi_components/typography/base_component.rb +142 -0
- data/app/components/hakumi_components/typography/link/component.rb +91 -0
- data/app/components/{hakumi → hakumi_components}/typography/paragraph/component.rb +7 -1
- data/{sig/hakumi/typography/text/component.rbs → app/components/hakumi_components/typography/text/component.rb} +3 -1
- data/app/components/hakumi_components/typography/title/component.rb +84 -0
- data/app/components/hakumi_components/upload/component.html.erb +135 -0
- data/app/components/hakumi_components/upload/component.rb +367 -0
- data/app/components/hakumi_components/upload/file_entry.rb +53 -0
- data/app/controllers/{hakumi → hakumi_components}/components_controller.rb +3 -2
- data/app/form_builders/hakumi_components/form_builder/contracts.rb +55 -0
- data/app/form_builders/hakumi_components/form_builder/field_context.rb +43 -0
- data/app/form_builders/hakumi_components/form_builder/model_binding.rb +163 -0
- data/app/form_builders/hakumi_components/form_builder.rb +403 -0
- data/app/helpers/hakumi_components/form_helper.rb +43 -0
- data/app/javascript/hakumi_components/controllers/hakumi/admin_panel_controller.js +5 -7
- data/app/javascript/hakumi_components/controllers/hakumi/back_top_controller.js +1 -1
- data/app/javascript/hakumi_components/controllers/hakumi/button_controller.js +108 -2
- data/app/javascript/hakumi_components/controllers/hakumi/calendar_controller.js +183 -95
- data/app/javascript/hakumi_components/controllers/hakumi/color_picker_controller.js +23 -285
- data/app/javascript/hakumi_components/controllers/hakumi/date_picker_controller.js +274 -262
- data/app/javascript/hakumi_components/controllers/hakumi/float_button_group_controller.js +2 -2
- data/app/javascript/hakumi_components/controllers/hakumi/message_controller.js +4 -2
- data/app/javascript/hakumi_components/controllers/hakumi/modal_controller.js +119 -125
- data/app/javascript/hakumi_components/controllers/hakumi/table/editable.js +291 -0
- data/app/javascript/hakumi_components/controllers/hakumi/table_controller.js +166 -366
- data/app/javascript/hakumi_components/controllers/hakumi/tabs_controller.js +8 -2
- data/app/javascript/hakumi_components/controllers/hakumi/tag_controller.js +27 -25
- data/app/javascript/hakumi_components/controllers/hakumi/tag_group_controller.js +19 -18
- data/app/javascript/hakumi_components/controllers/hakumi/theme_controller.js +116 -117
- data/app/javascript/hakumi_components/controllers/hakumi/transfer_controller.js +17 -1
- data/app/javascript/hakumi_components/controllers/hakumi/tree_controller.js +363 -78
- data/app/javascript/hakumi_components/controllers/hakumi/typography_controller.js +3 -3
- data/app/javascript/hakumi_components/controllers/hakumi/upload_controller.js +320 -204
- data/app/javascript/hakumi_components/core/render_component.js +37 -11
- data/app/javascript/hakumi_components/utils/color_helper.js +262 -0
- data/app/javascript/stylesheets/_base.scss +9 -0
- data/app/javascript/stylesheets/_hakumi_components.scss +1 -0
- data/app/javascript/stylesheets/components/_breadcrumb.scss +2 -2
- data/app/javascript/stylesheets/components/_calendar.scss +13 -13
- data/app/javascript/stylesheets/components/_cascader.scss +5 -5
- data/app/javascript/stylesheets/components/_checkbox.scss +9 -11
- data/app/javascript/stylesheets/components/_color_picker.scss +11 -11
- data/app/javascript/stylesheets/components/_date_picker.scss +4 -4
- data/app/javascript/stylesheets/components/_descriptions.scss +2 -2
- data/app/javascript/stylesheets/components/_drawer.scss +3 -3
- data/app/javascript/stylesheets/components/_dropdown.scss +2 -2
- data/app/javascript/stylesheets/components/_flex.scss +1 -1
- data/app/javascript/stylesheets/components/_float_button.scss +5 -5
- data/app/javascript/stylesheets/components/_form_item.scss +92 -0
- data/app/javascript/stylesheets/components/_image.scss +15 -15
- data/app/javascript/stylesheets/components/_input.scss +23 -113
- data/app/javascript/stylesheets/components/_layout.scss +27 -26
- data/app/javascript/stylesheets/components/_menu.scss +15 -15
- data/app/javascript/stylesheets/components/_modal.scss +13 -13
- data/app/javascript/stylesheets/components/_notification.scss +3 -3
- data/app/javascript/stylesheets/components/_popover.scss +1 -1
- data/app/javascript/stylesheets/components/_segmented.scss +3 -3
- data/app/javascript/stylesheets/components/_select.scss +6 -6
- data/app/javascript/stylesheets/components/_slider.scss +1 -1
- data/app/javascript/stylesheets/components/_spin.scss +2 -2
- data/app/javascript/stylesheets/components/_steps.scss +10 -10
- data/app/javascript/stylesheets/components/_switch.scss +11 -10
- data/app/javascript/stylesheets/components/_table.scss +6 -6
- data/app/javascript/stylesheets/components/_tag.scss +2 -2
- data/app/javascript/stylesheets/components/_tooltip.scss +4 -4
- data/app/javascript/stylesheets/components/_tree_select.scss +3 -3
- data/app/javascript/stylesheets/components/_typography.scss +3 -3
- data/app/javascript/stylesheets/components/_upload.scss +4 -4
- data/app/services/hakumi_components/component_handler.rb +124 -0
- data/app/services/hakumi_components/icon/loader.rb +112 -0
- data/app/services/hakumi_components/illustrations/loader.rb +51 -0
- data/app/views/hakumi/_admin_panel.html.erb +1 -1
- data/app/views/hakumi/_affix.html.erb +1 -1
- data/app/views/hakumi/_alert.html.erb +4 -1
- data/app/views/hakumi/_confirm.html.erb +1 -1
- data/app/views/hakumi/_drawer.html.erb +2 -2
- data/app/views/hakumi/_message.html.erb +1 -1
- data/app/views/hakumi/_modal.html.erb +1 -1
- data/app/views/hakumi/_notification.html.erb +1 -1
- data/app/views/hakumi/_popconfirm.html.erb +1 -1
- data/app/views/hakumi/_popover.html.erb +1 -1
- data/app/views/hakumi/_qr_code.html.erb +1 -1
- data/app/views/hakumi/_result.html.erb +1 -1
- data/app/views/hakumi/_segmented.html.erb +1 -1
- data/app/views/hakumi/_skeleton.html.erb +1 -1
- data/app/views/hakumi/_spin.html.erb +1 -1
- data/app/views/hakumi/_statistic.html.erb +12 -12
- data/app/views/hakumi/_table.html.erb +1 -1
- data/app/views/hakumi/_tag.html.erb +1 -1
- data/app/views/hakumi/_timeline.html.erb +1 -1
- data/app/views/hakumi/_tree.html.erb +1 -1
- data/lib/generators/{hakumi → hakumi_components}/install_generator.rb +17 -4
- data/lib/hakumi_components/documentation/models.rb +290 -0
- data/lib/hakumi_components/documentation/node.rb +73 -0
- data/lib/hakumi_components/documentation.rb +141 -64
- data/lib/hakumi_components/engine.rb +26 -14
- data/lib/hakumi_components/file_size_checker.rb +215 -0
- data/lib/hakumi_components/locales/en.yml +115 -0
- data/lib/hakumi_components/rails/attribute_introspection.rb +40 -108
- data/lib/hakumi_components/rails/model_reflection.rb +154 -0
- data/lib/hakumi_components/rails/validation_introspection.rb +26 -74
- data/lib/hakumi_components/rails/validation_mapper.rb +149 -202
- data/lib/hakumi_components/rails.rb +3 -1
- data/lib/hakumi_components/stylesheet_ownership_checker.rb +191 -0
- data/lib/hakumi_components/types/form_field.rb +24 -0
- data/lib/hakumi_components/types/html.rb +28 -0
- data/lib/hakumi_components/types/rendering.rb +10 -0
- data/lib/hakumi_components/types/stimulus.rb +19 -0
- data/lib/hakumi_components/types/validation.rb +22 -0
- data/lib/hakumi_components/types.rb +13 -0
- data/lib/hakumi_components/version.rb +3 -2
- data/lib/hakumi_components.rb +26 -5
- data/lib/tasks/coverage.rake +1 -0
- metadata +310 -346
- data/app/components/hakumi/admin_panel/component.rb +0 -40
- data/app/components/hakumi/affix/component.rb +0 -88
- data/app/components/hakumi/alert/component.rb +0 -84
- data/app/components/hakumi/anchor/component.rb +0 -80
- data/app/components/hakumi/anchor/link/component.rb +0 -34
- data/app/components/hakumi/autocomplete/component.html.erb +0 -74
- data/app/components/hakumi/autocomplete/component.rb +0 -202
- data/app/components/hakumi/avatar/component.rb +0 -91
- data/app/components/hakumi/badge/component.rb +0 -85
- data/app/components/hakumi/base_component.rb +0 -192
- data/app/components/hakumi/breadcrumb/component.rb +0 -27
- data/app/components/hakumi/breadcrumb/item/component.html.erb +0 -17
- data/app/components/hakumi/breadcrumb/item/component.rb +0 -35
- data/app/components/hakumi/button/component.rb +0 -121
- data/app/components/hakumi/calendar/component.rb +0 -448
- data/app/components/hakumi/card/component.rb +0 -94
- data/app/components/hakumi/card/grid/component.html.erb +0 -3
- data/app/components/hakumi/card/grid/component.rb +0 -37
- data/app/components/hakumi/card/meta/component.html.erb +0 -23
- data/app/components/hakumi/card/meta/component.rb +0 -46
- data/app/components/hakumi/carousel/component.rb +0 -147
- data/app/components/hakumi/cascader/component.html.erb +0 -41
- data/app/components/hakumi/cascader/component.rb +0 -119
- data/app/components/hakumi/checkbox/component.rb +0 -64
- data/app/components/hakumi/checkbox/group/component.html.erb +0 -12
- data/app/components/hakumi/checkbox/group/component.rb +0 -64
- data/app/components/hakumi/collapse/component.rb +0 -117
- data/app/components/hakumi/collapse/panel/component.rb +0 -65
- data/app/components/hakumi/color_picker/component.rb +0 -169
- data/app/components/hakumi/concerns/form_field.rb +0 -135
- data/app/components/hakumi/date_picker/component.rb +0 -140
- data/app/components/hakumi/date_picker/range_picker.rb +0 -136
- data/app/components/hakumi/date_picker/shared_rendering.rb +0 -199
- data/app/components/hakumi/descriptions/component.rb +0 -182
- data/app/components/hakumi/descriptions/item/component.rb +0 -28
- data/app/components/hakumi/divider/component.rb +0 -66
- data/app/components/hakumi/drawer/component.rb +0 -108
- data/app/components/hakumi/dropdown/component.rb +0 -97
- data/app/components/hakumi/dropdown/item/component.rb +0 -47
- data/app/components/hakumi/flex/component.rb +0 -78
- data/app/components/hakumi/float_button/back_top/component.rb +0 -79
- data/app/components/hakumi/float_button/component.rb +0 -203
- data/app/components/hakumi/float_button/group/component.rb +0 -227
- data/app/components/hakumi/float_button/group_cluster/component.rb +0 -141
- data/app/components/hakumi/grid/col/component.rb +0 -98
- data/app/components/hakumi/grid/row/component.rb +0 -79
- data/app/components/hakumi/image/component.rb +0 -112
- data/app/components/hakumi/image/preview_group/component.rb +0 -70
- data/app/components/hakumi/input/component.rb +0 -185
- data/app/components/hakumi/input/password/component.rb +0 -95
- data/app/components/hakumi/input/text_area/component.rb +0 -131
- data/app/components/hakumi/input_number/component.rb +0 -198
- data/app/components/hakumi/layout/component.html.erb +0 -1
- data/app/components/hakumi/layout/component.rb +0 -21
- data/app/components/hakumi/layout/content/component.html.erb +0 -1
- data/app/components/hakumi/layout/content/component.rb +0 -19
- data/app/components/hakumi/layout/footer/component.html.erb +0 -1
- data/app/components/hakumi/layout/footer/component.rb +0 -19
- data/app/components/hakumi/layout/header/component.html.erb +0 -1
- data/app/components/hakumi/layout/header/component.rb +0 -19
- data/app/components/hakumi/layout/sider/component.html.erb +0 -1
- data/app/components/hakumi/layout/sider/component.rb +0 -56
- data/app/components/hakumi/mentions/component.rb +0 -165
- data/app/components/hakumi/menu/component.rb +0 -126
- data/app/components/hakumi/menu/group/component.rb +0 -47
- data/app/components/hakumi/menu/item/component.rb +0 -47
- data/app/components/hakumi/menu/sub_menu/component.rb +0 -92
- data/app/components/hakumi/message/component.rb +0 -106
- data/app/components/hakumi/modal/component.rb +0 -99
- data/app/components/hakumi/modal/confirm/component.html.erb +0 -23
- data/app/components/hakumi/modal/confirm/component.rb +0 -46
- data/app/components/hakumi/modal/error/component.rb +0 -51
- data/app/components/hakumi/modal/info/component.rb +0 -51
- data/app/components/hakumi/modal/success/component.rb +0 -51
- data/app/components/hakumi/modal/warning/component.rb +0 -56
- data/app/components/hakumi/notification/component.rb +0 -126
- data/app/components/hakumi/pagination/component.rb +0 -205
- data/app/components/hakumi/popconfirm/component.rb +0 -72
- data/app/components/hakumi/popover/component.rb +0 -132
- data/app/components/hakumi/progress/component.rb +0 -565
- data/app/components/hakumi/qr_code/component.rb +0 -339
- data/app/components/hakumi/radio/component.rb +0 -80
- data/app/components/hakumi/radio/group/component.rb +0 -132
- data/app/components/hakumi/result/component.rb +0 -125
- data/app/components/hakumi/segmented/component.rb +0 -269
- data/app/components/hakumi/select/component.rb +0 -125
- data/app/components/hakumi/skeleton/avatar/component.rb +0 -66
- data/app/components/hakumi/skeleton/button/component.rb +0 -59
- data/app/components/hakumi/skeleton/component.rb +0 -200
- data/app/components/hakumi/skeleton/image/component.rb +0 -80
- data/app/components/hakumi/skeleton/input/component.rb +0 -51
- data/app/components/hakumi/skeleton/node/component.rb +0 -43
- data/app/components/hakumi/slider/component.rb +0 -228
- data/app/components/hakumi/space/compact/component.html.erb +0 -3
- data/app/components/hakumi/space/compact/component.rb +0 -36
- data/app/components/hakumi/space/component.rb +0 -73
- data/app/components/hakumi/spin/component.rb +0 -209
- data/app/components/hakumi/splitter/component.html.erb +0 -3
- data/app/components/hakumi/splitter/component.rb +0 -38
- data/app/components/hakumi/splitter/panel/component.html.erb +0 -3
- data/app/components/hakumi/splitter/panel/component.rb +0 -73
- data/app/components/hakumi/statistic/component.rb +0 -287
- data/app/components/hakumi/steps/component.rb +0 -145
- data/app/components/hakumi/steps/item/component.rb +0 -91
- data/app/components/hakumi/switch/component.rb +0 -124
- data/app/components/hakumi/table/column/component.rb +0 -80
- data/app/components/hakumi/table/component.rb +0 -731
- data/app/components/hakumi/table/concerns/columns.rb +0 -219
- data/app/components/hakumi/table/concerns/editable.rb +0 -121
- data/app/components/hakumi/table/concerns/ellipsis.rb +0 -63
- data/app/components/hakumi/table/concerns/fixed_columns.rb +0 -87
- data/app/components/hakumi/tabs/component.rb +0 -196
- data/app/components/hakumi/tabs/item/component.rb +0 -87
- data/app/components/hakumi/tag/component.rb +0 -187
- data/app/components/hakumi/timeline/component.html.erb +0 -7
- data/app/components/hakumi/timeline/component.rb +0 -168
- data/app/components/hakumi/timeline/item/component.rb +0 -137
- data/app/components/hakumi/tooltip/component.rb +0 -121
- data/app/components/hakumi/tour/component.rb +0 -158
- data/app/components/hakumi/transfer/component.html.erb +0 -173
- data/app/components/hakumi/transfer/component.rb +0 -245
- data/app/components/hakumi/tree/component.rb +0 -523
- data/app/components/hakumi/tree_select/component.rb +0 -261
- data/app/components/hakumi/typography/base_component.rb +0 -109
- data/app/components/hakumi/typography/link/component.rb +0 -34
- data/app/components/hakumi/typography/text/component.rb +0 -8
- data/app/components/hakumi/typography/title/component.rb +0 -29
- data/app/components/hakumi/upload/component.html.erb +0 -117
- data/app/components/hakumi/upload/component.rb +0 -193
- data/app/form_builders/hakumi/form_builder.rb +0 -482
- data/app/helpers/hakumi/form_helper.rb +0 -39
- data/app/services/hakumi/component_handler.rb +0 -53
- data/app/services/hakumi/icon/loader.rb +0 -95
- data/app/services/hakumi/illustrations/loader.rb +0 -43
- data/sig/action_view/tag_builder.rbs +0 -24
- data/sig/active_support/concern_patch.rbs +0 -7
- data/sig/generators/hakumi/install_generator.rbs +0 -11
- data/sig/hakumi/admin_panel/component.rbs +0 -28
- data/sig/hakumi/affix/component.rbs +0 -44
- data/sig/hakumi/alert/component.rbs +0 -64
- data/sig/hakumi/anchor/component.rbs +0 -45
- data/sig/hakumi/anchor/link/component.rbs +0 -31
- data/sig/hakumi/autocomplete/component.rbs +0 -68
- data/sig/hakumi/avatar/component.rbs +0 -44
- data/sig/hakumi/badge/component.rbs +0 -41
- data/sig/hakumi/base_component.rbs +0 -82
- data/sig/hakumi/breadcrumb/component.rbs +0 -21
- data/sig/hakumi/breadcrumb/item/component.rbs +0 -36
- data/sig/hakumi/button/component.rbs +0 -56
- data/sig/hakumi/calendar/component.rbs +0 -41
- data/sig/hakumi/card/component.rbs +0 -50
- data/sig/hakumi/card/grid/component.rbs +0 -21
- data/sig/hakumi/card/meta/component.rbs +0 -25
- data/sig/hakumi/carousel/component.rbs +0 -88
- data/sig/hakumi/cascader/component.rbs +0 -52
- data/sig/hakumi/checkbox/component.rbs +0 -46
- data/sig/hakumi/checkbox/group/component.rbs +0 -34
- data/sig/hakumi/collapse/component.rbs +0 -57
- data/sig/hakumi/collapse/panel/component.rbs +0 -47
- data/sig/hakumi/color_picker/component.rbs +0 -80
- data/sig/hakumi/concerns/form_field.rbs +0 -89
- data/sig/hakumi/container/component.rbs +0 -37
- data/sig/hakumi/date_picker/component.rbs +0 -72
- data/sig/hakumi/date_picker/range_picker.rbs +0 -68
- data/sig/hakumi/date_picker/shared_rendering.rbs +0 -41
- data/sig/hakumi/descriptions/component.rbs +0 -59
- data/sig/hakumi/descriptions/item/component.rbs +0 -31
- data/sig/hakumi/divider/component.rbs +0 -39
- data/sig/hakumi/drawer/component.rbs +0 -66
- data/sig/hakumi/dropdown/component.rbs +0 -45
- data/sig/hakumi/dropdown/divider/component.rbs +0 -11
- data/sig/hakumi/dropdown/item/component.rbs +0 -45
- data/sig/hakumi/empty/component.rbs +0 -40
- data/sig/hakumi/flex/component.rbs +0 -47
- data/sig/hakumi/float_button/back_top/component.rbs +0 -45
- data/sig/hakumi/float_button/component.rbs +0 -80
- data/sig/hakumi/float_button/group/component.rbs +0 -95
- data/sig/hakumi/float_button/group_cluster/component.rbs +0 -60
- data/sig/hakumi/form/item/component.rbs +0 -39
- data/sig/hakumi/form_builder.rbs +0 -37
- data/sig/hakumi/grid/col/component.rbs +0 -50
- data/sig/hakumi/grid/row/component.rbs +0 -46
- data/sig/hakumi/icon/component.rbs +0 -56
- data/sig/hakumi/image/component.rbs +0 -56
- data/sig/hakumi/image/preview_group/component.rbs +0 -28
- data/sig/hakumi/input/component.rbs +0 -71
- data/sig/hakumi/input/password/component.rbs +0 -27
- data/sig/hakumi/input/text_area/component.rbs +0 -42
- data/sig/hakumi/input_number/component.rbs +0 -85
- data/sig/hakumi/layout/component.rbs +0 -21
- data/sig/hakumi/layout/content/component.rbs +0 -19
- data/sig/hakumi/layout/footer/component.rbs +0 -19
- data/sig/hakumi/layout/header/component.rbs +0 -19
- data/sig/hakumi/layout/sider/component.rbs +0 -19
- data/sig/hakumi/mentions/component.rbs +0 -75
- data/sig/hakumi/menu/component.rbs +0 -52
- data/sig/hakumi/menu/divider/component.rbs +0 -11
- data/sig/hakumi/menu/group/component.rbs +0 -20
- data/sig/hakumi/menu/item/component.rbs +0 -42
- data/sig/hakumi/menu/sub_menu/component.rbs +0 -37
- data/sig/hakumi/message/component.rbs +0 -50
- data/sig/hakumi/modal/component.rbs +0 -76
- data/sig/hakumi/modal/confirm/component.rbs +0 -32
- data/sig/hakumi/modal/error/component.rbs +0 -27
- data/sig/hakumi/modal/info/component.rbs +0 -27
- data/sig/hakumi/modal/success/component.rbs +0 -27
- data/sig/hakumi/modal/warning/component.rbs +0 -27
- data/sig/hakumi/notification/component.rbs +0 -64
- data/sig/hakumi/pagination/component.rbs +0 -113
- data/sig/hakumi/popconfirm/component.rbs +0 -52
- data/sig/hakumi/popover/component.rbs +0 -66
- data/sig/hakumi/progress/component.rbs +0 -201
- data/sig/hakumi/qr_code/component.rbs +0 -111
- data/sig/hakumi/radio/component.rbs +0 -55
- data/sig/hakumi/radio/group/component.rbs +0 -71
- data/sig/hakumi/rails/attribute_introspection.rbs +0 -16
- data/sig/hakumi/rails/validation_introspection.rbs +0 -18
- data/sig/hakumi/rails/validation_mapper.rbs +0 -53
- data/sig/hakumi/rails.rbs +0 -6
- data/sig/hakumi/rate/component.rbs +0 -56
- data/sig/hakumi/result/component.rbs +0 -65
- data/sig/hakumi/segmented/component.rbs +0 -72
- data/sig/hakumi/select/component.rbs +0 -73
- data/sig/hakumi/skeleton/avatar/component.rbs +0 -23
- data/sig/hakumi/skeleton/button/component.rbs +0 -24
- data/sig/hakumi/skeleton/component.rbs +0 -76
- data/sig/hakumi/skeleton/image/component.rbs +0 -22
- data/sig/hakumi/skeleton/input/component.rbs +0 -23
- data/sig/hakumi/skeleton/node/component.rbs +0 -21
- data/sig/hakumi/slider/component.rbs +0 -85
- data/sig/hakumi/space/compact/component.rbs +0 -21
- data/sig/hakumi/space/component.rbs +0 -47
- data/sig/hakumi/spin/component.rbs +0 -77
- data/sig/hakumi/splitter/component.rbs +0 -27
- data/sig/hakumi/splitter/panel/component.rbs +0 -36
- data/sig/hakumi/statistic/component.rbs +0 -97
- data/sig/hakumi/steps/component.rbs +0 -82
- data/sig/hakumi/steps/item/component.rbs +0 -29
- data/sig/hakumi/switch/component.rbs +0 -52
- data/sig/hakumi/table/column/component.rbs +0 -57
- data/sig/hakumi/table/column_group/component.rbs +0 -20
- data/sig/hakumi/table/component.rbs +0 -279
- data/sig/hakumi/table/concerns/columns.rbs +0 -95
- data/sig/hakumi/table/concerns/editable.rbs +0 -40
- data/sig/hakumi/table/concerns/ellipsis.rbs +0 -27
- data/sig/hakumi/table/concerns/fixed_columns.rbs +0 -33
- data/sig/hakumi/tabs/component.rbs +0 -66
- data/sig/hakumi/tabs/item/component.rbs +0 -29
- data/sig/hakumi/tag/component.rbs +0 -86
- data/sig/hakumi/tag/group/component.rbs +0 -24
- data/sig/hakumi/time_picker/component.rbs +0 -72
- data/sig/hakumi/timeline/component.rbs +0 -61
- data/sig/hakumi/timeline/item/component.rbs +0 -70
- data/sig/hakumi/tooltip/component.rbs +0 -73
- data/sig/hakumi/tour/component.rbs +0 -84
- data/sig/hakumi/transfer/component.rbs +0 -75
- data/sig/hakumi/tree/component.rbs +0 -126
- data/sig/hakumi/tree_select/component.rbs +0 -122
- data/sig/hakumi/typography/base_component.rbs +0 -57
- data/sig/hakumi/typography/link/component.rbs +0 -28
- data/sig/hakumi/typography/paragraph/component.rbs +0 -13
- data/sig/hakumi/typography/title/component.rbs +0 -28
- data/sig/hakumi/upload/component.rbs +0 -78
- data/sig/hakumi.rbs +0 -96
- data/sig/rails/active_model/validations/comparison_validator.rbs +0 -6
- data/sig/rails.rbs +0 -18
- data/sig/view_component/base.rbs +0 -28
- /data/app/components/{hakumi → hakumi_components}/affix/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/anchor/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/breadcrumb/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/dropdown/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/dropdown/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/icon/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/group/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/menu/sub_menu/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/message/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/qr_code/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/result/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/avatar/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/button/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/input/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/skeleton/node/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/spin/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/statistic/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/steps/item/component.html.erb +0 -0
- /data/app/components/{hakumi → hakumi_components}/tour/component.html.erb +0 -0
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Table
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
include Concerns::Columns
|
|
7
|
-
include Concerns::Editable
|
|
8
|
-
include Concerns::FixedColumns
|
|
9
|
-
include Concerns::Ellipsis
|
|
10
|
-
|
|
11
|
-
# Type aliases for Table component
|
|
12
|
-
type table_size = :default | :middle | :small
|
|
13
|
-
type row_selection_type = :checkbox | :radio
|
|
14
|
-
type sort_direction = :ascend | :descend
|
|
15
|
-
type fixed_side = :left | :right
|
|
16
|
-
type responsive_breakpoint = :xs | :sm | :md | :lg | :xl | :xxl
|
|
17
|
-
type editable_mode = :cell | :row
|
|
18
|
-
type editable_trigger = :click | :dblclick
|
|
19
|
-
type editable_input_type = :text | :number | :textarea | :select
|
|
20
|
-
type row_button_action = :edit | :save | :cancel
|
|
21
|
-
|
|
22
|
-
# Hash types for complex options
|
|
23
|
-
type row_selection_options = {
|
|
24
|
-
type: row_selection_type,
|
|
25
|
-
selected_row_keys: Array[String | Integer],
|
|
26
|
-
selectedRowKeys: Array[String | Integer],
|
|
27
|
-
preserve_selected_row_keys: bool,
|
|
28
|
-
preserveSelectedRowKeys: bool,
|
|
29
|
-
selections: untyped
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
type expandable_options = {
|
|
33
|
-
expanded_row_keys: Array[String | Integer],
|
|
34
|
-
expandedRowKeys: Array[String | Integer],
|
|
35
|
-
default_expanded_row_keys: Array[String | Integer],
|
|
36
|
-
defaultExpandedRowKeys: Array[String | Integer],
|
|
37
|
-
expanded_row_render: untyped, # Proc type
|
|
38
|
-
show_expand_column: bool
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
type scroll_options = {
|
|
42
|
-
x: (String | Integer | nil),
|
|
43
|
-
y: (String | Integer | nil)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
type editable_options = {
|
|
47
|
-
mode: editable_mode,
|
|
48
|
-
trigger: editable_trigger
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
type row_drag_options = {
|
|
52
|
-
enabled: bool,
|
|
53
|
-
handle: bool
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
# Column hash type - complex structure, using untyped for Proc fields
|
|
57
|
-
type column_hash = {
|
|
58
|
-
title: String,
|
|
59
|
-
data_index: (String | Symbol)?,
|
|
60
|
-
key: (String | Symbol)?,
|
|
61
|
-
align: (:left | :center | :right)?,
|
|
62
|
-
width: (String | Integer)?,
|
|
63
|
-
ellipsis: (bool | Hash[Symbol, untyped])?,
|
|
64
|
-
sorter: untyped, # Proc or bool
|
|
65
|
-
sort_directions: Array[sort_direction]?,
|
|
66
|
-
sort_order: sort_direction?,
|
|
67
|
-
default_sort_order: sort_direction?,
|
|
68
|
-
filters: Array[Hash[Symbol, untyped]]?,
|
|
69
|
-
filter_multiple: bool?,
|
|
70
|
-
filtered_value: Array[untyped]?,
|
|
71
|
-
default_filtered_value: Array[untyped]?,
|
|
72
|
-
filter_mode: Symbol?,
|
|
73
|
-
filter_search: bool?,
|
|
74
|
-
hidden: bool?,
|
|
75
|
-
on_cell: untyped, # Proc returning Hash
|
|
76
|
-
class_name: String?,
|
|
77
|
-
render: untyped, # Proc for custom rendering
|
|
78
|
-
children: Array[column_hash]?,
|
|
79
|
-
fixed: fixed_side?,
|
|
80
|
-
responsive: Array[responsive_breakpoint]?,
|
|
81
|
-
editable: (bool | Hash[Symbol, untyped])?,
|
|
82
|
-
should_cell_update: (String | Symbol)?,
|
|
83
|
-
selection: bool?,
|
|
84
|
-
expand: bool?,
|
|
85
|
-
drag_handle: bool?,
|
|
86
|
-
sort_value: untyped # Proc or Symbol
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
type pagination_options = {
|
|
90
|
-
total: Integer,
|
|
91
|
-
current: Integer,
|
|
92
|
-
page_size: Integer,
|
|
93
|
-
pageSize: Integer,
|
|
94
|
-
page: Integer,
|
|
95
|
-
href: String?,
|
|
96
|
-
turbo_frame: String?,
|
|
97
|
-
turbo_action: Symbol?,
|
|
98
|
-
sort_field_param: String?,
|
|
99
|
-
sort_order_param: String?,
|
|
100
|
-
server_side: bool?,
|
|
101
|
-
page_param: String?,
|
|
102
|
-
per_page_param: String?,
|
|
103
|
-
preserve_params: bool?,
|
|
104
|
-
size: hakumi_size_standard?,
|
|
105
|
-
align: (:left | :center | :right)?,
|
|
106
|
-
simple: bool?,
|
|
107
|
-
show_size_changer: bool?,
|
|
108
|
-
show_quick_jumper: bool?,
|
|
109
|
-
page_size_options: Array[Integer]?,
|
|
110
|
-
show_total: (bool | untyped)?, # bool or Proc
|
|
111
|
-
hide_on_single_page: bool?,
|
|
112
|
-
prev_text: String?,
|
|
113
|
-
next_text: String?
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
SIZES: Array[table_size]
|
|
117
|
-
ROW_SELECTION_TYPES: Array[row_selection_type]
|
|
118
|
-
SORT_DIRECTIONS: Array[sort_direction]
|
|
119
|
-
FIXED_SIDES: Array[fixed_side]
|
|
120
|
-
RESPONSIVE_BREAKPOINTS: Array[responsive_breakpoint]
|
|
121
|
-
ROW_BUTTON_ACTIONS: Array[row_button_action]
|
|
122
|
-
|
|
123
|
-
SELECTION_COLUMN: Symbol
|
|
124
|
-
EXPAND_COLUMN: Symbol
|
|
125
|
-
|
|
126
|
-
@columns_data: (Array[column_hash] | nil)
|
|
127
|
-
@data_source: Array[untyped]
|
|
128
|
-
@row_key: (Symbol | String | untyped) # Can be Proc
|
|
129
|
-
@size: table_size
|
|
130
|
-
@bordered: bool
|
|
131
|
-
@title: (String | untyped)? # String or ViewComponent
|
|
132
|
-
@footer: (String | untyped)? # String or ViewComponent
|
|
133
|
-
@row_selection: (row_selection_options | Hash[Symbol, untyped])?
|
|
134
|
-
@expandable: (expandable_options | Hash[Symbol, untyped])?
|
|
135
|
-
@pagination: (pagination_options | Hash[Symbol, untyped] | untyped)? # Can be ViewComponent
|
|
136
|
-
@summary: untyped # Proc or String
|
|
137
|
-
@empty_text: (String | untyped)? # String, ViewComponent, or Proc
|
|
138
|
-
@sort_directions: Array[sort_direction]
|
|
139
|
-
@filter_on_close: bool
|
|
140
|
-
@filter_mode: Symbol
|
|
141
|
-
@filter_search: bool
|
|
142
|
-
@children_column_name: Symbol
|
|
143
|
-
@indent_size: Integer
|
|
144
|
-
@scroll: (scroll_options | Hash[Symbol, untyped])?
|
|
145
|
-
@scroll_x: (String | nil)
|
|
146
|
-
@scroll_y: (String | nil)
|
|
147
|
-
@sticky: bool
|
|
148
|
-
@row_class_name: (String | untyped)? # String or Proc
|
|
149
|
-
@editable: (editable_options | Hash[Symbol, untyped])?
|
|
150
|
-
@row_drag: (row_drag_options | Hash[Symbol, untyped])?
|
|
151
|
-
@column_drag: bool
|
|
152
|
-
@data_url: String?
|
|
153
|
-
@html_options: hakumi_html_options
|
|
154
|
-
@selected_row_keys: Array[String]
|
|
155
|
-
@row_selection_type: (row_selection_type | nil)
|
|
156
|
-
@row_selection_preserve: bool
|
|
157
|
-
@row_selection_selections: untyped
|
|
158
|
-
@expanded_row_keys: Array[String]
|
|
159
|
-
@header_rows: untyped
|
|
160
|
-
@display_rows: Array[Hash[Symbol, untyped]]
|
|
161
|
-
@leaf_columns: Array[column_hash]
|
|
162
|
-
@normalized_columns: Array[column_hash]
|
|
163
|
-
@first_data_column: (column_hash | nil)
|
|
164
|
-
@fixed_offsets: Hash[Symbol, Hash[Symbol, untyped]]
|
|
165
|
-
|
|
166
|
-
# Class methods
|
|
167
|
-
def self.extract_controller_locals: (Hash[Symbol, untyped] params) -> Hash[Symbol, untyped]
|
|
168
|
-
def self.parse_json_param: (untyped value) -> untyped
|
|
169
|
-
|
|
170
|
-
def initialize: (
|
|
171
|
-
?columns: (Array[column_hash] | nil),
|
|
172
|
-
?data_source: Array[untyped],
|
|
173
|
-
?row_key: (Symbol | String | untyped),
|
|
174
|
-
?size: table_size,
|
|
175
|
-
?bordered: bool,
|
|
176
|
-
?title: (String | untyped)?,
|
|
177
|
-
?footer: (String | untyped)?,
|
|
178
|
-
?row_selection: (row_selection_options | Hash[Symbol, untyped])?,
|
|
179
|
-
?expandable: (expandable_options | Hash[Symbol, untyped])?,
|
|
180
|
-
?pagination: (pagination_options | Hash[Symbol, untyped] | untyped)?,
|
|
181
|
-
?summary: untyped,
|
|
182
|
-
?empty_text: (String | untyped)?,
|
|
183
|
-
?sort_directions: (Array[sort_direction] | sort_direction),
|
|
184
|
-
?filter_on_close: bool,
|
|
185
|
-
?filter_mode: Symbol,
|
|
186
|
-
?filter_search: bool,
|
|
187
|
-
?children_column_name: Symbol,
|
|
188
|
-
?indent_size: Integer,
|
|
189
|
-
?scroll: (scroll_options | Hash[Symbol, untyped])?,
|
|
190
|
-
?sticky: bool,
|
|
191
|
-
?row_class_name: (String | untyped)?,
|
|
192
|
-
?editable: (editable_options | Hash[Symbol, untyped])?,
|
|
193
|
-
?row_drag: (row_drag_options | Hash[Symbol, untyped])?,
|
|
194
|
-
?column_drag: bool,
|
|
195
|
-
?data_url: String?,
|
|
196
|
-
**hakumi_html_options html_options
|
|
197
|
-
) -> void
|
|
198
|
-
|
|
199
|
-
attr_reader row_selection: (row_selection_options | Hash[Symbol, untyped])?
|
|
200
|
-
attr_reader expandable: (expandable_options | Hash[Symbol, untyped])?
|
|
201
|
-
attr_reader pagination: (pagination_options | Hash[Symbol, untyped] | untyped)?
|
|
202
|
-
attr_reader summary: untyped
|
|
203
|
-
|
|
204
|
-
def table_classes: () -> String
|
|
205
|
-
def table_container_attributes: () -> hakumi_html_options
|
|
206
|
-
def table_attributes: () -> hakumi_html_options
|
|
207
|
-
def container_classes: () -> String
|
|
208
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
209
|
-
def header_rows: () -> Array[Array[Hash[Symbol, untyped]]]
|
|
210
|
-
def display_rows: () -> Array[Hash[Symbol, untyped]]
|
|
211
|
-
def row_key_for: (untyped row, Integer index) -> (String | Integer | untyped)
|
|
212
|
-
def row_selected?: (String row_key) -> bool
|
|
213
|
-
def row_classes: (untyped row, Integer row_index, String row_key) -> String
|
|
214
|
-
def cell_attributes: (column_hash column, untyped row, Integer row_index, Integer depth, ?String? row_key, ?untyped raw_value) -> hakumi_html_options
|
|
215
|
-
def header_cell_attributes: (column_hash column, col_span: Integer, row_span: Integer) -> hakumi_html_options
|
|
216
|
-
def cell_content: (column_hash column, untyped row, Integer row_index, ?untyped raw_value) -> untyped
|
|
217
|
-
def render_cell_display: (column_hash column, untyped content, untyped raw_value, untyped row, Integer row_index) -> String
|
|
218
|
-
def empty_state: () -> String
|
|
219
|
-
def pagination_component: () -> untyped
|
|
220
|
-
def ajax_pagination_component: () -> untyped
|
|
221
|
-
def summary_content: () -> untyped
|
|
222
|
-
def scroll_styles: () -> String
|
|
223
|
-
def table_style: () -> String?
|
|
224
|
-
def selection_column?: () -> bool
|
|
225
|
-
def selection_actions?: () -> bool
|
|
226
|
-
def selection_all_enabled?: () -> bool
|
|
227
|
-
def expanded_row?: (String row_key) -> bool
|
|
228
|
-
def expanded_row_content: (untyped row, Integer row_index) -> untyped
|
|
229
|
-
def header_filter_options: (column_hash column) -> Array[untyped]
|
|
230
|
-
def column_sortable?: (column_hash column) -> bool
|
|
231
|
-
def column_filterable?: (column_hash column) -> bool
|
|
232
|
-
def column_filter_multiple?: (column_hash column) -> bool
|
|
233
|
-
def default_filtered_values: (column_hash column) -> Array[untyped]
|
|
234
|
-
def default_sort_order: (column_hash column) -> (sort_direction | nil)
|
|
235
|
-
def current_sort_state: () -> (Hash[Symbol, untyped] | nil)
|
|
236
|
-
def header_cell_classes: (column_hash column) -> String
|
|
237
|
-
def cell_classes: (column_hash column) -> String
|
|
238
|
-
def selection_header_state: () -> Hash[Symbol, bool]
|
|
239
|
-
def fixed_columns?: () -> bool
|
|
240
|
-
|
|
241
|
-
private
|
|
242
|
-
|
|
243
|
-
def normalize_row_selection!: () -> void
|
|
244
|
-
def normalize_expandable!: () -> void
|
|
245
|
-
def validate_props!: () -> void
|
|
246
|
-
def normalize_scroll: (untyped value) -> (Hash[Symbol, String?] | nil)
|
|
247
|
-
def fixed_offsets: () -> Hash[Symbol, Hash[Symbol, untyped]]
|
|
248
|
-
def apply_fixed_column_attributes!: (Hash[Symbol, untyped] attrs, column_hash column, header: bool) -> void
|
|
249
|
-
def apply_editable_attributes!: (Hash[Symbol, untyped] attrs, column_hash column) -> void
|
|
250
|
-
def compute_fixed_offsets: (Array[column_hash] leaf_columns) -> void
|
|
251
|
-
def fixed_column_width!: (column_hash column) -> Float
|
|
252
|
-
def numeric_width: (untyped value) -> (Float | nil)
|
|
253
|
-
def ellipsis_config: (column_hash column) -> (bool | Hash[Symbol, untyped] | nil)
|
|
254
|
-
def normalize_ellipsis_option: (untyped option) -> (Hash[Symbol, untyped] | nil)
|
|
255
|
-
def normalize_ellipsis_tooltip_option: (untyped option) -> (Hash[Symbol, untyped] | nil)
|
|
256
|
-
def ellipsis_title: (untyped config, untyped raw_value, untyped content_fragment) -> (String | nil)
|
|
257
|
-
def ellipsis_tooltip_component: (untyped config, untyped raw_value, untyped row, Integer row_index) -> untyped
|
|
258
|
-
def responsive_classes: (column_hash column) -> Array[String]
|
|
259
|
-
def extract_sort_value: (column_hash column, untyped row, untyped raw_value) -> untyped
|
|
260
|
-
def normalize_responsive_breakpoints: (untyped value) -> (Array[responsive_breakpoint] | nil)
|
|
261
|
-
def normalize_pagination_options: (Hash[Symbol, untyped] options) -> Hash[Symbol, untyped]
|
|
262
|
-
def columns_data: () -> Array[column_hash]
|
|
263
|
-
def build_display_rows: () -> Array[Hash[Symbol, untyped]]
|
|
264
|
-
def flatten_tree: (Array[untyped] rows, ?Integer depth) -> Array[Hash[Symbol, untyped]]
|
|
265
|
-
def apply_pagination: (Array[Hash[Symbol, untyped]] rows) -> Array[Hash[Symbol, untyped]]
|
|
266
|
-
def value_from_row: (untyped row, (Symbol | String)? data_index) -> untyped
|
|
267
|
-
def selection_cell: (untyped row, Integer row_index) -> Hash[Symbol, untyped]
|
|
268
|
-
def expand_cell: (untyped row, Integer row_index) -> Hash[Symbol, untyped]
|
|
269
|
-
def normalize_editable: (untyped value) -> (Hash[Symbol, untyped] | nil)
|
|
270
|
-
def normalize_row_drag: (untyped value) -> (Hash[Symbol, untyped] | nil)
|
|
271
|
-
def normalize_column_editable: (untyped value) -> (Hash[Symbol, untyped] | nil)
|
|
272
|
-
def normalize_should_cell_update: (untyped value) -> (String | nil)
|
|
273
|
-
def editable_config_json: () -> (String | nil)
|
|
274
|
-
def columns_config_json: () -> String
|
|
275
|
-
def cell_editable_payload: (column_hash column) -> (Hash[Symbol, untyped] | nil)
|
|
276
|
-
def apply_should_cell_update_attributes!: (Hash[Symbol, untyped] attrs, column_hash column) -> void
|
|
277
|
-
end
|
|
278
|
-
end
|
|
279
|
-
end
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Column normalization and management for Table component
|
|
7
|
-
module Columns
|
|
8
|
-
# Column can be a hash config or a Symbol constant (SELECTION_COLUMN, EXPAND_COLUMN)
|
|
9
|
-
type column_like = Hash[Symbol, untyped] | Symbol
|
|
10
|
-
# Normalized column is a hash with specific keys (title, key, width, etc.) and dynamic values
|
|
11
|
-
type column_hash = Hash[Symbol, untyped]
|
|
12
|
-
|
|
13
|
-
# Get all leaf columns (columns without children)
|
|
14
|
-
def leaf_columns: () -> Array[column_hash]
|
|
15
|
-
|
|
16
|
-
# Count of leaf columns (minimum 1)
|
|
17
|
-
def leaf_column_count: () -> Integer
|
|
18
|
-
|
|
19
|
-
# Check if table has selection column
|
|
20
|
-
def selection_column?: () -> bool
|
|
21
|
-
|
|
22
|
-
# Check if table has expandable rows
|
|
23
|
-
def expandable?: () -> bool
|
|
24
|
-
|
|
25
|
-
# Check if table has expand column
|
|
26
|
-
def expand_column?: () -> bool
|
|
27
|
-
|
|
28
|
-
# Get normalized columns with special columns inserted
|
|
29
|
-
def normalized_columns: () -> Array[column_hash]
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
# Normalize an array of column definitions
|
|
34
|
-
def normalize_columns: (Array[column_like] columns) -> Array[column_hash]
|
|
35
|
-
|
|
36
|
-
# Normalize a single column definition
|
|
37
|
-
def normalize_column: (column_hash column) -> (column_hash | nil)
|
|
38
|
-
|
|
39
|
-
# Insert drag handle column if needed
|
|
40
|
-
def insert_drag_handle_column: (Array[column_hash] columns) -> Array[column_hash]
|
|
41
|
-
|
|
42
|
-
# Insert selection column if needed
|
|
43
|
-
def insert_selection_column: (Array[column_hash] columns) -> Array[column_hash]
|
|
44
|
-
|
|
45
|
-
# Insert expand column if needed
|
|
46
|
-
def insert_expand_column: (Array[column_hash] columns) -> Array[column_hash]
|
|
47
|
-
|
|
48
|
-
# Definition for selection column
|
|
49
|
-
def selection_column_definition: () -> column_hash
|
|
50
|
-
|
|
51
|
-
# Definition for expand column
|
|
52
|
-
def expand_column_definition: () -> column_hash
|
|
53
|
-
|
|
54
|
-
# Check if drag handle column should be added
|
|
55
|
-
def drag_handle_column?: () -> bool
|
|
56
|
-
|
|
57
|
-
# Definition for drag handle column
|
|
58
|
-
def drag_handle_column_definition: () -> column_hash
|
|
59
|
-
|
|
60
|
-
# Get first data column (non-special column)
|
|
61
|
-
def first_data_column: () -> (column_hash | nil)
|
|
62
|
-
|
|
63
|
-
# Recursively flatten all leaf columns
|
|
64
|
-
def flatten_leaf_columns: (Array[column_hash] columns) -> Array[column_hash]
|
|
65
|
-
|
|
66
|
-
# Count leaf columns recursively
|
|
67
|
-
def leaf_count: (Array[column_hash] columns) -> Integer
|
|
68
|
-
|
|
69
|
-
# Calculate maximum depth of column hierarchy
|
|
70
|
-
def max_depth: (Array[column_hash] columns, ?Integer depth) -> Integer
|
|
71
|
-
|
|
72
|
-
# Build header rows for rendering
|
|
73
|
-
def build_header_rows: (Array[column_hash] columns) -> Array[Array[column_hash]]
|
|
74
|
-
|
|
75
|
-
# Recursively build header rows
|
|
76
|
-
def build_rows_recursive: (Array[column_hash] columns, Integer level, Array[Array[column_hash]] rows, Integer max_depth) -> void
|
|
77
|
-
|
|
78
|
-
# Methods expected from Table::Component (via BaseComponent)
|
|
79
|
-
def columns_data: () -> Array[column_like]
|
|
80
|
-
def compute_fixed_offsets: (Array[column_hash] columns) -> void
|
|
81
|
-
def generate_id: (String prefix, ?length: Integer) -> String
|
|
82
|
-
# normalize_ellipsis_option: can be bool, hash, or string
|
|
83
|
-
def normalize_ellipsis_option: ((bool | Hash[Symbol, untyped] | String)? option) -> (Hash[Symbol, untyped] | nil)
|
|
84
|
-
# normalize_responsive_breakpoints: can be array or single value
|
|
85
|
-
def normalize_responsive_breakpoints: (untyped option) -> (Array[Symbol] | nil)
|
|
86
|
-
# dimension_to_css: accepts Numeric, String, or nil (from BaseComponent)
|
|
87
|
-
def dimension_to_css: ((Numeric | String)? value) -> String?
|
|
88
|
-
# normalize_column_editable: can be bool or hash with editable config
|
|
89
|
-
def normalize_column_editable: ((bool | Hash[Symbol, untyped])? value) -> (Hash[Symbol, untyped] | nil)
|
|
90
|
-
# normalize_should_cell_update: Symbol or String method name, returns String or nil
|
|
91
|
-
def normalize_should_cell_update: ((Symbol | String)? value) -> String?
|
|
92
|
-
end
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
end
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Editable cell and row functionality for Table component
|
|
7
|
-
module Editable
|
|
8
|
-
EDITABLE_MODES: Array[Symbol]
|
|
9
|
-
EDITABLE_TRIGGERS: Array[Symbol]
|
|
10
|
-
EDITABLE_INPUT_TYPES: Array[Symbol]
|
|
11
|
-
|
|
12
|
-
# Returns JSON configuration for the table-level editable settings
|
|
13
|
-
def editable_config_json: () -> String?
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
# Normalizes the table-level editable configuration
|
|
18
|
-
def normalize_editable: (untyped value) -> untyped
|
|
19
|
-
|
|
20
|
-
# Normalizes column-level editable configuration
|
|
21
|
-
def normalize_column_editable: (untyped value) -> untyped
|
|
22
|
-
|
|
23
|
-
# Normalizes should_cell_update hook name
|
|
24
|
-
def normalize_should_cell_update: (untyped value) -> untyped
|
|
25
|
-
|
|
26
|
-
# Applies editable attributes to cell
|
|
27
|
-
def apply_editable_attributes!: (Hash[Symbol, untyped] attrs, Hash[Symbol, untyped] column) -> void
|
|
28
|
-
|
|
29
|
-
# Applies should_cell_update attributes to cell
|
|
30
|
-
def apply_should_cell_update_attributes!: (Hash[Symbol, untyped] attrs, Hash[Symbol, untyped] column) -> void
|
|
31
|
-
|
|
32
|
-
# Returns the editable payload for a specific cell/column
|
|
33
|
-
def cell_editable_payload: (Hash[Symbol, untyped] column) -> untyped
|
|
34
|
-
|
|
35
|
-
# Instance variable from Table::Component
|
|
36
|
-
@editable: untyped
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Text ellipsis and tooltip handling for Table cells
|
|
7
|
-
module Ellipsis
|
|
8
|
-
private
|
|
9
|
-
|
|
10
|
-
# Get ellipsis config from column
|
|
11
|
-
def ellipsis_config: (Hash[Symbol, untyped] column) -> untyped
|
|
12
|
-
|
|
13
|
-
# Normalize ellipsis option
|
|
14
|
-
def normalize_ellipsis_option: (untyped option) -> untyped
|
|
15
|
-
|
|
16
|
-
# Normalize ellipsis tooltip option
|
|
17
|
-
def normalize_ellipsis_tooltip_option: (untyped option) -> untyped
|
|
18
|
-
|
|
19
|
-
# Get ellipsis title for cell
|
|
20
|
-
def ellipsis_title: (untyped config, untyped raw_value, untyped content_fragment) -> untyped
|
|
21
|
-
|
|
22
|
-
# Get ellipsis tooltip component for cell
|
|
23
|
-
def ellipsis_tooltip_component: (untyped config, untyped raw_value, untyped row, Integer row_index) -> untyped
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Table
|
|
5
|
-
module Concerns
|
|
6
|
-
# Fixed (sticky) column positioning for Table component
|
|
7
|
-
module FixedColumns
|
|
8
|
-
# Check if table has any fixed columns
|
|
9
|
-
def fixed_columns?: () -> bool
|
|
10
|
-
|
|
11
|
-
private
|
|
12
|
-
|
|
13
|
-
# Get or initialize fixed offsets hash
|
|
14
|
-
def fixed_offsets: () -> Hash[untyped, untyped]
|
|
15
|
-
|
|
16
|
-
# Applies fixed column positioning attributes to cell
|
|
17
|
-
def apply_fixed_column_attributes!: (Hash[Symbol, untyped] attrs, Hash[Symbol, untyped] column, ?header: bool) -> void
|
|
18
|
-
|
|
19
|
-
# Compute fixed column offsets from left and right
|
|
20
|
-
def compute_fixed_offsets: (Array[Hash[Symbol, untyped]] leaf_columns) -> void
|
|
21
|
-
|
|
22
|
-
# Get width for fixed column (must be defined)
|
|
23
|
-
def fixed_column_width!: (Hash[Symbol, untyped] column) -> untyped
|
|
24
|
-
|
|
25
|
-
# Convert width value to numeric
|
|
26
|
-
def numeric_width: (untyped value) -> untyped
|
|
27
|
-
|
|
28
|
-
# Instance variable for fixed offsets
|
|
29
|
-
@fixed_offsets: Hash[untyped, untyped]
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Tabs
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
type tab_type = :line | :card | :editable_card
|
|
7
|
-
type tab_size = :large | :middle | :small
|
|
8
|
-
type tab_position = :top | :bottom | :left | :right
|
|
9
|
-
type indicator_align = :start | :center | :end
|
|
10
|
-
|
|
11
|
-
TYPES: Array[tab_type]
|
|
12
|
-
SIZES: Array[tab_size]
|
|
13
|
-
TAB_POSITIONS: Array[tab_position]
|
|
14
|
-
INDICATOR_ALIGNS: Array[indicator_align]
|
|
15
|
-
|
|
16
|
-
@active_key: String?
|
|
17
|
-
@default_active_key: String?
|
|
18
|
-
@type: tab_type
|
|
19
|
-
@size: tab_size
|
|
20
|
-
@tab_position: tab_position
|
|
21
|
-
@centered: bool
|
|
22
|
-
@animated: bool
|
|
23
|
-
@indicator: hakumi_html_options?
|
|
24
|
-
@tab_bar_gutter: Integer?
|
|
25
|
-
@tab_bar_extra_content_left: String?
|
|
26
|
-
@tab_bar_extra_content_right: String?
|
|
27
|
-
@add_icon: String?
|
|
28
|
-
@hide_add: bool
|
|
29
|
-
@more_icon: String?
|
|
30
|
-
@html_options: hakumi_html_options
|
|
31
|
-
|
|
32
|
-
def initialize: (
|
|
33
|
-
?active_key: String?,
|
|
34
|
-
?default_active_key: String?,
|
|
35
|
-
?type: tab_type,
|
|
36
|
-
?size: tab_size,
|
|
37
|
-
?tab_position: tab_position,
|
|
38
|
-
?centered: bool,
|
|
39
|
-
?animated: bool,
|
|
40
|
-
?indicator: hakumi_html_options?,
|
|
41
|
-
?tab_bar_gutter: Integer?,
|
|
42
|
-
?tab_bar_extra_content_left: String?,
|
|
43
|
-
?tab_bar_extra_content_right: String?,
|
|
44
|
-
?add_icon: String?,
|
|
45
|
-
?hide_add: bool,
|
|
46
|
-
?more_icon: String?,
|
|
47
|
-
**hakumi_html_options html_options
|
|
48
|
-
) -> void
|
|
49
|
-
|
|
50
|
-
def call: () -> String
|
|
51
|
-
|
|
52
|
-
def before_render: () -> void
|
|
53
|
-
|
|
54
|
-
private
|
|
55
|
-
|
|
56
|
-
def validate_props!: () -> void
|
|
57
|
-
def wrapper_classes: () -> String
|
|
58
|
-
def wrapper_attributes: () -> hakumi_html_options
|
|
59
|
-
def render_tab_bar: () -> String
|
|
60
|
-
def render_content: () -> String
|
|
61
|
-
def tab_bar_classes: () -> String
|
|
62
|
-
def tabs_nav_classes: () -> String
|
|
63
|
-
def indicator_style: () -> String
|
|
64
|
-
end
|
|
65
|
-
end
|
|
66
|
-
end
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Tabs
|
|
5
|
-
module Item
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
@key: (String | Symbol)
|
|
8
|
-
@label: String?
|
|
9
|
-
@disabled: bool
|
|
10
|
-
@closable: bool
|
|
11
|
-
@icon: hakumi_icon?
|
|
12
|
-
@html_options: hakumi_html_options
|
|
13
|
-
|
|
14
|
-
def initialize: (
|
|
15
|
-
key: (String | Symbol),
|
|
16
|
-
?label: String?,
|
|
17
|
-
?disabled: bool,
|
|
18
|
-
?closable: bool,
|
|
19
|
-
?icon: hakumi_icon?,
|
|
20
|
-
**hakumi_html_options html_options
|
|
21
|
-
) -> void
|
|
22
|
-
|
|
23
|
-
attr_reader key: (String | Symbol)
|
|
24
|
-
|
|
25
|
-
def call: () -> String
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Tag
|
|
5
|
-
class Component < Hakumi::BaseComponent
|
|
6
|
-
type tag_color_preset = :magenta | :red | :volcano | :orange | :gold | :lime | :green | :cyan | :blue | :geekblue | :purple
|
|
7
|
-
type tag_status = :success | :processing | :error | :default | :warning
|
|
8
|
-
type tag_variant = :filled | :outlined | :borderless
|
|
9
|
-
type tag_color = tag_color_preset | tag_status | String
|
|
10
|
-
|
|
11
|
-
COLORS: Array[tag_color_preset]
|
|
12
|
-
STATUSES: Array[tag_status]
|
|
13
|
-
VARIANTS: Array[tag_variant]
|
|
14
|
-
|
|
15
|
-
# Extracts locals from controller params for dynamic rendering
|
|
16
|
-
def self.extract_controller_locals: (untyped params) -> Hash[Symbol, untyped]
|
|
17
|
-
|
|
18
|
-
@color: tag_color?
|
|
19
|
-
@closable: bool
|
|
20
|
-
@close_icon: hakumi_icon?
|
|
21
|
-
@bordered: bool
|
|
22
|
-
@variant: tag_variant
|
|
23
|
-
@href: String?
|
|
24
|
-
@checkable: bool
|
|
25
|
-
@checked: bool
|
|
26
|
-
@draggable: bool
|
|
27
|
-
@html_options: hakumi_html_options
|
|
28
|
-
|
|
29
|
-
def initialize: (
|
|
30
|
-
?color: tag_color?,
|
|
31
|
-
?closable: bool?,
|
|
32
|
-
?close_icon: hakumi_icon?,
|
|
33
|
-
?bordered: bool?,
|
|
34
|
-
?variant: tag_variant?,
|
|
35
|
-
?href: String?,
|
|
36
|
-
?checkable: bool?,
|
|
37
|
-
?checked: bool?,
|
|
38
|
-
?draggable: bool?,
|
|
39
|
-
**hakumi_html_options html_options
|
|
40
|
-
) -> void
|
|
41
|
-
|
|
42
|
-
def call: () -> String
|
|
43
|
-
|
|
44
|
-
# Slot for icon content
|
|
45
|
-
def icon: () -> String?
|
|
46
|
-
def icon?: () -> bool
|
|
47
|
-
def icon=: (String) -> void
|
|
48
|
-
|
|
49
|
-
private
|
|
50
|
-
|
|
51
|
-
def validate_props!: () -> void
|
|
52
|
-
|
|
53
|
-
def render_link_tag: () -> String
|
|
54
|
-
|
|
55
|
-
def render_span_tag: () -> String
|
|
56
|
-
|
|
57
|
-
def tag_content: () -> String
|
|
58
|
-
|
|
59
|
-
def icon_element: () -> String?
|
|
60
|
-
|
|
61
|
-
def content_wrapper: () -> String?
|
|
62
|
-
|
|
63
|
-
def close_button: () -> String?
|
|
64
|
-
|
|
65
|
-
def tag_attributes: () -> hakumi_html_options
|
|
66
|
-
|
|
67
|
-
def tag_classes: () -> String
|
|
68
|
-
|
|
69
|
-
def tag_data_attributes: () -> hakumi_html_options
|
|
70
|
-
|
|
71
|
-
def preset_color?: () -> bool
|
|
72
|
-
|
|
73
|
-
def preset_color: () -> Symbol?
|
|
74
|
-
|
|
75
|
-
def status_color?: () -> bool
|
|
76
|
-
|
|
77
|
-
def status_color: () -> Symbol?
|
|
78
|
-
|
|
79
|
-
def custom_color?: () -> bool
|
|
80
|
-
|
|
81
|
-
def custom_color_styles: () -> String?
|
|
82
|
-
|
|
83
|
-
def contrast_color: (String hex_color) -> String
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
end
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Hakumi
|
|
4
|
-
module Tag
|
|
5
|
-
module Group
|
|
6
|
-
class Component < Hakumi::BaseComponent
|
|
7
|
-
@sortable: bool
|
|
8
|
-
@animation: Integer
|
|
9
|
-
@html_options: hakumi_html_options
|
|
10
|
-
|
|
11
|
-
def initialize: (?sortable: bool, ?animation: Integer, **hakumi_html_options html_options) -> void
|
|
12
|
-
|
|
13
|
-
def call: () -> String
|
|
14
|
-
|
|
15
|
-
private
|
|
16
|
-
|
|
17
|
-
def tag_group_attributes: () -> hakumi_html_options
|
|
18
|
-
def tag_group_classes: () -> String
|
|
19
|
-
# Returns data attributes hash with controller, sortable_value, animation_value
|
|
20
|
-
def tag_group_data: () -> Hash[Symbol, (String | bool | Integer)]
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|