feat: Implement product categories, stores, suppliers, and users management features

- Added ProductCategoriesService for handling product category API interactions.
- Created components for listing and viewing product categories.
- Implemented UI for managing product categories with a data list component.
- Developed StoresService for managing store-related API calls.
- Created components for listing and viewing stores with appropriate UI.
- Added SuppliersService for handling supplier API interactions.
- Implemented components for managing suppliers with a data list component.
- Developed UsersService for managing user-related API calls.
- Created components for listing and viewing users with appropriate UI.
- Enhanced not found page with improved layout and navigation options.
This commit is contained in:
2025-12-04 23:34:00 +03:30
parent 07fec02ea1
commit 3bc1202c77
154 changed files with 3149 additions and 1820 deletions
@@ -1,17 +1,21 @@
<uikit-field [label]="label" [name]="name" [control]="control">
<input
pInputText
[attr.id]="name"
[formControl]="control"
[attr.name]="name"
[attr.placeholder]="placeholder"
[attr.inputmode]="inputMode"
[attr.maxlength]="maxLength || null"
[attr.type]="htmlType"
[attr.autocomplete]="autocomplete"
[class]="`${inputClass} w-full ${size === 'large' ? 'p-inputtext-lg' : size === 'small' ? 'p-inputtext-sm' : ''}`"
[required]="isRequired"
[invalid]="control.invalid && (control.touched || control.dirty)"
(input)="onInput($event)"
/>
@if (type === "switch") {
<p-toggleSwitch [formControl]="control" />
} @else {
<input
pInputText
[attr.id]="name"
[formControl]="control"
[attr.name]="name"
[attr.placeholder]="placeholder"
[attr.inputmode]="inputMode"
[attr.maxlength]="maxLength || null"
[attr.type]="htmlType"
[attr.autocomplete]="autocomplete"
[class]="`${inputClass} w-full ${size === 'large' ? 'p-inputtext-lg' : size === 'small' ? 'p-inputtext-sm' : ''}`"
[required]="isRequired"
[invalid]="control.invalid && (control.touched || control.dirty)"
(input)="onInput($event)"
/>
}
</uikit-field>
@@ -4,15 +4,17 @@ import { CommonModule } from '@angular/common';
import { Component, EventEmitter, Input, Output } from '@angular/core';
import { FormControl, ReactiveFormsModule, Validators } from '@angular/forms';
import { InputTextModule } from 'primeng/inputtext';
import { ToggleSwitch } from 'primeng/toggleswitch';
@Component({
selector: 'app-input',
standalone: true,
imports: [CommonModule, ReactiveFormsModule, InputTextModule, UikitFieldComponent],
imports: [CommonModule, ReactiveFormsModule, InputTextModule, UikitFieldComponent, ToggleSwitch],
templateUrl: './input.component.html',
})
export class InputComponent {
@Input() type: 'simple' | 'postalCode' | 'mobile' | 'phone' | 'email' = 'simple';
@Input() type: 'simple' | 'postalCode' | 'mobile' | 'phone' | 'email' | 'checkbox' | 'switch' =
'simple';
@Input() control!: FormControl<Maybe<any>>;
@Input() name!: string;
@Input() label: string = '';