Skip to content

Commit 899703e

Browse files
authored
Merge pull request #1 from wamesk/5.x
5.x
2 parents 74c02e6 + 7012051 commit 899703e

File tree

11 files changed

+63
-75
lines changed

11 files changed

+63
-75
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
## Requirements
88

9-
- `laravel/nova: ^4.0`
9+
- `laravel/nova: ^5.0`
1010

1111

1212
## Installation

composer.json

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,24 @@
11
{
22
"name": "wamesk/laravel-nova-address-field",
3-
"description": "Laravel Nova 4 Address field",
3+
"description": "Laravel Nova Address field",
44
"type": "library",
5-
"version": "1.4.3",
5+
"version": "5.0.0",
66
"license": "proprietary",
77
"require": {
8-
"wamesk/laravel-nova-country": "^1.1|^2.0"
9-
},
8+
"interaction-design-foundation/nova-html-card": "^3.4",
9+
"laravel/nova": "^4.0|^5.0",
10+
"rinvex/countries": "^9.0"
11+
},
1012
"autoload": {
1113
"psr-4": {
12-
"Wame\\Address\\": "src/"
14+
"Wame\\LaravelNovaAddressField\\": "src/"
1315
}
1416
},
1517
"minimum-stability": "stable",
1618
"extra": {
1719
"laravel": {
1820
"providers": [
19-
"Wame\\Address\\Providers\\LaravelNovaAddressFieldServiceProvider"
21+
"Wame\\LaravelNovaAddressField\\Providers\\LaravelNovaAddressFieldServiceProvider"
2022
]
2123
}
2224
}

dist/js/field.js

Lines changed: 29 additions & 25 deletions
Large diffs are not rendered by default.

resources/js/components/FormField.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@
134134
<div class="flex relative w-full component-select-control select-wrapper">
135135
<select
136136
:id="currentField.attribute + '-country'"
137-
class="relative flex items-center form-control form-input form-control-bordered form-select pr-6 form-select-bordered"
137+
class="w-full block form-control form-control-bordered form-input"
138138
:class="errorClasses"
139139
v-model="formData.country"
140140
:required="isRequired('country')"
@@ -158,7 +158,7 @@
158158
</option>
159159
</select>
160160

161-
<svg class="shrink-0 pointer-events-none form-select-arrow component-icon-arrow" xmlns="http://www.w3.org/2000/svg" width="10" height="6" viewBox="0 0 10 6"><path class="fill-current" d="M8.292893.292893c.390525-.390524 1.023689-.390524 1.414214 0 .390524.390525.390524 1.023689 0 1.414214l-4 4c-.390525.390524-1.023689.390524-1.414214 0l-4-4c-.390524-.390525-.390524-1.023689 0-1.414214.390525-.390524 1.023689-.390524 1.414214 0L5 3.585786 8.292893.292893z"></path></svg>
161+
<span class="pointer-events-none absolute inset-y-0 right-[11px] flex items-center"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" data-slot="icon" class="w-5 h-5 shrink-0 text-gray-700 dark:text-gray-400"><path fill-rule="evenodd" d="M5.22 8.22a.75.75 0 0 1 1.06 0L10 11.94l3.72-3.72a.75.75 0 1 1 1.06 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L5.22 9.28a.75.75 0 0 1 0-1.06Z" clip-rule="evenodd"></path></svg></span>
162162
</div>
163163

164164
<div v-show="showCompany" class="company-data">

src/Cards/AddressCard.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
namespace Wame\Address\Cards;
44

55
use InteractionDesignFoundation\HtmlCard\HtmlCard;
6-
use Wame\Address\Casts\AddressCast;
6+
use Wame\LaravelNovaAddressField\Casts\AddressCast;
77

88
class AddressCard
99
{

src/Casts/AddressCast.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,15 @@
22

33
declare(strict_types = 1);
44

5-
namespace Wame\Address\Casts;
5+
namespace Wame\LaravelNovaAddressField\Casts;
66

77
use Illuminate\Contracts\Database\Eloquent\Castable;
88
use Illuminate\Contracts\Database\Eloquent\CastsAttributes;
99
use Illuminate\Contracts\Database\Eloquent\SerializesCastableAttributes;
1010
use Illuminate\Contracts\Support\Arrayable;
1111
use Illuminate\Database\Eloquent\Model;
1212
use Rinvex\Country\Country;
13-
use Wame\Address\Enums\IsCompanyEnum;
13+
use Wame\LaravelNovaAddressField\Enums\IsCompanyEnum;
1414

1515
class AddressCast implements Arrayable, Castable
1616
{

src/Enums/IsCompanyEnum.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Wame\Address\Enums;
3+
namespace Wame\LaravelNovaAddressField\Enums;
44

55
enum IsCompanyEnum: string
66
{

src/Fields/Address.php

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,14 @@
22

33
declare(strict_types = 1);
44

5-
namespace Wame\Address\Fields;
5+
namespace Wame\LaravelNovaAddressField\Fields;
66

77
use Exception;
88
use Illuminate\Support\Str;
99
use Laravel\Nova\Fields\Field;
1010
use Laravel\Nova\Fields\SupportsDependentFields;
11-
use Wame\Address\Casts\AddressCast;
12-
use Wame\LaravelNovaCountry\Enums\CountryStatusEnum;
13-
use Wame\LaravelNovaCountry\Models\Country;
11+
use Rinvex\Country\CountryLoader;
12+
use Wame\LaravelNovaAddressField\Casts\AddressCast;
1413

1514
class Address extends Field
1615
{
@@ -23,7 +22,7 @@ class Address extends Field
2322
*/
2423
public $component = 'address';
2524

26-
protected $dependentShouldEmitChangesEvent = true;
25+
protected ?bool $dependentShouldEmitChangesEvent = true;
2726

2827
public function __construct($name, $attribute = null, callable $resolveCallback = null)
2928
{
@@ -129,37 +128,20 @@ public function withPhone(): Address
129128
}
130129

131130
/**
132-
* @return array|mixed|mixed[]
133-
* @throws \JsonException
131+
* @return array
132+
* @throws \Rinvex\Country\CountryLoaderException
134133
*/
135-
private function getCountryList(): mixed
134+
private function getCountryList(): array
136135
{
137-
$version = $this->getCountryPackageVersion();
136+
$return = [];
138137

139-
if (Str::startsWith($version, '2.')) {
140-
return Country::query()->where(['status' => CountryStatusEnum::ENABLED])->orderBy('title')->pluck('title', 'id')->toArray();
138+
$list = CountryLoader::countries();
139+
foreach ($list as $item) {
140+
$country = country($item['iso_3166_1_alpha2']);
141+
142+
$return[$country->getIsoAlpha2()] = $country->getName();
141143
}
142144

143-
return Country::query()->where(['status' => Country::STATUS_ENABLED])->orderBy('title')->pluck('title', 'code')->toArray();
144-
}
145-
146-
/**
147-
* @return mixed
148-
* @throws \JsonException
149-
* @throws Exception
150-
*/
151-
public function getCountryPackageVersion(): mixed
152-
{
153-
$composerLockFile = base_path('composer.lock');
154-
$packageName = 'wamesk/laravel-nova-country';
155-
$composerData = json_decode(file_get_contents($composerLockFile), true, 512, JSON_THROW_ON_ERROR);
156-
157-
foreach ($composerData['packages'] as $package) {
158-
if ($package['name'] === $packageName) {
159-
return $package['version'];
160-
}
161-
}
162-
163-
throw new Exception('Package' . $packageName . 'not found');
145+
return $return;
164146
}
165147
}

src/Fields/AddressRepeater.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<?php
22

3-
namespace Wame\Address\Fields;
3+
namespace Wame\LaravelNovaAddressField\Fields;
44

55
use Laravel\Nova\Fields\Repeater\Repeatable;
66
use Laravel\Nova\Http\Requests\NovaRequest;

src/Providers/LaravelNovaAddressFieldServiceProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
declare(strict_types = 1);
44

5-
namespace Wame\Address\Providers;
5+
namespace Wame\LaravelNovaAddressField\Providers;
66

77
use Illuminate\Support\ServiceProvider;
88
use Laravel\Nova\Events\ServingNova;

0 commit comments

Comments
 (0)