mirror of
https://github.com/filamentphp/filament.git
synced 2026-09-24 15:42:09 +08:00
Merge branch '3.x' into laravel-11
This commit is contained in:
Generated
+22
-22
@@ -129,16 +129,16 @@
|
||||
},
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.300.3",
|
||||
"version": "3.300.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "a1202d1a82593fc2cdad54d627e54c518a984738"
|
||||
"reference": "27d59c22c121ce9c0041c563dc9d7270e180925c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/a1202d1a82593fc2cdad54d627e54c518a984738",
|
||||
"reference": "a1202d1a82593fc2cdad54d627e54c518a984738",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/27d59c22c121ce9c0041c563dc9d7270e180925c",
|
||||
"reference": "27d59c22c121ce9c0041c563dc9d7270e180925c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -218,9 +218,9 @@
|
||||
"support": {
|
||||
"forum": "https://forums.aws.amazon.com/forum.jspa?forumID=80",
|
||||
"issues": "https://github.com/aws/aws-sdk-php/issues",
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.300.3"
|
||||
"source": "https://github.com/aws/aws-sdk-php/tree/3.300.4"
|
||||
},
|
||||
"time": "2024-02-22T19:20:21+00:00"
|
||||
"time": "2024-02-23T19:10:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "blade-ui-kit/blade-heroicons",
|
||||
@@ -5853,16 +5853,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpdoc-parser",
|
||||
"version": "1.25.0",
|
||||
"version": "1.26.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpstan/phpdoc-parser.git",
|
||||
"reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240"
|
||||
"reference": "231e3186624c03d7e7c890ec662b81e6b0405227"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/bd84b629c8de41aa2ae82c067c955e06f1b00240",
|
||||
"reference": "bd84b629c8de41aa2ae82c067c955e06f1b00240",
|
||||
"url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/231e3186624c03d7e7c890ec662b81e6b0405227",
|
||||
"reference": "231e3186624c03d7e7c890ec662b81e6b0405227",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5894,9 +5894,9 @@
|
||||
"description": "PHPDoc parser with support for nullable, intersection and generic types",
|
||||
"support": {
|
||||
"issues": "https://github.com/phpstan/phpdoc-parser/issues",
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.25.0"
|
||||
"source": "https://github.com/phpstan/phpdoc-parser/tree/1.26.0"
|
||||
},
|
||||
"time": "2024-01-04T17:06:16+00:00"
|
||||
"time": "2024-02-23T16:05:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "phpstan/phpstan",
|
||||
@@ -8906,28 +8906,28 @@
|
||||
},
|
||||
{
|
||||
"name": "spatie/laravel-translatable",
|
||||
"version": "6.5.5",
|
||||
"version": "6.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/spatie/laravel-translatable.git",
|
||||
"reference": "d6dc7c9fe3c678ce50b2d6a4a7434fcbcfc3df4c"
|
||||
"reference": "11f0b548dd43b846a5bdca1431de173ac77ed349"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/d6dc7c9fe3c678ce50b2d6a4a7434fcbcfc3df4c",
|
||||
"reference": "d6dc7c9fe3c678ce50b2d6a4a7434fcbcfc3df4c",
|
||||
"url": "https://api.github.com/repos/spatie/laravel-translatable/zipball/11f0b548dd43b846a5bdca1431de173ac77ed349",
|
||||
"reference": "11f0b548dd43b846a5bdca1431de173ac77ed349",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/database": "^9.0|^10.0",
|
||||
"illuminate/support": "^9.0|^10.0",
|
||||
"illuminate/database": "^9.0|^10.0|^11.0",
|
||||
"illuminate/support": "^9.0|^10.0|^11.0",
|
||||
"php": "^8.0",
|
||||
"spatie/laravel-package-tools": "^1.11"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "^1.4",
|
||||
"orchestra/testbench": "^7.0|^8.0",
|
||||
"pestphp/pest": "^1.20"
|
||||
"orchestra/testbench": "^7.0|^8.0|^9.0",
|
||||
"pestphp/pest": "^1.20|^2.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -8976,7 +8976,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/spatie/laravel-translatable/issues",
|
||||
"source": "https://github.com/spatie/laravel-translatable/tree/6.5.5"
|
||||
"source": "https://github.com/spatie/laravel-translatable/tree/6.6.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -8984,7 +8984,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2023-12-06T10:56:22+00:00"
|
||||
"time": "2024-02-23T13:52:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "spatie/macroable",
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Generated
+203
-157
@@ -44,7 +44,7 @@
|
||||
"postcss": "^8.4.4",
|
||||
"postcss-nesting": "^12.0.1",
|
||||
"prettier": "^3.1.1",
|
||||
"prettier-plugin-blade": "^2.0.0",
|
||||
"prettier-plugin-blade": "v2.0.0",
|
||||
"prettier-plugin-tailwindcss": "^0.5.10",
|
||||
"pusher-js": "^7.4.0",
|
||||
"sortablejs": "^1.15.0",
|
||||
@@ -2446,9 +2446,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@jridgewell/resolve-uri": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz",
|
||||
"integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==",
|
||||
"version": "3.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
|
||||
"integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6.0.0"
|
||||
@@ -2694,9 +2694,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/eslint": {
|
||||
"version": "8.56.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.2.tgz",
|
||||
"integrity": "sha512-uQDwm1wFHmbBbCZCqAlq6Do9LYwByNZHWzXppSnay9SuwJ+VRbjkbLABer54kcPnMSlG6Fdiy2yaFXm/z9Z5gw==",
|
||||
"version": "8.56.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.56.3.tgz",
|
||||
"integrity": "sha512-PvSf1wfv2wJpVIFUMSb+i4PvqNYkB9Rkp9ZDO3oaWzq4SKhsQk4mrMBr3ZH06I0hKrVGLBacmgl8JM4WVjb9dg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/estree": "*",
|
||||
@@ -2850,9 +2850,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.11.16",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.16.tgz",
|
||||
"integrity": "sha512-gKb0enTmRCzXSSUJDq6/sPcqrfCv2mkkG6Jt/clpn5eiCbKTY+SgZUxo+p8ZKMof5dCp9vHQUAB7wOUTod22wQ==",
|
||||
"version": "20.11.20",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.20.tgz",
|
||||
"integrity": "sha512-7/rR21OS+fq8IyHTgtLkDK949uzsa6n8BkziAKtPVpugIkO6D+/ooXMvzXxDnZrmtXVfjb1bKQafYpb8s89LOg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"undici-types": "~5.26.4"
|
||||
@@ -3440,9 +3440,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/async-alpine": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/async-alpine/-/async-alpine-1.2.1.tgz",
|
||||
"integrity": "sha512-vbkzihcqAGashRagpms6oG8MT32JkFI2yDYPPfnXImGvxxP2nVMJjHfABKgTaBpSeK+Hp2KFmJCPHtQbIfYqoA==",
|
||||
"version": "1.2.2",
|
||||
"resolved": "https://registry.npmjs.org/async-alpine/-/async-alpine-1.2.2.tgz",
|
||||
"integrity": "sha512-WWX/CGYFVt8BztCNygoxMGxW60RBpxXl7pXf88rmed46eJ0znAONcmnYV+8XVl4K9n4bUfMRzODcenTskkB2vQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/autoprefixer": {
|
||||
@@ -3483,10 +3483,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/available-typed-arrays": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz",
|
||||
"integrity": "sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==",
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
|
||||
"integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"possible-typed-array-names": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
@@ -3821,9 +3824,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/browserslist": {
|
||||
"version": "4.22.3",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.3.tgz",
|
||||
"integrity": "sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A==",
|
||||
"version": "4.23.0",
|
||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz",
|
||||
"integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -3840,8 +3843,8 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"caniuse-lite": "^1.0.30001580",
|
||||
"electron-to-chromium": "^1.4.648",
|
||||
"caniuse-lite": "^1.0.30001587",
|
||||
"electron-to-chromium": "^1.4.668",
|
||||
"node-releases": "^2.0.14",
|
||||
"update-browserslist-db": "^1.0.13"
|
||||
},
|
||||
@@ -3891,15 +3894,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/call-bind": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.6.tgz",
|
||||
"integrity": "sha512-Mj50FLHtlsoVfRfnHaZvyrooHcrlceNZdL/QBvJJVd9Ta55qCQK0gs4ss2oZDeV9zFCs6ewzYgVE5yfVmfFpVg==",
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
|
||||
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"function-bind": "^1.1.2",
|
||||
"get-intrinsic": "^1.2.3",
|
||||
"set-function-length": "^1.2.0"
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"set-function-length": "^1.2.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -3949,9 +3953,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001585",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001585.tgz",
|
||||
"integrity": "sha512-yr2BWR1yLXQ8fMpdS/4ZZXpseBgE7o4g41x3a6AJOqZuOi+iE/WdJYAuZ6Y95i4Ohd2Y+9MzIWRR+uGABH4s3Q==",
|
||||
"version": "1.0.30001589",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001589.tgz",
|
||||
"integrity": "sha512-vNQWS6kI+q6sBlHbh71IIeC+sRwK2N3EDySc/updIGhIee2x5z00J4c1242/5/d6EpEMdOnk/m+6tuk4/tcsqg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -4332,12 +4336,12 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/core-js-compat": {
|
||||
"version": "3.35.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.35.1.tgz",
|
||||
"integrity": "sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw==",
|
||||
"version": "3.36.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.36.0.tgz",
|
||||
"integrity": "sha512-iV9Pd/PsgjNWBXeq8XRtWVSgz2tKAfhfvBs7qxYty+RlRd+OCksaWmOnc4JKrTc1cToXL1N0s3l/vwlxPtdElw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"browserslist": "^4.22.2"
|
||||
"browserslist": "^4.22.3"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
@@ -4730,18 +4734,20 @@
|
||||
}
|
||||
},
|
||||
"node_modules/define-data-property": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.2.tgz",
|
||||
"integrity": "sha512-SRtsSqsDbgpJBbW3pABMCOt6rQyeM8s8RiyeSN8jYG8sYmt/kGJejbydttUsnDs1tadr19tvhT4ShwMyoqAm4g==",
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
|
||||
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.2",
|
||||
"gopd": "^1.0.1",
|
||||
"has-property-descriptors": "^1.0.1"
|
||||
"gopd": "^1.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/define-lazy-prop": {
|
||||
@@ -5004,9 +5010,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.4.659",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.659.tgz",
|
||||
"integrity": "sha512-sRJ3nV3HowrYpBtPF9bASQV7OW49IgZC01Xiq43WfSE3RTCkK0/JidoCmR73Hyc1mN+l/H4Yqx0eNiomvExFZg==",
|
||||
"version": "1.4.681",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.681.tgz",
|
||||
"integrity": "sha512-1PpuqJUFWoXZ1E54m8bsLPVYwIVCRzvaL+n5cjigGga4z854abDnFRc+cTa2th4S79kyGqya/1xoR7h+Y5G5lg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/elliptic": {
|
||||
@@ -5098,50 +5104,52 @@
|
||||
}
|
||||
},
|
||||
"node_modules/es-abstract": {
|
||||
"version": "1.22.3",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz",
|
||||
"integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==",
|
||||
"version": "1.22.4",
|
||||
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.4.tgz",
|
||||
"integrity": "sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"array-buffer-byte-length": "^1.0.0",
|
||||
"arraybuffer.prototype.slice": "^1.0.2",
|
||||
"available-typed-arrays": "^1.0.5",
|
||||
"call-bind": "^1.0.5",
|
||||
"es-set-tostringtag": "^2.0.1",
|
||||
"array-buffer-byte-length": "^1.0.1",
|
||||
"arraybuffer.prototype.slice": "^1.0.3",
|
||||
"available-typed-arrays": "^1.0.6",
|
||||
"call-bind": "^1.0.7",
|
||||
"es-define-property": "^1.0.0",
|
||||
"es-errors": "^1.3.0",
|
||||
"es-set-tostringtag": "^2.0.2",
|
||||
"es-to-primitive": "^1.2.1",
|
||||
"function.prototype.name": "^1.1.6",
|
||||
"get-intrinsic": "^1.2.2",
|
||||
"get-symbol-description": "^1.0.0",
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"get-symbol-description": "^1.0.2",
|
||||
"globalthis": "^1.0.3",
|
||||
"gopd": "^1.0.1",
|
||||
"has-property-descriptors": "^1.0.0",
|
||||
"has-property-descriptors": "^1.0.2",
|
||||
"has-proto": "^1.0.1",
|
||||
"has-symbols": "^1.0.3",
|
||||
"hasown": "^2.0.0",
|
||||
"internal-slot": "^1.0.5",
|
||||
"is-array-buffer": "^3.0.2",
|
||||
"hasown": "^2.0.1",
|
||||
"internal-slot": "^1.0.7",
|
||||
"is-array-buffer": "^3.0.4",
|
||||
"is-callable": "^1.2.7",
|
||||
"is-negative-zero": "^2.0.2",
|
||||
"is-regex": "^1.1.4",
|
||||
"is-shared-array-buffer": "^1.0.2",
|
||||
"is-string": "^1.0.7",
|
||||
"is-typed-array": "^1.1.12",
|
||||
"is-typed-array": "^1.1.13",
|
||||
"is-weakref": "^1.0.2",
|
||||
"object-inspect": "^1.13.1",
|
||||
"object-keys": "^1.1.1",
|
||||
"object.assign": "^4.1.4",
|
||||
"regexp.prototype.flags": "^1.5.1",
|
||||
"safe-array-concat": "^1.0.1",
|
||||
"safe-regex-test": "^1.0.0",
|
||||
"object.assign": "^4.1.5",
|
||||
"regexp.prototype.flags": "^1.5.2",
|
||||
"safe-array-concat": "^1.1.0",
|
||||
"safe-regex-test": "^1.0.3",
|
||||
"string.prototype.trim": "^1.2.8",
|
||||
"string.prototype.trimend": "^1.0.7",
|
||||
"string.prototype.trimstart": "^1.0.7",
|
||||
"typed-array-buffer": "^1.0.0",
|
||||
"typed-array-buffer": "^1.0.1",
|
||||
"typed-array-byte-length": "^1.0.0",
|
||||
"typed-array-byte-offset": "^1.0.0",
|
||||
"typed-array-length": "^1.0.4",
|
||||
"unbox-primitive": "^1.0.2",
|
||||
"which-typed-array": "^1.1.13"
|
||||
"which-typed-array": "^1.1.14"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -5150,6 +5158,18 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/es-define-property": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
|
||||
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.2.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/es-errors": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
|
||||
@@ -5166,14 +5186,14 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/es-set-tostringtag": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz",
|
||||
"integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz",
|
||||
"integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.2.2",
|
||||
"has-tostringtag": "^1.0.0",
|
||||
"hasown": "^2.0.0"
|
||||
"get-intrinsic": "^1.2.4",
|
||||
"has-tostringtag": "^1.0.2",
|
||||
"hasown": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -5631,9 +5651,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/filepond-plugin-file-validate-type": {
|
||||
"version": "1.2.8",
|
||||
"resolved": "https://registry.npmjs.org/filepond-plugin-file-validate-type/-/filepond-plugin-file-validate-type-1.2.8.tgz",
|
||||
"integrity": "sha512-UBTqIWbk5+5R0GBELI8svu01MHWjFSLfc9DfCMvFtHKXLdJMxY1p37ChC4YKQjhfODaTuvLnNVRsukMGMFZBBg==",
|
||||
"version": "1.2.9",
|
||||
"resolved": "https://registry.npmjs.org/filepond-plugin-file-validate-type/-/filepond-plugin-file-validate-type-1.2.9.tgz",
|
||||
"integrity": "sha512-Tzv07aNdZvjUXDRA3XL16QMEvh6llDrXlcZ6W0eTHQ+taHaVg/JKJTFs/AViO+6ZcpPCcQStbhYEL2HoS+vldw==",
|
||||
"dev": true,
|
||||
"peerDependencies": {
|
||||
"filepond": ">=1.x <5.x"
|
||||
@@ -6068,13 +6088,14 @@
|
||||
}
|
||||
},
|
||||
"node_modules/get-symbol-description": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.1.tgz",
|
||||
"integrity": "sha512-KmuibvwbWaM4BHcBRYwJfZ1JxyJeBwB8ct9YYu67SvYdbEIlcQ2e56dHxfbobqW38GXo8/zDFqJeGtHiVbWyQw==",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz",
|
||||
"integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.5",
|
||||
"es-errors": "^1.3.0"
|
||||
"es-errors": "^1.3.0",
|
||||
"get-intrinsic": "^1.2.4"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -6213,21 +6234,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/has-property-descriptors": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz",
|
||||
"integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
|
||||
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"get-intrinsic": "^1.2.2"
|
||||
"es-define-property": "^1.0.0"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/has-proto": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz",
|
||||
"integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==",
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
|
||||
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -6308,9 +6329,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/hasown": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
|
||||
"integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz",
|
||||
"integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"function-bind": "^1.1.2"
|
||||
@@ -6919,9 +6940,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/is-negative-zero": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
|
||||
"integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz",
|
||||
"integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -6995,12 +7016,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/is-shared-array-buffer": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
|
||||
"integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz",
|
||||
"integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2"
|
||||
"call-bind": "^1.0.7"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
@@ -7258,9 +7282,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/laravel-echo": {
|
||||
"version": "1.15.3",
|
||||
"resolved": "https://registry.npmjs.org/laravel-echo/-/laravel-echo-1.15.3.tgz",
|
||||
"integrity": "sha512-SRXzccaat6w4qKgZ4/rjFKr3nJfVxB+ly4V0MEJNIF1/TpERNXepo3uk7NnOjBGsiV/np1fl2XitAzW4Sa1s/w==",
|
||||
"version": "1.16.0",
|
||||
"resolved": "https://registry.npmjs.org/laravel-echo/-/laravel-echo-1.16.0.tgz",
|
||||
"integrity": "sha512-BJGUa4tcKvYmTkzTmcBGMHiO2tq+k7Do5wPmLbRswWfzKwyfZEUR+J5iwBTPEfLLwNPZlA9Kjo6R/NV6pmyIpg==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=10"
|
||||
@@ -8533,10 +8557,19 @@
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/possible-typed-array-names": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz",
|
||||
"integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/postcss": {
|
||||
"version": "8.4.34",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.34.tgz",
|
||||
"integrity": "sha512-4eLTO36woPSocqZ1zIrFD2K1v6wH7pY1uBh0JIM2KKfrVtGvPFiAku6aNOP0W1Wr9qwnaCsF0Z+CrVnryB2A8Q==",
|
||||
"version": "8.4.35",
|
||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz",
|
||||
"integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -8933,9 +8966,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-nesting": {
|
||||
"version": "12.0.2",
|
||||
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.2.tgz",
|
||||
"integrity": "sha512-63PpJHSeNs93S3ZUIyi+7kKx4JqOIEJ6QYtG3x+0qA4J03+4n0iwsyA1GAHyWxsHYljQS4/4ZK1o2sMi70b5wQ==",
|
||||
"version": "12.0.3",
|
||||
"resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-12.0.3.tgz",
|
||||
"integrity": "sha512-yrtMRPFNkfZMv9ikBvZ/Eh3RxhpMBKQ3KzD7LCY8+jYVlgju/Mdcxi4JY8bW2Y7ISXw8GTLuF/o+kFtp+yaVfQ==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -8948,7 +8981,7 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@csstools/selector-specificity": "^3.0.1",
|
||||
"@csstools/selector-specificity": "^3.0.2",
|
||||
"postcss-selector-parser": "^6.0.13"
|
||||
},
|
||||
"engines": {
|
||||
@@ -8959,9 +8992,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/postcss-nesting/node_modules/@csstools/selector-specificity": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.1.tgz",
|
||||
"integrity": "sha512-NPljRHkq4a14YzZ3YD406uaxh7s0g6eAq3L9aLOWywoqe8PkYamAvtsh7KNX6c++ihDrJ0RiU+/z7rGnhlZ5ww==",
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-3.0.2.tgz",
|
||||
"integrity": "sha512-RpHaZ1h9LE7aALeQXmXrJkRG84ZxIsctEN2biEUmFyKpzFM3zZ35eUMcIzZFsw/2olQE6v69+esEqU2f1MKycg==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
@@ -9646,14 +9679,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/regexp.prototype.flags": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz",
|
||||
"integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==",
|
||||
"version": "1.5.2",
|
||||
"resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz",
|
||||
"integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"define-properties": "^1.2.0",
|
||||
"set-function-name": "^2.0.0"
|
||||
"call-bind": "^1.0.6",
|
||||
"define-properties": "^1.2.1",
|
||||
"es-errors": "^1.3.0",
|
||||
"set-function-name": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -10158,14 +10192,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/set-function-name": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz",
|
||||
"integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==",
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz",
|
||||
"integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"define-data-property": "^1.0.1",
|
||||
"define-data-property": "^1.1.4",
|
||||
"es-errors": "^1.3.0",
|
||||
"functions-have-names": "^1.2.3",
|
||||
"has-property-descriptors": "^1.0.0"
|
||||
"has-property-descriptors": "^1.0.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -10339,9 +10374,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/spdx-exceptions": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.4.0.tgz",
|
||||
"integrity": "sha512-hcjppoJ68fhxA/cjbN4T8N6uCUejN8yFw69ttpqtBeCbF3u13n7mb31NB9jKwGTTWWnt9IbRA/mf1FprYS8wfw==",
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz",
|
||||
"integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/spdx-expression-parse": {
|
||||
@@ -10355,9 +10390,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/spdx-license-ids": {
|
||||
"version": "3.0.16",
|
||||
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz",
|
||||
"integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==",
|
||||
"version": "3.0.17",
|
||||
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz",
|
||||
"integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/spdy": {
|
||||
@@ -10853,12 +10888,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz",
|
||||
"integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz",
|
||||
"integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=14"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/antonk52"
|
||||
}
|
||||
},
|
||||
"node_modules/tailwindcss/node_modules/postcss-selector-parser": {
|
||||
@@ -10893,9 +10931,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/terser": {
|
||||
"version": "5.27.0",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.27.0.tgz",
|
||||
"integrity": "sha512-bi1HRwVRskAjheeYl291n3JC4GgO/Ty4z1nVs5AAsmonJulGxpSektecnNedrwK9C7vpvVtcX3cw00VSLt7U2A==",
|
||||
"version": "5.28.1",
|
||||
"resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz",
|
||||
"integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@jridgewell/source-map": "^0.3.3",
|
||||
@@ -11096,12 +11134,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typed-array-buffer": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.1.tgz",
|
||||
"integrity": "sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz",
|
||||
"integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.6",
|
||||
"call-bind": "^1.0.7",
|
||||
"es-errors": "^1.3.0",
|
||||
"is-typed-array": "^1.1.13"
|
||||
},
|
||||
@@ -11110,15 +11148,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typed-array-byte-length": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz",
|
||||
"integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==",
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz",
|
||||
"integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"call-bind": "^1.0.7",
|
||||
"for-each": "^0.3.3",
|
||||
"has-proto": "^1.0.1",
|
||||
"is-typed-array": "^1.1.10"
|
||||
"gopd": "^1.0.1",
|
||||
"has-proto": "^1.0.3",
|
||||
"is-typed-array": "^1.1.13"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -11128,16 +11167,17 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typed-array-byte-offset": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz",
|
||||
"integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==",
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz",
|
||||
"integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"available-typed-arrays": "^1.0.5",
|
||||
"call-bind": "^1.0.2",
|
||||
"available-typed-arrays": "^1.0.7",
|
||||
"call-bind": "^1.0.7",
|
||||
"for-each": "^0.3.3",
|
||||
"has-proto": "^1.0.1",
|
||||
"is-typed-array": "^1.1.10"
|
||||
"gopd": "^1.0.1",
|
||||
"has-proto": "^1.0.3",
|
||||
"is-typed-array": "^1.1.13"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@@ -11147,23 +11187,29 @@
|
||||
}
|
||||
},
|
||||
"node_modules/typed-array-length": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz",
|
||||
"integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==",
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz",
|
||||
"integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.2",
|
||||
"call-bind": "^1.0.7",
|
||||
"for-each": "^0.3.3",
|
||||
"is-typed-array": "^1.1.9"
|
||||
"gopd": "^1.0.1",
|
||||
"has-proto": "^1.0.3",
|
||||
"is-typed-array": "^1.1.13",
|
||||
"possible-typed-array-names": "^1.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/typo-js": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.2.3.tgz",
|
||||
"integrity": "sha512-67Hyl94beZX8gmTap7IDPrG5hy2cHftgsCAcGvE1tzuxGT+kRB+zSBin0wIMwysYw8RUCBCvv9UfQl8TNM75dA==",
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/typo-js/-/typo-js-1.2.4.tgz",
|
||||
"integrity": "sha512-Oy/k+tFle5NAA3J/yrrYGfvEnPVrDZ8s8/WCwjUE75k331QyKIsFss7byQ/PzBmXLY6h1moRnZbnaxWBe3I3CA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/unbox-primitive": {
|
||||
@@ -11439,9 +11485,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/webpack": {
|
||||
"version": "5.90.1",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.1.tgz",
|
||||
"integrity": "sha512-SstPdlAC5IvgFnhiRok8hqJo/+ArAbNv7rhU4fnWGHNVfN59HSQFaxZDSAL3IFG2YmqxuRs+IU33milSxbPlog==",
|
||||
"version": "5.90.3",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.90.3.tgz",
|
||||
"integrity": "sha512-h6uDYlWCctQRuXBs1oYpVe6sFcWedl0dpcVaTf/YF67J9bKvwJajFulMVSYKHrksMB3I/pIagRzDxwxkebuzKA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/eslint-scope": "^3.7.3",
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@
|
||||
"postcss": "^8.4.4",
|
||||
"postcss-nesting": "^12.0.1",
|
||||
"prettier": "^3.1.1",
|
||||
"prettier-plugin-blade": "^2.0.0",
|
||||
"prettier-plugin-blade": "v2.0.0",
|
||||
"prettier-plugin-tailwindcss": "^0.5.10",
|
||||
"pusher-js": "^7.4.0",
|
||||
"sortablejs": "^1.15.0",
|
||||
|
||||
@@ -318,6 +318,18 @@ ImportColumn::make('sku')
|
||||
})
|
||||
```
|
||||
|
||||
### Adding helper text below the import column
|
||||
|
||||
Sometimes, you may wish to provide extra information for the user before validation. You can do this by adding `helperText()` to a column, which gets displayed below the mapping select:
|
||||
|
||||
```php
|
||||
use Filament\Forms\Components\TextInput;
|
||||
|
||||
ImportColumn::make('skus')
|
||||
->array(',')
|
||||
->helperText('A comma-separated list of SKUs.')
|
||||
```
|
||||
|
||||
## Updating existing records when importing
|
||||
|
||||
When generating an importer class, you will see this `resolveRecord()` method:
|
||||
|
||||
@@ -505,6 +505,43 @@ public static function getCsvDelimiter(): string
|
||||
|
||||
You can only specify a single character, otherwise an exception will be thrown.
|
||||
|
||||
## Styling XLSX cells
|
||||
|
||||
If you want to style the cells of the XLSX file, you may override the `getXlsxCellStyle()` method on the exporter class, returning an [OpenSpout `Style` object](https://github.com/openspout/openspout/blob/4.x/docs/documentation.md#styling):
|
||||
|
||||
```php
|
||||
use OpenSpout\Common\Entity\Style\Style;
|
||||
|
||||
public function getXlsxCellStyle(): ?Style
|
||||
{
|
||||
return (new Style())
|
||||
->setFontSize(12)
|
||||
->setFontName('Consolas');
|
||||
}
|
||||
```
|
||||
|
||||
If you want to use a different style for the header cells of the XLSX file only, you may override the `getXlsxHeaderCellStyle()` method on the exporter class, returning an [OpenSpout `Style` object](https://github.com/openspout/openspout/blob/4.x/docs/documentation.md#styling):
|
||||
|
||||
```php
|
||||
use OpenSpout\Common\Entity\Style\CellAlignment;
|
||||
use OpenSpout\Common\Entity\Style\CellVerticalAlignment;
|
||||
use OpenSpout\Common\Entity\Style\Color;
|
||||
use OpenSpout\Common\Entity\Style\Style;
|
||||
|
||||
public function getXlsxHeaderCellStyle(): ?Style
|
||||
{
|
||||
return (new Style())
|
||||
->setFontBold()
|
||||
->setFontItalic()
|
||||
->setFontSize(14)
|
||||
->setFontName('Consolas')
|
||||
->setFontColor(Color::rgb(255, 255, 77))
|
||||
->setBackgroundColor(Color::rgb(0, 0, 0))
|
||||
->setCellAlignment(CellAlignment::CENTER)
|
||||
->setCellVerticalAlignment(CellVerticalAlignment::CENTER);
|
||||
}
|
||||
```
|
||||
|
||||
## Customizing the export job
|
||||
|
||||
The default job for processing exports is `Filament\Actions\Exports\Jobs\PrepareCsvExport`. If you want to extend this class and override any of its methods, you may replace the original class in the `register()` method of a service provider:
|
||||
|
||||
@@ -6,8 +6,8 @@ use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::get('/filament/exports/{export}/download', DownloadExport::class)
|
||||
->name('filament.exports.download')
|
||||
->middleware(['web', 'auth']);
|
||||
->middleware('filament.actions');
|
||||
|
||||
Route::get('/filament/imports/{import}/failed-rows/download', DownloadImportFailureCsv::class)
|
||||
->name('filament.imports.failed-rows.download')
|
||||
->middleware(['web', 'auth']);
|
||||
->middleware('filament.actions');
|
||||
|
||||
@@ -4,6 +4,7 @@ namespace Filament\Actions;
|
||||
|
||||
use Filament\Actions\Testing\TestsActions;
|
||||
use Illuminate\Filesystem\Filesystem;
|
||||
use Illuminate\Routing\Router;
|
||||
use Livewire\Features\SupportTesting\Testable;
|
||||
use Spatie\LaravelPackageTools\Package;
|
||||
use Spatie\LaravelPackageTools\PackageServiceProvider;
|
||||
@@ -25,6 +26,11 @@ class ActionsServiceProvider extends PackageServiceProvider
|
||||
->hasViews();
|
||||
}
|
||||
|
||||
public function packageRegistered(): void
|
||||
{
|
||||
app(Router::class)->middlewareGroup('filament.actions', ['web', 'auth']);
|
||||
}
|
||||
|
||||
public function packageBooted(): void
|
||||
{
|
||||
if ($this->app->runningInConsole()) {
|
||||
|
||||
@@ -8,6 +8,7 @@ use Filament\Actions\Exports\Models\Export;
|
||||
use Filament\Forms\Components\Component;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Queue\Middleware\WithoutOverlapping;
|
||||
use OpenSpout\Common\Entity\Style\Style;
|
||||
|
||||
abstract class Exporter
|
||||
{
|
||||
@@ -166,4 +167,14 @@ abstract class Exporter
|
||||
{
|
||||
return [ExportFormat::Csv, ExportFormat::Xlsx];
|
||||
}
|
||||
|
||||
public function getXlsxCellStyle(): ?Style
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
public function getXlsxHeaderCellStyle(): ?Style
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ use Illuminate\Queue\SerializesModels;
|
||||
use League\Csv\Reader as CsvReader;
|
||||
use League\Csv\Statement;
|
||||
use OpenSpout\Common\Entity\Row;
|
||||
use OpenSpout\Common\Entity\Style\Style;
|
||||
use OpenSpout\Writer\XLSX\Writer;
|
||||
|
||||
class CreateXlsxFile implements ShouldQueue
|
||||
@@ -51,17 +52,22 @@ class CreateXlsxFile implements ShouldQueue
|
||||
|
||||
$csvDelimiter = $this->exporter::getCsvDelimiter();
|
||||
|
||||
$writeRowsFromFile = function (string $file) use ($csvDelimiter, $disk, $writer) {
|
||||
$writeRowsFromFile = function (string $file, ?Style $style = null) use ($csvDelimiter, $disk, $writer) {
|
||||
$csvReader = CsvReader::createFromStream($disk->readStream($file));
|
||||
$csvReader->setDelimiter($csvDelimiter);
|
||||
$csvResults = Statement::create()->process($csvReader);
|
||||
|
||||
foreach ($csvResults->getRecords() as $row) {
|
||||
$writer->addRow(Row::fromValues($row));
|
||||
$writer->addRow(Row::fromValues($row, $style));
|
||||
}
|
||||
};
|
||||
|
||||
$writeRowsFromFile($this->export->getFileDirectory() . DIRECTORY_SEPARATOR . 'headers.csv');
|
||||
$cellStyle = $this->exporter->getXlsxCellStyle();
|
||||
|
||||
$writeRowsFromFile(
|
||||
$this->export->getFileDirectory() . DIRECTORY_SEPARATOR . 'headers.csv',
|
||||
$this->exporter->getXlsxHeaderCellStyle() ?? $cellStyle,
|
||||
);
|
||||
|
||||
foreach ($disk->files($this->export->getFileDirectory()) as $file) {
|
||||
if (str($file)->endsWith('headers.csv')) {
|
||||
@@ -72,7 +78,7 @@ class CreateXlsxFile implements ShouldQueue
|
||||
continue;
|
||||
}
|
||||
|
||||
$writeRowsFromFile($file);
|
||||
$writeRowsFromFile($file, $cellStyle);
|
||||
}
|
||||
|
||||
$writer->close();
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace Filament\Actions\Imports;
|
||||
use Closure;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Support\Components\Component;
|
||||
use Illuminate\Contracts\Support\Htmlable;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
@@ -70,6 +71,8 @@ class ImportColumn extends Component
|
||||
|
||||
protected string $evaluationIdentifier = 'column';
|
||||
|
||||
protected string | Htmlable | Closure | null $helperText = null;
|
||||
|
||||
final public function __construct(string $name)
|
||||
{
|
||||
$this->name($name);
|
||||
@@ -88,7 +91,8 @@ class ImportColumn extends Component
|
||||
return Select::make($this->getName())
|
||||
->label($this->getLabel())
|
||||
->placeholder(__('filament-actions::import.modal.form.columns.placeholder'))
|
||||
->required($this->isMappingRequired());
|
||||
->required($this->isMappingRequired())
|
||||
->helperText($this->helperText);
|
||||
}
|
||||
|
||||
public function name(string $name): static
|
||||
@@ -134,6 +138,13 @@ class ImportColumn extends Component
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function helperText(string | Htmlable | Closure | null $text): static
|
||||
{
|
||||
$this->helperText = $text;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function integer(bool | Closure $condition = true): static
|
||||
{
|
||||
$this->numeric($condition, decimalPlaces: 0);
|
||||
|
||||
+7
-7
File diff suppressed because one or more lines are too long
@@ -285,7 +285,6 @@ You may define a custom form that can be used to create a new record and attach
|
||||
|
||||
```php
|
||||
use Filament\Forms\Components\Select;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
Select::make('author_id')
|
||||
->relationship(name: 'author', titleAttribute: 'name')
|
||||
@@ -304,13 +303,29 @@ The form opens in a modal, where the user can fill it with data. Upon form submi
|
||||
|
||||
<AutoScreenshot name="forms/fields/select/create-option-modal" alt="Select with create option modal" version="3.x" />
|
||||
|
||||
#### Customizing new option creation
|
||||
|
||||
You can customize the creation process of the new option defined in the form using the `createOptionUsing()` method, which should return the primary key of the newly created record:
|
||||
|
||||
```php
|
||||
use Filament\Forms\Components\Select;
|
||||
|
||||
Select::make('author_id')
|
||||
->relationship(name: 'author', titleAttribute: 'name')
|
||||
->createOptionForm([
|
||||
// ...
|
||||
])
|
||||
->createOptionUsing(function (array $data): int {
|
||||
return auth()->user()->team->members()->create($data)->getKey();
|
||||
}),
|
||||
```
|
||||
|
||||
### Editing the selected option in a modal
|
||||
|
||||
You may define a custom form that can be used to edit the selected record and save it back to the `BelongsTo` relationship:
|
||||
|
||||
```php
|
||||
use Filament\Forms\Components\Select;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
Select::make('author_id')
|
||||
->relationship(name: 'author', titleAttribute: 'name')
|
||||
|
||||
@@ -18,8 +18,8 @@ use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOneOrMany;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Str;
|
||||
@@ -830,7 +830,7 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has
|
||||
}
|
||||
|
||||
if (
|
||||
($relationship instanceof HasOneThrough) ||
|
||||
($relationship instanceof HasManyThrough) ||
|
||||
($relationship instanceof \Znck\Eloquent\Relations\BelongsToThrough)
|
||||
) {
|
||||
$relatedModel = $relationship->getResults();
|
||||
@@ -953,7 +953,11 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has
|
||||
$this->saveRelationshipsUsing(static function (Select $component, Model $record, $state) {
|
||||
$relationship = $component->getRelationship();
|
||||
|
||||
if ($relationship instanceof \Znck\Eloquent\Relations\BelongsToThrough) {
|
||||
if (
|
||||
($relationship instanceof HasOneOrMany) ||
|
||||
($relationship instanceof HasManyThrough) ||
|
||||
($relationship instanceof \Znck\Eloquent\Relations\BelongsToThrough)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1072,7 +1076,7 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has
|
||||
return parent::getLabel();
|
||||
}
|
||||
|
||||
public function getRelationship(): BelongsTo | BelongsToMany | HasOneOrMany | HasOneThrough | \Znck\Eloquent\Relations\BelongsToThrough | null
|
||||
public function getRelationship(): BelongsTo | BelongsToMany | HasOneOrMany | HasManyThrough | \Znck\Eloquent\Relations\BelongsToThrough | null
|
||||
{
|
||||
if (blank($this->getRelationshipName())) {
|
||||
return null;
|
||||
@@ -1197,7 +1201,7 @@ class Select extends Field implements Contracts\CanDisableOptions, Contracts\Has
|
||||
return $relationship->getQualifiedRelatedKeyName();
|
||||
}
|
||||
|
||||
if ($relationship instanceof HasOneThrough) {
|
||||
if ($relationship instanceof HasManyThrough) {
|
||||
return $relationship->getQualifiedForeignKeyName();
|
||||
}
|
||||
|
||||
|
||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
@@ -14,7 +14,7 @@ return [
|
||||
],
|
||||
|
||||
'request_password_reset' => [
|
||||
'label' => 'Forgotten your password?',
|
||||
'label' => 'Forgot password?',
|
||||
],
|
||||
|
||||
],
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@ return [
|
||||
|
||||
'title' => 'Reset your password',
|
||||
|
||||
'heading' => 'Forgotten your password?',
|
||||
'heading' => 'Forgot password?',
|
||||
|
||||
'actions' => [
|
||||
|
||||
|
||||
+43
-26
@@ -3,6 +3,7 @@
|
||||
namespace Filament\Infolists\Components;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Arr;
|
||||
use Spatie\MediaLibrary\MediaCollections\Models\Media;
|
||||
use Throwable;
|
||||
@@ -46,34 +47,38 @@ class SpatieMediaLibraryImageEntry extends ImageEntry
|
||||
}
|
||||
|
||||
if ($this->hasRelationship($record)) {
|
||||
$record = $record->getRelationValue($this->getRelationshipName());
|
||||
$record = $this->getRelationshipResults($record);
|
||||
}
|
||||
|
||||
if (! $record) {
|
||||
return null;
|
||||
}
|
||||
$records = Arr::wrap($record);
|
||||
|
||||
/** @var ?Media $media */
|
||||
$media = $record->media->first(fn (Media $media): bool => $media->uuid === $state);
|
||||
foreach ($records as $record) {
|
||||
/** @var Model $record */
|
||||
|
||||
if (! $media) {
|
||||
return null;
|
||||
}
|
||||
/** @var ?Media $media */
|
||||
$media = $record->getRelationValue('media')->first(fn (Media $media): bool => $media->uuid === $state);
|
||||
|
||||
$conversion = $this->getConversion();
|
||||
|
||||
if ($this->getVisibility() === 'private') {
|
||||
try {
|
||||
return $media->getTemporaryUrl(
|
||||
now()->addMinutes(5),
|
||||
$conversion ?? '',
|
||||
);
|
||||
} catch (Throwable $exception) {
|
||||
// This driver does not support creating temporary URLs.
|
||||
if (! $media) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$conversion = $this->getConversion();
|
||||
|
||||
if ($this->getVisibility() === 'private') {
|
||||
try {
|
||||
return $media->getTemporaryUrl(
|
||||
now()->addMinutes(5),
|
||||
$conversion ?? '',
|
||||
);
|
||||
} catch (Throwable $exception) {
|
||||
// This driver does not support creating temporary URLs.
|
||||
}
|
||||
}
|
||||
|
||||
return $media->getAvailableUrl(Arr::wrap($conversion));
|
||||
}
|
||||
|
||||
return $media->getAvailableUrl(Arr::wrap($conversion));
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -86,13 +91,25 @@ class SpatieMediaLibraryImageEntry extends ImageEntry
|
||||
$record = $this->getRecord();
|
||||
|
||||
if ($this->hasRelationship($record)) {
|
||||
$record = $record->getRelationValue($this->getRelationshipName());
|
||||
$record = $this->getRelationshipResults($record);
|
||||
}
|
||||
|
||||
return $record?->getRelationValue('media')
|
||||
->filter(fn (Media $media): bool => blank($collection) || ($media->getAttributeValue('collection_name') === $collection))
|
||||
->sortBy('order_column')
|
||||
->map(fn (Media $media): string => $media->uuid)
|
||||
->all() ?? [];
|
||||
$records = Arr::wrap($record);
|
||||
|
||||
$state = [];
|
||||
|
||||
foreach ($records as $record) {
|
||||
/** @var Model $record */
|
||||
$state = [
|
||||
...$state,
|
||||
...$record->getRelationValue('media')
|
||||
->filter(fn (Media $media): bool => blank($collection) || ($media->getAttributeValue('collection_name') === $collection))
|
||||
->sortBy('order_column')
|
||||
->pluck('uuid')
|
||||
->all(),
|
||||
];
|
||||
}
|
||||
|
||||
return array_unique($state);
|
||||
}
|
||||
}
|
||||
|
||||
+55
-36
@@ -4,6 +4,7 @@ namespace Filament\Tables\Columns;
|
||||
|
||||
use Closure;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Support\Arr;
|
||||
use Spatie\MediaLibrary\MediaCollections\Models\Media;
|
||||
@@ -44,34 +45,38 @@ class SpatieMediaLibraryImageColumn extends ImageColumn
|
||||
$record = $this->getRecord();
|
||||
|
||||
if ($this->hasRelationship($record)) {
|
||||
$record = $record->getRelationValue($this->getRelationshipName());
|
||||
$record = $this->getRelationshipResults($record);
|
||||
}
|
||||
|
||||
if (! $record) {
|
||||
return null;
|
||||
}
|
||||
$records = Arr::wrap($record);
|
||||
|
||||
/** @var ?Media $media */
|
||||
$media = $record->media->first(fn (Media $media): bool => $media->uuid === $state);
|
||||
foreach ($records as $record) {
|
||||
/** @var Model $record */
|
||||
|
||||
if (! $media) {
|
||||
return null;
|
||||
}
|
||||
/** @var ?Media $media */
|
||||
$media = $record->getRelationValue('media')->first(fn (Media $media): bool => $media->uuid === $state);
|
||||
|
||||
$conversion = $this->getConversion();
|
||||
|
||||
if ($this->getVisibility() === 'private') {
|
||||
try {
|
||||
return $media->getTemporaryUrl(
|
||||
now()->addMinutes(5),
|
||||
$conversion ?? '',
|
||||
);
|
||||
} catch (Throwable $exception) {
|
||||
// This driver does not support creating temporary URLs.
|
||||
if (! $media) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$conversion = $this->getConversion();
|
||||
|
||||
if ($this->getVisibility() === 'private') {
|
||||
try {
|
||||
return $media->getTemporaryUrl(
|
||||
now()->addMinutes(5),
|
||||
$conversion ?? '',
|
||||
);
|
||||
} catch (Throwable $exception) {
|
||||
// This driver does not support creating temporary URLs.
|
||||
}
|
||||
}
|
||||
|
||||
return $media->getAvailableUrl(Arr::wrap($conversion));
|
||||
}
|
||||
|
||||
return $media->getAvailableUrl(Arr::wrap($conversion));
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,19 +84,28 @@ class SpatieMediaLibraryImageColumn extends ImageColumn
|
||||
*/
|
||||
public function getState(): array
|
||||
{
|
||||
$collection = $this->getCollection();
|
||||
|
||||
$record = $this->getRecord();
|
||||
|
||||
if ($this->hasRelationship($record)) {
|
||||
$record = $record->getRelationValue($this->getRelationshipName());
|
||||
$record = $this->getRelationshipResults($record);
|
||||
}
|
||||
|
||||
return $record?->getRelationValue('media')
|
||||
->filter(fn (Media $media): bool => blank($collection) || ($media->getAttributeValue('collection_name') === $collection))
|
||||
->sortBy('order_column')
|
||||
->map(fn (Media $media): string => $media->uuid)
|
||||
->all() ?? [];
|
||||
$records = Arr::wrap($record);
|
||||
|
||||
$state = [];
|
||||
|
||||
foreach ($records as $record) {
|
||||
/** @var Model $record */
|
||||
$state = [
|
||||
...$state,
|
||||
...$record->getRelationValue('media')
|
||||
->sortBy('order_column')
|
||||
->pluck('uuid')
|
||||
->all(),
|
||||
];
|
||||
}
|
||||
|
||||
return array_unique($state);
|
||||
}
|
||||
|
||||
public function applyEagerLoading(Builder | Relation $query): Builder | Relation
|
||||
@@ -100,18 +114,23 @@ class SpatieMediaLibraryImageColumn extends ImageColumn
|
||||
return $query;
|
||||
}
|
||||
|
||||
/** @phpstan-ignore-next-line */
|
||||
$modifyMediaQuery = fn (Builder | Relation $query) => $query
|
||||
->ordered()
|
||||
->when(
|
||||
$this->getCollection(),
|
||||
fn (Builder | Relation $query, string $collection) => $query->where(
|
||||
'collection_name',
|
||||
$collection,
|
||||
),
|
||||
);
|
||||
|
||||
if ($this->hasRelationship($query->getModel())) {
|
||||
return $query->with([
|
||||
"{$this->getRelationshipName()}.media" => fn (Builder | Relation $query) => $query->when(
|
||||
$this->getCollection(),
|
||||
fn (Builder | Relation $query, string $collection) => $query->where(
|
||||
'collection_name',
|
||||
$collection,
|
||||
),
|
||||
),
|
||||
"{$this->getRelationshipName()}.media" => $modifyMediaQuery,
|
||||
]);
|
||||
}
|
||||
|
||||
return $query->with(['media']);
|
||||
return $query->with(['media' => $modifyMediaQuery]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ namespace Filament\Infolists\Components;
|
||||
use Closure;
|
||||
use Filament\SpatieLaravelTagsPlugin\Types\AllTagTypes;
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Arr;
|
||||
|
||||
class SpatieTagsEntry extends TextEntry
|
||||
{
|
||||
@@ -37,27 +39,34 @@ class SpatieTagsEntry extends TextEntry
|
||||
}
|
||||
|
||||
if ($this->hasRelationship($record)) {
|
||||
$record = $record->getRelationValue($this->getRelationshipName());
|
||||
$record = $this->getRelationshipResults($record);
|
||||
}
|
||||
|
||||
if (! $record) {
|
||||
return [];
|
||||
$records = Arr::wrap($record);
|
||||
|
||||
$state = [];
|
||||
|
||||
foreach ($records as $record) {
|
||||
/** @var Model $record */
|
||||
if (! (method_exists($record, 'tags') && method_exists($record, 'tagsWithType'))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$type = $this->getType();
|
||||
|
||||
if ($this->isAnyTagTypeAllowed()) {
|
||||
$tags = $record->getRelationValue('tags');
|
||||
} else {
|
||||
$tags = $record->tagsWithType($type);
|
||||
}
|
||||
|
||||
$state = [
|
||||
...$state,
|
||||
...$tags->pluck('name')->all(),
|
||||
];
|
||||
}
|
||||
|
||||
if (! (method_exists($record, 'tags') && method_exists($record, 'tagsWithType'))) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$type = $this->getType();
|
||||
|
||||
if ($this->isAnyTagTypeAllowed()) {
|
||||
/** @phpstan-ignore-next-line */
|
||||
$tags = $record->tags;
|
||||
} else {
|
||||
$tags = $record->tagsWithType($type);
|
||||
}
|
||||
|
||||
return $tags->pluck('name')->all();
|
||||
return array_unique($state);
|
||||
}
|
||||
|
||||
public function type(string | Closure | AllTagTypes | null $type): static
|
||||
|
||||
@@ -5,10 +5,12 @@ namespace Filament\Tables\Columns;
|
||||
use Closure;
|
||||
use Filament\SpatieLaravelTagsPlugin\Types\AllTagTypes;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\Relation;
|
||||
use Illuminate\Support\Arr;
|
||||
use Illuminate\Support\Collection;
|
||||
|
||||
class SpatieTagsColumn extends TagsColumn
|
||||
class SpatieTagsColumn extends TextColumn
|
||||
{
|
||||
protected string | Closure | AllTagTypes | null $type;
|
||||
|
||||
@@ -17,6 +19,8 @@ class SpatieTagsColumn extends TagsColumn
|
||||
parent::setUp();
|
||||
|
||||
$this->type(new AllTagTypes());
|
||||
|
||||
$this->badge();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -33,27 +37,34 @@ class SpatieTagsColumn extends TagsColumn
|
||||
$record = $this->getRecord();
|
||||
|
||||
if ($this->hasRelationship($record)) {
|
||||
$record = $record->getRelationValue($this->getRelationshipName());
|
||||
$record = $this->getRelationshipResults($record);
|
||||
}
|
||||
|
||||
if (! $record) {
|
||||
return [];
|
||||
$records = Arr::wrap($record);
|
||||
|
||||
$state = [];
|
||||
|
||||
foreach ($records as $record) {
|
||||
/** @var Model $record */
|
||||
if (! (method_exists($record, 'tags') && method_exists($record, 'tagsWithType'))) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$type = $this->getType();
|
||||
|
||||
if ($this->isAnyTagTypeAllowed()) {
|
||||
$tags = $record->getRelationValue('tags');
|
||||
} else {
|
||||
$tags = $record->tagsWithType($type);
|
||||
}
|
||||
|
||||
$state = [
|
||||
...$state,
|
||||
...$tags->pluck('name')->all(),
|
||||
];
|
||||
}
|
||||
|
||||
if (! (method_exists($record, 'tags') && method_exists($record, 'tagsWithType'))) {
|
||||
return [];
|
||||
}
|
||||
|
||||
$type = $this->getType();
|
||||
|
||||
if ($this->isAnyTagTypeAllowed()) {
|
||||
/** @phpstan-ignore-next-line */
|
||||
$tags = $record->tags;
|
||||
} else {
|
||||
$tags = $record->tagsWithType($type);
|
||||
}
|
||||
|
||||
return $tags->pluck('name')->all();
|
||||
return array_unique($state);
|
||||
}
|
||||
|
||||
public function type(string | Closure | AllTagTypes | null $type): static
|
||||
|
||||
+1
-1
File diff suppressed because one or more lines are too long
@@ -96,7 +96,8 @@ trait CanReadModelSchemas
|
||||
return 'title';
|
||||
}
|
||||
|
||||
return collect($schema->getIndexes($table))->firstWhere('primary')['columns'][0] ?? 'id';
|
||||
return collect($schema->getIndexes($table))
|
||||
->firstWhere('primary')['columns'][0] ?? 'id';
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -12,6 +12,7 @@ use Illuminate\Support\Number;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Translation\MessageSelector;
|
||||
use Illuminate\View\ComponentAttributeBag;
|
||||
use Illuminate\View\ComponentSlot;
|
||||
|
||||
if (! function_exists('Filament\Support\format_money')) {
|
||||
/**
|
||||
@@ -120,18 +121,11 @@ if (! function_exists('Filament\Support\is_slot_empty')) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return trim(
|
||||
str_replace(
|
||||
[
|
||||
'<!-- __BLOCK__ -->',
|
||||
'<!-- __ENDBLOCK__ -->',
|
||||
'<!--[if BLOCK]><![endif]-->',
|
||||
'<!--[if ENDBLOCK]><![endif]-->',
|
||||
],
|
||||
'',
|
||||
$slot->toHtml()
|
||||
),
|
||||
) === '';
|
||||
if (! $slot instanceof ComponentSlot) {
|
||||
$slot = new ComponentSlot($slot->toHtml());
|
||||
}
|
||||
|
||||
return ! $slot->hasActualContent();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -169,6 +163,13 @@ if (! function_exists('Filament\Support\generate_search_column_expression')) {
|
||||
{
|
||||
$driverName = $databaseConnection->getDriverName();
|
||||
|
||||
if (Str::lower($column) !== $column) {
|
||||
$column = match ($driverName) {
|
||||
'pgsql' => (string) str($column)->wrap('"'),
|
||||
default => $column,
|
||||
};
|
||||
}
|
||||
|
||||
$column = match ($driverName) {
|
||||
'pgsql' => "{$column}::text",
|
||||
default => $column,
|
||||
|
||||
@@ -40,6 +40,13 @@ class Average extends Summarizer
|
||||
return $this->selectedState[$this->getSelectAlias()];
|
||||
}
|
||||
|
||||
public function selectAlias(?string $alias): static
|
||||
{
|
||||
$this->selectAlias = $alias;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSelectAlias(): string
|
||||
{
|
||||
return $this->selectAlias ??= Str::random();
|
||||
|
||||
@@ -75,6 +75,13 @@ class Count extends Summarizer
|
||||
return $this->selectedState[$this->getSelectAlias()];
|
||||
}
|
||||
|
||||
public function selectAlias(?string $alias): static
|
||||
{
|
||||
$this->selectAlias = $alias;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSelectAlias(): string
|
||||
{
|
||||
return $this->selectAlias ??= Str::random();
|
||||
|
||||
@@ -40,6 +40,13 @@ class Sum extends Summarizer
|
||||
return $this->selectedState[$this->getSelectAlias()];
|
||||
}
|
||||
|
||||
public function selectAlias(?string $alias): static
|
||||
{
|
||||
$this->selectAlias = $alias;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getSelectAlias(): string
|
||||
{
|
||||
return $this->selectAlias ??= Str::random();
|
||||
|
||||
@@ -5,6 +5,7 @@ namespace Filament\Tables\Filters\QueryBuilder\Constraints\Operators;
|
||||
use Illuminate\Database\Connection;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Query\Expression;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class IsFilledOperator extends Operator
|
||||
{
|
||||
@@ -39,7 +40,13 @@ class IsFilledOperator extends Operator
|
||||
/** @var Connection $databaseConnection */
|
||||
$databaseConnection = $query->getConnection();
|
||||
|
||||
if ($databaseConnection->getDriverName() === 'pgsql') {
|
||||
$isPostgres = $databaseConnection->getDriverName() === 'pgsql';
|
||||
|
||||
if ((Str::lower($qualifiedColumn) !== $qualifiedColumn) && $isPostgres) {
|
||||
$qualifiedColumn = (string) str($qualifiedColumn)->wrap('"');
|
||||
}
|
||||
|
||||
if ($isPostgres) {
|
||||
$qualifiedStringColumn = new Expression("{$qualifiedColumn}::text");
|
||||
}
|
||||
|
||||
|
||||
+7
-1
@@ -59,7 +59,13 @@ class ContainsOperator extends Operator
|
||||
/** @var Connection $databaseConnection */
|
||||
$databaseConnection = $query->getConnection();
|
||||
|
||||
if ($databaseConnection->getDriverName() === 'pgsql') {
|
||||
$isPostgres = $databaseConnection->getDriverName() === 'pgsql';
|
||||
|
||||
if ((Str::lower($qualifiedColumn) !== $qualifiedColumn) && $isPostgres) {
|
||||
$qualifiedColumn = (string) str($qualifiedColumn)->wrap('"');
|
||||
}
|
||||
|
||||
if ($isPostgres) {
|
||||
$qualifiedColumn = new Expression("lower({$qualifiedColumn}::text)");
|
||||
$text = Str::lower($text);
|
||||
}
|
||||
|
||||
+7
-1
@@ -59,7 +59,13 @@ class EndsWithOperator extends Operator
|
||||
/** @var Connection $databaseConnection */
|
||||
$databaseConnection = $query->getConnection();
|
||||
|
||||
if ($databaseConnection->getDriverName() === 'pgsql') {
|
||||
$isPostgres = $databaseConnection->getDriverName() === 'pgsql';
|
||||
|
||||
if ((Str::lower($qualifiedColumn) !== $qualifiedColumn) && $isPostgres) {
|
||||
$qualifiedColumn = (string) str($qualifiedColumn)->wrap('"');
|
||||
}
|
||||
|
||||
if ($isPostgres) {
|
||||
$qualifiedColumn = new Expression("lower({$qualifiedColumn}::text)");
|
||||
$text = Str::lower($text);
|
||||
}
|
||||
|
||||
+7
-1
@@ -59,7 +59,13 @@ class EqualsOperator extends Operator
|
||||
/** @var Connection $databaseConnection */
|
||||
$databaseConnection = $query->getConnection();
|
||||
|
||||
if ($databaseConnection->getDriverName() === 'pgsql') {
|
||||
$isPostgres = $databaseConnection->getDriverName() === 'pgsql';
|
||||
|
||||
if ((Str::lower($qualifiedColumn) !== $qualifiedColumn) && $isPostgres) {
|
||||
$qualifiedColumn = (string) str($qualifiedColumn)->wrap('"');
|
||||
}
|
||||
|
||||
if ($isPostgres) {
|
||||
$qualifiedColumn = new Expression("lower({$qualifiedColumn}::text)");
|
||||
$text = Str::lower($text);
|
||||
}
|
||||
|
||||
+7
-1
@@ -59,7 +59,13 @@ class StartsWithOperator extends Operator
|
||||
/** @var Connection $databaseConnection */
|
||||
$databaseConnection = $query->getConnection();
|
||||
|
||||
if ($databaseConnection->getDriverName() === 'pgsql') {
|
||||
$isPostgres = $databaseConnection->getDriverName() === 'pgsql';
|
||||
|
||||
if ((Str::lower($qualifiedColumn) !== $qualifiedColumn) && $isPostgres) {
|
||||
$qualifiedColumn = (string) str($qualifiedColumn)->wrap('"');
|
||||
}
|
||||
|
||||
if ($isPostgres) {
|
||||
$qualifiedColumn = new Expression("lower({$qualifiedColumn}::text)");
|
||||
$text = Str::lower($text);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user