| @@ -2,8 +2,10 @@ | ||
| 2 | 2 | |
| 3 | 3 | namespace Give\Framework\FieldsAPI; |
| 4 | 4 | |
| 5 | 5 | /** |
| 6 | + * @since 3.9.0 add phone format attribute | |
| 7 | + * @since 2.32.0 added description | |
| 6 | 8 | * @since 2.12.0 |
| 7 | 9 | * @since 2.14.0 add min/max length validation |
| 8 | 10 | */ |
| 9 | 11 | class Phone extends Field |
| @@ -13,7 +15,50 @@ | ||
| 13 | 15 | use Concerns\HasLabel; |
| 14 | 16 | use Concerns\HasMaxLength; |
| 15 | 17 | use Concerns\HasMinLength; |
| 16 | 18 | use Concerns\HasPlaceholder; |
| 19 | + use Concerns\HasDescription; | |
| 17 | 20 | |
| 18 | 21 | const TYPE = 'phone'; |
| 22 | + | |
| 23 | + /** @var string */ | |
| 24 | + protected $phoneFormat = ''; | |
| 25 | + | |
| 26 | + /** @var string */ | |
| 27 | + protected $intlTelInputSettings = []; | |
| 28 | + | |
| 29 | + /** | |
| 30 | + * Set the phone format for the element. | |
| 31 | + * | |
| 32 | + * @since 3.0.0 | |
| 33 | + */ | |
| 34 | + public function phoneFormat(string $phoneFormat): self | |
| 35 | + { | |
| 36 | + $this->phoneFormat = $phoneFormat; | |
| 37 | + | |
| 38 | + return $this; | |
| 39 | + } | |
| 40 | + | |
| 41 | + /** | |
| 42 | + * Set the intl-tel-input options for the element. | |
| 43 | + * | |
| 44 | + * @see https://github.com/jackocnr/intl-tel-input | |
| 45 | + * | |
| 46 | + * @since 3.9.0 | |
| 47 | + */ | |
| 48 | + public function setIntlTelInputSettings(array $intlTelInputSettings): self | |
| 49 | + { | |
| 50 | + $this->intlTelInputSettings = $intlTelInputSettings; | |
| 51 | + | |
| 52 | + return $this; | |
| 53 | + } | |
| 54 | + | |
| 55 | + /** | |
| 56 | + * Get the phone format for the element. | |
| 57 | + * | |
| 58 | + * @since 3.0.0 | |
| 59 | + */ | |
| 60 | + public function getPhoneFormat(): string | |
| 61 | + { | |
| 62 | + return $this->phoneFormat; | |
| 63 | + } | |
| 19 | 64 | } |