feat: update ngsw-config.json for app version and build details; refactor invoice components for improved structure and functionality

This commit is contained in:
2026-05-16 18:00:53 +03:30
parent d996aacc29
commit fda318add5
11 changed files with 57 additions and 273 deletions
@@ -33,7 +33,7 @@
<app-key-value label="مجموع قابل پرداخت" [value]="invoice.total_amount" type="price" />
@for (payment of invoice.payments; track $index) {
<app-key-value
[label]="`${payment.payment_method === 'SET_OF' ? 'تهاتر' : payment.payment_method === 'TERMINAL' ? 'پایانه' : 'نقدی'}`"
[label]="`${payment.payment_method === 'SET_OFF' ? 'تهاتر' : payment.payment_method === 'TERMINAL' ? 'پایانه' : 'نقدی'}`"
[value]="payment.amount"
type="price"
/>
@@ -1,8 +1,8 @@
import { formatJalali, formatWithCurrency, jalaliDiff } from '@/utils';
import { UikitCopyComponent } from '@/uikit';
import { formatJalali, formatWithCurrency, JALALI_DATE_FORMATS, jalaliDiff } from '@/utils';
import { CommonModule } from '@angular/common';
import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
import { Tag } from 'primeng/tag';
import { UikitCopyComponent } from '@/uikit';
import { IColumn } from './page-data-list.component';
@Component({
@@ -11,15 +11,24 @@ import { IColumn } from './page-data-list.component';
imports: [CommonModule, Tag, UikitCopyComponent],
template: `
@if (column.type === 'thumbnail') {
<div class="w-20 h-20 rounded-2xl overflow-hidden bg-surface-100 cursor-pointer" (click)="thumbnailClick.emit(item)">
<div
class="w-20 h-20 rounded-2xl overflow-hidden bg-surface-100 cursor-pointer"
(click)="thumbnailClick.emit(item)"
>
@if (readFieldValue(item, column.field)) {
<img [src]="readFieldValue(item, column.field)" class="w-full h-full object-cover" />
}
</div>
} @else if (column.variant === 'tag') {
<p-tag [value]="getCell(item, column)" [severity]="column.tagOptions?.severity || 'contrast'"></p-tag>
<p-tag
[value]="getCell(item, column)"
[severity]="column.tagOptions?.severity || 'contrast'"
></p-tag>
} @else if (getTemplate(column)) {
<ng-container [ngTemplateOutlet]="getTemplate(column)" [ngTemplateOutletContext]="{ $implicit: item }"></ng-container>
<ng-container
[ngTemplateOutlet]="getTemplate(column)"
[ngTemplateOutletContext]="{ $implicit: item }"
></ng-container>
} @else if (column.canCopy) {
<uikit-copy [text]="getCell(item, column)"></uikit-copy>
} @else {
@@ -39,7 +48,11 @@ export class PageDataValueComponent {
getPreviewClasses(item: Record<string, any>, column: IColumn): string {
if (!item || !column || column.customDataModel) return '';
const data = item[String(column.field)];
if (column.type === 'date' && column.dateOption?.expiredMode && jalaliDiff(new Date(), data) > 0) {
if (
column.type === 'date' &&
column.dateOption?.expiredMode &&
jalaliDiff(new Date(), data) > 0
) {
return 'text-error';
}
return '';
@@ -57,7 +70,9 @@ export class PageDataValueComponent {
if (column.type === 'nested') {
const path = column.nestedOption?.path;
if (!path) return '-';
data = path.split('.').reduce((obj: any, key: string) => (obj && obj[key] !== undefined ? obj[key] : null), item);
data = path
.split('.')
.reduce((obj: any, key: string) => (obj && obj[key] !== undefined ? obj[key] : null), item);
type = column.nestedOption?.type || 'simple';
}
@@ -66,6 +81,8 @@ export class PageDataValueComponent {
return data ? `${data.slice(0, 5)}...${data.slice(data.length - 5)}` : '-';
case 'date':
return data ? formatJalali(data) : '-';
case 'dateTime':
return data ? formatJalali(data, JALALI_DATE_FORMATS.NUMERIC_WITH_TIME) : '-';
case 'boolean':
return data ? 'بله' : 'خیر';
case 'price':