3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'app/helpers/material_design/chip_helper.rb', line 3
def md_filter_chip(label=nil, leading_icon: nil, trailing_icon: nil, selected: false, data: {}, style: nil, &block)
merged_data = data.merge(controller: "filter-chip", filter_chip_selected_value: selected, action: "#{block_given? ? "click->filter-chip#toggleDropdown" : "click->filter-chip#toggleSelect"}")
chip_content = content_tag(:div, class: "filter-chip__container", data: merged_data) do
concat(content_tag(:div, class: class_names("filter-chip", selected: selected), data: { filter_chip_target: "chip"}, style: style) do
concat(content_tag(:span, class: "dropdown--hidden", data: {filter_chip_target: "selectedIcon"}) do
render("material_design/icons/icon", locals: { icon: "check", size: 18 })
end)
concat(content_tag(:span, data: {filter_chip_target: "leadingIcon"}) do
render("material_design/icons/icon", locals: { icon: leading_icon, size: 18 }) if leading_icon
end)
concat(content_tag(:p, label, class: "filter-chip__label", data: {filter_chip_target: "label"}))
concat(content_tag(:span, data: {filter_chip_target: "chevronIcon"}) do
render("material_design/icons/icon", locals: { icon: "arrow_drop_down", size: 18 })
end) if block_given?
concat(content_tag(:span, data: {filter_chip_target: "trailingIcon"}) do
render("material_design/icons/icon", locals: { icon: trailing_icon, size: 18 }) if trailing_icon && !block_given?
end)
end)
if block_given?
concat(content_tag(:div, class: "dropdown--hidden filter-chip__dropdown", data: {filter_chip_target: "dropdown"}) do
capture(&block)
end)
end
end
chip_content
end
|