feat: add logo image and RTL support styles

- Added logo image to assets.
- Implemented RTL support styles in rtlSupport.scss for various components including breadcrumb, datatable, and tree node toggle button.

chore: configure environment files for production, staging, and development

- Created environment.prod.ts for production settings.
- Created environment.staging.ts for staging settings.
- Created environment.ts for local development settings.

feat: define custom theme preset

- Added presets.ts to define a custom theme preset using PrimeUIX with specific component styles and semantic colors.

chore: set up proxy configuration for local development
This commit is contained in:
2025-12-04 21:07:18 +03:30
parent c58210cdbd
commit 07fec02ea1
164 changed files with 20175 additions and 735 deletions
+36
View File
@@ -0,0 +1,36 @@
import { FormErrorsService } from '@/core/services/form-errors.service';
import { CommonModule } from '@angular/common';
import { Component, Input, inject } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { MessageModule } from 'primeng/message';
import { UikitLabelComponent } from './uikit-label.component';
type PSize = 'small' | 'normal' | 'large';
@Component({
selector: 'uikit-field',
standalone: true,
imports: [CommonModule, UikitLabelComponent, MessageModule],
templateUrl: './uikit-field.component.html',
})
export class UikitFieldComponent {
@Input() label!: string;
@Input() name!: string;
@Input() pSize: PSize = 'normal';
@Input() className?: string;
@Input() invalid?: boolean = false;
// accept a FormControl or AbstractControl to display errors for
@Input() control?: AbstractControl | null;
private errorsService = inject(FormErrorsService);
get showErrors(): boolean {
if (!this.control) return !!this.invalid;
return !!(this.control.invalid && (this.control.touched || this.control.dirty));
}
get errors(): string[] {
if (!this.control) return this.invalid ? ['خطا'] : [];
return this.errorsService.getErrors(this.control, this.label).map((m) => m.message);
}
}