Skip to content

Commit 96201c2

Browse files
committed
feat: regex validation
1 parent 0673f3e commit 96201c2

File tree

10 files changed

+27
-5
lines changed

10 files changed

+27
-5
lines changed

src/Enums/ValidationRule.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,8 @@ public function allowedParameterCount(): int
130130
self::SIZE, self::MAX, self::MIN, self::DIGITS, self::DATE_EQUALS,
131131
self::DATE_FORMAT, self::AFTER, self::AFTER_OR_EQUAL, self::BEFORE,
132132
self::BEFORE_OR_EQUAL, self::EXISTS, self::UNIQUE, self::GT, self::GTE,
133-
self::LT, self::LTE, self::MAX_DIGITS, self::MIN_DIGITS, self::MULTIPLE_OF => 1,
133+
self::LT, self::LTE, self::MAX_DIGITS, self::MIN_DIGITS, self::MULTIPLE_OF,
134+
self::REGEX, self::NOT_REGEX => 1,
134135

135136
// Default case for any unspecified rules
136137
default => 0

src/FieldTypeSystem/Definitions/ColorPickerFieldType.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ public function configure(): FieldSchema
2929
->priority(90)
3030
->availableValidationRules([
3131
ValidationRule::REQUIRED,
32+
ValidationRule::REGEX,
3233
ValidationRule::STARTS_WITH,
3334
]);
3435
}

src/FieldTypeSystem/Definitions/LinkFieldType.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public function configure(): FieldSchema
3030
->availableValidationRules([
3131
ValidationRule::REQUIRED,
3232
ValidationRule::URL,
33+
ValidationRule::REGEX,
3334
ValidationRule::STARTS_WITH,
3435
]);
3536
}

src/FieldTypeSystem/Definitions/MarkdownEditorFieldType.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public function configure(): FieldSchema
3131
ValidationRule::REQUIRED,
3232
ValidationRule::MIN,
3333
ValidationRule::MAX,
34+
ValidationRule::REGEX,
3435
]);
3536
}
3637
}

src/FieldTypeSystem/Definitions/RichEditorFieldType.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public function configure(): FieldSchema
3131
ValidationRule::REQUIRED,
3232
ValidationRule::MIN,
3333
ValidationRule::MAX,
34+
ValidationRule::REGEX,
3435
]);
3536
}
3637
}

src/FieldTypeSystem/Definitions/TextFieldType.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public function configure(): FieldSchema
3636
ValidationRule::ALPHA_NUM,
3737
ValidationRule::ALPHA_DASH,
3838
ValidationRule::EMAIL,
39+
ValidationRule::REGEX,
3940
ValidationRule::STARTS_WITH,
4041
ValidationRule::ENDS_WITH,
4142
]);

src/FieldTypeSystem/Definitions/TextareaFieldType.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ public function configure(): FieldSchema
3131
ValidationRule::REQUIRED,
3232
ValidationRule::MIN,
3333
ValidationRule::MAX,
34+
ValidationRule::REGEX,
3435
]);
3536
}
3637
}

src/Filament/Management/Pages/CustomFieldsManagementPage.php

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

3030
class CustomFieldsManagementPage extends Page
3131
{
32-
protected static string|BackedEnum|null $navigationIcon = 'heroicon-m-document-text';
32+
protected static string|\BackedEnum|null $navigationIcon = 'heroicon-m-document-text';
3333

3434
protected string $view = 'custom-fields::filament.pages.custom-fields-management';
3535

tests/Datasets/ValidationRulesDataset.php

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -536,6 +536,16 @@
536536
'allowedRules' => ['required', 'min', 'max', 'between', 'regex', 'alpha', 'alpha_num', 'alpha_dash', 'string', 'email', 'starts_with'],
537537
'disallowedRules' => ['numeric', 'integer', 'boolean', 'array', 'date'],
538538
],
539+
'textarea_field_rules' => [
540+
'fieldType' => 'textarea',
541+
'allowedRules' => ['required', 'min', 'max', 'regex'],
542+
'disallowedRules' => ['numeric', 'integer', 'boolean', 'array', 'date', 'email'],
543+
],
544+
'markdown_editor_field_rules' => [
545+
'fieldType' => 'markdown-editor',
546+
'allowedRules' => ['required', 'min', 'max', 'regex'],
547+
'disallowedRules' => ['numeric', 'integer', 'boolean', 'array', 'date', 'email'],
548+
],
539549
'number_field_rules' => [
540550
'fieldType' => 'number',
541551
'allowedRules' => ['required', 'numeric', 'min', 'max', 'between', 'integer', 'starts_with'],
@@ -573,12 +583,17 @@
573583
],
574584
'rich-editor_field_rules' => [
575585
'fieldType' => 'rich-editor',
576-
'allowedRules' => ['required', 'string', 'min', 'max', 'between', 'starts_with'],
586+
'allowedRules' => ['required', 'string', 'min', 'max', 'between', 'regex', 'starts_with'],
577587
'disallowedRules' => ['numeric', 'alpha', 'boolean', 'array', 'date', 'integer'],
578588
],
579589
'url_field_rules' => [
580590
'fieldType' => 'link',
581-
'allowedRules' => ['required', 'url', 'starts_with'],
591+
'allowedRules' => ['required', 'url', 'regex', 'starts_with'],
582592
'disallowedRules' => ['numeric', 'alpha', 'boolean', 'array', 'date', 'integer'],
583593
],
594+
'color_picker_field_rules' => [
595+
'fieldType' => 'color-picker',
596+
'allowedRules' => ['required', 'regex', 'starts_with'],
597+
'disallowedRules' => ['numeric', 'integer', 'boolean', 'array', 'date', 'email'],
598+
],
584599
]);

tests/Fixtures/Resources/Posts/PostResource.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class PostResource extends Resource
2828

2929
protected static string|UnitEnum|null $navigationGroup = 'Blog';
3030

31-
protected static string|BackedEnum|null $navigationIcon = Heroicon::OutlinedDocumentText;
31+
protected static string|\BackedEnum|null $navigationIcon = Heroicon::OutlinedDocumentText;
3232

3333
protected static ?string $recordTitleAttribute = 'title';
3434

0 commit comments

Comments
 (0)