Previews

No matching results.

x
1
2
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<div class="lui-filter_bar" data-controller="lui--filter-buttons lui--filter-toggle lui--filter-pills">
<div class="lui-filter_bar__top">
<div class="lui-filter_bar__search">
<div data-controller="search"
id="looposui-inputs-search_q_search__5793709857"
class="lui-search"
data-search-input-outlet="#looposui-inputs-search_q_search__5793709857 .lui-inner-input"
data-search-event-only-value="false"
>
<div data-controller="input" data-input-open-actions-value="false" class="lui-inner-input relative flex gap-2"
data-input-original-input-value="documentos"
data-input-mode-value="autosubmit"
data-input-form-value="">
<div class="w-full flex flex-col">
<span class="lui-input ">
<span class="lui-input__addon-left">
<div class="text-[12px] flex items-center text-center">
<i class="fa-regular fa-magnifying-glass text-gray-400"></i>
</div>
</span>
<input name="q[search]" type="search" value="documentos" placeholder="Search items..." class="lui-input__input" mode="autosubmit" contentEditable="true" data-input-target="input" data-action="input->search#toggleClearButton input->input#setEditing input->search#onInput change->search#onInput" data-search-target="input">
<span class="lui-input__addon-right">
<span class="flex">
<i class="fa-regular fa-xmark cursor-pointer text-gray-400"
data-search-target="clearButton"
data-action="click->search#clear click->input#finishEditing">
</i>
</span>
</span>
<span class="lui-input__spinner">
<i class="fa-regular fa-spinner"></i>
</span>
</span>
</div>
<span class="lui-inner-input__actions opacity-0 flex items-center gap-1 h-fit" data-input-target="actions">
<button class="lui-button lui-button--icon-only lui-button--neutral--secondary lui-button--size-tiny w-fit w-fit relative" data-controller="lui--button" data-input-target="cancel" data-action="click->input#handleClose" type="button" disabled="disabled">
<div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon">
<div class="flex items-center justify-center" style="width: 12px; height: 12px;"><i class="lui-button__icon lui-button__icon--tiny fa-regular fa-xmark" data-lui--button-target="leadingIcon"></i></div>
</div>
<div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon">
<i class="lui-m_icon animate-spin material-symbols-outlined" style="--lui-micon-size: 12px;">
progress_activity
</i>
</div>
</button>
<button class="lui-button lui-button--icon-only lui-button--neutral--secondary lui-button--size-tiny w-fit w-fit relative" data-controller="lui--button" data-input-target="submit" data-action="click->input#setLoading" type="submit" disabled="disabled">
<div class="opacity-100 inline-flex" data-lui--button-target="leadingIcon">
<div class="flex items-center justify-center" style="width: 12px; height: 12px;"><i class="lui-button__icon lui-button__icon--tiny fa-regular fa-check" data-lui--button-target="leadingIcon"></i></div>
</div>
<div class="absolute w-full flex items-center justify-center opacity-0" data-lui--button-target="loadingIcon">
<i class="lui-m_icon animate-spin material-symbols-outlined" style="--lui-micon-size: 12px;">
progress_activity
</i>
</div>
</button>
</span>
</div>
</div>
</div>
</div>
</div>
1
2
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# Simula parâmetros de filtros ativos (como viriam de params em uma table)
mock_params = {
q: {
search: "documentos",
status: ["ativo", "pendente"],
type: ["documento"],
date_from: "2024-01-01",
date_to: "2024-12-31"
}
}
render(LooposUi::FilterBar.new(
show_filter_buttons: false,
show_toggle_switch: false,
search_options: {
name: "q[search]",
value: mock_params.dig(:q, :search),
placeholder: "Search items...",
event_only: false
},
mode: :both
)) do |bar|
# Renderizar pills baseadas nos filtros ativos
if mock_params[:q].present?
# Filtro por status
if mock_params.dig(:q, :status).present?
Array(mock_params.dig(:q, :status)).each do |status|
bar.with_filter_pill(
text: "Status: #{status.humanize}",
state: :active,
hasCloseButton: true,
data: {
action: "click->table-filters#delete",
key: "status_#{status}"
}
)
end
end
# Filtro por tipo
if mock_params.dig(:q, :type).present?
Array(mock_params.dig(:q, :type)).each do |type|
bar.with_filter_pill(
text: "Tipo: #{type.humanize}",
state: :active,
hasCloseButton: true,
data: {
action: "click->table-filters#delete",
key: "type_#{type}"
}
)
end
end
# Filtro de data
if mock_params.dig(:q, :date_from).present? || mock_params.dig(:q, :date_to).present?
date_text = [
mock_params.dig(:q, :date_from),
mock_params.dig(:q, :date_to)
].compact.join(" - ")
bar.with_filter_pill(
text: "Data: #{date_text}",
state: :active,
hasCloseButton: true,
data: {
action: "click->table-filters#delete",
key: "date_range"
}
)
end
end
end