diff --git a/.gitattributes b/.gitattributes
index 5fb810aac..70d99ed4c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -37,3 +37,4 @@
/resources/js/partials/filter-date-range.js export-ignore
/resources/js/partials/filter-number-range.js export-ignore
/resources/js/partials/reorder.js export-ignore
+/minifyJs export-ignore
\ No newline at end of file
diff --git a/.github/workflows/discord-releases.yml b/.github/workflows/discord-releases.yml
index c75bedd41..236cea737 100644
--- a/.github/workflows/discord-releases.yml
+++ b/.github/workflows/discord-releases.yml
@@ -4,14 +4,16 @@ on:
jobs:
github-releases-to-discord:
- runs-on: ubuntu-latest
+ runs-on: ubuntu-24.04
steps:
- name: Checkout
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Package Releases
- uses: SethCohen/github-releases-to-discord@v1.13.1
+ uses: SethCohen/github-releases-to-discord@latest
+ env:
+ WEBHOOK_DISCORD_RELEASE_URL: ${{ secrets.WEBHOOK_DISCORD_RELEASE_URL }}
with:
- webhook_url: ${{ secrets.WEBHOOK_DISCORD_RELEASE_URL }}
+ webhook_url: $WEBHOOK_DISCORD_RELEASE_URL
color: "2105893"
username: "GitHub Release-Bot"
avatar_url: "https://cdn.discordapp.com/avatars/487431320314576937/bd64361e4ba6313d561d54e78c9e7171.png"
diff --git a/.github/workflows/pint.yml b/.github/workflows/pint.yml
index 097689b83..c533df969 100644
--- a/.github/workflows/pint.yml
+++ b/.github/workflows/pint.yml
@@ -2,6 +2,11 @@ name: Fix PHP code style issues
on:
push:
+ branches:
+ - '*' # matches every branch that doesn't contain a '/'
+ - '*/*' # matches every branch containing a single '/'
+ - '**' # matches every branch
+ - '!master'
paths:
- '**.php'
@@ -14,14 +19,14 @@ jobs:
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
with:
ref: ${{ github.head_ref }}
- name: Fix PHP code style issues
- uses: aglipanci/laravel-pint-action@2.2.0
+ uses: aglipanci/laravel-pint-action@latest
- - name: Commit changes
- uses: stefanzweifel/git-auto-commit-action@v4
+ - name: Commit styling changes
+ uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: Fix styling
diff --git a/.github/workflows/run-phpstan-pull.yml b/.github/workflows/run-phpstan-pull.yml
new file mode 100644
index 000000000..bacc60816
--- /dev/null
+++ b/.github/workflows/run-phpstan-pull.yml
@@ -0,0 +1,91 @@
+name: run-phpstan-pull
+
+on:
+ pull_request:
+ branches:
+ - 'master'
+ - 'development'
+
+jobs:
+ test:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: true
+ matrix:
+ os: [ubuntu-latest]
+ php: [8.4]
+ laravel: [12]
+ stability: [prefer-dist]
+
+ name: PHPStan - P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
+ env:
+ extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pcntl, pcov, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, exif, iconv, fileinfo
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup cache environment
+ id: extcache
+ uses: shivammathur/cache-extensions@v1
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ key: ${{ env.extensionKey }}
+
+ - name: Cache extensions
+ uses: actions/cache@v4
+ with:
+ path: ${{ steps.extcache.outputs.dir }}
+ key: ${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ steps.extcache.outputs.key }}
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ coverage: pcov
+ tools: phpunit:11.4
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Setup problem matchers for PHP
+ run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: |
+ echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+ - uses: actions/cache@v4
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: phpstan-${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: phpstan-${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+
+ - name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ composer config github-oauth.github.com $GITHUB_TOKEN
+
+ - name: Install dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer require "laravel/framework:${{ matrix.laravel }}.*" --no-interaction --no-update
+
+ - name: Update dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer update --${{ matrix.stability }} --no-interaction -W
+
+ - name: Install PHPStan
+ run: composer require larastan/larastan:^3.0 --no-interaction -W
+
+ - uses: actions/cache@v4
+ with:
+ path: ./build/phpstan
+ key: phpstan-${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}
+
+ - name: Run PHPStan Tests
+ run: ./vendor/bin/phpstan analyse
\ No newline at end of file
diff --git a/.github/workflows/run-phpstan.yml b/.github/workflows/run-phpstan.yml
index a94ed2a24..e3069324c 100644
--- a/.github/workflows/run-phpstan.yml
+++ b/.github/workflows/run-phpstan.yml
@@ -1,6 +1,13 @@
name: run-phpstan
-on: [push, pull_request]
+on:
+ push:
+ branches:
+ - '*' # matches every branch that doesn't contain a '/'
+ - '*/*' # matches every branch containing a single '/'
+ - '**' # matches every branch
+ - '!master'
+ - '!development'
jobs:
test:
@@ -9,18 +16,18 @@ jobs:
fail-fast: true
matrix:
os: [ubuntu-latest]
- php: [8.3]
- laravel: [10]
+ php: [8.4]
+ laravel: [12]
stability: [prefer-dist]
name: PHPStan - P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }} - ${{ matrix.os }}
env:
- extensionKey: phpextensions
- extensions: dom, curl, libxml, mbstring, zip, pcntl, pcov, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
+ extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pcntl, pcov, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, exif, iconv, fileinfo
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup cache environment
id: extcache
@@ -31,7 +38,7 @@ jobs:
key: ${{ env.extensionKey }}
- name: Cache extensions
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.extcache.outputs.dir }}
key: ${{ steps.extcache.outputs.key }}
@@ -43,7 +50,7 @@ jobs:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
coverage: pcov
- tools: phpunit:9.5
+ tools: phpunit:11.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -55,15 +62,17 @@ jobs:
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: ${{ runner.os }}-PHPStan-P${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-PHPStan-P${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+ key: phpstan-${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: phpstan-${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
- name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- composer config github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+ composer config github-oauth.github.com $GITHUB_TOKEN
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
@@ -71,10 +80,15 @@ jobs:
- name: Update dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
- run: composer update --${{ matrix.stability }} --no-interaction
+ run: composer update --${{ matrix.stability }} --no-interaction -W
- name: Install PHPStan
- run: composer require nunomaduro/larastan:^2.0 --dev --no-interaction
+ run: composer require larastan/larastan:^3.0 --dev --no-interaction -W
+
+ - uses: actions/cache@v4
+ with:
+ path: ./build/phpstan
+ key: phpstan-${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}
- name: Run PHPStan Tests
- run: ./vendor/bin/phpstan analyse
+ run: ./vendor/bin/phpstan analyse
\ No newline at end of file
diff --git a/.github/workflows/run-tests-pcov-pull.yml b/.github/workflows/run-tests-pcov-pull.yml
index 08e7eea08..38c961e84 100644
--- a/.github/workflows/run-tests-pcov-pull.yml
+++ b/.github/workflows/run-tests-pcov-pull.yml
@@ -1,9 +1,13 @@
name: run-tests-pcov-pull
on:
+ push:
+ branches:
+ - 'development'
+ - 'master'
pull_request:
branches:
- - 'develop'
+ - 'development'
- 'master'
jobs:
@@ -12,19 +16,19 @@ jobs:
strategy:
fail-fast: false
matrix:
- os: [ubuntu-latest]
+ os: [ubuntu-24.04]
php: [8.3]
- laravel: [10]
+ laravel: [11]
stability: [prefer-dist]
- name: PCOV-PULL - ${{ matrix.os }} - P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }}
+ name: PCOV - ${{ matrix.os }} - P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }}
env:
extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}-withpcov
- extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pcov,pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo
+ extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pcov,pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup cache environment
id: extcache
@@ -33,7 +37,14 @@ jobs:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
key: ${{ env.extensionKey }}
-
+
+ - name: Cache extensions
+ uses: actions/cache@v4
+ with:
+ path: ${{ steps.extcache.outputs.dir }}
+ key: ${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ steps.extcache.outputs.key }}
+
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
@@ -45,13 +56,6 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- - name: Cache extensions
- uses: actions/cache@v3
- with:
- path: ${{ steps.extcache.outputs.dir }}
- key: ${{ steps.extcache.outputs.key }}
- restore-keys: ${{ steps.extcache.outputs.key }}
-
- name: Setup problem matchers for PHP
run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
@@ -60,15 +64,17 @@ jobs:
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: ${{ runner.os }}-PCOV-PULL-PHP${{ matrix.php }}-Laravel${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-PCOV-PULL-PHP${{ matrix.php }}-Laravel${{ matrix.laravel }}-composer-
+ key: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
- name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- composer config github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+ composer config github-oauth.github.com $GITHUB_TOKEN
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
@@ -82,14 +88,14 @@ jobs:
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run Unit Tests
- run: php ./vendor/bin/paratest --cache-directory=".phpunit.cache/code-coverage" --strict-coverage --coverage-clover ./coverage.xml --processes=4
+ run: php ./vendor/bin/phpunit --cache-directory=".phpunit.cache/code-coverage" --strict-coverage --coverage-clover ./coverage.xml --testsuite "Laravel Livewire Tables Unit Test Suite","Laravel Livewire Tables Visuals Test Suite"
- name: Upload coverage reports to Codecov
- uses: codecov/codecov-action@v3
+ uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
with:
- token: ${{ secrets.CODE_COV_TOKEN }}
+ token: $CODECOV_TOKEN
files: ./coverage.xml
verbose: true
diff --git a/.github/workflows/run-tests-pull.yml b/.github/workflows/run-tests-pull.yml
index 50c0c38be..257e1d43d 100644
--- a/.github/workflows/run-tests-pull.yml
+++ b/.github/workflows/run-tests-pull.yml
@@ -1,33 +1,31 @@
-name: run-tests-pull
+name: Run Tests Pull
on:
pull_request:
branches:
- - 'develop'
+ - 'development'
- 'master'
jobs:
- test:
+ test-laravel10:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
+ max-parallel: 2
matrix:
os: [ubuntu-latest]
- php: [8.1, 8.2, 8.3]
- laravel: [10.*,11.*]
+ php: [8.2, 8.3]
+ laravel: [10.*]
stability: [prefer-dist]
- exclude:
- - laravel: 11.*
- php: 8.1
- name: STD-PULL - ${{ matrix.os }} - P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }}
+ name: PULL PHP-${{ matrix.php }} - Laravel-10
env:
extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}
- extensions: dom, curl, libxml, mbstring, zip, pcntl, pcov, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, :psr
+ extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo, :psr
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup cache environment
id: extcache
@@ -35,14 +33,180 @@ jobs:
with:
php-version: ${{ matrix.php }}
extensions: ${{ env.extensions }}
- key: ${{ runner.os }}-${{ env.extensionKey }}
+ key: ${{ env.extensionKey }}
- name: Cache extensions
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.extcache.outputs.dir }}
- key: ${{ steps.extcache.outputs.key }}
- restore-keys: ${{ steps.extcache.outputs.key }}
+ key: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ tools: phpunit:9.6
+ ini-values: memory_limit=512M
+ coverage: none
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Setup problem matchers for PHP
+ run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: |
+ echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+ - uses: actions/cache@v4
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+
+ - name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ composer config github-oauth.github.com $GITHUB_TOKEN
+
+ - name: Install dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer require "laravel/framework:${{ matrix.laravel }}.*" --no-interaction --no-update
+
+ - name: Update dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer update --${{ matrix.stability }} --no-interaction
+
+ - name: Setup problem matchers for PHPUnit
+ run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
+
+ - name: Run Unit Tests
+ run: php ./vendor/bin/paratest --testsuite "Laravel Livewire Tables Unit Test Suite" --no-coverage
+
+ - name: Run Visuals Tests
+ run: php ./vendor/bin/phpunit --testsuite "Laravel Livewire Tables Visuals Test Suite" --no-coverage
+
+ test-laravel11:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ os: [ubuntu-latest]
+ php: [8.2, 8.3, 8.4]
+ laravel: [11.*]
+ stability: [prefer-dist]
+
+ name: PULL PHP-${{ matrix.php }} - Laravel-11
+ env:
+ extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}
+ extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo, :psr
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup cache environment
+ id: extcache
+ uses: shivammathur/cache-extensions@v1
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ key: ${{ env.extensionKey }}
+
+ - name: Cache extensions
+ uses: actions/cache@v4
+ with:
+ path: ${{ steps.extcache.outputs.dir }}
+ key: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ tools: phpunit:latest
+ ini-values: memory_limit=512M
+ coverage: none
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Setup problem matchers for PHP
+ run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: |
+ echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+ - uses: actions/cache@v4
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: ${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+
+ - name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ composer config github-oauth.github.com $GITHUB_TOKEN
+
+ - name: Install dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer require "laravel/framework:${{ matrix.laravel }}.*" --no-interaction --no-update
+
+ - name: Update dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer update --${{ matrix.stability }} --no-interaction
+
+ - name: Setup problem matchers for PHPUnit
+ run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
+
+ - name: Run Unit Tests
+ run: php ./vendor/bin/paratest --testsuite "Laravel Livewire Tables Unit Test Suite" --no-coverage
+
+ - name: Run Visuals Tests
+ run: php ./vendor/bin/phpunit --testsuite "Laravel Livewire Tables Visuals Test Suite" --no-coverage
+
+ test-laravel12:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ os: [ubuntu-latest]
+ php: [8.2, 8.3, 8.4]
+ laravel: [12.*]
+ stability: [prefer-dist]
+
+ name: PULL PHP-${{ matrix.php }} - Laravel-12
+ env:
+ extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}
+ extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo, :psr
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup cache environment
+ id: extcache
+ uses: shivammathur/cache-extensions@v1
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ key: ${{ env.extensionKey }}
+
+ - name: Cache extensions
+ uses: actions/cache@v4
+ with:
+ path: ${{ steps.extcache.outputs.dir }}
+ key: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -63,22 +227,31 @@ jobs:
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: ${{ runner.os }}-STDPULL-PHP-${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-STDPULL-PHP-${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+ key: ${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: ${{ matrix.os }}-P${{ matrix.php }}-L${{ matrix.laravel }}-composer-
- name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- composer config github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+ composer config github-oauth.github.com $GITHUB_TOKEN
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer require "laravel/framework:${{ matrix.laravel }}.*" --no-interaction --no-update
- name: Update dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
run: composer update --${{ matrix.stability }} --no-interaction
+ - name: Setup problem matchers for PHPUnit
+ run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
+
- name: Run Unit Tests
- run: php ./vendor/bin/paratest --no-coverage --processes=4
+ run: php ./vendor/bin/paratest --testsuite "Laravel Livewire Tables Unit Test Suite" --no-coverage
+
+ - name: Run Visuals Tests
+ run: php ./vendor/bin/phpunit --testsuite "Laravel Livewire Tables Visuals Test Suite" --no-coverage
diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml
index ce258214d..70fb43bd8 100644
--- a/.github/workflows/run-tests.yml
+++ b/.github/workflows/run-tests.yml
@@ -1,29 +1,33 @@
-name: run-tests
+name: Run Standard Tests
-on: [push]
+on:
+ push:
+ branches:
+ - '*' # matches every branch that doesn't contain a '/'
+ - '*/*' # matches every branch containing a single '/'
+ - '**' # matches every branch
+ - '!master'
jobs:
- test:
+ test-laravel10:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
+ max-parallel: 2
matrix:
- os: [ubuntu-latest]
- php: [8.1, 8.2, 8.3]
- laravel: [10.*,11.*]
+ os: [ubuntu-24.04]
+ php: [8.2, 8.3]
+ laravel: [10.*]
stability: [prefer-dist]
- exclude:
- - laravel: 11.*
- php: 8.1
- name: STD-PUSH - ${{ matrix.os }} - P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.stability }}
+ name: PHP-${{ matrix.php }} - Laravel-10
env:
extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}
- extensions: dom, curl, libxml, mbstring, zip, pcntl, pcov, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick, fileinfo, :psr
+ extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo, :psr
steps:
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
- name: Setup cache environment
id: extcache
@@ -34,11 +38,177 @@ jobs:
key: ${{ env.extensionKey }}
- name: Cache extensions
- uses: actions/cache@v3
+ uses: actions/cache@v4
with:
path: ${{ steps.extcache.outputs.dir }}
- key: ${{ runner.os }}-${{ steps.extcache.outputs.key }}
- restore-keys: ${{ runner.os }}-${{ steps.extcache.outputs.key }}
+ key: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ tools: phpunit:9.6
+ ini-values: memory_limit=512M
+ coverage: none
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Setup problem matchers for PHP
+ run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: |
+ echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+ - uses: actions/cache@v4
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+
+ - name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ composer config github-oauth.github.com $GITHUB_TOKEN
+
+ - name: Install dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer require "laravel/framework:${{ matrix.laravel }}.*" --no-interaction --no-update
+
+ - name: Update dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer update --${{ matrix.stability }} --no-interaction
+
+ - name: Setup problem matchers for PHPUnit
+ run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
+
+ - name: Run Unit Tests
+ run: php ./vendor/bin/paratest --testsuite "Laravel Livewire Tables Unit Test Suite" --no-coverage
+
+ - name: Run Visuals Tests
+ run: php ./vendor/bin/phpunit --testsuite "Laravel Livewire Tables Visuals Test Suite" --no-coverage
+
+ test-laravel11:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ os: [ubuntu-24.04]
+ php: [8.2, 8.3, 8.4]
+ laravel: [11.*]
+ stability: [prefer-dist]
+
+ name: PHP-${{ matrix.php }} - Laravel-11
+ env:
+ extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo, :psr
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup cache environment
+ id: extcache
+ uses: shivammathur/cache-extensions@v1
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ key: ${{ env.extensionKey }}
+
+ - name: Cache extensions
+ uses: actions/cache@v4
+ with:
+ path: ${{ steps.extcache.outputs.dir }}
+ key: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+
+ - name: Setup PHP
+ uses: shivammathur/setup-php@v2
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ tools: phpunit:latest
+ ini-values: memory_limit=512M
+ coverage: none
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Setup problem matchers for PHP
+ run: echo "::add-matcher::${{ runner.tool_cache }}/php.json"
+
+ - name: Get composer cache directory
+ id: composer-cache
+ run: |
+ echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
+
+ - uses: actions/cache@v4
+ with:
+ path: ${{ steps.composer-cache.outputs.dir }}
+ key: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+
+ - name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ run: |
+ composer config github-oauth.github.com $GITHUB_TOKEN
+
+ - name: Install dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer require "laravel/framework:${{ matrix.laravel }}.*" --no-interaction --no-update
+
+ - name: Update dependencies
+ if: steps.composer-cache.outputs.cache-hit != 'true'
+ run: composer update --${{ matrix.stability }} --no-interaction
+
+ - name: Setup problem matchers for PHPUnit
+ run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
+
+ - name: Run Unit Tests
+ run: php ./vendor/bin/paratest --testsuite "Laravel Livewire Tables Unit Test Suite" --no-coverage
+
+ - name: Run Visuals Tests
+ run: php ./vendor/bin/phpunit --testsuite "Laravel Livewire Tables Visuals Test Suite" --no-coverage
+
+ test-laravel12:
+ runs-on: ${{ matrix.os }}
+ strategy:
+ fail-fast: false
+ max-parallel: 2
+ matrix:
+ os: [ubuntu-24.04]
+ php: [8.2, 8.3, 8.4]
+ laravel: [12.*]
+ stability: [prefer-dist]
+
+ name: PHP-${{ matrix.php }} - Laravel-12
+ env:
+ extensionKey: phpextensions-${{ matrix.os }}-P${{ matrix.php }}
+ extensions: dom, curl, libxml, mbstring, zip, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, fileinfo, :psr
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+
+ - name: Setup cache environment
+ id: extcache
+ uses: shivammathur/cache-extensions@v1
+ with:
+ php-version: ${{ matrix.php }}
+ extensions: ${{ env.extensions }}
+ key: ${{ env.extensionKey }}
+
+ - name: Cache extensions
+ uses: actions/cache@v4
+ with:
+ path: ${{ steps.extcache.outputs.dir }}
+ key: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
+ restore-keys: ${{ matrix.os }}-${{ steps.extcache.outputs.key }}
- name: Setup PHP
uses: shivammathur/setup-php@v2
@@ -59,15 +229,17 @@ jobs:
run: |
echo "dir=$(composer config cache-files-dir)" >> $GITHUB_OUTPUT
- - uses: actions/cache@v3
+ - uses: actions/cache@v4
with:
path: ${{ steps.composer-cache.outputs.dir }}
- key: ${{ runner.os }}-STDPUSH-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
- restore-keys: ${{ runner.os }}-STDPUSH-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
+ key: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-${{ hashFiles('**/composer.json') }}
+ restore-keys: ${{ matrix.os }}-PHP${{ matrix.php }}-L${{ matrix.laravel }}-composer-
- name: Add token
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
- composer config github-oauth.github.com ${{ secrets.GITHUB_TOKEN }}
+ composer config github-oauth.github.com $GITHUB_TOKEN
- name: Install dependencies
if: steps.composer-cache.outputs.cache-hit != 'true'
@@ -81,4 +253,7 @@ jobs:
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"
- name: Run Unit Tests
- run: php ./vendor/bin/paratest --no-coverage --processes=4
+ run: php ./vendor/bin/paratest --testsuite "Laravel Livewire Tables Unit Test Suite" --no-coverage
+
+ - name: Run Visuals Tests
+ run: php ./vendor/bin/phpunit --testsuite "Laravel Livewire Tables Visuals Test Suite" --no-coverage
diff --git a/.gitignore b/.gitignore
index a36981422..848cfaa9b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -18,4 +18,6 @@ phpunit.xml.dist.dev
.history/*
.env
phpunit.xml.bak
-phpstan.txt
\ No newline at end of file
+phpstan.txt
+coverage.xml
+./tmp/**
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 438e9610b..ce9dd01ac 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,10 +2,464 @@
All notable changes to `laravel-livewire-tables` will be documented in this file
-## [v3.2.6] - UNRELEASED
+## [v3.7.3] - 2025-05-03
+### Bug Fixes
+- Interim fix for Livewire Component Columns to mitigate core Livewire bug by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2258
+
+## [v3.7.2] - 2025-05-03
+### Bug Fixes
+- Improved Pagination UX for Bootstrap 4 by @daniel-skopek in https://github.com/rappasoft/laravel-livewire-tables/pull/2251
+- Fixes for livewire component column by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2245
+- Boolean filter for bootstrap by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2244
+- Update IsNumericFilter.php by @G4Zz0L1 in https://github.com/rappasoft/laravel-livewire-tables/pull/2230
+- Fixed collapsed function bug with tailwind CSS on mobile version by CarlosChub27 in https://github.com/rappasoft/laravel-livewire-tables/pull/2228
+
+### New Features
+- Add Wrapper Options to ArrayColumn by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2255
+
+### Tweaks
+- Tidying PHPDocs by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2246
+
+## [v3.7.1] - 2025-02-28
+### Bug Fixes
+- Ensure that LinkColumn is included in query if "from" is defined by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2224
+
+## [v3.7.0] - 2025-02-27
+
+### Bug Fixes
+- Filters urgent fixes - correct Filter Default QueryString by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2188
+- Fix Search Field in bootstrap by @yparitcher in https://github.com/rappasoft/laravel-livewire-tables/pull/2183
+- Add "after-tools" configurable area by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2180
+
+### New Features
+- Add setFilterPillTitleAsHtml by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2204
+- Enable setting styles for sorting pills as a configuration by @HussamAlhennawi in https://github.com/rappasoft/laravel-livewire-tables/pull/2179
+- Enable setting styles for filter pills as a configuration by @HussamAlhennawi in https://github.com/rappasoft/laravel-livewire-tables/pull/2178
+- Enable setting styles for column select as a configuration by @HussamAlhennawi in https://github.com/rappasoft/laravel-livewire-tables/pull/2175
+- BulkActionTweaks - Adding default checkbox, customising attribute behaviours by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2203
+- Laravel v12 Support by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2217
+
+### Tweaks
+- Tweak for text pill title by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2206
+- Tweak Return Types by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2205
+- Migrate Column/Filter Traits by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2202
+- Filter Rationalisation & Livewire Array Filter improvements by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2191
+- Move Filter View Traits by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2189
+- Filter Trait - Reorganization by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2181
+
+## [v3.6.0] - 2025-01-16
+
+### Bug Fixes
+- Ensure Default Sorting Is Shown in Pills by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2138
+- Filters
+ - Find Filters Before Query by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2143
+ - Migrate Filter Code Appropriately by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2146
+ - Migrate Filter Status into Own Trait by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2147
+
+### Tweaks
+- Enable InputAttributes for SelectFilter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2133
+- Tidy ComponentUtilities, Migrate ColumnSelectQueryString by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2135
+- TH Fixes - Clean-up, efficiency, and Sort Icons fixes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2140
+- Add hasCollapsedColumns as Computed by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2141
+- Tidy up Blade Class Definitions by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2145
+- Tidy ColumnSelectHelpers & displayToolbarFilters Method by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2150
+- Tidy & Improve Collapsed Columns Behaviour by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2159
+- Tidy computed properties behaviour by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2160
+- WithSearch Tweaks by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2163
+- Optimize Header/Footer by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2164
+- Clean up Column Component View and Slot behaviours by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2169
+- Adjustments for ComponentColumn - cleaning up behaviours by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2173
+
+### Testing
+- Add Missing Test for getCustomSortingPillDirectionsLabel with invalid direction by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2130
+- Add Custom FIlter Input Attributes, Cleanup Filter Tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2131
+- Separate the Unit and Visuals Test Suites by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2144
+- Update PCOV Workflow by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2148
+- Add configurable area test by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2149
+- Add SortingConfiguration Missing Test by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2151
+- Add Missing Search Tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2152
+- Adjust SearchHelpersTest by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2153
+- Add test queryStringWithQueryString by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2154
+- Add missing tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2157
+- Add queryStringAliasTest by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2161
+- Migrate LivewireComponentColumn methods and add some missing basic tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2168
+- Add initial tests for LivewireComponentArrayFilter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2170
+- Improve centralisation of tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2172
+
+## [v3.5.10] - 2024-12-11
+### Tweaks
+- Migrate additional Styling into separate traits by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2127
+
+## [v3.5.9] - 2024-12-11
+### Tweaks
+- Optimize Imports by @edwinvdpol in https://github.com/rappasoft/laravel-livewire-tables/pull/2124
+
+## [v3.5.8] - 2024-12-10
+### New Features
+- Set bulk action row button attributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2117
+- Add setFilterSlidedownWrapperAttributes and setFilterSlidedownRowAttributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2120
+
+### Bug Fixes
+- Respect setDisplayPaginationDetailsDisabled for unpaginated tables by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2119
+
+### Localisation
+- Added neccessary files for Farsi translation by @AmirMehrabi in https://github.com/rappasoft/laravel-livewire-tables/pull/2100
+
+### Testing
+- Workflow Adjustments by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2108
+- Add extra Search Lazy Tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2107
+- Restore Missing Lazy Search Tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2106
+- Ignore WithEvents Coverage by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2105
+- Add missing tests for WithCustomisations by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2104
+- Add missing LivewireComponentFilterTest and BooleanFilterTest by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2121
+
+## [v3.5.7] - 2024-12-01
+### New Features
+- IncrementColumn by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2096
+- Add setFilterPopoverAttributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2101
+
+### Tweaks
+- Remove View TypeHinting in blades due to reported errors by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2097
+
+### Blades
+- Remove $component from blades to improve performance by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2098
+
+### Testing
+- Exclude config/database from sources by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2102
+- Add missing tests for WithCustomisations by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2104
+- Ignore WithEvents Coverage by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2105
+- Add Search Lazy Tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2106
+- Add extra Search Lazy Tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2107
+
+
+## [v3.5.6] - 2024-11-28
+### New Features
+- Add Icon to Search Input by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2092
+
+### Tweaks
+- Search - Rationalisation of blades into files by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2094
+- Columns() Setup Improvements by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2089
+- Typehinting in blade components by @edwinvdpol in https://github.com/rappasoft/laravel-livewire-tables/pull/2081
+
+### Testing
+- Tweak Workflows to use an env key by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2090
+
+## [v3.5.5] - 2024-11-22
+### Bug Fixes
+- Fix date range filter default value by @edwinvdpol in https://github.com/rappasoft/laravel-livewire-tables/pull/2082
+
+## [v3.5.4] - 2024-11-21
+### Bug Fixes
+- Allow JSON and PHP type localisations by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2071
+- Allow lazy loading of tables by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2072
+
+### Testing
+- RemoveConfigFileFromCoverage by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2080
+- Test for ViewComponentColumn - Cannot return non-array attributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2078
+- BooleanFilter - Add Tests for Null in IsEmpty and Validate by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2077
+- Add Attributes Check For ViewComponentColumn by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2076
+- Add ViewComponentColumn label test by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2075
+- Add ColorColumnTests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2074
+
+## [v3.5.3] - 2024-11-18
+### Bug Fixes
+- FixSetDefaultPerPage by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2067
+- Fix BooleanColumn unexpected truthy behaviour by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2066
+- Adjustment for DateRangeFilter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2064
+
+### Testing
+- Adjust SessionStorageHelpersTest by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2065
+- Add updatedSelectedColumns test for Event by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2060
+- Add test for FilterApplied Event being dispatched by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2059
+- Add Simple updatedSearch tests by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2058
+- Add test for No Columns defined - throws correct Exception by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2057
+
+## [v3.5.2] - 2024-11-09
+## Bug Fixes
+- Migrate Localisation back to PHP Files from JSON by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2038
+
+## [v3.5.1] - 2024-11-09
+### Bug Fixes
+- Fix NumberFilter bug for string values by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2034
+- Fixes for Filter Pills - Split blades, and ensure invalid filter alues are removed by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2035
+
+## [v3.5.0] - 2024-11-06
+### Bug Fixes
+- Issue in multiple places where there is incorrect brackets in conjunction with coalescing operator (??) by @mrl22 in https://github.com/rappasoft/laravel-livewire-tables/pull/2021
+- Add Value to BooleanColumn custom view by @lrjoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2010
+- Add config option to bypass setting User on Events. by @me-julian in https://github.com/rappasoft/laravel-livewire-tables/pull/2006
+- Livewire column doesn't have title() method by @ChrisThompsonTLDR in https://github.com/rappasoft/laravel-livewire-tables/pull/2002
+- Loading Placeholder Adjustments by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1987
+
+### New Features
+- Add Sort in QueryString by @lrjoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2018
+- Add Search in QueryString by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2017
+- Add Filter in QueryString by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2011
+- BETA: Livewire Custom Filter (Array) by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/2025
+
+### Localisation
+- Adds Swedish translations by @Aiiion in https://github.com/rappasoft/laravel-livewire-tables/pull/2027
+- Fix missing i18n keys for FR, IT, EN, DE by @khwadj in https://github.com/rappasoft/laravel-livewire-tables/pull/1993
+- Add lang Norwegian and Albanian by @channor in https://github.com/rappasoft/laravel-livewire-tables/pull/1988
+
+## [v3.4.22] - 2024-09-29
+### Bug Fixes
+- Fix Loading Placeholder Bug - Breaking Table by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1969
+
+### New Features
+- Add setPaginationWrapperAttributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1978
+- Add configurable areas - before-wrapper and after-wrapper by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1977
+- Add ToolsAttributes and ToolbarAttributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1982
+
+### Docs
+- Add getTitle reference for setTdAttributes/setTrAttributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1976
+- Add setToolsAttributes and setToolBarAttributes docs by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1984
+- Add docs for the ColumnSelect lifecycle hooks by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1983
+
+## [v3.4.21] - 2024-09-25
+### Bug Fixes
+- Remove persist from getFilterGenericData by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1966
+- In LaravelLivewireTablesEvent, change the type to Illuminate\Contracts\Auth\Authenticatable by @khwadj in https://github.com/rappasoft/laravel-livewire-tables/pull/1963
+- Fix for Search Field Attribute Defaults by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1962
+- Fix Filter Pills Icon - Tailwind by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1961
+- Add filterComponents into queryString to ensure they're maintained by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1957
+- Reset Current Page on "Per Page" changing by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1953
+
+### New Features
+- Add setLabelAttributes method to Action, and update Docs for Filter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1952
+
+### Tweaks
+- Migration to Core attribute management by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1943
+- Localisation - Avoid Conflicts With Other Packages by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1955
+- GitHub Workflow Tweak for Styling Fixes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1967
+- GitHub Workflow Tweak for Discord - Updates by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1968
+
+### Docs
+- Fix syntax for DateColumn outputFormat in docs by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1960
+
+
+## [v3.4.20] - 2024-09-10
+### Bug Fixes
+- Revert tableName to be public by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1937
+
+## [v3.4.19] - 2024-09-08
+### Bug Fixes
+- Adjustment for Laravel 10 GH Workflows by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1933
+- Fixes for ButtonGroupColumn, ImageColumn, LinkColumn - to not default as label if has a "from" property. by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1932
+- Add button type to tailwind pagination blade template by @matzeschmitt in https://github.com/rappasoft/laravel-livewire-tables/pull/1928
+
+## [v3.4.18] - 2024-09-08
+### New Features
+- Added translation to Polish by @meavric in https://github.com/rappasoft/laravel-livewire-tables/pull/1925
+
+### Docs
+- Added example for Vertical Scrolling table by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1926
+
+## [v3.4.17] - 2024-09-01
+### New Features
+- Add hide table option by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1914
+- Add column select session methods by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1913
+- Save filter selection to session (BETA) by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1910
+
+### Tweaks
+- Use Core Attribute Bag by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1916
+- Use Core HasTheme Methods by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1915
+
+## [v3.4.16] - 2024-08-27
+### New Features
+- Add icon column by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1902
+- Enable/Disable Tools/Toolbar by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1896
+
+### Bug Fixes
+- Fix has actions by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1901
+- Use Computed Properties By Default by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1898
+
+### Tweaks
+- PHPStan - Config File Update and Baseline by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1903
+
+## [v3.4.15] - 2024-08-25
+### New Features
+- BooleanColumn - Toggleable Callback by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1892
+
+### Tweaks
+- Doc Type Fixes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1891
+
+## [v3.4.14] - 2024-08-25
+### New Features
+- Set Action Position (Left/Center/Right) and Set Actions in Toolbar by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1889
+
+## [v3.4.13] - 2024-08-25
+### Bug Fixes
+- Fix for Action Button with no icon by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1887
+
+### Docs
+- Add a Recommended Approach document by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1886
+- Reorder the "Getting Started" docs by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1884
+
+## [v3.4.12] - 2024-08-23
+### Tweaks
+- Adjust Action Button Margins by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1880
+
+## [v3.4.11] - 2024-08-23
+### New Features
+- Add setIconLeft/setIconRight for Actions by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1877
+
+## [v3.4.10] - 2024-08-23
+### Bug Fixes
+- Default UseComputedProperties to True to default to new views by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1873
+- Allow Single Date DateRangeFilter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1872
+- Allow clearing of DateRangeFilter by Text Box by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1875
+
+### Docs
+- Docs Update by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1876
+
+## [v3.4.9] - 2024-08-21
+### Bug Fixes
+- Default UseComputedProperties to False to allow previously published views to work by default by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1869
+- Fix superfluous bulk actions tr > by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1868
+
+## [v3.4.8] - 2024-08-18
+### New Features
+- Add an event dispatch for Filter Was Set when filterComponents is updated by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1861
+
+## [v3.4.7] - 2024-08-18
+### Bug Fixes
+- Correct a locked property that is entangled in js, and add comments around some key properties to prevent reoccurrence by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1859
+
+## [v3.4.6] - 2024-08-15
+### New Features
+- Column Features - deselectedIf/selectedIf by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1846
+- Add setTrimSearchStringEnabled/setTrimSearchStringDisabled by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1843
+
+### Bug Fixes
+- Restore the original JS methods for users with published views by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1848
+
+### Tweaks
+- Remove Component from Column, move getRows into ComputedProperty by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1838
+- Clean up filter generic data by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1837
+- Further work to clean up Blades, and use Computed Properties by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1850
+
+## [v3.4.5] - 2024-08-10
+### Bug Fixes
+- Fix sort queryString bug by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1835
+
+## [v3.4.4] - 2024-08-10
+### New Features
+- Boolean/Toggle Filter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1830
+
+### Bug Fixes
+- Merge Column Attributes Back in if Sortable by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1833
+
+### Tweaks
+- Moving JS to Simplified Method in datatable by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1832
+
+## [v3.4.3] - 2024-08-08
+### New Features
+- Boolean/Toggle Filter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1830
+
+### Bug Fixes
+- View component column fixes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1825
+
+### Docs
+- Update setDelaySelectAllEnabled Docs by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1829
+- ViewComponentColumn - New method docs by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1828
+
+## [v3.4.2] - 2024-08-04
+### New Features
+- Additional Events & Customisable Behaviour by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1820
+
+### Bug Fixes
+- Typehinting to allow events to be used to update Multi-Value Filters by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1822
+
+### Tweaks
+- Add missing ReturnTypes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1823
+- Removing old $listeners approach, now using the Livewire v3 On attribute by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1821
+
+## [v3.4.1] - 2024-08-04
+### Bug Fixes
+- Fix ViewComponentColumn issue with not accepting parameters cleanly by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1818
+
+## [v3.4.0] - 2024-08-04
+### New Features
+- Add Helpers for TextFilters by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1812
+- Change method names for TextFilters handler by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1814
+- Capability to set Reorder Column TH Attributes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1811
+- Bulk Actions - Customise Select All Behaviours by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1810
+
+### Bug Fixes
+- Fix loading spinner for dark tailwind theme by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1809
+
+### Tweaks
+- Blade Minimisation & ColumnSelect Cleanup by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1806
+- Adjust DateColumn with Missing Tests and Coping with DateTime Casts by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1813
+
+### Docs
+- Add reference to Bulk Actions TH styling in main styling by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1808
+- Update docs for setPillsLocale by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1800
+- Add note on label method for setAdditionalSelects by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1816
+
+## [v3.3.4] - 2024-07-27
+### New Features
+- Added capability to setFilterDefaultValue for a DateRangeFilter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1796
+- Add localised pill values for DateFilter, DateTimeFilter, DateRangeFilter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1797
+
+### Tweaks
+- Migrating Carbon usage into Trait, Adding Filter/Search Lifecycle Hooks by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1798
+
+## [v3.3.3] - 2024-07-23
+### New Features
+- Add additional DateRangeFilter options by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1793
+
+## [v3.3.2] - 2024-07-20
+### New Features
+- Add a new ViewComponentColumn that runs the construction for a View Component by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1786
+- Set Custom Classes for Collapsing Column - Collapse/Expand buttons by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1785
+
+### Bug Fixes
+- Fix DateTimeFilter by @RenoLooijmans in https://github.com/rappasoft/laravel-livewire-tables/pull/1784
+- Fix AggregateColumn SnakeCase issue by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1777
+
+## [v3.3.1] - 2024-07-16
+### Bug Fixes
+- Fix NumberRangeFilter initial state when loaded by querystring by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1774
+- Fix SnakeCase issue with snake-cased relations for AggregateColumn types (AvgColumn, CountColumn, SumColumn) by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1777
+
+### New Features
+- Set a Prefix for NumberRangeFilter by @RenoLooijmans in https://github.com/rappasoft/laravel-livewire-tables/pull/1773
+- Add Separator customisation for Array Filters for FilterPills by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1772
+- Add bulk actions button/dropdown customisations by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1771
+
+## [v3.3.0] - 2024-07-11
+### New Features
+- Add new columns (ArrayColumn, AvgColumn, CountColumn, SumColumn) by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1761
+- Add new column WireLinkColumn by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1763
+- Add Option to Retain Selected when Searching/Filtering by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1762
+- Add Option to set locale and default date to DateRangeFilter by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1766
+
+## [v3.2.8] - 2024-07-03
+### Bug Fixes
+- Fix hide bulk actions when empty not reflecting in frontend by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1747
+- Apply cursor pointer only on clickable columns when using Bootstrap by @MP70 in https://github.com/rappasoft/laravel-livewire-tables/pull/1742
+
+### New Features
+- Always hide bulk actions option by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1752
+- Add ArrayColumn (BETA) by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1751
+- Optionally disable total item count for simple pagination by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1755
+
+### Tweaks
+- TypeHint fixes by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1750
+- Change Return Type for attributes() to static by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1749
+- Switch to using Composer\InstalledVersions for AboutCommand by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1748
+
+## [v3.2.7] - 2024-06-05
+### Bug Fixes
+- Ensure HTML Columns return HTML correctly by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1737
+
+## [v3.2.6] - 2024-06-05
### New Features
- Add configurable wire:model for filters by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1699
- Customisable Model paths for Make command by @marvoh in https://github.com/rappasoft/laravel-livewire-tables/pull/1714
+- Add HTML Support for LinkColumn by @codecreeper in https://github.com/rappasoft/laravel-livewire-tables/pull/1728
### Bug Fixes
- Fix error with DateColumn when empty by @lrljoe in https://github.com/rappasoft/laravel-livewire-tables/pull/1726
@@ -1185,4 +1639,4 @@ Ground Up Rebuild
[0.1.4]: https://github.com/rappasoft/laravel-livewire-tables/compare/v0.1.3...v0.1.4
[0.1.3]: https://github.com/rappasoft/laravel-livewire-tables/compare/v0.1.2...v0.1.3
[0.1.2]: https://github.com/rappasoft/laravel-livewire-tables/compare/v0.1.1...v0.1.2
-[0.1.1]: https://github.com/rappasoft/laravel-livewire-tables/compare/v0.1.0...v0.1.1
\ No newline at end of file
+[0.1.1]: https://github.com/rappasoft/laravel-livewire-tables/compare/v0.1.0...v0.1.1
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f4e9fea06..af96ac892 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,9 +1,44 @@
# Contributing
-Contributions are very welcome, please find below a summary of what is expected from contributions:
+This package is maintained by a core team, backed by a strong community effort, and contributions are extremely welcome!
-- Follow the conventions for methods, adding to the relevant configuration/helper trait
-- Add properties to the "With" trait
+Please find below a brief summary of how to make a good contribution. This helps to ensure a smooth review and merge of a PR.
+
+## Discussing A Feature
+Please do feel free to raise a Discussion topic, a Feature Request Issue, or reach out on the official Discord to discuss any ideas!
+
+## Starting A Contribution
+- Always create a fresh branch in your fork for every change. This should be based on the "development" branch, as other branches may be outdated, or lack the change history.
+- Ensure that a PR contains a single feature/fix. PRs with multiple features often end up with merge conflicts!
+- Avoid introducing a breaking change. If your change makes a radical or substantial change, then the existing behaviour should be maintained as the default. The core team tracks these, and as major versions are reached, may introduce new default behaviours.
+
+## Generic Information
+- Avoid adding any additional dependencies/requirements to the package unless discussed and approved by the core team.
- Typehint both properties and return values
-- Add a comment to the method
-- Add tests for new methods
-- Add documentation for new methods
\ No newline at end of file
+- Add a comment to the method to explain what it does, this does not/should not be lengthy!
+
+## Views
+- Where amending/appending to Views/Blades, ensure that you cater for Tailwind, Bootstrap-4 and Bootstrap-5 to ensure continued support
+
+## Tests
+- Always add tests for new methods
+- Review existing tests if you make changes.
+- The project maintains a very high level of test coverage. A PR that reduces this coverage is less likely to be readily accepted.
+
+## Documentation
+There is comprehensive documentation available for existing features. Please add documentation for any new/amended methods, as otherwise this may result in delays, which may be significant!
+
+## Conventions
+- Please follow the project conventions below:
+
+### Core Features
+A feature set typically exists in a "With" trait (For example - Rappasoft\LaravelLivewireTables\Traits\WithColumns.php)
+- The "WithColumns" contains any properties, and any key methods
+- Each feature set has a "Helper" and "Configuration" trait associated with it, for setting and getting properties, both server-side, and client-side.
+
+## Actions, Columns and Filters
+An Action/Column/Filter type exists in the "Views" section (For example Rappasoft\LaravelLivewireTables\Views\Columns\DateColumn.php)
+- Each Action/Column/Filter again has a "Helper" and "Configuration" trait associated with it, for setting and getting properties
+- Actions should extend Rappasoft\LaravelLivewireTables\Views\Action (or a class that extends this)
+- Columns should extend Rappasoft\LaravelLivewireTables\Views\Column (or a class that extends this)
+- Filters should extend Rappasoft\LaravelLivewireTables\Views\Filter (or a class that extends this)
+
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md
index ffd644706..f4a2f3e2d 100644
--- a/CONTRIBUTORS.md
+++ b/CONTRIBUTORS.md
@@ -5,22 +5,27 @@
# Localisation Contributors
| Language | Contributor(s) |
| --- | --- |
+| Albanian (SQ) | [channor] (https://github.com/channor) |
| Arabic (AR) | None |
| Catalan (CA) | None |
| Brazilian (pt_BR) | [irineujunior](https://github.com/irineujunior)|
| Chinese - Taiwan (TW) | None |
| Danish (DA) | [jeppeolesen](https://github.com/jeppeolesen) |
| Dutch (NL) | [siebsie23](https://github.com/siebsie23), [spekkie2002](https://github.com/spekkie2002), [Jerimu](https://github.com/Jerimu) |
-| English (EN) | Core Team |
+| English (EN) | Core Maintainers |
+| Farsi (FA) | [AmirMehrabi](https://github.com/AmirMehrabi) |
| Finnish (FI) | [devmikromike](https://github.com/devmikromike) |
-| French (FR) | [dgillier](https://github.com/dgillier) |
-| German (DE) | None |
+| French (FR) | [dgillier](https://github.com/dgillier), [khwadj](https://github.com/khwadj)|
+| German (DE) | [khwadj](https://github.com/khwadj) |
| Indonesian (ID) | None |
-| Italian (IT) | Core Team |
+| Italian (IT) | Core Maintainers, [khwadj](https://github.com/khwadj) |
| Malay (MS) | [wanadri](https://github.com/wanadri) |
+| Norwegian (NB) | [channor] (https://github.com/channor) |
+| Polish (PL) | [meavric](https://github.com/meavric) |
| Portugese (PT) | None |
| Russian (RU) | None |
| Spanish (ES) | [CristhoferMF](https://github.com/CristhoferMF) |
+| Swedish (SV) | [Aiiion](https://github.com/Aiiion) |
| Thai (TH) | None |
| Turkish (TK) | None |
| Ukrainian (UK) | [Oleksandr-Moik](https://github.com/Oleksandr-Moik) |
\ No newline at end of file
diff --git a/README.md b/README.md
index 61e6523ef..16e4c36ee 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
[](https://github.com/rappasoft/laravel-livewire-tables/actions/workflows/run-tests.yml)
[](https://packagist.org/packages/rappasoft/laravel-livewire-tables)
[](https://codecov.io/gh/rappasoft/laravel-livewire-tables)
-
+
### Enjoying this package? [Buy me a beer 🍺](https://www.buymeacoffee.com/rappasoft)
diff --git a/composer.json b/composer.json
index d3e9e6372..bd58755ef 100644
--- a/composer.json
+++ b/composer.json
@@ -23,21 +23,21 @@
}
],
"require": {
- "php": "^8.1|^8.2|^8.3",
+ "php": "^8.1|^8.2|^8.3|^8.4",
"blade-ui-kit/blade-heroicons": "^2.1",
- "illuminate/contracts": "^10.0|^11.0",
- "illuminate/support": "^10.0|^11.0",
+ "illuminate/contracts": "^10.0|^11.0|^12.0",
+ "illuminate/support": "^10.0|^11.0|^12.0",
"livewire/livewire": "^3.0|dev-main"
},
"require-dev": {
"ext-sqlite3": "*",
- "brianium/paratest": "^5.0|^6.0|^7.0|^8.0",
+ "brianium/paratest": "^5.0|^6.0|^7.0|^8.0|^9.0",
+ "larastan/larastan": "^2.6|^3.0",
"laravel/pint": "^1.10",
"monolog/monolog": "*",
- "nunomaduro/collision": "^6.0|^7.0|^8.0",
- "nunomaduro/larastan": "^2.6",
- "orchestra/testbench": "^7.0|^8.0|^9.0",
- "phpunit/phpunit": "^9.0|^10.0|^11.0"
+ "nunomaduro/collision": "^6.0|^7.0|^8.0|^9.0",
+ "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0",
+ "phpunit/phpunit": "^9.0|^10.0|^11.0|^12.0"
},
"autoload": {
"psr-4": {
diff --git a/config/livewire-tables.php b/config/livewire-tables.php
index 1e0b0b04c..dad9ea43c 100644
--- a/config/livewire-tables.php
+++ b/config/livewire-tables.php
@@ -30,6 +30,11 @@
*/
'enable_blade_directives' => false,
+ /**
+ * Use JSON Translations instead of PHP Array
+ */
+ 'use_json_translations' => false,
+
/**
* Customise Script & Styles Paths
*/
@@ -72,6 +77,7 @@
'dateFormat' => 'Y-m-d', // Date format that will be received by the filter
'earliestDate' => null, // The earliest acceptable date
'latestDate' => null, // The latest acceptable date
+ 'locale' => 'en', // The default locale
],
],
@@ -87,6 +93,7 @@
'minRange' => 0, // The minimum possible value
'maxRange' => 100, // The maximum possible value
'suffix' => '', // A suffix to append to the values when displayed
+ 'prefix' => '', // A prefix to prepend to the values when displayed
],
],
/**
@@ -105,11 +112,21 @@
],
/**
- * Configuration options for MultiSelectFilter
+ * Configuration options for MultiSelectDropdownFilter
*/
'multiSelectDropdownFilter' => [
'defaultOptions' => [],
'defaultConfig' => [],
],
+ /**
+ * Configuration options for Events
+ */
+ 'events' => [
+ /**
+ * Enable or disable passing the user from Laravel's Auth service to events
+ */
+ 'enableUserForEvent' => true,
+ ],
+
];
diff --git a/coverage.xml b/coverage.xml
deleted file mode 100644
index 7428459d2..000000000
--- a/coverage.xml
+++ /dev/null
@@ -1,2894 +0,0 @@
-
-
')
+ ->sortable(),
+```
+
+## Empty Value
+You may define the default/empty value using the "emptyValue" method
+
+```php
+ArrayColumn::make('notes', 'name')
+ ->emptyValue('Unknown'),
+```
+
+## Wrapping the Output
+
+As the ArrayColumn is designed to handle multiple related records, you can choose to wrap these for improved UX.
+
+It is recommended that you utilise the built-in flexCol or flexRow approaches, which will also disable the separator
+
+### flexCol
+This adds either:
+- Tailwind: 'flex flex-col'
+- Bootstrap: 'd-flex d-flex-col'
+
+And merges any attributes specified in the sole parameter (as an array)
+```php
+ArrayColumn::make('notes', 'name')
+ ->data(fn($value, $row) => ($row->notes))
+ ->outputFormat(fn($index, $value) => "".$value->name."")
+ ->flexCol(['class' => 'bg-red-500'])
+ ->sortable(),
+```
+
+### flexRow
+
+This adds either:
+- Tailwind: 'flex flex-row'
+- Bootstrap: 'd-flex d-flex-row'
+
+And merges any attributes specified in the sole parameter (as an array)
+```php
+ArrayColumn::make('notes', 'name')
+ ->data(fn($value, $row) => ($row->notes))
+ ->outputFormat(fn($index, $value) => "".$value->name."")
+ ->flexRow(['class' => 'bg-red-500'])
+ ->sortable(),
+```
+
+### Manually
+
+You can also specify a wrapperStart and wrapperEnd, for example, for an unordered list:
+
+```php
+ArrayColumn::make('notes', 'name')
+ ->data(fn($value, $row) => ($row->notes))
+ ->outputFormat(fn($index, $value) => "
- @if($component->showPaginationDetails()) - @lang('Showing') - {{ $rows->firstItem() }} - @lang('to') - {{ $rows->lastItem() }} - @lang('of') + {{ __($localisationPath.'Showing') }} + {{ $currentRows->firstItem() }} + {{ __($localisationPath.'to') }} + {{ $currentRows->lastItem() }} + {{ __($localisationPath.'of') }} - @lang('results') - @endif + {{ __($localisationPath.'results') }}
- @elseif ($component->paginationIsEnabled() && $component->isPaginationMethod('simple')) + @elseif ($this->paginationIsEnabled && $this->isPaginationMethod('simple') && $this->showPaginationDetails)- @if($component->showPaginationDetails()) - @lang('Showing') - {{ $rows->firstItem() }} - @lang('to') - {{ $rows->lastItem() }} - @endif + {{ __($localisationPath.'Showing') }} + {{ $currentRows->firstItem() }} + {{ __($localisationPath.'to') }} + {{ $currentRows->lastItem() }}
- @elseif ($component->paginationIsEnabled() && $component->isPaginationMethod('cursor')) + @elseif ($this->paginationIsEnabled && $this->isPaginationMethod('cursor')) @else -- @lang('Showing') - {{ $rows->count() }} - @lang('results') -
+ @if($this->showPaginationDetails) ++ {{ __($localisationPath.'Showing') }} + {{ $currentRows->count() }} + {{ __($localisationPath.'results') }} +
+ @endif @endif$component->isTailwind() && $column->shouldCollapseAlways(), - 'block mb-2 sm:hidden' => $component->isTailwind() && !$column->shouldCollapseAlways() && !$column->shouldCollapseOnTablet() && !$column->shouldCollapseOnMobile(), - 'block mb-2 md:hidden' => $component->isTailwind() && !$column->shouldCollapseAlways() && !$column->shouldCollapseOnTablet() && $column->shouldCollapseOnMobile(), - 'block mb-2 lg:hidden' => $component->isTailwind() && !$column->shouldCollapseAlways() && ($column->shouldCollapseOnTablet() || $column->shouldCollapseOnMobile()), - - 'd-block mb-2' => $component->isBootstrap() && $column->shouldCollapseAlways(), - 'd-block mb-2 d-sm-none' => $component->isBootstrap() && !$column->shouldCollapseAlways() && !$column->shouldCollapseOnTablet() && !$column->shouldCollapseOnMobile(), - 'd-block mb-2 d-md-none' => $component->isBootstrap() && !$column->shouldCollapseAlways() && !$column->shouldCollapseOnTablet() && $column->shouldCollapseOnMobile(), - 'd-block mb-2 d-lg-none' => $component->isBootstrap() && !$column->shouldCollapseAlways() && ($column->shouldCollapseOnTablet() || $column->shouldCollapseOnMobile()), - - ]) - > - {{ $column->getTitle() }}: {{ $column->renderContents($row) }} + @foreach($this->getCollapsedColumnsForContent as $colIndex => $column) + +
$isTailwind, + 'sm:block' => $isTailwind && $column->shouldCollapseAlways(), + 'sm:block md:hidden' => $isTailwind && !$column->shouldCollapseAlways() && !$column->shouldCollapseOnTablet() && $column->shouldCollapseOnMobile(), + 'sm:block lg:hidden' => $isTailwind && !$column->shouldCollapseAlways() && ($column->shouldCollapseOnTablet() || $column->shouldCollapseOnMobile()), + + 'd-block mb-2' => $isBootstrap, + 'd-sm-none' => $isBootstrap && !$column->shouldCollapseAlways() && !$column->shouldCollapseOnTablet() && !$column->shouldCollapseOnMobile(), + 'd-md-none' => $isBootstrap && !$column->shouldCollapseAlways() && !$column->shouldCollapseOnTablet() && $column->shouldCollapseOnMobile(), + 'd-lg-none' => $isBootstrap && !$column->shouldCollapseAlways() && ($column->shouldCollapseOnTablet() || $column->shouldCollapseOnMobile()), + ])> + {{ $column->getTitle() }}: + @if($column->isHtml()) + {!! $column->setIndexes($rowIndex, $colIndex)->renderContents($row) !!} + @else + {{ $column->setIndexes($rowIndex, $colIndex)->renderContents($row) }} + @endif
@endforeach