File tree Expand file tree Collapse file tree 12 files changed +69
-89
lines changed Expand file tree Collapse file tree 12 files changed +69
-89
lines changed Original file line number Diff line number Diff line change @@ -368,4 +368,34 @@ public function tabIndex(int $value = 0): static
368368
369369 return $ this ;
370370 }
371+
372+ /**
373+ * @param string $key
374+ * @param array|bool $value
375+ * @return $this
376+ */
377+ public function setPluginAttribute (string $ key , array |bool $ value ): static
378+ {
379+ if (is_array ($ value )) {
380+ $ this ->attributes [$ key ] = array_merge ((array ) ($ this ->attributes [$ key ] ?? []), $ value );
381+ } else {
382+ $ this ->attributes [$ key ] = $ value ;
383+ }
384+
385+ return $ this ;
386+ }
387+
388+ /**
389+ * @param string $plugin
390+ * @param string|null $key
391+ * @return mixed
392+ */
393+ public function getPluginAttribute (string $ plugin , string $ key = null ): mixed
394+ {
395+ if (is_null ($ key )) {
396+ return $ this ->attributes [$ plugin ] ?? true ;
397+ }
398+
399+ return $ this ->attributes [$ plugin ][$ key ] ?? false ;
400+ }
371401}
Original file line number Diff line number Diff line change @@ -27,19 +27,13 @@ public function autoFillAlwaysAsk(bool $value = true): static
2727 * Set autoFill option value.
2828 * Enable and configure the AutoFill extension for DataTables.
2929 *
30- * @param bool| array $value
30+ * @param array|bool $value
3131 * @return $this
3232 * @see https://datatables.net/reference/option/autoFill
3333 */
34- public function autoFill (bool | array $ value = true ): static
34+ public function autoFill (array | bool $ value = true ): static
3535 {
36- if (is_array ($ value )) {
37- $ this ->attributes ['autoFill ' ] = array_merge ((array ) $ this ->attributes ['autoFill ' ], $ value );
38- } else {
39- $ this ->attributes ['autoFill ' ] = $ value ;
40- }
41-
42- return $ this ;
36+ return $ this ->setPluginAttribute ('autoFill ' , $ value );
4337 }
4438
4539 /**
Original file line number Diff line number Diff line change @@ -27,19 +27,13 @@ public function colReorderEnable(bool $value = true): static
2727 * Set colReorder option value.
2828 * Enable and configure the AutoFill extension for DataTables.
2929 *
30- * @param bool| array $value
30+ * @param array|bool $value
3131 * @return $this
3232 * @see https://datatables.net/reference/option/colReorder
3333 */
34- public function colReorder (bool | array $ value = true ): static
34+ public function colReorder (array | bool $ value = true ): static
3535 {
36- if (is_array ($ value )) {
37- $ this ->attributes ['colReorder ' ] = array_merge ((array ) $ this ->attributes ['colReorder ' ], $ value );
38- } else {
39- $ this ->attributes ['colReorder ' ] = $ value ;
40- }
41-
42- return $ this ;
36+ return $ this ->setPluginAttribute ('colReorder ' , $ value );
4337 }
4438
4539 /**
Original file line number Diff line number Diff line change @@ -26,19 +26,13 @@ public function fixedColumnsHeightMatch(string $value = 'semiauto'): static
2626 /**
2727 * Set fixedColumns option value.
2828 *
29- * @param bool| array $value
29+ * @param array|bool $value
3030 * @return $this
3131 * @see https://datatables.net/reference/option/fixedColumns
3232 */
33- public function fixedColumns (bool | array $ value = true ): static
33+ public function fixedColumns (array | bool $ value = true ): static
3434 {
35- if (is_array ($ value )) {
36- $ this ->attributes ['fixedColumns ' ] = array_merge ((array ) $ this ->attributes ['fixedColumns ' ], $ value );
37- } else {
38- $ this ->attributes ['fixedColumns ' ] = $ value ;
39- }
40-
41- return $ this ;
35+ return $ this ->setPluginAttribute ('fixedColumns ' , $ value );
4236 }
4337
4438 /**
Original file line number Diff line number Diff line change @@ -26,19 +26,13 @@ public function fixedHeaderFooter(bool $value = true): static
2626 /**
2727 * Set fixedHeader option value.
2828 *
29- * @param bool| array $value
29+ * @param array|bool $value
3030 * @return $this
3131 * @see https://datatables.net/reference/option/fixedHeader
3232 */
33- public function fixedHeader (bool | array $ value = true ): static
33+ public function fixedHeader (array | bool $ value = true ): static
3434 {
35- if (is_array ($ value )) {
36- $ this ->attributes ['fixedHeader ' ] = array_merge ((array ) $ this ->attributes ['fixedHeader ' ], $ value );
37- } else {
38- $ this ->attributes ['fixedHeader ' ] = $ value ;
39- }
40-
41- return $ this ;
35+ return $ this ->setPluginAttribute ('fixedHeader ' , $ value );
4236 }
4337
4438 /**
Original file line number Diff line number Diff line change @@ -26,19 +26,13 @@ public function keysBlurable(bool $value = true): static
2626 /**
2727 * Set keys option value.
2828 *
29- * @param bool| array $value
29+ * @param array|bool $value
3030 * @return $this
3131 * @see https://datatables.net/reference/option/keys
3232 */
33- public function keys (bool | array $ value = true ): static
33+ public function keys (array | bool $ value = true ): static
3434 {
35- if (is_array ($ value )) {
36- $ this ->attributes ['keys ' ] = array_merge ((array ) $ this ->attributes ['keys ' ], $ value );
37- } else {
38- $ this ->attributes ['keys ' ] = $ value ;
39- }
40-
41- return $ this ;
35+ return $ this ->setPluginAttribute ('keys ' , $ value );
4236 }
4337
4438 /**
Original file line number Diff line number Diff line change @@ -26,19 +26,13 @@ public function responsiveBreakpoints(array $value): static
2626 /**
2727 * Set responsive option value.
2828 *
29- * @param bool| array $value
29+ * @param array|bool $value
3030 * @return $this
3131 * @see https://datatables.net/reference/option/responsive
3232 */
33- public function responsive (bool | array $ value = true ): static
33+ public function responsive (array | bool $ value = true ): static
3434 {
35- if (is_array ($ value )) {
36- $ this ->attributes ['responsive ' ] = array_merge ((array ) $ this ->attributes ['responsive ' ], $ value );
37- } else {
38- $ this ->attributes ['responsive ' ] = $ value ;
39- }
40-
41- return $ this ;
35+ return $ this ->setPluginAttribute ('responsive ' , $ value );
4236 }
4337
4438 /**
Original file line number Diff line number Diff line change @@ -26,19 +26,13 @@ public function rowGroupUpdate(string $value = 'group'): static
2626 /**
2727 * Set rowGroup option value.
2828 *
29- * @param bool| array $value
29+ * @param array|bool $value
3030 * @return $this
3131 * @see https://datatables.net/reference/option/rowGroup
3232 */
33- public function rowGroup (bool | array $ value = true ): static
33+ public function rowGroup (array | bool $ value = true ): static
3434 {
35- if (is_array ($ value )) {
36- $ this ->attributes ['rowGroup ' ] = array_merge ((array ) $ this ->attributes ['rowGroup ' ], $ value );
37- } else {
38- $ this ->attributes ['rowGroup ' ] = $ value ;
39- }
40-
41- return $ this ;
35+ return $ this ->setPluginAttribute ('rowGroup ' , $ value );
4236 }
4337
4438 /**
Original file line number Diff line number Diff line change @@ -26,19 +26,13 @@ public function rowReorderDataSrc(array|int $value = 0): static
2626 /**
2727 * Set rowReorder option value.
2828 *
29- * @param bool| array $value
29+ * @param array|bool $value
3030 * @return $this
3131 * @see https://datatables.net/reference/option/rowReorder
3232 */
33- public function rowReorder (bool | array $ value = true ): static
33+ public function rowReorder (array | bool $ value = true ): static
3434 {
35- if (is_array ($ value )) {
36- $ this ->attributes ['rowReorder ' ] = array_merge ((array ) $ this ->attributes ['rowReorder ' ], $ value );
37- } else {
38- $ this ->attributes ['rowReorder ' ] = $ value ;
39- }
40-
41- return $ this ;
35+ return $ this ->setPluginAttribute ('rowReorder ' , $ value );
4236 }
4337
4438 /**
Original file line number Diff line number Diff line change @@ -26,19 +26,13 @@ public function scrollerBoundaryScale(float $value = 0.5): static
2626 /**
2727 * Set scroller option value.
2828 *
29- * @param bool| array $value
29+ * @param array|bool $value
3030 * @return $this
3131 * @see https://datatables.net/reference/option/scroller
3232 */
33- public function scroller (bool | array $ value = true ): static
33+ public function scroller (array | bool $ value = true ): static
3434 {
35- if (is_array ($ value )) {
36- $ this ->attributes ['scroller ' ] = array_merge ((array ) $ this ->attributes ['scroller ' ], $ value );
37- } else {
38- $ this ->attributes ['scroller ' ] = $ value ;
39- }
40-
41- return $ this ;
35+ return $ this ->setPluginAttribute ('scroller ' , $ value );
4236 }
4337
4438 /**
You can’t perform that action at this time.
0 commit comments