@@ -107,7 +107,94 @@ public function publiclySetResetFilterAllButtonAttributes(array $attributes = []
107107 $ this ->assertTrue ($ testTableDefault ->hasFiltersWithSlidedownRows ());
108108 }
109109
110- /*
111- }*/
110+ public function test_can_get_filter_slidedown_rows (): void
111+ {
112+ $ testTableDefault = new class extends PetsTable
113+ {
114+ public function configure (): void
115+ {
116+ parent ::configure ();
117+ $ this ->useComputedPropertiesDisabled ();
112118
119+ }
120+
121+ public function filters (): array
122+ {
123+ return [
124+ MultiSelectFilter::make ('Breed 1 ' , 'breed ' )
125+ ->setFilterSlidedownRow (1 )
126+ ->options (
127+ Breed::query ()
128+ ->orderBy ('name ' )
129+ ->get ()
130+ ->keyBy ('id ' )
131+ ->map (fn ($ breed ) => $ breed ->name )
132+ ->toArray ()
133+ )
134+ ->filter (function (Builder $ builder , array $ values ) {
135+ return $ builder ->whereIn ('breed_id ' , $ values );
136+ }),
137+ MultiSelectFilter::make ('Breed 3 ' , 'breed3 ' )
138+ ->setFilterSlidedownRow (1 )
139+ ->options (
140+ Breed::query ()
141+ ->orderBy ('name ' )
142+ ->get ()
143+ ->keyBy ('id ' )
144+ ->map (fn ($ breed ) => $ breed ->name )
145+ ->toArray ()
146+ )
147+ ->filter (function (Builder $ builder , array $ values ) {
148+ return $ builder ->whereIn ('breed_id ' , $ values );
149+ }),
150+ MultiSelectFilter::make ('Breed 2 ' , 'breed2 ' )
151+ ->setFilterSlidedownRow (2 )
152+ ->options (
153+ Breed::query ()
154+ ->orderBy ('name ' )
155+ ->get ()
156+ ->keyBy ('id ' )
157+ ->map (fn ($ breed ) => $ breed ->name )
158+ ->toArray ()
159+ )
160+ ->filter (function (Builder $ builder , array $ values ) {
161+ return $ builder ->whereIn ('breed_id ' , $ values );
162+ }),
163+
164+ MultiSelectFilter::make ('Breed 4 ' , 'breed4 ' )
165+ ->options (
166+ Breed::query ()
167+ ->orderBy ('name ' )
168+ ->get ()
169+ ->keyBy ('id ' )
170+ ->map (fn ($ breed ) => $ breed ->name )
171+ ->toArray ()
172+ )
173+ ->filter (function (Builder $ builder , array $ values ) {
174+ return $ builder ->whereIn ('breed_id ' , $ values );
175+ }),
176+ ];
177+ }
178+
179+ public function publiclySetFilterPillsItemAttributes (array $ attributes = [])
180+ {
181+ $ this ->setFilterPillsItemAttributes ($ attributes );
182+ }
183+
184+ public function publiclySetResetFilterButtonAttributes (array $ attributes = [])
185+ {
186+ $ this ->setFilterPillsResetFilterButtonAttributes ($ attributes );
187+ }
188+
189+ public function publiclySetResetFilterAllButtonAttributes (array $ attributes = [])
190+ {
191+ $ this ->setFilterPillsResetAllButtonAttributes ($ attributes );
192+ }
193+ };
194+ $ this ->assertSame ('Breed 1 ' , $ testTableDefault ->getFiltersByRow ()[1 ][0 ]->getName ());
195+ $ this ->assertSame ('Breed 3 ' , $ testTableDefault ->getFiltersByRow ()[1 ][1 ]->getName ());
196+ $ this ->assertSame ('Breed 2 ' , $ testTableDefault ->getFiltersByRow ()[2 ][0 ]->getName ());
197+ $ this ->assertSame ('Breed 4 ' , $ testTableDefault ->getFiltersByRow ()['' ][0 ]->getName ());
198+
199+ }
113200}
0 commit comments