attributes(['label' => $label]); $uiSchema = array_merge($this->uiSchema, [[ 'key' => $key, 'schema' => $schema ]]); return new self($uiSchema, $this->coaVisibility); } public function withContext(array $context): static { $this->context = $context; return $this; } public function withFormString(string $form): static { $this->form = $form; return $this; } public function getSchema(): array { $fields = []; foreach($this->uiSchema as $field) { /** @var SettingSchema $schema */ $schema = $field['schema']; $attributes['options'] =$schema->type->isSelect() ? $schema->resolveOptions($this->context) : ''; $fields[$field['key']] = (object) [ 'attributes' => array_merge($schema->attributes, $attributes), 'schema' => $schema, ]; } return $fields; } public function isCoaVisible(): bool { return $this->coaVisibility; } }