diff --git a/angular.json b/angular.json index 4f90536..1a1d548 100644 --- a/angular.json +++ b/angular.json @@ -76,7 +76,7 @@ }, { "replace": "src/app/branding/branding.config.ts", - "with": "src/tenants/tis/branding.config.ts" + "with": "src/tenants/default/branding.config.ts" } ], "outputHashing": "all", @@ -116,10 +116,6 @@ } ], "fileReplacements": [ - { - "replace": "src/assets/images/logo.png", - "with": "src/tenants/tis/assets/images/logo.png" - }, { "replace": "src/environments/environment.ts", "with": "src/environments/environment.tis.ts" @@ -131,10 +127,6 @@ { "replace": "src/app/branding/branding.config.ts", "with": "src/tenants/tis/branding.config.ts" - }, - { - "replace": "src/app/domains/partner", - "with": "" } ], "outputHashing": "all", diff --git a/package.json b/package.json index d2084df..c9501fa 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,7 @@ "build:tis": "ng build --configuration tis", "ng": "ng", "prebuild": "node scripts/update-ngsw-appdata.js", - "prebuild:tis": "node scripts/update-ngsw-appdata.js", + "prebuild:tis": "node scripts/tis/prepare-tis-logo.js && node scripts/tis/update-tis-ngsw-appdata.js", "prestart": "node aspnetcore-https", "start": "run-script-os", "start:tis": "ng serve --configuration tis", diff --git a/scripts/tis/prepare-tis-logo.js b/scripts/tis/prepare-tis-logo.js new file mode 100644 index 0000000..235e5a5 --- /dev/null +++ b/scripts/tis/prepare-tis-logo.js @@ -0,0 +1,22 @@ +const fs = require('fs'); +const path = require('path'); + +const root = path.resolve(__dirname, '../..'); +const tenantLogo = path.join(root, 'public-tis', 'branding', 'logo.png/'); +const defaultLogo = path.join(root, 'src', 'assets', 'images', 'logo.png'); +const targetLogo = path.join(root, 'src', 'tenants', 'tis', 'assets', 'images', 'logo.png'); + +const source = fs.existsSync(tenantLogo) ? tenantLogo : defaultLogo; + +if (!fs.existsSync(source)) { + console.warn( + `[prepare-tis-logo] No logo source found. Checked: ${tenantLogo} and ${defaultLogo}`, + ); + process.exit(0); +} + +fs.mkdirSync(path.dirname(targetLogo), { recursive: true }); +fs.copyFileSync(source, targetLogo); +console.log( + `[prepare-tis-logo] Using logo: ${path.relative(root, source)} -> ${path.relative(root, targetLogo)}`, +); diff --git a/scripts/tis/update-tis-ngsw-appdata.js b/scripts/tis/update-tis-ngsw-appdata.js new file mode 100644 index 0000000..9af3fab --- /dev/null +++ b/scripts/tis/update-tis-ngsw-appdata.js @@ -0,0 +1,21 @@ +const fs = require('fs'); +const path = require('path'); + +const root = process.cwd(); +const packageJsonPath = path.join(root, 'package.json'); +const ngswConfigPath = path.join(root, 'ngsw-config.json'); + +const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); +const ngswConfig = JSON.parse(fs.readFileSync(ngswConfigPath, 'utf8')); + +const now = new Date(); +const buildDate = process.env.TIS_BUILD_DATE || now.toISOString(); +const appVersion = process.env.TIS_APP_VERSION || packageJson.version || '0.0.0'; + +ngswConfig.appData = { + ...(ngswConfig.appData || {}), + appVersion, + buildDate, +}; + +fs.writeFileSync(ngswConfigPath, `${JSON.stringify(ngswConfig, null, 2)}\n`); diff --git a/scripts/update-ngsw-appdata.js b/scripts/update-ngsw-appdata.js index e87f000..a357ea3 100644 --- a/scripts/update-ngsw-appdata.js +++ b/scripts/update-ngsw-appdata.js @@ -1,7 +1,7 @@ const fs = require('fs'); const path = require('path'); -const root = path.resolve(__dirname, '..'); +const root = process.cwd(); const packageJsonPath = path.join(root, 'package.json'); const ngswConfigPath = path.join(root, 'ngsw-config.json'); diff --git a/src/app/components/index.ts b/src/app/components/index.ts deleted file mode 100644 index bdb2ea0..0000000 --- a/src/app/components/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './pos-display'; diff --git a/src/app/components/pos-display/README.md b/src/app/components/pos-display/README.md deleted file mode 100644 index 60f0207..0000000 --- a/src/app/components/pos-display/README.md +++ /dev/null @@ -1,133 +0,0 @@ -# POS Display Component - -A reusable component for displaying Point-of-Sale (POS) terminal information with configurable variants. - -## Overview - -The `PosDisplayComponent` displays POS entity information in a card-based layout with support for different visibility variants ('consumer', 'partner', 'full'). - -## Features - -- **Variant Support**: Choose from 'consumer', 'partner', or 'full' display modes -- **Conditional Field Visibility**: Fields are dynamically shown/hidden based on variant -- **Edit Mode**: Toggle between view and edit modes -- **Responsive Grid**: Displays up to 3 columns with gap-4 spacing -- **More Actions**: Optional button for additional actions - -## Usage - -### Basic Usage - -```typescript -import { PosDisplayComponent, IPosEntity } from '@/app/components'; - -@Component({ - selector: 'app-my-component', - template: ` - - `, - standalone: true, - imports: [PosDisplayComponent], -}) -export class MyComponent { - posData = signal({ - id: '123', - name: 'Terminal 1', - pos_type: 'PSP', - serial_number: 'SN123', - model: 'Model X', - status: 'active', - complex: { id: 'c1', name: 'Complex 1' }, - device: { id: 'd1', name: 'Device A' }, - provider: { id: 'p1', name: 'Provider A' }, - }); - - isEditing = signal(false); - - handleMoreAction(): void { - console.log('More action clicked'); - } - - editModeChange(editing: boolean): void { - this.isEditing.set(editing); - } -} -``` - -## Variants - -### Consumer Variant -Displays: name, pos_type, serial_number, device, model, provider (6 fields) - -### Partner Variant -Displays: name, pos_type, serial_number (3 fields) - -### Full Variant -Displays: name, pos_type, serial_number, device, model, provider (6 fields - same as consumer) - -## Inputs - -| Input | Type | Default | Description | -|-------|------|---------|-------------| -| `variant` | 'consumer' \| 'partner' \| 'full' | 'full' | Display variant mode | -| `pos` | Signal | undefined | POS entity data | -| `editMode` | Signal | false | Edit mode state | -| `cardTitle` | string | 'اطلاعات پایانه‌ فروش' | Card header title | -| `showMoreActions` | boolean | true | Show more actions button | - -## Outputs - -| Output | Payload | Description | -|--------|---------|-------------| -| `editModeChange` | boolean | Emitted when edit mode toggled | -| `onMoreAction` | void | Emitted when more actions button clicked | -| `onSubmit` | void | Emitted on form submission | - -## Model (IPosEntity) - -```typescript -interface IPosEntity { - id: string; - name: string; - serial_number: string; - model?: string; - status: string; - pos_type: string; - complex: ISummary; - device?: ISummary; - provider?: ISummary; -} -``` - -## Integration in Existing Component - -To replace the inline display in your POS single view: - -```typescript -// Before: Manual field rendering - - -// ... more fields - -// After: Use the component - -``` - -## Files - -- `pos-display.component.ts` - Component logic -- `pos-display.component.html` - Template -- `pos-display.component.scss` - Styles -- `models/posEntity.model.ts` - TypeScript interfaces and types -- `index.ts` - Barrel export diff --git a/src/app/components/pos-display/index.ts b/src/app/components/pos-display/index.ts deleted file mode 100644 index 926d83c..0000000 --- a/src/app/components/pos-display/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './models/posEntity.model'; -export * from './pos-display.component'; diff --git a/src/app/components/pos-display/models/posEntity.model.ts b/src/app/components/pos-display/models/posEntity.model.ts deleted file mode 100644 index 6f68bd3..0000000 --- a/src/app/components/pos-display/models/posEntity.model.ts +++ /dev/null @@ -1,27 +0,0 @@ -import ISummary from '@/core/models/summary'; - -export type PosVariant = 'consumer' | 'partner' | 'full'; - -export interface IPosEntity { - id: string; - name: string; - serial_number: string; - model?: string; - status: string; - pos_type: string; - complex: ISummary; - device?: ISummary; - provider?: ISummary; -} - -export interface IPosDisplayConfig { - variant: PosVariant; - editable?: boolean; - showMoreActions?: boolean; -} - -export const POS_VARIANT_FIELDS: Record> = { - consumer: ['name', 'pos_type', 'serial_number', 'device', 'model', 'provider'], - partner: ['name', 'pos_type', 'serial_number'], - full: ['name', 'pos_type', 'serial_number', 'device', 'model', 'provider'], -}; diff --git a/src/app/components/pos-display/pos-display.component.html b/src/app/components/pos-display/pos-display.component.html deleted file mode 100644 index 2515489..0000000 --- a/src/app/components/pos-display/pos-display.component.html +++ /dev/null @@ -1,17 +0,0 @@ - - - @if (showMoreActions) { - ورود به پایانه - } - - -
-
- @for (field of visibleFields(); track field) { - @if (isFieldVisible(field)) { - - } - } -
-
-
diff --git a/src/app/components/pos-display/pos-display.component.ts b/src/app/components/pos-display/pos-display.component.ts deleted file mode 100644 index 30c0c58..0000000 --- a/src/app/components/pos-display/pos-display.component.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { AppCardComponent, KeyValueComponent } from '@/shared/components'; -import { CommonModule } from '@angular/common'; -import { Component, effect, EventEmitter, Input, Output, signal } from '@angular/core'; -import { Button } from 'primeng/button'; -import { IPosEntity, POS_VARIANT_FIELDS, PosVariant } from './models/posEntity.model'; - -@Component({ - selector: 'app-pos-entity-display', - standalone: true, - imports: [CommonModule, AppCardComponent, Button, KeyValueComponent], - templateUrl: './pos-display.component.html', -}) -export class PosDisplayComponent { - @Input() variant: PosVariant = 'full'; - @Input() pos = signal(undefined); - @Input() editMode = signal(false); - @Input() cardTitle = 'اطلاعات پایانه‌ فروش'; - @Input() showMoreActions = true; - - @Output() editModeChange = new EventEmitter(); - @Output() onMoreAction = new EventEmitter(); - @Output() onSubmit = new EventEmitter(); - - visibleFields = signal>([]); - isEditing = signal(false); - - constructor() { - effect(() => { - this.visibleFields.set(POS_VARIANT_FIELDS[this.variant] || POS_VARIANT_FIELDS.full); - }); - - effect(() => { - this.isEditing.set(this.editMode()); - }); - } - - get fieldLabels(): Record { - return { - name: 'عنوان', - pos_type: 'نوع پایانه', - serial_number: 'شماره سریال', - device: 'نوع دستگاه', - model: 'مدل دستگاه', - provider: 'ارایه‌دهنده', - }; - } - - isFieldVisible(field: keyof IPosEntity): boolean { - return this.visibleFields().includes(field); - } - - getFieldValue(field: keyof IPosEntity): any { - const posData = this.pos(); - if (!posData) return null; - - if (field === 'device' && posData.device) { - return posData.device.name; - } - if (field === 'provider' && posData.provider) { - return posData.provider.name; - } - return posData[field]; - } - - toggleEditMode(): void { - const newMode = !this.isEditing(); - this.isEditing.set(newMode); - this.editModeChange.emit(newMode); - } - - handleMoreAction(): void { - this.onMoreAction.emit(); - } - - handleSubmit(): void { - this.onSubmit.emit(); - } -} diff --git a/src/app/core/services/native-bridge.service.ts b/src/app/core/services/native-bridge.service.ts index 95bfe5a..45b3fa6 100644 --- a/src/app/core/services/native-bridge.service.ts +++ b/src/app/core/services/native-bridge.service.ts @@ -28,6 +28,11 @@ export interface INativeBridgeResult { error?: string; } +export interface INativeBridgeDeviceInfo { + deviceName: string; + androidId: string; +} + @Injectable({ providedIn: 'root' }) export class NativeBridgeService { private readonly toastService = inject(ToastService); @@ -108,6 +113,19 @@ export class NativeBridgeService { return this.invokePrint(request); } + async getDeviceInfo(): Promise> { + if (!this.isEnabled()) { + return { success: false, error: 'متاسفانه ارتباط با دستگاه برقرار نیست.' }; + } + try { + // @ts-ignore + const deviceInfo = await window.NativeBridge.deviceInfo(); + return { success: true, data: JSON.parse(deviceInfo) }; + } catch (error) { + return { success: false, error: (error as Error).message }; + } + } + private invokePrint(payload: INativePrintRequest): INativeBridgeResult { if (!this.isEnabled() || !this.canPrint()) { this.toastService.warn({ text: 'متاسفانه ارتباط با چاپگر برقرار نیست.' }); diff --git a/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.html b/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.html index 125952e..f93acdf 100644 --- a/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.html +++ b/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.html @@ -91,7 +91,6 @@ [showRefresh]="false" > - aaa @if (!item.discount_amount) { } @else { diff --git a/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.ts b/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.ts index f26f73e..c0fffc4 100644 --- a/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.ts +++ b/src/app/domains/consumer/components/invoices/shared-saleInvoice.component.ts @@ -1,5 +1,6 @@ import { Maybe } from '@/core'; import { NativeBridgeService } from '@/core/services'; +import { PosInfoStore } from '@/domains/pos/store'; import { CatalogTaxProviderStatusTagComponent } from '@/shared/catalog'; import { AppCardComponent, KeyValueComponent } from '@/shared/components'; import { PageLoadingComponent } from '@/shared/components/page-loading.component'; @@ -9,9 +10,10 @@ import { } from '@/shared/components/pageDataList/page-data-list.component'; import { PriceMaskDirective } from '@/shared/directives'; import { UikitEmptyStateComponent } from '@/uikit'; -import { getGoodUnitTypeProperties } from '@/utils'; +import { formatJalali, getGoodUnitTypeProperties } from '@/utils'; import { Component, + computed, EventEmitter, inject, Input, @@ -54,22 +56,30 @@ export class ConsumerSaleInvoiceSharedComponent { @Output() onRefresh = new EventEmitter(); @ViewChild('totalAmount', { static: false }) totalAmount!: TemplateRef; + private readonly posInfoStore = inject(PosInfoStore); + + readonly posName = computed(() => { + if (this.posInfoStore.entity()) { + const { name, businessActivity, complex } = this.posInfoStore.entity()!; + return `${name} (${businessActivity.name} - ${complex.name})`; + } + return ''; + }); printInvoice = () => { - if (this.nativeBridge.isEnabled() && this.invoice) { - const result = this.nativeBridge.print({ - title: 'salam', + if (this.invoice) { + const printResult = this.nativeBridge.print({ + title: `فروشگاه ${this.posName()}`, items: [ { - label: 'مجموع قیمت', - value: this.invoice?.total_amount, + label: 'شماره فاکتور', + value: this.invoice?.code, }, + { label: 'تاریخ', value: formatJalali(this.invoice.invoice_date, 'YYYY/MM/DD') }, + { label: 'مبلغ کل', value: this.invoice.total_amount }, ], }); - if (result.success) return; } - - window.print(); }; columns: IColumn[] = [ diff --git a/src/app/domains/pos/layouts/layout.component.html b/src/app/domains/pos/layouts/layout.component.html index 343e259..9dc8be4 100644 --- a/src/app/domains/pos/layouts/layout.component.html +++ b/src/app/domains/pos/layouts/layout.component.html @@ -4,7 +4,7 @@ @if (posInfo()) { - + }
- +
@@ -32,7 +32,7 @@ > @if (pullDistance() >= 0) {
; @ViewChild('topbarCenter', { static: true }) topbarCenter!: TemplateRef; @@ -50,6 +51,7 @@ export class PosLayoutComponent implements AfterViewInit { private readonly posProfileStore = inject(PosProfileStore); private readonly posInfoStore = inject(PosInfoStore); + private readonly deviceInfoStore = inject(DeviceInfoStore); private readonly authService = inject(AuthService); private readonly layoutService = inject(LayoutService); @@ -66,6 +68,8 @@ export class PosLayoutComponent implements AfterViewInit { readonly loading = computed(() => this.posProfileLoading()); readonly error = computed(() => this.posProfileError()); + readonly deviceInfo = computed(() => this.deviceInfoStore.entity()); + logout = () => { this.authService.logout(); }; @@ -91,10 +95,21 @@ export class PosLayoutComponent implements AfterViewInit { pullDistance = signal(0); readonly pullThreshold = 80; - getData() { - this.posProfileStore.getData().subscribe({ + homeRouteLink = '/pos'; + + async getData() { + await this.layoutService.changeFullPageLoading(true); + await this.deviceInfoStore.getData(); + await this.posProfileStore.getData().subscribe({ next: () => { - this.posInfoStore.getData().subscribe(); + this.posInfoStore + .getData() + .pipe( + finalize(() => { + this.layoutService.changeFullPageLoading(false); + }), + ) + .subscribe(); }, }); } diff --git a/src/app/domains/pos/layouts/mainMenuSidebar/main-menu-sidebar.component.ts b/src/app/domains/pos/layouts/mainMenuSidebar/main-menu-sidebar.component.ts index 661c929..117c1f4 100644 --- a/src/app/domains/pos/layouts/mainMenuSidebar/main-menu-sidebar.component.ts +++ b/src/app/domains/pos/layouts/mainMenuSidebar/main-menu-sidebar.component.ts @@ -37,8 +37,11 @@ export class PosMainMenuSidebarComponent extends AbstractDialog { .then((res) => res.json()) .then((data: { appData?: { appVersion?: string } }) => { this.appVersion = data?.appData?.appVersion || this.appVersion; + console.log('appVersion:', data?.appData); }) - .catch(() => {}); + .catch((err) => { + console.log('err', err); + }); this.swUpdate.versionUpdates .pipe(filter((event): event is VersionReadyEvent => event.type === 'VERSION_READY')) diff --git a/src/app/domains/pos/models/device.io.ts b/src/app/domains/pos/models/device.io.ts new file mode 100644 index 0000000..ee03ce5 --- /dev/null +++ b/src/app/domains/pos/models/device.io.ts @@ -0,0 +1,6 @@ +export interface IDeviceProfileRawResponse { + androidId: string; + deviceName: string; +} + +export interface IDeviceProfileResponse extends IDeviceProfileRawResponse {} diff --git a/src/app/domains/pos/models/index.ts b/src/app/domains/pos/models/index.ts index b9b91b0..ae07c10 100644 --- a/src/app/domains/pos/models/index.ts +++ b/src/app/domains/pos/models/index.ts @@ -1,3 +1,4 @@ +export * from './device.io'; export * from './good.io'; export * from './pos.io'; export * from './profile.io'; diff --git a/src/app/domains/pos/modules/landing/components/customers/customer-dialog.component.ts b/src/app/domains/pos/modules/landing/components/customers/customer-dialog.component.ts index 9b2eb2e..0e057ef 100644 --- a/src/app/domains/pos/modules/landing/components/customers/customer-dialog.component.ts +++ b/src/app/domains/pos/modules/landing/components/customers/customer-dialog.component.ts @@ -28,7 +28,7 @@ export class PosOrderCustomerDialogComponent extends AbstractDialog { customerTypes = [ { - label: 'بدون اطلاعات (نوع دوم)', + label: 'نوع دوم', value: 'UNKNOWN', }, { diff --git a/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.html b/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.html index aba9eda..4b392b2 100644 --- a/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.html +++ b/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.html @@ -12,7 +12,7 @@
- +
diff --git a/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.ts b/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.ts index bbd227a..284a921 100644 --- a/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.ts +++ b/src/app/domains/pos/modules/landing/components/order/order-submitted-dialog.component.ts @@ -1,10 +1,14 @@ import { NativeBridgeService } from '@/core/services'; import { ToastService } from '@/core/services/toast.service'; +import { PosInfoStore } from '@/domains/pos/store'; import { AbstractDialog } from '@/shared/abstractClasses/abstract-dialog'; import { SharedDialogComponent } from '@/shared/components'; -import { Component, inject, Input, signal } from '@angular/core'; +import { formatJalali } from '@/utils'; +import { Component, computed, inject, Input, signal } from '@angular/core'; +import { Router } from '@angular/router'; import { ButtonDirective } from 'primeng/button'; import { finalize } from 'rxjs'; +import { posSaleInvoicesNamedRoutes } from '../../../saleInvoices/constants'; import { PosSaleInvoicesService } from '../../../saleInvoices/services/main.service'; import { IPosOrderResponse } from '../../models'; @@ -18,12 +22,24 @@ export class PosOrderSubmittedDialogComponent extends AbstractDialog { private readonly nativeBridgeService = inject(NativeBridgeService); private readonly service = inject(PosSaleInvoicesService); private readonly toastService = inject(ToastService); + private readonly posInfoStore = inject(PosInfoStore); + private readonly router = inject(Router); + + readonly posName = computed(() => { + if (this.posInfoStore.entity()) { + const { name, businessActivity, complex } = this.posInfoStore.entity()!; + return `${name} (${businessActivity.name} - ${complex.name})`; + } + return ''; + }); sendingLoading = signal(false); sended = signal(false); openOrderDetails() { - this.close(); + this.router.navigateByUrl( + posSaleInvoicesNamedRoutes.saleInvoice.meta.pagePath!(this.invoice.id), + ); } sendInvoice() { @@ -39,15 +55,14 @@ export class PosOrderSubmittedDialogComponent extends AbstractDialog { printInvoice() { const printResult = this.nativeBridgeService.print({ - title: 'رسید پرداخت', + title: `فروشگاه ${this.posName()}`, items: [ - { label: 'مبلغ کل', value: String(this.invoice.code) }, - // { label: 'نقدی', value: String(this.invoice.payment.cash || 0) }, - // { label: 'تهاتر', value: String(this.invoice.payment.set_off || 0) }, - // { - // label: 'پایانه', - // value: String((this.invoice.payment.terminals || []).reduce((acc, item) => acc + item, 0)), - // }, + { + label: 'شماره فاکتور', + value: this.invoice.code, + }, + { label: 'تاریخ', value: formatJalali(this.invoice.invoice_date, 'YYYY/MM/DD') }, + { label: 'مبلغ کل', value: this.invoice.total_amount }, ], }); } diff --git a/src/app/domains/pos/modules/landing/components/payment/form-dialog.component.ts b/src/app/domains/pos/modules/landing/components/payment/form-dialog.component.ts index 07c5457..96d6d28 100644 --- a/src/app/domains/pos/modules/landing/components/payment/form-dialog.component.ts +++ b/src/app/domains/pos/modules/landing/components/payment/form-dialog.component.ts @@ -247,7 +247,7 @@ export class PosPaymentFormDialogComponent extends AbstractFormDialog terminal.value!, ); - this.selectedPayByTerminalStep.set(terminalPayments.length); + this.selectedPayByTerminalStep.set(terminalPayments.length || 1); if (terminalPayments.length) { if (this.nativeBridgeService.isEnabled()) { diff --git a/src/app/domains/pos/modules/landing/models/io.d.ts b/src/app/domains/pos/modules/landing/models/io.d.ts index 80342f0..028f8b8 100644 --- a/src/app/domains/pos/modules/landing/models/io.d.ts +++ b/src/app/domains/pos/modules/landing/models/io.d.ts @@ -1,5 +1,7 @@ +import { IPosInfoRawResponse } from '@/domains/pos/models'; import { CustomerType } from '@/shared/localEnum/constants/customerTypes'; -import { ICustomer } from './customer'; +import { IEnumTranslate } from '@/shared/models/enum_translate.type'; +import { ICustomer, IUnknownCustomer } from './customer'; import { IPayment } from './payment'; import { IPosOrderItem } from './types'; @@ -17,5 +19,17 @@ export interface IPosOrderRequest { export interface IPosOrderRawResponse { id: string; code: string; + invoice_number: number; + invoice_date: string; + created_at: string; + total_amount: string; + customer: ICustomer; + unknown_customer: IUnknownCustomer; + status: IEnumTranslate; } export interface IPosOrderResponse extends IPosOrderRawResponse {} + +export interface IPosInfoResponse extends IPosInfoRawResponse {} + +export interface IPosHeldOrderRawResponse extends IPosOrderResponse {} +export interface IPosHeldOrderResponse extends IPosHeldOrderRawResponse {} diff --git a/src/app/domains/pos/modules/landing/views/root.component.html b/src/app/domains/pos/modules/landing/views/root.component.html index 07cb691..230f872 100644 --- a/src/app/domains/pos/modules/landing/views/root.component.html +++ b/src/app/domains/pos/modules/landing/views/root.component.html @@ -6,9 +6,11 @@
- + @if (!isMobile()) { + + }
@@ -39,7 +41,9 @@ [closable]="true" header="فاکتور" > - + @if (showInvoiceBottomSheet()) { + + } @if (responseInvoice()) { diff --git a/src/app/domains/pos/modules/landing/views/root.component.ts b/src/app/domains/pos/modules/landing/views/root.component.ts index 0c35a54..e0b370b 100644 --- a/src/app/domains/pos/modules/landing/views/root.component.ts +++ b/src/app/domains/pos/modules/landing/views/root.component.ts @@ -1,6 +1,7 @@ // import { CatalogRoleTagComponent } from '@/shared/catalog/roles'; import { Maybe } from '@/core'; import { PosInfoStore } from '@/domains/pos/store/pos.store'; +import { AbstractIsMobileComponent } from '@/shared/abstractClasses/abstract-is-mobile'; import { SharedDialogComponent } from '@/shared/components'; import { PageLoadingComponent } from '@/shared/components/page-loading.component'; import { PriceMaskDirective } from '@/shared/directives'; @@ -27,7 +28,7 @@ import { PosLandingStore } from '../store/main.store'; PosOrderSubmittedDialogComponent, ], }) -export class PosLandingComponent { +export class PosLandingComponent extends AbstractIsMobileComponent { private readonly infoStore = inject(PosInfoStore); private readonly landingStore = inject(PosLandingStore); diff --git a/src/app/domains/pos/modules/saleInvoices/components/index.ts b/src/app/domains/pos/modules/saleInvoices/components/index.ts new file mode 100644 index 0000000..2910ff2 --- /dev/null +++ b/src/app/domains/pos/modules/saleInvoices/components/index.ts @@ -0,0 +1,3 @@ +export * from './filter-drawer.component'; +export * from './list.component'; +export * from './sale-invoice-card.component'; diff --git a/src/app/domains/pos/modules/saleInvoices/components/sale-invoice-card.component.ts b/src/app/domains/pos/modules/saleInvoices/components/sale-invoice-card.component.ts index 10d490d..4ab118e 100644 --- a/src/app/domains/pos/modules/saleInvoices/components/sale-invoice-card.component.ts +++ b/src/app/domains/pos/modules/saleInvoices/components/sale-invoice-card.component.ts @@ -68,7 +68,14 @@ export class SaleInvoiceCardComponent { this.service .sendToTsp(this.saleInvoice.id) .pipe(finalize(() => this.sendingLoading.set(false))) - .subscribe(() => { + .subscribe((res) => { + if (res.status === 'FAILURE') { + this.toastService.error({ + text: res.message || 'خطا در ارسال فاکتور رخ داده است.', + }); + } else { + this.toastService.success({ text: 'ارسال فاکتور با موفقیت انجام شد.' }); + } this.toastService.success({ text: 'ارسال فاکتور با موفقیت انجام شد.' }); this.refreshRequested.emit(); }); @@ -89,8 +96,12 @@ export class SaleInvoiceCardComponent { this.service .retrySendToTsp(this.saleInvoice.id) .pipe(finalize(() => this.resendingLoading.set(false))) - .subscribe(() => { - this.toastService.success({ text: 'ارسال مجدد فاکتور با موفقیت انجام شد.' }); + .subscribe((res) => { + if (res.status === 'FAILURE') { + this.toastService.error({ text: res.message || 'خطا در ارسال مجدد فاکتور رخ داده است.' }); + } else { + this.toastService.success({ text: 'ارسال مجدد فاکتور با موفقیت انجام شد.' }); + } this.refreshRequested.emit(); }); } diff --git a/src/app/domains/pos/modules/saleInvoices/constants/apiRoutes/index.ts b/src/app/domains/pos/modules/saleInvoices/constants/apiRoutes/index.ts index 3920200..3b0be7c 100644 --- a/src/app/domains/pos/modules/saleInvoices/constants/apiRoutes/index.ts +++ b/src/app/domains/pos/modules/saleInvoices/constants/apiRoutes/index.ts @@ -7,7 +7,7 @@ export const POS_SALE_INVOICES_API_ROUTES = { send: (invoiceId: string) => `${baseUrl()}/${invoiceId}/send`, getInquiry: (invoiceId: string) => `${baseUrl()}/${invoiceId}/inquiry`, revoke: (invoiceId: string) => `${baseUrl()}/${invoiceId}/revoke`, - retry: (invoiceId: string) => `${baseUrl()}/${invoiceId}/fiscal/retry`, + retry: (invoiceId: string) => `${baseUrl()}/${invoiceId}/retry`, status: (invoiceId: string) => `${baseUrl()}/${invoiceId}/fiscal/status`, attempts: (invoiceId: string) => `${baseUrl()}/${invoiceId}/fiscal/attempts`, }, diff --git a/src/app/domains/pos/store/device.store.ts b/src/app/domains/pos/store/device.store.ts new file mode 100644 index 0000000..a309d9d --- /dev/null +++ b/src/app/domains/pos/store/device.store.ts @@ -0,0 +1,45 @@ +import { NativeBridgeService } from '@/core/services'; +import { defaultBaseStateData, EntityState, EntityStore } from '@/core/state'; +import { HttpErrorResponse } from '@angular/common/http'; +import { inject, Injectable } from '@angular/core'; +import { IDeviceProfileResponse } from '../models'; + +interface DeviceInfoState extends EntityState {} + +@Injectable({ + providedIn: 'root', +}) +export class DeviceInfoStore extends EntityStore { + private readonly nativeBridgeService = inject(NativeBridgeService); + + constructor() { + super({ + ...defaultBaseStateData, + }); + } + + async getData() { + this.patchState({ loading: true }); + if (this.nativeBridgeService.isEnabled()) { + const deviceInfoRes = await this.nativeBridgeService.getDeviceInfo(); + if (deviceInfoRes.success && deviceInfoRes.data) { + const deviceInfo = deviceInfoRes.data; + this.setEntity({ + deviceName: deviceInfo.deviceName, + androidId: deviceInfo.androidId, + }); + } else { + this.setError( + new HttpErrorResponse({ error: deviceInfoRes.error || 'Failed to get device info' }), + ); + } + } + this.patchState({ loading: true }); + } + + override reset(): void { + this.setState({ + ...defaultBaseStateData, + }); + } +} diff --git a/src/app/layout/default/app.layout.component.html b/src/app/layout/default/app.layout.component.html index f938c1c..87bd206 100644 --- a/src/app/layout/default/app.layout.component.html +++ b/src/app/layout/default/app.layout.component.html @@ -1,36 +1,32 @@
- - @if (fullLoading) { -
- -
- } @else { - @if (showMenu()) { - - } -
-
- @if (showBreadcrumb) { - - } -
- -
- @if (content) { - - } @else { - - } -
+ @if (!fullPageLoading()) { + + } + @if (showMenu()) { + + } +
+
+ @if (showBreadcrumb) { + + } +
+ +
+ @if (content) { + + } @else { + + }
-
- } + +
diff --git a/src/app/layout/default/app.layout.component.ts b/src/app/layout/default/app.layout.component.ts index cf890e7..e51509b 100644 --- a/src/app/layout/default/app.layout.component.ts +++ b/src/app/layout/default/app.layout.component.ts @@ -2,15 +2,7 @@ import { Maybe } from '@/core'; import { AuthService, BreadcrumbService } from '@/core/services'; import { BreadcrumbComponent } from '@/shared/components'; import { CommonModule } from '@angular/common'; -import { - Component, - computed, - ContentChild, - inject, - Input, - Renderer2, - TemplateRef, -} from '@angular/core'; +import { Component, computed, ContentChild, inject, Renderer2, TemplateRef } from '@angular/core'; import { NavigationEnd, Router, RouterModule } from '@angular/router'; import { ProgressSpinner } from 'primeng/progressspinner'; import { filter, Subscription } from 'rxjs'; @@ -38,8 +30,6 @@ export class AppLayout { menuOutsideClickListener: any; - @Input() fullLoading: boolean = false; - @ContentChild('content', { static: true }) content?: TemplateRef | null; // @ContentChild('topBarMoreAction', { static: true }) topBarMoreAction?: TemplateRef | null; @@ -75,6 +65,8 @@ export class AppLayout { }); } + readonly fullPageLoading = computed(() => this.layoutService.layoutState().fullPageLoading); + isOutsideClicked(event: MouseEvent) { const sidebarEl = document.querySelector('.layout-sidebar'); const topbarEl = document.querySelector('.layout-menu-button'); diff --git a/src/app/layout/service/layout.service.ts b/src/app/layout/service/layout.service.ts index 1c0cc5d..d659ae5 100644 --- a/src/app/layout/service/layout.service.ts +++ b/src/app/layout/service/layout.service.ts @@ -15,6 +15,7 @@ interface IPanelInfo { } interface LayoutState { + fullPageLoading?: boolean; staticMenuDesktopInactive?: boolean; overlayMenuActive?: boolean; configSidebarVisible?: boolean; @@ -42,6 +43,7 @@ export class LayoutService { }; _state: LayoutState = { + fullPageLoading: false, staticMenuDesktopInactive: false, overlayMenuActive: false, configSidebarVisible: false, @@ -154,6 +156,13 @@ export class LayoutService { })); } + changeFullPageLoading(status: boolean) { + this.layoutState.update((prev) => ({ + ...prev, + fullPageLoading: status, + })); + } + toggleDarkMode(config?: layoutConfig): void { const _config = config || this.layoutConfig(); localStorage.setItem('isDarkTheme', JSON.stringify(_config.darkTheme)); diff --git a/src/app/modules/auth/pages/auth.component.html b/src/app/modules/auth/pages/auth.component.html index 17fd577..b8077bd 100644 --- a/src/app/modules/auth/pages/auth.component.html +++ b/src/app/modules/auth/pages/auth.component.html @@ -1,6 +1,6 @@
- background image + background image
`${baseUrl}/${posId}`, - stock: (posId: number) => `${baseUrl}/${posId}/stock`, - productCategories: (posId: number) => `${baseUrl}/${posId}/product-categories`, - submitOrder: (posId: number) => `${baseUrl}/${posId}/orders/create`, -}; diff --git a/src/app/modules/dashboard/constants/index.ts b/src/app/modules/dashboard/constants/index.ts deleted file mode 100644 index ee61bd7..0000000 --- a/src/app/modules/dashboard/constants/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './apiRoutes'; -export * from './routes'; diff --git a/src/app/modules/dashboard/constants/routes/index.ts b/src/app/modules/dashboard/constants/routes/index.ts deleted file mode 100644 index 8e1708a..0000000 --- a/src/app/modules/dashboard/constants/routes/index.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { NamedRoutes } from '@/core'; -import { Routes } from '@angular/router'; - -export const dashboardNamedRoutes: NamedRoutes = { - POS: { - path: '', - loadComponent: () => - import('../../views/dashboard.component').then((m) => m.DashboardComponent), - meta: { - title: 'داشبورد', - pagePath: () => ``, - }, - }, -}; - -export type TDashboardRouteNames = keyof typeof dashboardNamedRoutes; - -export const DASHBOARD_ROUTES: Routes = Object.values(dashboardNamedRoutes); diff --git a/src/app/modules/dashboard/views/dashboard.component.html b/src/app/modules/dashboard/views/dashboard.component.html deleted file mode 100644 index b2f6209..0000000 --- a/src/app/modules/dashboard/views/dashboard.component.html +++ /dev/null @@ -1,7 +0,0 @@ -
-
- -
-
diff --git a/src/app/modules/dashboard/views/dashboard.component.ts b/src/app/modules/dashboard/views/dashboard.component.ts deleted file mode 100644 index 6f00794..0000000 --- a/src/app/modules/dashboard/views/dashboard.component.ts +++ /dev/null @@ -1,33 +0,0 @@ -import { Component } from '@angular/core'; -import images from 'src/assets/images'; - -@Component({ - selector: 'app-dashboard', - templateUrl: './dashboard.component.html', - imports: [ - // StatisticsSharedTopAlertStocksComponent, - // StatisticsSharedTopSalesComponent, - // StatisticsSharedTopSupplierDebtsComponent, - ], -}) -export class DashboardComponent { - placeholderLogo = images.placeholders.logo; - - now = new Date(); - - // info = this.store.info; - // infoLoading = this.store.getInfoLoading; - - // getInfo() { - // this.infoLoading.set(true); - // this.service.getInfo(Number(this.posId)).subscribe({ - // next: (res) => { - // this.info.set(res); - // this.infoLoading.set(false); - // }, - // error: () => { - // this.infoLoading.set(false); - // }, - // }); - // } -} diff --git a/src/app/modules/pos/components/order/held-order-item.component.html b/src/app/modules/pos/components/order/held-order-item.component.html deleted file mode 100644 index d8ca28f..0000000 --- a/src/app/modules/pos/components/order/held-order-item.component.html +++ /dev/null @@ -1,28 +0,0 @@ -
-
- سفارش #{{ heldOrder.orderNumber }} - - {{ heldOrder.orderItems.length }} کالا - - - -
-
- - -
-
diff --git a/src/app/modules/pos/components/order/held-order-item.component.ts b/src/app/modules/pos/components/order/held-order-item.component.ts deleted file mode 100644 index 0e92c53..0000000 --- a/src/app/modules/pos/components/order/held-order-item.component.ts +++ /dev/null @@ -1,57 +0,0 @@ -import { ToastService } from '@/core/services/toast.service'; -import { ConfirmationDialogService } from '@/shared/components/confirmationDialog/confirmation-dialog.service'; -import { PriceMaskDirective } from '@/shared/directives'; -import { Component, EventEmitter, Input, Output, signal } from '@angular/core'; -import { ButtonDirective } from 'primeng/button'; -import { IPosHeldOrderResponse } from '../../models'; -import { PosService } from '../../services/main.service'; - -@Component({ - selector: 'app-held-order-item', - templateUrl: './held-order-item.component.html', - imports: [PriceMaskDirective, ButtonDirective], -}) -export class HeldOrderItemComponent { - @Input() heldOrder!: IPosHeldOrderResponse; - @Input() posId!: number; - - @Output() onCancel = new EventEmitter(); - @Output() onLoad = new EventEmitter(); - - constructor( - private readonly posService: PosService, - private readonly confirmationService: ConfirmationDialogService, - private readonly toastService: ToastService, - ) {} - - actionLoading = signal(false); - - cancelHeldOrder(heldOrderId: number) { - this.confirmationService.confirm({ - message: `آیا از لغو سفارش شماره‌ی #${this.heldOrder.orderNumber} اطمینان دارید؟`, - header: 'لغو سفارش موقت', - acceptLabel: 'بله', - rejectLabel: 'خیر', - accept: () => { - this.actionLoading.set(true); - this.posService.cancelOrder(this.posId, heldOrderId).subscribe({ - next: () => { - this.onCancel.emit(heldOrderId); - this.actionLoading.set(false); - this.toastService.success({ - text: `سفارش شماره‌ی #${this.heldOrder.orderNumber} با موفقیت لغو شد.`, - }); - }, - error: () => { - this.actionLoading.set(false); - }, - }); - }, - reject: () => {}, - }); - } - - loadHeldOrder(heldOrderId: number) { - this.onLoad.emit(heldOrderId); - } -} diff --git a/src/app/modules/pos/components/order/held-orders.component.html b/src/app/modules/pos/components/order/held-orders.component.html deleted file mode 100644 index f92faf7..0000000 --- a/src/app/modules/pos/components/order/held-orders.component.html +++ /dev/null @@ -1,19 +0,0 @@ -
-
-
- - سفارش‌های نگه‌داشته شده -
-
- @if (!heldOrders()?.length) { -
- هیچ سفارش نگه‌داشته شده‌ای وجود ندارد. -
- } @else { -
- @for (heldOrder of heldOrders(); track heldOrder.id) { - - } -
- } -
diff --git a/src/app/modules/pos/components/order/held-orders.component.ts b/src/app/modules/pos/components/order/held-orders.component.ts deleted file mode 100644 index 02d6014..0000000 --- a/src/app/modules/pos/components/order/held-orders.component.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Maybe } from '@/core'; -import { Component, Input, signal } from '@angular/core'; -import { IPosHeldOrderResponse } from '../../models'; -import { PosService } from '../../services/main.service'; -import { HeldOrderItemComponent } from './held-order-item.component'; - -@Component({ - selector: 'app-held-orders', - templateUrl: './held-orders.component.html', - imports: [HeldOrderItemComponent], -}) -export class HeldOrdersComponent { - @Input() posId!: number; - - constructor(private readonly posService: PosService) {} - - heldOrders = signal>(null); - loading = signal(false); - - ngOnInit() { - this.getHeldOrders(); - } - - getHeldOrders() { - this.loading.set(true); - this.posService.getHeldOrders(this.posId).subscribe({ - next: (res) => { - this.heldOrders.set(res.data); - this.loading.set(false); - }, - error: () => { - this.loading.set(false); - }, - }); - } - - removeHeldOrder(orderId: number) { - const currentOrders = this.heldOrders() || []; - this.heldOrders.set(currentOrders.filter((order) => order.id !== orderId)); - } -} diff --git a/src/app/modules/pos/components/order/order-card.component.html b/src/app/modules/pos/components/order/order-card.component.html deleted file mode 100644 index 77a510f..0000000 --- a/src/app/modules/pos/components/order/order-card.component.html +++ /dev/null @@ -1,110 +0,0 @@ -
-
- -
-
-
- -
-
-
-
-
- - سفارش‌ها -
- -
- @if (!inOrderProducts().length) { -
- - هیچ سفارشی ثبت نشده است. -
- } @else { -
- @for (inOrderProduct of inOrderProducts(); track inOrderProduct.productId) { -
-
- -
-
-
- {{ inOrderProduct.product.name }} - {{ inOrderProduct.product.sku }} -
- -
-
- - - - - - - - -
- -
-
-
-
-
- } -
- } -
-
- -
- - -
-
-
diff --git a/src/app/modules/pos/components/order/order-card.component.ts b/src/app/modules/pos/components/order/order-card.component.ts deleted file mode 100644 index 12346d0..0000000 --- a/src/app/modules/pos/components/order/order-card.component.ts +++ /dev/null @@ -1,76 +0,0 @@ -// import { CustomersSelectComponent } from '@/modules/customers/components/select/select.component'; -// import { ICustomerResponse } from '@/modules/customers/models'; -import { PriceMaskDirective } from '@/shared/directives'; -import { UikitCounterComponent } from '@/uikit'; -import { Component, computed, inject } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { ButtonDirective } from 'primeng/button'; -import { InplaceModule } from 'primeng/inplace'; -import { InputNumber } from 'primeng/inputnumber'; -import images from 'src/assets/images'; -import { POSStore } from '../../store'; -import { HeldOrdersComponent } from './held-orders.component'; -import { POSOrderPriceInfoCardComponent } from './price-info-card.component'; - -@Component({ - selector: 'pos-order-card', - templateUrl: './order-card.component.html', - imports: [ - // CustomersSelectComponent, - ButtonDirective, - PriceMaskDirective, - UikitCounterComponent, - POSOrderPriceInfoCardComponent, - FormsModule, - InplaceModule, - InputNumber, - HeldOrdersComponent, - ], -}) -export class PosOrderCardComponent { - private store = inject(POSStore); - - constructor() { - // this.selectedCustomer.set(this.store.selectedCustomer()); - } - - posId = this.store.posId; - - placeholderImage = images.placeholders.default; - - inOrderProducts = computed(() => this.store.inOrderProducts()); - - // selectedCustomer = signal>(null); - - removeProductFromOrder(productId: number) { - this.store.removeFromInOrderProducts(productId); - } - - updateInOrderProductQuantity(productId: number, quantity: number) { - this.store.updateInOrderProductQuantity(productId, quantity); - } - - updateInOrderProductFee(productId: number, $event: Event, prevFee: number) { - const unitPrice = $event.target - ? parseFloat(($event.target as HTMLInputElement).ariaValueNow || prevFee.toString()) - : prevFee; - - this.store.updateInOrderProductFee(productId, unitPrice); - } - - clearOrderList() { - this.store.resetInOrderProducts(); - } - - // updateCustomer(customer: Maybe) { - // this.store.setSelectedCustomer(customer); - // } - - submit() { - this.store.submitOrder(); - } - - submitAndPay() { - this.store.submitOrder(); - } -} diff --git a/src/app/modules/pos/components/order/price-info-card.component.html b/src/app/modules/pos/components/order/price-info-card.component.html deleted file mode 100644 index ffad995..0000000 --- a/src/app/modules/pos/components/order/price-info-card.component.html +++ /dev/null @@ -1,24 +0,0 @@ - -
-
- جمع قیمت - @if (priceInfo().totalAmount == priceInfo().totalBaseAmount) { - - } @else { -
- - -
- } -
-
- ارزش افزوده - -
-
-
- مجموع کل - -
-
-
diff --git a/src/app/modules/pos/components/order/price-info-card.component.ts b/src/app/modules/pos/components/order/price-info-card.component.ts deleted file mode 100644 index 65ab416..0000000 --- a/src/app/modules/pos/components/order/price-info-card.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { PriceMaskDirective } from '@/shared/directives'; -import { Component, computed } from '@angular/core'; -import { Card } from 'primeng/card'; -import { POSStore } from '../../store'; - -@Component({ - selector: 'pos-order-price-info-card', - templateUrl: './price-info-card.component.html', - imports: [Card, PriceMaskDirective], -}) -export class POSOrderPriceInfoCardComponent { - constructor(private store: POSStore) {} - - priceInfo = computed(() => this.store.orderPricingInfo()); -} diff --git a/src/app/modules/pos/components/products/categories.component.html b/src/app/modules/pos/components/products/categories.component.html deleted file mode 100644 index 91647a4..0000000 --- a/src/app/modules/pos/components/products/categories.component.html +++ /dev/null @@ -1,29 +0,0 @@ -
- @if (loading()) { - @for (i of [1, 2, 3, 4, 5]; track i) { - - } - } @else { - @for (category of categories(); track category.id) { -
- {{ category.name }} -
- - {{ category.productCount }} - -
-
- } - } -
diff --git a/src/app/modules/pos/components/products/categories.component.ts b/src/app/modules/pos/components/products/categories.component.ts deleted file mode 100644 index f8d28be..0000000 --- a/src/app/modules/pos/components/products/categories.component.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Component, EventEmitter, inject, Output } from '@angular/core'; -import { Skeleton } from 'primeng/skeleton'; -import { POSStore } from '../../store'; - -@Component({ - selector: 'pos-product-categories', - templateUrl: './categories.component.html', - imports: [Skeleton], -}) -export class PosProductCategoriesComponent { - @Output() categoryChange = new EventEmitter(); - - private readonly store = inject(POSStore); - - categories = this.store.productCategories; - loading = this.store.getProductCategoriesLoading; - - selectedCategory = this.store.activeProductCategory; - - changeSelectedCategory(category: { id: number; name: string }) { - this.store.changeActiveCategory(category.id); - } -} diff --git a/src/app/modules/pos/components/products/grid-view.component.html b/src/app/modules/pos/components/products/grid-view.component.html deleted file mode 100644 index b0af442..0000000 --- a/src/app/modules/pos/components/products/grid-view.component.html +++ /dev/null @@ -1,25 +0,0 @@ -
- @if (loading()) { - @for (_ of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15]; track $index) { -
- -
- } - } @else { - @for (product of products(); track product.id) { -
- -
- - {{ product.product.name }} - ({{ product.quantity }}) - -
- - -
-
-
- } - } -
diff --git a/src/app/modules/pos/components/products/grid-view.component.ts b/src/app/modules/pos/components/products/grid-view.component.ts deleted file mode 100644 index 6551c94..0000000 --- a/src/app/modules/pos/components/products/grid-view.component.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { PriceMaskDirective } from '@/shared/directives'; -import { Component, computed } from '@angular/core'; -import { ButtonDirective } from 'primeng/button'; -import { Skeleton } from 'primeng/skeleton'; -import images from 'src/assets/images'; -import { IPosProductSummary } from '../../models/types'; -import { POSStore } from '../../store'; - -@Component({ - selector: 'pos-products-grid-view', - templateUrl: './grid-view.component.html', - imports: [PriceMaskDirective, ButtonDirective, Skeleton], -}) -export class PosProductsGridViewComponent { - constructor(private store: POSStore) {} - - products = computed(() => this.store.activatedCategoryProducts()); - loading = computed(() => this.store.getStockLoading()); - - productPlaceholder = images.placeholders.default; - - addProduct(product: IPosProductSummary) { - this.store.addToInOrderProducts(product.id); - } -} diff --git a/src/app/modules/pos/components/products/list-view.component.html b/src/app/modules/pos/components/products/list-view.component.html deleted file mode 100644 index a842ccf..0000000 --- a/src/app/modules/pos/components/products/list-view.component.html +++ /dev/null @@ -1,30 +0,0 @@ -
- @if (loading()) { - @for (_ of [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15]; track $index) { -
- -
- } - } @else { - @for (product of products(); track product.id) { -
-
- -
- - {{ product.product.name }} - ({{ product.quantity }}) - - - {{ product.product.sku }} - -
-
-
- - -
-
- } - } -
diff --git a/src/app/modules/pos/components/products/list-view.component.ts b/src/app/modules/pos/components/products/list-view.component.ts deleted file mode 100644 index b28bbd4..0000000 --- a/src/app/modules/pos/components/products/list-view.component.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { PriceMaskDirective } from '@/shared/directives'; -import { Component, computed } from '@angular/core'; -import { ButtonDirective } from 'primeng/button'; -import { Skeleton } from 'primeng/skeleton'; -import images from 'src/assets/images'; -import { IPosProductSummary } from '../../models/types'; -import { POSStore } from '../../store'; - -@Component({ - selector: 'pos-products-list-view', - templateUrl: './list-view.component.html', - imports: [PriceMaskDirective, ButtonDirective, Skeleton], -}) -export class PosProductsListViewComponent { - constructor(private store: POSStore) {} - - products = computed(() => this.store.activatedCategoryProducts()); - loading = computed(() => this.store.getStockLoading()); - - productPlaceholder = images.placeholders.default; - - addProduct(product: IPosProductSummary) { - this.store.addToInOrderProducts(product.id); - } -} diff --git a/src/app/modules/pos/components/products/products.component.html b/src/app/modules/pos/components/products/products.component.html deleted file mode 100644 index 94a88ad..0000000 --- a/src/app/modules/pos/components/products/products.component.html +++ /dev/null @@ -1,26 +0,0 @@ -
-
-
- - لیست کالاها -
-
- - -
- - - - - -
-
-
- - - @if (viewType === "grid") { - - } @else { - - } -
diff --git a/src/app/modules/pos/components/products/products.component.ts b/src/app/modules/pos/components/products/products.component.ts deleted file mode 100644 index 5c7fdbe..0000000 --- a/src/app/modules/pos/components/products/products.component.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Maybe } from '@/core'; -import { SearchInputComponent } from '@/shared/components/search/search-input.component'; -import { Component, computed, inject, Input, signal } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { SelectButton } from 'primeng/selectbutton'; -import { POSStore, TViewType } from '../../store'; -import { PosProductCategoriesComponent } from './categories.component'; -import { PosProductsGridViewComponent } from './grid-view.component'; -import { PosProductsListViewComponent } from './list-view.component'; - -@Component({ - selector: 'pos-products', - templateUrl: './products.component.html', - imports: [ - PosProductCategoriesComponent, - PosProductsListViewComponent, - SelectButton, - FormsModule, - PosProductsGridViewComponent, - SearchInputComponent, - ], -}) -export class PosProductsComponent { - @Input() activeCategory = signal>(null); - - private readonly store = inject(POSStore); - - constructor() { - this.store.initial(); - } - - viewOptions = [ - { value: 'list', icon: 'pi pi-list' }, - { value: 'grid', icon: 'pi pi-th-large' }, - ]; - - readonly activatedCategoryProducts = computed(() => this.store.activatedCategoryProducts()); - readonly stock = computed(() => this.store.stock()); - - get viewType() { - return this.store.viewType(); - } - set viewType(val: TViewType) { - this.store.updateViewType(val); - } - - onSearch(searchTerm: string) { - this.store.updateSearchQuery(searchTerm); - this.store.getStock(); - } - - onCategoryChange(categoryId: number) { - this.store.changeActiveCategory(categoryId); - } -} diff --git a/src/app/modules/pos/constants/apiRoutes/index.ts b/src/app/modules/pos/constants/apiRoutes/index.ts deleted file mode 100644 index 32080c9..0000000 --- a/src/app/modules/pos/constants/apiRoutes/index.ts +++ /dev/null @@ -1,13 +0,0 @@ -const baseUrl = '/api/v1/pos'; - -export const POS_API_ROUTES = { - info: (posId: number) => `${baseUrl}/${posId}`, - stock: (posId: number) => `${baseUrl}/${posId}/stock`, - productCategories: (posId: number) => `${baseUrl}/${posId}/product-categories`, - submitOrder: (posId: number) => `${baseUrl}/${posId}/orders`, - heldOrders: (posId: number) => `${baseUrl}/${posId}/orders/held`, - order: (posId: number, orderId: number) => `${baseUrl}/${posId}/orders/${orderId}`, - cancelOrder: (posId: number, orderId: number) => `${baseUrl}/${posId}/orders/${orderId}/cancel`, - rejectOrder: (posId: number, orderId: number) => `${baseUrl}/${posId}/orders/${orderId}/reject`, - confirmOrder: (posId: number, orderId: number) => `${baseUrl}/${posId}/orders/${orderId}/confirm`, -}; diff --git a/src/app/modules/pos/constants/index.ts b/src/app/modules/pos/constants/index.ts deleted file mode 100644 index ee61bd7..0000000 --- a/src/app/modules/pos/constants/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './apiRoutes'; -export * from './routes'; diff --git a/src/app/modules/pos/constants/routes/index.ts b/src/app/modules/pos/constants/routes/index.ts deleted file mode 100644 index b2e75f1..0000000 --- a/src/app/modules/pos/constants/routes/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { NamedRoutes } from '@/core'; -import { Routes } from '@angular/router'; - -export type TPOSRouteNames = 'POS'; - -export const posNamedRoutes: NamedRoutes = { - POS: { - path: 'pos/:posId', - loadComponent: () => import('../../views/pos.component').then((m) => m.POSComponent), - meta: { - title: 'نقاط فروش', - pagePath: (params) => `/pos/${params.posId}`, - }, - }, -}; - -export const POS_ROUTES: Routes = Object.values(posNamedRoutes); diff --git a/src/app/modules/pos/models/io.ts b/src/app/modules/pos/models/io.ts index 52eafd8..c50fc23 100644 --- a/src/app/modules/pos/models/io.ts +++ b/src/app/modules/pos/models/io.ts @@ -1,5 +1,4 @@ import ISummary from '@/core/models/summary'; -import { IBankAccountSummary, IPosOrderItem, IPosProductSummary } from './types'; export interface IPosInfoRawResponse { id: number; @@ -12,7 +11,6 @@ export interface IPosInfoRawResponse { updatedAt: string; deletedAt: null; inventory: ISummary; - bankAccount: IBankAccountSummary; } export interface IPosInfoResponse extends IPosInfoRawResponse {} @@ -20,7 +18,6 @@ export interface IPosInfoResponse extends IPosInfoRawResponse {} export interface IPosStockRawResponse { id: number; quantity: number; - product: IPosProductSummary; } export interface IPosStockResponse extends IPosStockRawResponse {} @@ -34,7 +31,6 @@ export interface IPosProductCategoriesResponse extends IPosProductCategoriesRawR export interface IPosOrderRequest { customerId?: number; - items: IPosOrderItem[]; } export interface IPosOrderRawResponse { @@ -53,7 +49,6 @@ export interface IPosOrderRawResponse { lastName: string; }; orderItems: { - product: IPosProductSummary; count: number; unitPrice: number; totalPrice: number; diff --git a/src/app/modules/pos/models/types.ts b/src/app/modules/pos/models/types.ts deleted file mode 100644 index b6cda48..0000000 --- a/src/app/modules/pos/models/types.ts +++ /dev/null @@ -1,36 +0,0 @@ -import ISummary from '@/core/models/summary'; - -export interface IPosProductSummary { - id: number; - name: string; - sku: string; - salePrice: string; - categoryId: number; -} - -interface ICategorySummary { - id: number; - name: string; -} - -export interface IPosOrderItem { - productId: number; - count: number; - unitPrice: number; -} - -export interface IPosInOrderProduct extends IPosOrderItem { - product: IPosProductSummary; - maxQuantity: number; -} - -export interface IBankAccountSummary { - id: number; - name: string; - accountNumber: string; - branch: IBankAccountBranchSummary; -} - -interface IBankAccountBranchSummary extends ISummary { - bank: ISummary; -} diff --git a/src/app/modules/pos/services/main.service.ts b/src/app/modules/pos/services/main.service.ts deleted file mode 100644 index 72716fc..0000000 --- a/src/app/modules/pos/services/main.service.ts +++ /dev/null @@ -1,66 +0,0 @@ -import { IPaginatedResponse } from '@/core/models/service.model'; -import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; -import { Observable } from 'rxjs'; -import { POS_API_ROUTES } from '../constants'; -import { - IPosInfoRawResponse, - IPosInfoResponse, - IPosOrderRequest, - IPosProductCategoriesRawResponse, - IPosProductCategoriesResponse, - IPosStockRawResponse, - IPosStockResponse, -} from '../models'; - -@Injectable({ providedIn: 'root' }) -export class PosService { - constructor(private http: HttpClient) {} - - private apiRoutes = POS_API_ROUTES; - - getInfo(posId: number): Observable { - return this.http.get(this.apiRoutes.info(posId)); - } - - getStock( - posId: number, - searchQuery: string = '', - ): Observable> { - return this.http.get>(this.apiRoutes.stock(posId), { - params: { - q: searchQuery, - }, - }); - } - - getCategories(posId: number): Observable> { - return this.http.get>( - this.apiRoutes.productCategories(posId), - ); - } - - submitOrder(posId: number, payload: IPosOrderRequest): Observable { - return this.http.post(this.apiRoutes.submitOrder(posId), payload); - } - - getHeldOrders(posId: number): Observable> { - return this.http.get>(this.apiRoutes.heldOrders(posId)); - } - - getOrder(posId: number, orderId: number): Observable { - return this.http.get(this.apiRoutes.order(posId, orderId)); - } - - cancelOrder(posId: number, orderId: number): Observable { - return this.http.post(this.apiRoutes.cancelOrder(posId, orderId), {}); - } - - rejectOrder(posId: number, orderId: number): Observable { - return this.http.post(this.apiRoutes.rejectOrder(posId, orderId), {}); - } - - confirmOrder(posId: number, orderId: number): Observable { - return this.http.post(this.apiRoutes.confirmOrder(posId, orderId), {}); - } -} diff --git a/src/app/modules/pos/store/index.ts b/src/app/modules/pos/store/index.ts deleted file mode 100644 index 0588075..0000000 --- a/src/app/modules/pos/store/index.ts +++ /dev/null @@ -1,272 +0,0 @@ -import { Maybe } from '@/core'; -// import { ICustomerResponse } from '@/modules/customers/models'; -import { computed, Inject, Injectable, InjectionToken, signal } from '@angular/core'; -import { map, of } from 'rxjs'; -import { IPosInfoResponse, IPosProductCategoriesResponse, IPosStockResponse } from '../models'; -import { IPosInOrderProduct } from '../models/types'; -import { PosService } from '../services/main.service'; - -export const POS_ID = new InjectionToken('POS_ID'); - -export type TViewType = 'list' | 'grid'; - -interface IPosState { - getStockLoading: boolean; - stock: Maybe; - getInfoLoading: boolean; - info: Maybe; - getProductCategoriesLoading: boolean; - productCategories: Maybe; - activeProductCategory: Maybe; - inOrderProducts: IPosInOrderProduct[]; - selectedCustomer: Maybe; - viewType: TViewType; - searchQuery: string; -} - -export const INITIAL_POS_STATE: IPosState = { - getStockLoading: true, - stock: null, - getInfoLoading: true, - info: null, - getProductCategoriesLoading: true, - productCategories: null, - activeProductCategory: null, - inOrderProducts: [], - selectedCustomer: null, - viewType: 'grid', - searchQuery: '', -}; - -@Injectable({ providedIn: 'any' }) -export class POSStore { - constructor( - @Inject(POS_ID) posId: number, - private service: PosService, - ) { - this.posId = posId; - this.initial(); - } - - private state$ = signal({ ...INITIAL_POS_STATE }); - - readonly stock = computed(() => this.state$().stock); - readonly getStockLoading = computed(() => this.state$().getStockLoading); - readonly info = computed(() => this.state$().info); - readonly getInfoLoading = computed(() => this.state$().getInfoLoading); - readonly inOrderProducts = computed(() => this.state$().inOrderProducts); - readonly productCategories = computed(() => this.state$().productCategories); - readonly getProductCategoriesLoading = computed(() => this.state$().getProductCategoriesLoading); - readonly activeProductCategory = computed(() => this.state$().activeProductCategory); - readonly selectedCustomer = computed(() => this.state$().selectedCustomer); - readonly viewType = computed(() => this.state$().viewType); - readonly searchQuery = computed(() => this.state$().searchQuery); - readonly activatedCategoryProducts = computed(() => { - if (this.activeProductCategory() === 0) { - return this.state$().stock; - } - return this.state$().stock?.filter( - (s) => s.product.categoryId === this.state$().activeProductCategory, - ); - }); - - readonly orderPricingInfo = computed(() => { - const totalAmount = this.inOrderProducts().reduce( - (acc, curr) => acc + curr.unitPrice * curr.count, - 0, - ); - const taxAmount = totalAmount * 0.1; - return { - totalItems: this.inOrderProducts().reduce((acc, curr) => acc + curr.count, 0), - totalBaseAmount: this.inOrderProducts().reduce( - (acc, curr) => acc + parseFloat(curr.product.salePrice) * curr.count, - 0, - ), - totalAmount, - taxAmount, - payableAmount: totalAmount + taxAmount, - }; - }); - - posId!: number; - - setState(partial: Partial) { - this.state$.set({ ...this.state$(), ...partial }); - } - - reset() { - this.state$.set({ ...INITIAL_POS_STATE }); - } - - initial() { - this.getInfo(); - this.getStock(); - this.getProductCategories(); - } - - fillInitial(data: Partial) { - this.state$.set({ ...INITIAL_POS_STATE, ...data }); - } - - getInfo() { - this.setState({ getInfoLoading: true }); - this.service.getInfo(this.posId).subscribe({ - next: (res) => { - this.setState({ info: res, getInfoLoading: false }); - }, - error: () => { - this.setState({ getInfoLoading: false }); - }, - }); - } - - getStock() { - this.setState({ getStockLoading: true }); - this.service.getStock(this.posId, this.state$().searchQuery).subscribe({ - next: (res) => { - this.setState({ stock: res.data, getStockLoading: false }); - }, - error: () => { - this.setState({ getStockLoading: false }); - }, - }); - } - - getProductCategories() { - this.setState({ getProductCategoriesLoading: true }); - this.service - .getCategories(this.posId) - .pipe( - map((res) => { - return { - data: [ - { - id: 0, - name: 'همه', - totalQuantity: res.data.reduce((acc, curr) => acc + curr.totalQuantity, 0), - productCount: res.data.reduce((acc, curr) => acc + curr.productCount, 0), - }, - ...res.data, - ], - meta: res.meta, - }; - }), - ) - .subscribe({ - next: (res) => { - this.setState({ - productCategories: res.data, - getProductCategoriesLoading: false, - activeProductCategory: res.data[0]?.id, - }); - }, - error: () => { - this.setState({ getProductCategoriesLoading: false }); - }, - }); - } - - changeActiveCategory(categoryId: number) { - this.setState({ activeProductCategory: categoryId }); - } - - addToInOrderProducts(productId: number) { - const productStock = this.state$().stock?.find((s) => s.product.id === productId); - if (!productStock) return; - const { product } = productStock; - - if (this.state$().inOrderProducts.some((p) => p.productId === productId)) { - this.updateInOrderProductQuantity( - productId, - this.state$().inOrderProducts.find((p) => p.productId === productId)!.count + 1, - ); - } else { - this.setState({ - inOrderProducts: [ - ...this.state$().inOrderProducts, - { - product, - productId: product.id, - count: 1, - unitPrice: parseFloat(product.salePrice), - maxQuantity: productStock.quantity, - }, - ], - }); - } - } - - removeFromInOrderProducts(productId: number) { - this.setState({ - inOrderProducts: this.state$().inOrderProducts.filter((p) => p.productId !== productId), - }); - } - - updateInOrderProductQuantity(productId: number, quantity: number) { - const inOrderProducts = this.state$().inOrderProducts; - - if (quantity < 1) { - this.removeFromInOrderProducts(productId); - } else if (inOrderProducts.findIndex((p) => p.productId === productId) === -1) { - this.addToInOrderProducts(productId); - } else { - const updatedProducts = inOrderProducts.map((p) => { - if (p.productId === productId) { - return { ...p, count: Math.min(quantity, p.maxQuantity) }; - } - return p; - }); - this.setState({ inOrderProducts: updatedProducts }); - } - } - - updateInOrderProductFee(productId: number, unitPrice: number) { - const inOrderProducts = this.state$().inOrderProducts; - - if (inOrderProducts.some((p) => p.productId === productId)) { - const updatedProducts = inOrderProducts.map((p) => { - if (p.productId === productId) { - return { ...p, unitPrice: unitPrice }; - } - return p; - }); - this.setState({ inOrderProducts: updatedProducts }); - } - } - - updateViewType(viewType: TViewType) { - this.setState({ viewType }); - } - updateSearchQuery(searchQuery: string) { - this.setState({ searchQuery }); - } - - resetInOrderProducts() { - this.setState({ inOrderProducts: [] }); - } - - setSelectedCustomer(customer: Maybe) { - this.setState({ selectedCustomer: customer }); - } - - submitOrder() { - const orderPayload = { - customer_id: this.selectedCustomer()?.id, - items: this.inOrderProducts()?.map((item) => ({ - productId: item.productId, - count: item.count, - unitPrice: item.unitPrice, - })), - }; - return this.service.submitOrder(this.posId, orderPayload).subscribe({ - next: (res) => { - this.resetInOrderProducts(); - this.setSelectedCustomer(null); - return of(res); - }, - error: (err) => { - return of(err); - }, - }); - } -} diff --git a/src/app/modules/pos/views/pos.component.html b/src/app/modules/pos/views/pos.component.html deleted file mode 100644 index d55d784..0000000 --- a/src/app/modules/pos/views/pos.component.html +++ /dev/null @@ -1,26 +0,0 @@ -
-
-
-
- Logo -
- {{ info()?.name }} - شعبه {{ info()?.inventory?.name }} -
-
-
- -
-
- فروشنده شماره‌ی ۱ -
-
-
-
-
- -
-
- -
-
-
diff --git a/src/app/modules/pos/views/pos.component.ts b/src/app/modules/pos/views/pos.component.ts deleted file mode 100644 index f30f660..0000000 --- a/src/app/modules/pos/views/pos.component.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JalaliDateDirective } from '@/shared/directives'; -import { Component, inject } from '@angular/core'; -import { ActivatedRoute } from '@angular/router'; -import images from 'src/assets/images'; -import { PosOrderCardComponent } from '../components/order/order-card.component'; -import { PosProductsComponent } from '../components/products/products.component'; -import { POSStore, POS_ID } from '../store'; - -@Component({ - selector: 'app-pos', - templateUrl: './pos.component.html', - imports: [JalaliDateDirective, PosProductsComponent, PosOrderCardComponent], - providers: [ - { - provide: POS_ID, - useFactory: (route: ActivatedRoute) => Number(route.snapshot.params['posId']), - deps: [ActivatedRoute], - }, - POSStore, - ], -}) -export class POSComponent { - private readonly store = inject(POSStore); - - placeholderLogo = images.placeholders.logo; - - now = new Date(); - - info = this.store.info; - infoLoading = this.store.getInfoLoading; - - // getInfo() { - // this.infoLoading.set(true); - // this.service.getInfo(Number(this.posId)).subscribe({ - // next: (res) => { - // this.info.set(res); - // this.infoLoading.set(false); - // }, - // error: () => { - // this.infoLoading.set(false); - // }, - // }); - // } -} diff --git a/src/app/pages/auth/access.ts b/src/app/pages/auth/access.ts deleted file mode 100644 index aba196c..0000000 --- a/src/app/pages/auth/access.ts +++ /dev/null @@ -1,49 +0,0 @@ -import { Component } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { ButtonModule } from 'primeng/button'; -import { RippleModule } from 'primeng/ripple'; - -@Component({ - selector: 'app-access', - standalone: true, - imports: [ButtonModule, RouterModule, RippleModule, ButtonModule], - template: `
-
-
-
-
-
- -
-

- Access Denied -

- You do not have the necessary permisions. Please contact admins. - Access denied -
- -
-
-
-
-
-
`, -}) -export class Access {} diff --git a/src/app/pages/auth/auth.routes.ts b/src/app/pages/auth/auth.routes.ts deleted file mode 100644 index c1a6fc2..0000000 --- a/src/app/pages/auth/auth.routes.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { Routes } from '@angular/router'; -import { Access } from './access'; -import { Login } from './login'; -import { Error } from './error'; - -export default [ - { path: 'access', component: Access }, - { path: 'error', component: Error }, - { path: 'login', component: Login } -] as Routes; diff --git a/src/app/pages/auth/error.ts b/src/app/pages/auth/error.ts deleted file mode 100644 index a61019f..0000000 --- a/src/app/pages/auth/error.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Component } from '@angular/core'; -import { RouterModule } from '@angular/router'; -import { ButtonModule } from 'primeng/button'; -import { RippleModule } from 'primeng/ripple'; - -@Component({ - selector: 'app-error', - imports: [ButtonModule, RippleModule, RouterModule, ButtonModule], - standalone: true, - template: `
-
-
-
-
-
- -
-

- Error Occured -

- Requested resource is not available. - Error -
- -
-
-
-
-
-
`, -}) -export class Error {} diff --git a/src/app/pages/auth/login.ts b/src/app/pages/auth/login.ts deleted file mode 100644 index aa93066..0000000 --- a/src/app/pages/auth/login.ts +++ /dev/null @@ -1,132 +0,0 @@ -import { Component } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { RouterModule } from '@angular/router'; -import { ButtonModule } from 'primeng/button'; -import { CheckboxModule } from 'primeng/checkbox'; -import { InputTextModule } from 'primeng/inputtext'; -import { PasswordModule } from 'primeng/password'; -import { RippleModule } from 'primeng/ripple'; - -@Component({ - selector: 'app-login', - standalone: true, - imports: [ - ButtonModule, - CheckboxModule, - InputTextModule, - PasswordModule, - FormsModule, - RouterModule, - RippleModule, - ], - template: ` -
-
-
-
-
- - - - - - - - - -
- Welcome to PrimeLand! -
- Sign in to continue -
- -
- - - - - - -
-
- - -
- Forgot password? -
- -
-
-
-
-
- `, -}) -export class Login { - email: string = ''; - - password: string = ''; - - checked: boolean = false; -} diff --git a/src/app/pages/crud/crud.ts b/src/app/pages/crud/crud.ts deleted file mode 100644 index 4195328..0000000 --- a/src/app/pages/crud/crud.ts +++ /dev/null @@ -1,488 +0,0 @@ -import { SharedDialogComponent } from '@/shared/components/dialog/dialog.component'; -import { CommonModule } from '@angular/common'; -import { Component, OnInit, signal, ViewChild } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { ConfirmationService, MessageService } from 'primeng/api'; -import { ButtonModule } from 'primeng/button'; -import { ConfirmDialogModule } from 'primeng/confirmdialog'; -import { DialogModule } from 'primeng/dialog'; -import { IconFieldModule } from 'primeng/iconfield'; -import { InputIconModule } from 'primeng/inputicon'; -import { InputNumberModule } from 'primeng/inputnumber'; -import { InputTextModule } from 'primeng/inputtext'; -import { RadioButtonModule } from 'primeng/radiobutton'; -import { RatingModule } from 'primeng/rating'; -import { RippleModule } from 'primeng/ripple'; -import { SelectModule } from 'primeng/select'; -import { Table, TableModule } from 'primeng/table'; -import { TagModule } from 'primeng/tag'; -import { TextareaModule } from 'primeng/textarea'; -import { ToastModule } from 'primeng/toast'; -import { ToolbarModule } from 'primeng/toolbar'; -import { Product, ProductService } from '../service/product.service'; - -interface Column { - field: string; - header: string; - customExportHeader?: string; -} - -interface ExportColumn { - title: string; - dataKey: string; -} - -@Component({ - selector: 'app-crud', - standalone: true, - imports: [ - CommonModule, - TableModule, - FormsModule, - ButtonModule, - RippleModule, - ToastModule, - ToolbarModule, - RatingModule, - InputTextModule, - TextareaModule, - SelectModule, - RadioButtonModule, - InputNumberModule, - DialogModule, - TagModule, - InputIconModule, - IconFieldModule, - ConfirmDialogModule, - SharedDialogComponent, - ], - template: ` - - - - - - - - - - - - - -
-
Manage Products
- - - - -
-
- - - - - - Code - - Name - - - Image - - Price - - - - Category - - - - Reviews - - - - Status - - - - - - - - - - - {{ product.code }} - {{ product.name }} - - - - {{ product.price | currency: 'USD' }} - {{ product.category }} - - - - - - - - - - - - -
- - - -
- -
- - - Name is required. -
-
- - -
- -
- - -
- -
- Category -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
- -
-
- - -
-
- - -
-
-
-
- - - - - -
- - - `, - providers: [MessageService, ProductService, ConfirmationService], -}) -export class Crud implements OnInit { - productDialog: boolean = false; - - products = signal([]); - - product!: Product; - - selectedProducts!: Product[] | null; - - submitted: boolean = false; - - statuses!: any[]; - - @ViewChild('dt') dt!: Table; - - exportColumns!: ExportColumn[]; - - cols!: Column[]; - - constructor( - private productService: ProductService, - private messageService: MessageService, - private confirmationService: ConfirmationService, - ) {} - - exportCSV() { - this.dt.exportCSV(); - } - - ngOnInit() { - this.loadDemoData(); - } - - loadDemoData() { - this.productService.getProducts().then((data) => { - this.products.set(data); - }); - - this.statuses = [ - { label: 'INSTOCK', value: 'instock' }, - { label: 'LOWSTOCK', value: 'lowstock' }, - { label: 'OUTOFSTOCK', value: 'outofstock' }, - ]; - - this.cols = [ - { field: 'code', header: 'Code', customExportHeader: 'Product Code' }, - { field: 'name', header: 'Name' }, - { field: 'image', header: 'Image' }, - { field: 'price', header: 'Price' }, - { field: 'category', header: 'Category' }, - ]; - - this.exportColumns = this.cols.map((col) => ({ title: col.header, dataKey: col.field })); - } - - onGlobalFilter(table: Table, event: Event) { - table.filterGlobal((event.target as HTMLInputElement).value, 'contains'); - } - - openNew() { - this.product = {}; - this.submitted = false; - this.productDialog = true; - } - - editProduct(product: Product) { - this.product = { ...product }; - this.productDialog = true; - } - - deleteSelectedProducts() { - this.confirmationService.confirm({ - message: 'Are you sure you want to delete the selected products?', - header: 'Confirm', - icon: 'pi pi-exclamation-triangle', - accept: () => { - this.products.set(this.products().filter((val) => !this.selectedProducts?.includes(val))); - this.selectedProducts = null; - this.messageService.add({ - severity: 'success', - summary: 'Successful', - detail: 'Products Deleted', - life: 3000, - }); - }, - }); - } - - hideDialog() { - this.productDialog = false; - this.submitted = false; - } - - deleteProduct(product: Product) { - this.confirmationService.confirm({ - message: 'Are you sure you want to delete ' + product.name + '?', - header: 'Confirm', - icon: 'pi pi-exclamation-triangle', - accept: () => { - this.products.set(this.products().filter((val) => val.id !== product.id)); - this.product = {}; - this.messageService.add({ - severity: 'success', - summary: 'Successful', - detail: 'Product Deleted', - life: 3000, - }); - }, - }); - } - - findIndexById(id: string): number { - let index = -1; - for (let i = 0; i < this.products().length; i++) { - if (this.products()[i].id === id) { - index = i; - break; - } - } - - return index; - } - - createId(): string { - let id = ''; - var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - for (var i = 0; i < 5; i++) { - id += chars.charAt(Math.floor(Math.random() * chars.length)); - } - return id; - } - - getSeverity(status: string) { - switch (status) { - case 'INSTOCK': - return 'success'; - case 'LOWSTOCK': - return 'warn'; - case 'OUTOFSTOCK': - return 'danger'; - default: - return 'info'; - } - } - - saveProduct() { - this.submitted = true; - let _products = this.products(); - if (this.product.name?.trim()) { - if (this.product.id) { - _products[this.findIndexById(this.product.id)] = this.product; - this.products.set([..._products]); - this.messageService.add({ - severity: 'success', - summary: 'Successful', - detail: 'Product Updated', - life: 3000, - }); - } else { - this.product.id = this.createId(); - this.product.image = 'product-placeholder.svg'; - this.messageService.add({ - severity: 'success', - summary: 'Successful', - detail: 'Product Created', - life: 3000, - }); - this.products.set([..._products, this.product]); - } - - this.productDialog = false; - this.product = {}; - } - } -} diff --git a/src/app/pages/dashboard/components/bestsellingwidget.ts b/src/app/pages/dashboard/components/bestsellingwidget.ts deleted file mode 100644 index 319a083..0000000 --- a/src/app/pages/dashboard/components/bestsellingwidget.ts +++ /dev/null @@ -1,101 +0,0 @@ -import { Component } from '@angular/core'; -import { CommonModule } from '@angular/common'; -import { ButtonModule } from 'primeng/button'; -import { MenuModule } from 'primeng/menu'; - -@Component({ - standalone: true, - selector: 'app-best-selling-widget', - imports: [CommonModule, ButtonModule, MenuModule], - template: `
-
-
Best Selling Products
-
- - -
-
-
    -
  • -
    - Space T-Shirt -
    Clothing
    -
    -
    -
    -
    -
    - %50 -
    -
  • -
  • -
    - Portal Sticker -
    Accessories
    -
    -
    -
    -
    -
    - %16 -
    -
  • -
  • -
    - Supernova Sticker -
    Accessories
    -
    -
    -
    -
    -
    - %67 -
    -
  • -
  • -
    - Wonders Notebook -
    Office
    -
    -
    -
    -
    -
    - %35 -
    -
  • -
  • -
    - Mat Black Case -
    Accessories
    -
    -
    -
    -
    -
    - %75 -
    -
  • -
  • -
    - Robots T-Shirt -
    Clothing
    -
    -
    -
    -
    -
    - %40 -
    -
  • -
-
` -}) -export class BestSellingWidget { - menu = null; - - items = [ - { label: 'Add New', icon: 'pi pi-fw pi-plus' }, - { label: 'Remove', icon: 'pi pi-fw pi-trash' } - ]; -} diff --git a/src/app/pages/dashboard/components/notificationswidget.ts b/src/app/pages/dashboard/components/notificationswidget.ts deleted file mode 100644 index 4ec00aa..0000000 --- a/src/app/pages/dashboard/components/notificationswidget.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Component } from '@angular/core'; -import { ButtonModule } from 'primeng/button'; -import { MenuModule } from 'primeng/menu'; - -@Component({ - standalone: true, - selector: 'app-notifications-widget', - imports: [ButtonModule, MenuModule], - template: `
-
-
Notifications
-
- - -
-
- - TODAY -
    -
  • -
    - -
    - Richard Jones - has purchased a blue t-shirt for $79.00 - -
  • -
  • -
    - -
    - Your request for withdrawal of $2500.00 has been initiated. -
  • -
- - YESTERDAY -
    -
  • -
    - -
    - Keyser Wick - has purchased a black jacket for $59.00 - -
  • -
  • -
    - -
    - Jane Davis - has posted a new questions about your product. - -
  • -
- LAST WEEK -
    -
  • -
    - -
    - Your revenue has increased by %25. -
  • -
  • -
    - -
    - 12 users have added your products to their wishlist. -
  • -
-
` -}) -export class NotificationsWidget { - items = [ - { label: 'Add New', icon: 'pi pi-fw pi-plus' }, - { label: 'Remove', icon: 'pi pi-fw pi-trash' } - ]; -} diff --git a/src/app/pages/dashboard/components/recentsaleswidget.ts b/src/app/pages/dashboard/components/recentsaleswidget.ts deleted file mode 100644 index 8327784..0000000 --- a/src/app/pages/dashboard/components/recentsaleswidget.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Component } from '@angular/core'; -import { RippleModule } from 'primeng/ripple'; -import { TableModule } from 'primeng/table'; -import { ButtonModule } from 'primeng/button'; -import { CommonModule } from '@angular/common'; -import { Product, ProductService } from '../../service/product.service'; - -@Component({ - standalone: true, - selector: 'app-recent-sales-widget', - imports: [CommonModule, TableModule, ButtonModule, RippleModule], - template: `
-
Recent Sales
- - - - Image - Name - Price - View - - - - - - {{ product.name }} - - {{ product.name }} - {{ product.price | currency: 'USD' }} - - - - - - -
`, - providers: [ProductService] -}) -export class RecentSalesWidget { - products!: Product[]; - - constructor(private productService: ProductService) {} - - ngOnInit() { - this.productService.getProductsSmall().then((data) => (this.products = data)); - } -} diff --git a/src/app/pages/dashboard/components/revenuestreamwidget.ts b/src/app/pages/dashboard/components/revenuestreamwidget.ts deleted file mode 100644 index afff2df..0000000 --- a/src/app/pages/dashboard/components/revenuestreamwidget.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { Component } from '@angular/core'; -import { ChartModule } from 'primeng/chart'; -import { debounceTime, Subscription } from 'rxjs'; -import { LayoutService } from '../../../layout/service/layout.service'; - -@Component({ - standalone: true, - selector: 'app-revenue-stream-widget', - imports: [ChartModule], - template: `
-
Revenue Stream
- -
` -}) -export class RevenueStreamWidget { - chartData: any; - - chartOptions: any; - - subscription!: Subscription; - - constructor(public layoutService: LayoutService) { - this.subscription = this.layoutService.configUpdate$.pipe(debounceTime(25)).subscribe(() => { - this.initChart(); - }); - } - - ngOnInit() { - this.initChart(); - } - - initChart() { - const documentStyle = getComputedStyle(document.documentElement); - const textColor = documentStyle.getPropertyValue('--text-color'); - const borderColor = documentStyle.getPropertyValue('--surface-border'); - const textMutedColor = documentStyle.getPropertyValue('--text-color-secondary'); - - this.chartData = { - labels: ['Q1', 'Q2', 'Q3', 'Q4'], - datasets: [ - { - type: 'bar', - label: 'Subscriptions', - backgroundColor: documentStyle.getPropertyValue('--p-primary-400'), - data: [4000, 10000, 15000, 4000], - barThickness: 32 - }, - { - type: 'bar', - label: 'Advertising', - backgroundColor: documentStyle.getPropertyValue('--p-primary-300'), - data: [2100, 8400, 2400, 7500], - barThickness: 32 - }, - { - type: 'bar', - label: 'Affiliate', - backgroundColor: documentStyle.getPropertyValue('--p-primary-200'), - data: [4100, 5200, 3400, 7400], - borderRadius: { - topLeft: 8, - topRight: 8, - bottomLeft: 0, - bottomRight: 0 - }, - borderSkipped: false, - barThickness: 32 - } - ] - }; - - this.chartOptions = { - maintainAspectRatio: false, - aspectRatio: 0.8, - plugins: { - legend: { - labels: { - color: textColor - } - } - }, - scales: { - x: { - stacked: true, - ticks: { - color: textMutedColor - }, - grid: { - color: 'transparent', - borderColor: 'transparent' - } - }, - y: { - stacked: true, - ticks: { - color: textMutedColor - }, - grid: { - color: borderColor, - borderColor: 'transparent', - drawTicks: false - } - } - } - }; - } - - ngOnDestroy() { - if (this.subscription) { - this.subscription.unsubscribe(); - } - } -} diff --git a/src/app/pages/dashboard/components/statswidget.ts b/src/app/pages/dashboard/components/statswidget.ts deleted file mode 100644 index e9bf7db..0000000 --- a/src/app/pages/dashboard/components/statswidget.ts +++ /dev/null @@ -1,69 +0,0 @@ -import { Component } from '@angular/core'; -import { CommonModule } from '@angular/common'; - -@Component({ - standalone: true, - selector: 'app-stats-widget', - imports: [CommonModule], - template: `
-
-
-
- Orders -
152
-
-
- -
-
- 24 new - since last visit -
-
-
-
-
-
- Revenue -
$2.100
-
-
- -
-
- %52+ - since last week -
-
-
-
-
-
- Customers -
28441
-
-
- -
-
- 520 - newly registered -
-
-
-
-
-
- Comments -
152 Unread
-
-
- -
-
- 85 - responded -
-
` -}) -export class StatsWidget {} diff --git a/src/app/pages/dashboard/dashboard.ts b/src/app/pages/dashboard/dashboard.ts deleted file mode 100644 index 89db3ea..0000000 --- a/src/app/pages/dashboard/dashboard.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Component } from '@angular/core'; -import { NotificationsWidget } from './components/notificationswidget'; -import { StatsWidget } from './components/statswidget'; -import { RecentSalesWidget } from './components/recentsaleswidget'; -import { BestSellingWidget } from './components/bestsellingwidget'; -import { RevenueStreamWidget } from './components/revenuestreamwidget'; - -@Component({ - selector: 'app-dashboard', - imports: [StatsWidget, RecentSalesWidget, BestSellingWidget, RevenueStreamWidget, NotificationsWidget], - template: ` -
- -
- - -
-
- - -
-
- ` -}) -export class Dashboard {} diff --git a/src/app/pages/documentation/documentation.ts b/src/app/pages/documentation/documentation.ts deleted file mode 100644 index 06cbcca..0000000 --- a/src/app/pages/documentation/documentation.ts +++ /dev/null @@ -1,73 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-documentation', - standalone: true, - imports: [CommonModule], - template: ` -
-
Documentation
-
Get Started
-

Sakai is an application template for Angular and is distributed as a CLI project. Current versions is Angular v20 with PrimeNG v20. In case CLI is not installed already, use the command below to set it up.

-
-npm install -g @angular/cli
-

- Once CLI is ready in your system, extract the contents of the zip file distribution, cd to the directory, install the libraries from npm and then execute "ng serve" to run the application in your local environment. -

-
-git clone https://github.com/primefaces/sakai-ng
-npm install
-ng serve
- -

The application should run at http://localhost:4200/ to view the application in your local environment.

- -
Structure
-

Templates consists of a couple folders, demos and layout have been separated so that you can easily identify what is necessary for your application.

-
    -
  • src/app/layout: Main layout files, needs to be present.
  • -
  • src/app/pages: Demo content like Dashboard.
  • -
  • src/assets/demo: Assets used in demos
  • -
  • src/assets/layout: SCSS files of the main layout
  • -
- -
Menu
-

- Main menu is defined at src/app/layout/component/app.menu.ts file. Update the - model property to define your own menu items. -

- -
Layout Service
-

- src/app/layout/service/layout.service.ts is a service that manages layout state changes, including dark mode, PrimeNG theme, menu modes, and states. -

- -
Tailwind CSS
-

The demo pages are developed with Tailwind CSS however the core application shell uses custom CSS.

- -
Variables
-

- CSS variables used in the template are derived from the applied PrimeNG theme. Customize them through the CSS variables in src/assets/layout/variables. -

-
- `, - styles: ` - @media screen and (max-width: 991px) { - .video-container { - position: relative; - width: 100%; - height: 0; - padding-bottom: 56.25%; - - iframe { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - } - } - } - ` -}) -export class Documentation {} diff --git a/src/app/pages/empty/empty.ts b/src/app/pages/empty/empty.ts deleted file mode 100644 index f65e698..0000000 --- a/src/app/pages/empty/empty.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Component } from '@angular/core'; - -@Component({ - selector: 'app-empty', - standalone: true, - template: `
-
Empty Page
-

Use this page to start from scratch and place your custom content.

-
` -}) -export class Empty {} diff --git a/src/app/pages/pages.routes.ts b/src/app/pages/pages.routes.ts deleted file mode 100644 index 6561edc..0000000 --- a/src/app/pages/pages.routes.ts +++ /dev/null @@ -1,11 +0,0 @@ -import { Routes } from '@angular/router'; -import { Documentation } from './documentation/documentation'; -import { Crud } from './crud/crud'; -import { Empty } from './empty/empty'; - -export default [ - { path: 'documentation', component: Documentation }, - { path: 'crud', component: Crud }, - { path: 'empty', component: Empty }, - { path: '**', redirectTo: '/notfound' } -] as Routes; diff --git a/src/app/pages/service/country.service.ts b/src/app/pages/service/country.service.ts deleted file mode 100644 index ea7abe8..0000000 --- a/src/app/pages/service/country.service.ts +++ /dev/null @@ -1,255 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable() -export class CountryService { - getData() { - return [ - { name: 'Afghanistan', code: 'AF' }, - { name: 'Albania', code: 'AL' }, - { name: 'Algeria', code: 'DZ' }, - { name: 'American Samoa', code: 'AS' }, - { name: 'Andorra', code: 'AD' }, - { name: 'Angola', code: 'AO' }, - { name: 'Anguilla', code: 'AI' }, - { name: 'Antarctica', code: 'AQ' }, - { name: 'Antigua and Barbuda', code: 'AG' }, - { name: 'Argentina', code: 'AR' }, - { name: 'Armenia', code: 'AM' }, - { name: 'Aruba', code: 'AW' }, - { name: 'Australia', code: 'AU' }, - { name: 'Austria', code: 'AT' }, - { name: 'Azerbaijan', code: 'AZ' }, - { name: 'Bahamas', code: 'BS' }, - { name: 'Bahrain', code: 'BH' }, - { name: 'Bangladesh', code: 'BD' }, - { name: 'Barbados', code: 'BB' }, - { name: 'Belarus', code: 'BY' }, - { name: 'Belgium', code: 'BE' }, - { name: 'Belize', code: 'BZ' }, - { name: 'Benin', code: 'BJ' }, - { name: 'Bermuda', code: 'BM' }, - { name: 'Bhutan', code: 'BT' }, - { name: 'Bolivia', code: 'BO' }, - { name: 'Bosnia and Herzegovina', code: 'BA' }, - { name: 'Botswana', code: 'BW' }, - { name: 'Bouvet Island', code: 'BV' }, - { name: 'Brazil', code: 'BR' }, - { name: 'British Indian Ocean Territory', code: 'IO' }, - { name: 'Brunei Darussalam', code: 'BN' }, - { name: 'Bulgaria', code: 'BG' }, - { name: 'Burkina Faso', code: 'BF' }, - { name: 'Burundi', code: 'BI' }, - { name: 'Cambodia', code: 'KH' }, - { name: 'Cameroon', code: 'CM' }, - { name: 'Canada', code: 'CA' }, - { name: 'Cape Verde', code: 'CV' }, - { name: 'Cayman Islands', code: 'KY' }, - { name: 'Central African Republic', code: 'CF' }, - { name: 'Chad', code: 'TD' }, - { name: 'Chile', code: 'CL' }, - { name: 'China', code: 'CN' }, - { name: 'Christmas Island', code: 'CX' }, - { name: 'Cocos (Keeling) Islands', code: 'CC' }, - { name: 'Colombia', code: 'CO' }, - { name: 'Comoros', code: 'KM' }, - { name: 'Congo', code: 'CG' }, - { name: 'Congo, The Democratic Republic of the', code: 'CD' }, - { name: 'Cook Islands', code: 'CK' }, - { name: 'Costa Rica', code: 'CR' }, - { name: 'Cote D"Ivoire', code: 'CI' }, - { name: 'Croatia', code: 'HR' }, - { name: 'Cuba', code: 'CU' }, - { name: 'Cyprus', code: 'CY' }, - { name: 'Czech Republic', code: 'CZ' }, - { name: 'Denmark', code: 'DK' }, - { name: 'Djibouti', code: 'DJ' }, - { name: 'Dominica', code: 'DM' }, - { name: 'Dominican Republic', code: 'DO' }, - { name: 'Ecuador', code: 'EC' }, - { name: 'Egypt', code: 'EG' }, - { name: 'El Salvador', code: 'SV' }, - { name: 'Equatorial Guinea', code: 'GQ' }, - { name: 'Eritrea', code: 'ER' }, - { name: 'Estonia', code: 'EE' }, - { name: 'Ethiopia', code: 'ET' }, - { name: 'Falkland Islands (Malvinas)', code: 'FK' }, - { name: 'Faroe Islands', code: 'FO' }, - { name: 'Fiji', code: 'FJ' }, - { name: 'Finland', code: 'FI' }, - { name: 'France', code: 'FR' }, - { name: 'French Guiana', code: 'GF' }, - { name: 'French Polynesia', code: 'PF' }, - { name: 'French Southern Territories', code: 'TF' }, - { name: 'Gabon', code: 'GA' }, - { name: 'Gambia', code: 'GM' }, - { name: 'Georgia', code: 'GE' }, - { name: 'Germany', code: 'DE' }, - { name: 'Ghana', code: 'GH' }, - { name: 'Gibraltar', code: 'GI' }, - { name: 'Greece', code: 'GR' }, - { name: 'Greenland', code: 'GL' }, - { name: 'Grenada', code: 'GD' }, - { name: 'Guadeloupe', code: 'GP' }, - { name: 'Guam', code: 'GU' }, - { name: 'Guatemala', code: 'GT' }, - { name: 'Guernsey', code: 'GG' }, - { name: 'Guinea', code: 'GN' }, - { name: 'Guinea-Bissau', code: 'GW' }, - { name: 'Guyana', code: 'GY' }, - { name: 'Haiti', code: 'HT' }, - { name: 'Heard Island and Mcdonald Islands', code: 'HM' }, - { name: 'Holy See (Vatican City State)', code: 'VA' }, - { name: 'Honduras', code: 'HN' }, - { name: 'Hong Kong', code: 'HK' }, - { name: 'Hungary', code: 'HU' }, - { name: 'Iceland', code: 'IS' }, - { name: 'India', code: 'IN' }, - { name: 'Indonesia', code: 'ID' }, - { name: 'Iran, Islamic Republic Of', code: 'IR' }, - { name: 'Iraq', code: 'IQ' }, - { name: 'Ireland', code: 'IE' }, - { name: 'Isle of Man', code: 'IM' }, - { name: 'Israel', code: 'IL' }, - { name: 'Italy', code: 'IT' }, - { name: 'Jamaica', code: 'JM' }, - { name: 'Japan', code: 'JP' }, - { name: 'Jersey', code: 'JE' }, - { name: 'Jordan', code: 'JO' }, - { name: 'Kazakhstan', code: 'KZ' }, - { name: 'Kenya', code: 'KE' }, - { name: 'Kiribati', code: 'KI' }, - { name: 'Korea, Democratic People"S Republic of', code: 'KP' }, - { name: 'Korea, Republic of', code: 'KR' }, - { name: 'Kuwait', code: 'KW' }, - { name: 'Kyrgyzstan', code: 'KG' }, - { name: 'Lao People"S Democratic Republic', code: 'LA' }, - { name: 'Latvia', code: 'LV' }, - { name: 'Lebanon', code: 'LB' }, - { name: 'Lesotho', code: 'LS' }, - { name: 'Liberia', code: 'LR' }, - { name: 'Libyan Arab Jamahiriya', code: 'LY' }, - { name: 'Liechtenstein', code: 'LI' }, - { name: 'Lithuania', code: 'LT' }, - { name: 'Luxembourg', code: 'LU' }, - { name: 'Macao', code: 'MO' }, - { name: 'Macedonia, The Former Yugoslav Republic of', code: 'MK' }, - { name: 'Madagascar', code: 'MG' }, - { name: 'Malawi', code: 'MW' }, - { name: 'Malaysia', code: 'MY' }, - { name: 'Maldives', code: 'MV' }, - { name: 'Mali', code: 'ML' }, - { name: 'Malta', code: 'MT' }, - { name: 'Marshall Islands', code: 'MH' }, - { name: 'Martinique', code: 'MQ' }, - { name: 'Mauritania', code: 'MR' }, - { name: 'Mauritius', code: 'MU' }, - { name: 'Mayotte', code: 'YT' }, - { name: 'Mexico', code: 'MX' }, - { name: 'Micronesia, Federated States of', code: 'FM' }, - { name: 'Moldova, Republic of', code: 'MD' }, - { name: 'Monaco', code: 'MC' }, - { name: 'Mongolia', code: 'MN' }, - { name: 'Montserrat', code: 'MS' }, - { name: 'Morocco', code: 'MA' }, - { name: 'Mozambique', code: 'MZ' }, - { name: 'Myanmar', code: 'MM' }, - { name: 'Namibia', code: 'NA' }, - { name: 'Nauru', code: 'NR' }, - { name: 'Nepal', code: 'NP' }, - { name: 'Netherlands', code: 'NL' }, - { name: 'Netherlands Antilles', code: 'AN' }, - { name: 'New Caledonia', code: 'NC' }, - { name: 'New Zealand', code: 'NZ' }, - { name: 'Nicaragua', code: 'NI' }, - { name: 'Niger', code: 'NE' }, - { name: 'Nigeria', code: 'NG' }, - { name: 'Niue', code: 'NU' }, - { name: 'Norfolk Island', code: 'NF' }, - { name: 'Northern Mariana Islands', code: 'MP' }, - { name: 'Norway', code: 'NO' }, - { name: 'Oman', code: 'OM' }, - { name: 'Pakistan', code: 'PK' }, - { name: 'Palau', code: 'PW' }, - { name: 'Palestinian Territory, Occupied', code: 'PS' }, - { name: 'Panama', code: 'PA' }, - { name: 'Papua New Guinea', code: 'PG' }, - { name: 'Paraguay', code: 'PY' }, - { name: 'Peru', code: 'PE' }, - { name: 'Philippines', code: 'PH' }, - { name: 'Pitcairn', code: 'PN' }, - { name: 'Poland', code: 'PL' }, - { name: 'Portugal', code: 'PT' }, - { name: 'Puerto Rico', code: 'PR' }, - { name: 'Qatar', code: 'QA' }, - { name: 'Reunion', code: 'RE' }, - { name: 'Romania', code: 'RO' }, - { name: 'Russian Federation', code: 'RU' }, - { name: 'RWANDA', code: 'RW' }, - { name: 'Saint Helena', code: 'SH' }, - { name: 'Saint Kitts and Nevis', code: 'KN' }, - { name: 'Saint Lucia', code: 'LC' }, - { name: 'Saint Pierre and Miquelon', code: 'PM' }, - { name: 'Saint Vincent and the Grenadines', code: 'VC' }, - { name: 'Samoa', code: 'WS' }, - { name: 'San Marino', code: 'SM' }, - { name: 'Sao Tome and Principe', code: 'ST' }, - { name: 'Saudi Arabia', code: 'SA' }, - { name: 'Senegal', code: 'SN' }, - { name: 'Serbia and Montenegro', code: 'CS' }, - { name: 'Seychelles', code: 'SC' }, - { name: 'Sierra Leone', code: 'SL' }, - { name: 'Singapore', code: 'SG' }, - { name: 'Slovakia', code: 'SK' }, - { name: 'Slovenia', code: 'SI' }, - { name: 'Solomon Islands', code: 'SB' }, - { name: 'Somalia', code: 'SO' }, - { name: 'South Africa', code: 'ZA' }, - { name: 'South Georgia and the South Sandwich Islands', code: 'GS' }, - { name: 'Spain', code: 'ES' }, - { name: 'Sri Lanka', code: 'LK' }, - { name: 'Sudan', code: 'SD' }, - { name: 'Suriname', code: 'SR' }, - { name: 'Svalbard and Jan Mayen', code: 'SJ' }, - { name: 'Swaziland', code: 'SZ' }, - { name: 'Sweden', code: 'SE' }, - { name: 'Switzerland', code: 'CH' }, - { name: 'Syrian Arab Republic', code: 'SY' }, - { name: 'Taiwan, Province of China', code: 'TW' }, - { name: 'Tajikistan', code: 'TJ' }, - { name: 'Tanzania, United Republic of', code: 'TZ' }, - { name: 'Thailand', code: 'TH' }, - { name: 'Timor-Leste', code: 'TL' }, - { name: 'Togo', code: 'TG' }, - { name: 'Tokelau', code: 'TK' }, - { name: 'Tonga', code: 'TO' }, - { name: 'Trinidad and Tobago', code: 'TT' }, - { name: 'Tunisia', code: 'TN' }, - { name: 'Turkey', code: 'TR' }, - { name: 'Turkmenistan', code: 'TM' }, - { name: 'Turks and Caicos Islands', code: 'TC' }, - { name: 'Tuvalu', code: 'TV' }, - { name: 'Uganda', code: 'UG' }, - { name: 'Ukraine', code: 'UA' }, - { name: 'United Arab Emirates', code: 'AE' }, - { name: 'United Kingdom', code: 'GB' }, - { name: 'United States', code: 'US' }, - { name: 'United States Minor Outlying Islands', code: 'UM' }, - { name: 'Uruguay', code: 'UY' }, - { name: 'Uzbekistan', code: 'UZ' }, - { name: 'Vanuatu', code: 'VU' }, - { name: 'Venezuela', code: 'VE' }, - { name: 'Viet Nam', code: 'VN' }, - { name: 'Virgin Islands, British', code: 'VG' }, - { name: 'Virgin Islands, U.S.', code: 'VI' }, - { name: 'Wallis and Futuna', code: 'WF' }, - { name: 'Western Sahara', code: 'EH' }, - { name: 'Yemen', code: 'YE' }, - { name: 'Zambia', code: 'ZM' }, - { name: 'Zimbabwe', code: 'ZW' } - ]; - } - - getCountries() { - return Promise.resolve(this.getData()); - } -} diff --git a/src/app/pages/service/customer.service.ts b/src/app/pages/service/customer.service.ts deleted file mode 100644 index 9566cff..0000000 --- a/src/app/pages/service/customer.service.ts +++ /dev/null @@ -1,9057 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; - -export interface Country { - name?: string; - code?: string; -} - -export interface Representative { - name?: string; - image?: string; -} - -export interface Customer { - id?: number; - name?: string; - country?: Country; - company?: string; - date?: string; - status?: string; - activity?: number; - representative?: Representative; -} - -@Injectable() -export class CustomerService { - getData() { - return [ - { - id: 1000, - name: 'James Butt', - country: { - name: 'Algeria', - code: 'dz' - }, - company: 'Benton, John B Jr', - date: '2015-09-13', - status: 'unqualified', - verified: true, - activity: 17, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 70663 - }, - { - id: 1001, - name: 'Josephine Darakjy', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Chanay, Jeffrey A Esq', - date: '2019-02-09', - status: 'negotiation', - verified: true, - activity: 0, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 82429 - }, - { - id: 1002, - name: 'Art Venere', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Chemel, James L Cpa', - date: '2017-05-13', - status: 'qualified', - verified: false, - activity: 63, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 28334 - }, - { - id: 1003, - name: 'Lenna Paprocki', - country: { - name: 'Slovenia', - code: 'si' - }, - company: 'Feltz Printing Service', - date: '2020-09-15', - status: 'new', - verified: false, - activity: 37, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 88521 - }, - { - id: 1004, - name: 'Donette Foller', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Printing Dimensions', - date: '2016-05-20', - status: 'negotiation', - verified: true, - activity: 33, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 93905 - }, - { - id: 1005, - name: 'Simona Morasca', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Chapman, Ross E Esq', - date: '2018-02-16', - status: 'qualified', - verified: false, - activity: 68, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 50041 - }, - { - id: 1006, - name: 'Mitsue Tollner', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Morlong Associates', - date: '2018-02-19', - status: 'renewal', - verified: true, - activity: 54, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 58706 - }, - { - id: 1007, - name: 'Leota Dilliard', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'Commercial Press', - date: '2019-08-13', - status: 'renewal', - verified: true, - activity: 69, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 26640 - }, - { - id: 1008, - name: 'Sage Wieser', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Truhlar And Truhlar Attys', - date: '2018-11-21', - status: 'unqualified', - verified: true, - activity: 76, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 65369 - }, - { - id: 1009, - name: 'Kris Marrier', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'King, Christopher A Esq', - date: '2015-07-07', - status: 'negotiation', - verified: false, - activity: 3, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 63451 - }, - { - id: 1010, - name: 'Minna Amigon', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Dorl, James J Esq', - date: '2018-11-07', - status: 'qualified', - verified: false, - activity: 38, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 71169 - }, - { - id: 1011, - name: 'Abel Maclead', - country: { - name: 'Singapore', - code: 'sg' - }, - company: 'Rangoni Of Florence', - date: '2017-03-11', - status: 'qualified', - verified: true, - activity: 87, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 96842 - }, - { - id: 1012, - name: 'Kiley Caldarera', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'Feiner Bros', - date: '2015-10-20', - status: 'unqualified', - verified: false, - activity: 80, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 92734 - }, - { - id: 1013, - name: 'Graciela Ruta', - country: { - name: 'Chile', - code: 'cl' - }, - company: 'Buckley Miller & Wright', - date: '2016-07-25', - status: 'negotiation', - verified: false, - activity: 59, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 45250 - }, - { - id: 1014, - name: 'Cammy Albares', - country: { - name: 'Philippines', - code: 'ph' - }, - company: 'Rousseaux, Michael Esq', - date: '2019-06-25', - status: 'new', - verified: true, - activity: 90, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 30236 - }, - { - id: 1015, - name: 'Mattie Poquette', - country: { - name: 'Venezuela', - code: 've' - }, - company: 'Century Communications', - date: '2017-12-12', - status: 'negotiation', - verified: false, - activity: 52, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 64533 - }, - { - id: 1016, - name: 'Meaghan Garufi', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Bolton, Wilbur Esq', - date: '2018-07-04', - status: 'unqualified', - verified: false, - activity: 31, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 37279 - }, - { - id: 1017, - name: 'Gladys Rim', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'T M Byxbee Company Pc', - date: '2020-02-27', - status: 'renewal', - verified: true, - activity: 48, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 27381 - }, - { - id: 1018, - name: 'Yuki Whobrey', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Farmers Insurance Group', - date: '2017-12-21', - status: 'negotiation', - verified: true, - activity: 16, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 9257 - }, - { - id: 1019, - name: 'Fletcher Flosi', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Post Box Services Plus', - date: '2016-01-04', - status: 'renewal', - verified: true, - activity: 19, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 67783 - }, - { - id: 1020, - name: 'Bette Nicka', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Sport En Art', - date: '2016-10-21', - status: 'renewal', - verified: false, - activity: 100, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 4609 - }, - { - id: 1021, - name: 'Veronika Inouye', - country: { - name: 'Ecuador', - code: 'ec' - }, - company: 'C 4 Network Inc', - date: '2017-03-24', - status: 'renewal', - verified: false, - activity: 72, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 26565 - }, - { - id: 1022, - name: 'Willard Kolmetz', - country: { - name: 'Tunisia', - code: 'tn' - }, - company: 'Ingalls, Donald R Esq', - date: '2017-04-15', - status: 'renewal', - verified: true, - activity: 94, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 75876 - }, - { - id: 1023, - name: 'Maryann Royster', - country: { - name: 'Belarus', - code: 'by' - }, - company: 'Franklin, Peter L Esq', - date: '2017-03-11', - status: 'qualified', - verified: false, - activity: 56, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 41121 - }, - { - id: 1024, - name: 'Alisha Slusarski', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Wtlz Power 107 Fm', - date: '2018-03-27', - status: 'qualified', - verified: true, - activity: 7, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 91691 - }, - { - id: 1025, - name: 'Allene Iturbide', - country: { - name: 'Italy', - code: 'it' - }, - company: 'Ledecky, David Esq', - date: '2016-02-20', - status: 'qualified', - verified: true, - activity: 1, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 40137 - }, - { - id: 1026, - name: 'Chanel Caudy', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Professional Image Inc', - date: '2018-06-24', - status: 'new', - verified: true, - activity: 26, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 21304 - }, - { - id: 1027, - name: 'Ezekiel Chui', - country: { - name: 'Ireland', - code: 'ie' - }, - company: 'Sider, Donald C Esq', - date: '2016-09-24', - status: 'new', - verified: false, - activity: 76, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 60454 - }, - { - id: 1028, - name: 'Willow Kusko', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'U Pull It', - date: '2020-04-11', - status: 'qualified', - verified: true, - activity: 7, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 17565 - }, - { - id: 1029, - name: 'Bernardo Figeroa', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Clark, Richard Cpa', - date: '2018-04-11', - status: 'renewal', - verified: true, - activity: 81, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 17774 - }, - { - id: 1030, - name: 'Ammie Corrio', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Moskowitz, Barry S', - date: '2016-06-11', - status: 'negotiation', - verified: true, - activity: 56, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 49201 - }, - { - id: 1031, - name: 'Francine Vocelka', - country: { - name: 'Honduras', - code: 'hn' - }, - company: 'Cascade Realty Advisors Inc', - date: '2017-08-02', - status: 'qualified', - verified: true, - activity: 94, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 67126 - }, - { - id: 1032, - name: 'Ernie Stenseth', - country: { - name: 'Australia', - code: 'au' - }, - company: 'Knwz Newsradio', - date: '2018-06-06', - status: 'renewal', - verified: true, - activity: 68, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 76017 - }, - { - id: 1033, - name: 'Albina Glick', - country: { - name: 'Ukraine', - code: 'ua' - }, - company: 'Giampetro, Anthony D', - date: '2019-08-08', - status: 'negotiation', - verified: true, - activity: 85, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 91201 - }, - { - id: 1034, - name: 'Alishia Sergi', - country: { - name: 'Qatar', - code: 'qa' - }, - company: 'Milford Enterprises Inc', - date: '2018-05-19', - status: 'negotiation', - verified: false, - activity: 46, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 12237 - }, - { - id: 1035, - name: 'Solange Shinko', - country: { - name: 'Cameroon', - code: 'cm' - }, - company: 'Mosocco, Ronald A', - date: '2015-02-12', - status: 'qualified', - verified: true, - activity: 32, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 34072 - }, - { - id: 1036, - name: 'Jose Stockham', - country: { - name: 'Italy', - code: 'it' - }, - company: 'Tri State Refueler Co', - date: '2018-04-25', - status: 'qualified', - verified: true, - activity: 77, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 94909 - }, - { - id: 1037, - name: 'Rozella Ostrosky', - country: { - name: 'Venezuela', - code: 've' - }, - company: 'Parkway Company', - date: '2016-02-27', - status: 'unqualified', - verified: true, - activity: 66, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 57245 - }, - { - id: 1038, - name: 'Valentine Gillian', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Fbs Business Finance', - date: '2019-09-17', - status: 'qualified', - verified: true, - activity: 25, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 75502 - }, - { - id: 1039, - name: 'Kati Rulapaugh', - country: { - name: 'Puerto Rico', - code: 'pr' - }, - company: 'Eder Assocs Consltng Engrs Pc', - date: '2016-12-03', - status: 'renewal', - verified: false, - activity: 51, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 82075 - }, - { - id: 1040, - name: 'Youlanda Schemmer', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Tri M Tool Inc', - date: '2017-12-15', - status: 'negotiation', - verified: true, - activity: 49, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 19208 - }, - { - id: 1041, - name: 'Dyan Oldroyd', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'International Eyelets Inc', - date: '2017-02-02', - status: 'qualified', - verified: false, - activity: 5, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 50194 - }, - { - id: 1042, - name: 'Roxane Campain', - country: { - name: 'France', - code: 'fr' - }, - company: 'Rapid Trading Intl', - date: '2018-12-25', - status: 'unqualified', - verified: false, - activity: 100, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 77714 - }, - { - id: 1043, - name: 'Lavera Perin', - country: { - name: 'Vietnam', - code: 'vn' - }, - company: 'Abc Enterprises Inc', - date: '2018-04-10', - status: 'qualified', - verified: false, - activity: 71, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 35740 - }, - { - id: 1044, - name: 'Erick Ferencz', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Cindy Turner Associates', - date: '2018-05-06', - status: 'unqualified', - verified: true, - activity: 54, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 30790 - }, - { - id: 1045, - name: 'Fatima Saylors', - country: { - name: 'Canada', - code: 'ca' - }, - company: 'Stanton, James D Esq', - date: '2019-07-10', - status: 'renewal', - verified: true, - activity: 93, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 52343 - }, - { - id: 1046, - name: 'Jina Briddick', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'Grace Pastries Inc', - date: '2018-02-19', - status: 'unqualified', - verified: false, - activity: 97, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 53966 - }, - { - id: 1047, - name: 'Kanisha Waycott', - country: { - name: 'Ecuador', - code: 'ec' - }, - company: 'Schroer, Gene E Esq', - date: '2019-11-27', - status: 'new', - verified: false, - activity: 80, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 9920 - }, - { - id: 1048, - name: 'Emerson Bowley', - country: { - name: 'Finland', - code: 'fi' - }, - company: 'Knights Inn', - date: '2018-11-24', - status: 'new', - verified: false, - activity: 63, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 78069 - }, - { - id: 1049, - name: 'Blair Malet', - country: { - name: 'Finland', - code: 'fi' - }, - company: 'Bollinger Mach Shp & Shipyard', - date: '2018-04-19', - status: 'new', - verified: true, - activity: 92, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 65005 - }, - { - id: 1050, - name: 'Brock Bolognia', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Orinda News', - date: '2019-09-06', - status: 'renewal', - verified: true, - activity: 72, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 51038 - }, - { - id: 1051, - name: 'Lorrie Nestle', - country: { - name: 'Germany', - code: 'de' - }, - company: 'Ballard Spahr Andrews', - date: '2018-04-26', - status: 'renewal', - verified: false, - activity: 36, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 28218 - }, - { - id: 1052, - name: 'Sabra Uyetake', - country: { - name: 'Peru', - code: 'pe' - }, - company: 'Lowy Limousine Service', - date: '2018-04-12', - status: 'new', - verified: false, - activity: 31, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 78527 - }, - { - id: 1053, - name: 'Marjory Mastella', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Vicon Corporation', - date: '2018-01-24', - status: 'negotiation', - verified: false, - activity: 89, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 23381 - }, - { - id: 1054, - name: 'Karl Klonowski', - country: { - name: 'Saudi Arabia', - code: 'sa' - }, - company: 'Rossi, Michael M', - date: '2017-04-17', - status: 'unqualified', - verified: true, - activity: 27, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 64821 - }, - { - id: 1055, - name: 'Tonette Wenner', - country: { - name: 'Australia', - code: 'au' - }, - company: 'Northwest Publishing', - date: '2019-04-14', - status: 'qualified', - verified: false, - activity: 27, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 55334 - }, - { - id: 1056, - name: 'Amber Monarrez', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'Branford Wire & Mfg Co', - date: '2019-09-09', - status: 'new', - verified: false, - activity: 79, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 83391 - }, - { - id: 1057, - name: 'Shenika Seewald', - country: { - name: 'Australia', - code: 'au' - }, - company: 'East Coast Marketing', - date: '2017-02-18', - status: 'renewal', - verified: true, - activity: 39, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 31580 - }, - { - id: 1058, - name: 'Delmy Ahle', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Wye Technologies Inc', - date: '2020-10-05', - status: 'unqualified', - verified: false, - activity: 55, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 11723 - }, - { - id: 1059, - name: 'Deeanna Juhas', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'Healy, George W Iv', - date: '2018-09-28', - status: 'negotiation', - verified: false, - activity: 79, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 8454 - }, - { - id: 1060, - name: 'Blondell Pugh', - country: { - name: 'Ireland', - code: 'ie' - }, - company: 'Alpenlite Inc', - date: '2016-06-16', - status: 'renewal', - verified: false, - activity: 49, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 99235 - }, - { - id: 1061, - name: 'Jamal Vanausdal', - country: { - name: 'Morocco', - code: 'ma' - }, - company: 'Hubbard, Bruce Esq', - date: '2017-05-25', - status: 'negotiation', - verified: true, - activity: 87, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 15656 - }, - { - id: 1062, - name: 'Cecily Hollack', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Arthur A Oliver & Son Inc', - date: '2020-05-09', - status: 'negotiation', - verified: true, - activity: 5, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 60586 - }, - { - id: 1063, - name: 'Carmelina Lindall', - country: { - name: 'Puerto Rico', - code: 'pr' - }, - company: 'George Jessop Carter Jewelers', - date: '2019-09-07', - status: 'qualified', - verified: true, - activity: 77, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 86239 - }, - { - id: 1064, - name: 'Maurine Yglesias', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Schultz, Thomas C Md', - date: '2015-08-10', - status: 'renewal', - verified: false, - activity: 94, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 15621 - }, - { - id: 1065, - name: 'Tawna Buvens', - country: { - name: 'Indonesia', - code: 'id' - }, - company: 'H H H Enterprises Inc', - date: '2018-03-20', - status: 'new', - verified: false, - activity: 25, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 77248 - }, - { - id: 1066, - name: 'Penney Weight', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Hawaiian King Hotel', - date: '2020-03-03', - status: 'qualified', - verified: false, - activity: 96, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 478 - }, - { - id: 1067, - name: 'Elly Morocco', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Killion Industries', - date: '2018-09-18', - status: 'qualified', - verified: true, - activity: 38, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 62505 - }, - { - id: 1068, - name: 'Ilene Eroman', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Robinson, William J Esq', - date: '2019-06-08', - status: 'new', - verified: true, - activity: 49, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 91480 - }, - { - id: 1069, - name: 'Vallie Mondella', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Private Properties', - date: '2018-12-06', - status: 'new', - verified: false, - activity: 16, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 21671 - }, - { - id: 1070, - name: 'Kallie Blackwood', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Rowley Schlimgen Inc', - date: '2017-04-05', - status: 'unqualified', - verified: false, - activity: 25, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 13775 - }, - { - id: 1071, - name: 'Johnetta Abdallah', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Forging Specialties', - date: '2015-02-02', - status: 'new', - verified: false, - activity: 16, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 60253 - }, - { - id: 1072, - name: 'Bobbye Rhym', - country: { - name: 'Ukraine', - code: 'ua' - }, - company: 'Smits, Patricia Garity', - date: '2018-08-17', - status: 'qualified', - verified: true, - activity: 85, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 75225 - }, - { - id: 1073, - name: 'Micaela Rhymes', - country: { - name: 'France', - code: 'fr' - }, - company: 'H Lee Leonard Attorney At Law', - date: '2018-09-08', - status: 'renewal', - verified: true, - activity: 92, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 3308 - }, - { - id: 1074, - name: 'Tamar Hoogland', - country: { - name: 'Guatemala', - code: 'gt' - }, - company: 'A K Construction Co', - date: '2018-11-13', - status: 'negotiation', - verified: true, - activity: 22, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 19711 - }, - { - id: 1075, - name: 'Moon Parlato', - country: { - name: 'Czech Republic', - code: 'cz' - }, - company: 'Ambelang, Jessica M Md', - date: '2019-08-18', - status: 'renewal', - verified: false, - activity: 64, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 55110 - }, - { - id: 1076, - name: 'Laurel Reitler', - country: { - name: 'United Kingdom', - code: 'gb' - }, - company: 'Q A Service', - date: '2015-04-02', - status: 'negotiation', - verified: false, - activity: 80, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 62392 - }, - { - id: 1077, - name: 'Delisa Crupi', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Wood & Whitacre Contractors', - date: '2017-09-15', - status: 'unqualified', - verified: false, - activity: 70, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 76530 - }, - { - id: 1078, - name: 'Viva Toelkes', - country: { - name: 'United States', - code: 'us' - }, - company: 'Mark Iv Press Ltd', - date: '2017-03-27', - status: 'qualified', - verified: false, - activity: 16, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 7460 - }, - { - id: 1079, - name: 'Elza Lipke', - country: { - name: 'Ireland', - code: 'ie' - }, - company: 'Museum Of Science & Industry', - date: '2017-06-01', - status: 'negotiation', - verified: true, - activity: 90, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 42251 - }, - { - id: 1080, - name: 'Devorah Chickering', - country: { - name: 'Spain', - code: 'es' - }, - company: 'Garrison Ind', - date: '2017-03-14', - status: 'negotiation', - verified: true, - activity: 96, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 36435 - }, - { - id: 1081, - name: 'Timothy Mulqueen', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Saronix Nymph Products', - date: '2018-07-09', - status: 'renewal', - verified: true, - activity: 77, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 39197 - }, - { - id: 1082, - name: 'Arlette Honeywell', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Smc Inc', - date: '2018-09-11', - status: 'negotiation', - verified: true, - activity: 46, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 72707 - }, - { - id: 1083, - name: 'Dominque Dickerson', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'E A I Electronic Assocs Inc', - date: '2017-11-12', - status: 'qualified', - verified: true, - activity: 83, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 97965 - }, - { - id: 1084, - name: 'Lettie Isenhower', - country: { - name: 'Canada', - code: 'ca' - }, - company: 'Conte, Christopher A Esq', - date: '2016-03-01', - status: 'qualified', - verified: true, - activity: 83, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 5823 - }, - { - id: 1085, - name: 'Myra Munns', - country: { - name: 'Lithuania', - code: 'lt' - }, - company: 'Anker Law Office', - date: '2016-05-21', - status: 'unqualified', - verified: true, - activity: 49, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 96471 - }, - { - id: 1086, - name: 'Stephaine Barfield', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Beutelschies & Company', - date: '2016-01-22', - status: 'new', - verified: true, - activity: 34, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 33710 - }, - { - id: 1087, - name: 'Lai Gato', - country: { - name: 'Nigeria', - code: 'ng' - }, - company: 'Fligg, Kenneth I Jr', - date: '2016-07-26', - status: 'unqualified', - verified: false, - activity: 64, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 30611 - }, - { - id: 1088, - name: 'Stephen Emigh', - country: { - name: 'Cuba', - code: 'cu' - }, - company: 'Sharp, J Daniel Esq', - date: '2020-07-24', - status: 'renewal', - verified: false, - activity: 51, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 32960 - }, - { - id: 1089, - name: 'Tyra Shields', - country: { - name: 'Honduras', - code: 'hn' - }, - company: 'Assink, Anne H Esq', - date: '2019-11-10', - status: 'negotiation', - verified: false, - activity: 11, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 57423 - }, - { - id: 1090, - name: 'Tammara Wardrip', - country: { - name: 'Saudi Arabia', - code: 'sa' - }, - company: 'Jewel My Shop Inc', - date: '2016-06-05', - status: 'renewal', - verified: true, - activity: 64, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 23027 - }, - { - id: 1091, - name: 'Cory Gibes', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Chinese Translation Resources', - date: '2016-02-28', - status: 'new', - verified: false, - activity: 44, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 84182 - }, - { - id: 1092, - name: 'Danica Bruschke', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Stevens, Charles T', - date: '2018-12-13', - status: 'unqualified', - verified: true, - activity: 62, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 25237 - }, - { - id: 1093, - name: 'Wilda Giguere', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Mclaughlin, Luther W Cpa', - date: '2017-06-16', - status: 'new', - verified: true, - activity: 79, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 87736 - }, - { - id: 1094, - name: 'Elvera Benimadho', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Tree Musketeers', - date: '2019-02-17', - status: 'negotiation', - verified: true, - activity: 50, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 38674 - }, - { - id: 1095, - name: 'Carma Vanheusen', - country: { - name: 'Turkey', - code: 'tr' - }, - company: 'Springfield Div Oh Edison Co', - date: '2019-11-26', - status: 'renewal', - verified: false, - activity: 84, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 67762 - }, - { - id: 1096, - name: 'Malinda Hochard', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'Logan Memorial Hospital', - date: '2016-07-06', - status: 'new', - verified: false, - activity: 88, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 81299 - }, - { - id: 1097, - name: 'Natalie Fern', - country: { - name: 'Canada', - code: 'ca' - }, - company: 'Kelly, Charles G Esq', - date: '2019-10-02', - status: 'negotiation', - verified: true, - activity: 44, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 64794 - }, - { - id: 1098, - name: 'Lisha Centini', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Industrial Paper Shredders Inc', - date: '2018-07-05', - status: 'new', - verified: true, - activity: 7, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 7815 - }, - { - id: 1099, - name: 'Arlene Klusman', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: 'Beck Horizon Builders', - date: '2018-05-14', - status: 'negotiation', - verified: true, - activity: 99, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 37976 - }, - { - id: 1100, - name: 'Alease Buemi', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'Porto Cayo At Hawks Cay', - date: '2018-03-14', - status: 'unqualified', - verified: true, - activity: 0, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 59594 - }, - { - id: 1101, - name: 'Louisa Cronauer', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'Pacific Grove Museum Ntrl Hist', - date: '2018-09-23', - status: 'qualified', - verified: false, - activity: 3, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 92528 - }, - { - id: 1102, - name: 'Angella Cetta', - country: { - name: 'Vietnam', - code: 'vn' - }, - company: 'Bender & Hatley Pc', - date: '2018-04-10', - status: 'qualified', - verified: false, - activity: 88, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 58964 - }, - { - id: 1103, - name: 'Cyndy Goldammer', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Di Cristina J & Son', - date: '2017-09-18', - status: 'unqualified', - verified: false, - activity: 92, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 65860 - }, - { - id: 1104, - name: 'Rosio Cork', - country: { - name: 'Singapore', - code: 'sg' - }, - company: 'Green Goddess', - date: '2017-08-19', - status: 'negotiation', - verified: true, - activity: 19, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 63863 - }, - { - id: 1105, - name: 'Celeste Korando', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'American Arts & Graphics', - date: '2020-06-18', - status: 'negotiation', - verified: true, - activity: 21, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 37510 - }, - { - id: 1106, - name: 'Twana Felger', - country: { - name: 'Croatia', - code: 'hr' - }, - company: 'Opryland Hotel', - date: '2016-11-18', - status: 'negotiation', - verified: false, - activity: 97, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 63876 - }, - { - id: 1107, - name: 'Estrella Samu', - country: { - name: 'Vietnam', - code: 'vn' - }, - company: 'Marking Devices Pubg Co', - date: '2017-06-25', - status: 'unqualified', - verified: false, - activity: 27, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 93263 - }, - { - id: 1108, - name: 'Donte Kines', - country: { - name: 'Slovakia', - code: 'sk' - }, - company: 'W Tc Industries Inc', - date: '2019-02-16', - status: 'new', - verified: true, - activity: 35, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 57198 - }, - { - id: 1109, - name: 'Tiffiny Steffensmeier', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Whitehall Robbins Labs Divsn', - date: '2018-03-11', - status: 'new', - verified: true, - activity: 81, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 89147 - }, - { - id: 1110, - name: 'Edna Miceli', - country: { - name: 'France', - code: 'fr' - }, - company: 'Sampler', - date: '2017-10-15', - status: 'renewal', - verified: true, - activity: 54, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 41466 - }, - { - id: 1111, - name: 'Sue Kownacki', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: 'Juno Chefs Incorporated', - date: '2017-03-17', - status: 'negotiation', - verified: false, - activity: 31, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 38918 - }, - { - id: 1112, - name: 'Jesusa Shin', - country: { - name: 'Ukraine', - code: 'ua' - }, - company: 'Carroccio, A Thomas Esq', - date: '2017-04-06', - status: 'renewal', - verified: false, - activity: 28, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 11397 - }, - { - id: 1113, - name: 'Rolland Francescon', - country: { - name: 'United Kingdom', - code: 'gb' - }, - company: 'Stanley, Richard L Esq', - date: '2019-02-03', - status: 'qualified', - verified: false, - activity: 45, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 40930 - }, - { - id: 1114, - name: 'Pamella Schmierer', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'K Cs Cstm Mouldings Windows', - date: '2016-09-22', - status: 'unqualified', - verified: true, - activity: 34, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 40847 - }, - { - id: 1115, - name: 'Glory Kulzer', - country: { - name: 'Croatia', - code: 'hr' - }, - company: 'Comfort Inn', - date: '2017-09-27', - status: 'unqualified', - verified: true, - activity: 36, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 27832 - }, - { - id: 1116, - name: 'Shawna Palaspas', - country: { - name: 'Estonia', - code: 'ee' - }, - company: 'Windsor, James L Esq', - date: '2017-06-25', - status: 'unqualified', - verified: true, - activity: 69, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 89060 - }, - { - id: 1117, - name: 'Brandon Callaro', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Jackson Shields Yeiser', - date: '2016-07-13', - status: 'negotiation', - verified: true, - activity: 55, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 52474 - }, - { - id: 1118, - name: 'Scarlet Cartan', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Box, J Calvin Esq', - date: '2018-09-13', - status: 'renewal', - verified: false, - activity: 1, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 19094 - }, - { - id: 1119, - name: 'Oretha Menter', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Custom Engineering Inc', - date: '2017-09-11', - status: 'renewal', - verified: false, - activity: 8, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 93756 - }, - { - id: 1120, - name: 'Ty Smith', - country: { - name: 'United States', - code: 'us' - }, - company: 'Bresler Eitel Framg Gllry Ltd', - date: '2019-07-06', - status: 'unqualified', - verified: false, - activity: 50, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 77388 - }, - { - id: 1121, - name: 'Xuan Rochin', - country: { - name: 'Colombia', - code: 'co' - }, - company: 'Carol, Drake Sparks Esq', - date: '2018-05-22', - status: 'negotiation', - verified: true, - activity: 77, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 48759 - }, - { - id: 1122, - name: 'Lindsey Dilello', - country: { - name: 'Austria', - code: 'at' - }, - company: 'Biltmore Investors Bank', - date: '2017-07-18', - status: 'renewal', - verified: true, - activity: 65, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 37568 - }, - { - id: 1123, - name: 'Devora Perez', - country: { - name: 'Uruguay', - code: 'uy' - }, - company: 'Desco Equipment Corp', - date: '2017-10-09', - status: 'unqualified', - verified: true, - activity: 30, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 4477 - }, - { - id: 1124, - name: 'Herman Demesa', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Merlin Electric Co', - date: '2019-05-23', - status: 'negotiation', - verified: true, - activity: 10, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 13764 - }, - { - id: 1125, - name: 'Rory Papasergi', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Bailey Cntl Co Div Babcock', - date: '2019-03-02', - status: 'qualified', - verified: false, - activity: 22, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 68222 - }, - { - id: 1126, - name: 'Talia Riopelle', - country: { - name: 'Guatemala', - code: 'gt' - }, - company: 'Ford Brothers Wholesale Inc', - date: '2017-02-18', - status: 'new', - verified: false, - activity: 69, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 29164 - }, - { - id: 1127, - name: 'Van Shire', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Cambridge Inn', - date: '2020-05-12', - status: 'new', - verified: false, - activity: 4, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 61651 - }, - { - id: 1128, - name: 'Lucina Lary', - country: { - name: 'Switzerland', - code: 'ch' - }, - company: 'Matricciani, Albert J Jr', - date: '2019-11-20', - status: 'negotiation', - verified: true, - activity: 11, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 79938 - }, - { - id: 1129, - name: 'Bok Isaacs', - country: { - name: 'Chile', - code: 'cl' - }, - company: 'Nelson Hawaiian Ltd', - date: '2016-11-10', - status: 'negotiation', - verified: true, - activity: 41, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 44037 - }, - { - id: 1130, - name: 'Rolande Spickerman', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Neland Travel Agency', - date: '2016-07-11', - status: 'renewal', - verified: true, - activity: 84, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 89918 - }, - { - id: 1131, - name: 'Howard Paulas', - country: { - name: 'Indonesia', - code: 'id' - }, - company: 'Asendorf, J Alan Esq', - date: '2017-07-17', - status: 'negotiation', - verified: false, - activity: 22, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 32372 - }, - { - id: 1132, - name: 'Kimbery Madarang', - country: { - name: 'Senegal', - code: 'sn' - }, - company: 'Silberman, Arthur L Esq', - date: '2018-08-19', - status: 'negotiation', - verified: true, - activity: 63, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 46478 - }, - { - id: 1133, - name: 'Thurman Manno', - country: { - name: 'Colombia', - code: 'co' - }, - company: 'Honey Bee Breeding Genetics &', - date: '2016-05-02', - status: 'qualified', - verified: true, - activity: 47, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 30674 - }, - { - id: 1134, - name: 'Becky Mirafuentes', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'Wells Kravitz Schnitzer', - date: '2018-04-13', - status: 'unqualified', - verified: true, - activity: 62, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 47714 - }, - { - id: 1135, - name: 'Beatriz Corrington', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Prohab Rehabilitation Servs', - date: '2020-01-04', - status: 'renewal', - verified: true, - activity: 55, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 14307 - }, - { - id: 1136, - name: 'Marti Maybury', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Eldridge, Kristin K Esq', - date: '2016-02-05', - status: 'unqualified', - verified: false, - activity: 3, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 82069 - }, - { - id: 1137, - name: 'Nieves Gotter', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Vlahos, John J Esq', - date: '2017-03-12', - status: 'negotiation', - verified: false, - activity: 3, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 11182 - }, - { - id: 1138, - name: 'Leatha Hagele', - country: { - name: 'Ukraine', - code: 'ua' - }, - company: 'Ninas Indian Grs & Videos', - date: '2019-03-27', - status: 'unqualified', - verified: false, - activity: 67, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 17126 - }, - { - id: 1139, - name: 'Valentin Klimek', - country: { - name: 'Ivory Coast', - code: 'ci' - }, - company: 'Schmid, Gayanne K Esq', - date: '2019-08-06', - status: 'unqualified', - verified: true, - activity: 14, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 19724 - }, - { - id: 1140, - name: 'Melissa Wiklund', - country: { - name: 'Japan', - code: 'jp' - }, - company: 'Moapa Valley Federal Credit Un', - date: '2018-03-20', - status: 'qualified', - verified: true, - activity: 8, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 91888 - }, - { - id: 1141, - name: 'Sheridan Zane', - country: { - name: 'Croatia', - code: 'hr' - }, - company: 'Kentucky Tennessee Clay Co', - date: '2016-02-15', - status: 'qualified', - verified: true, - activity: 17, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 15016 - }, - { - id: 1142, - name: 'Bulah Padilla', - country: { - name: 'Philippines', - code: 'ph' - }, - company: 'Admiral Party Rentals & Sales', - date: '2016-02-10', - status: 'negotiation', - verified: false, - activity: 58, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 23118 - }, - { - id: 1143, - name: 'Audra Kohnert', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Nelson, Karolyn King Esq', - date: '2019-07-16', - status: 'unqualified', - verified: false, - activity: 82, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 90560 - }, - { - id: 1144, - name: 'Daren Weirather', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Panasystems', - date: '2015-07-23', - status: 'negotiation', - verified: false, - activity: 96, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 34155 - }, - { - id: 1145, - name: 'Fernanda Jillson', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'Shank, Edward L Esq', - date: '2017-07-02', - status: 'unqualified', - verified: true, - activity: 92, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 6350 - }, - { - id: 1146, - name: 'Gearldine Gellinger', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Megibow & Edwards', - date: '2019-08-17', - status: 'negotiation', - verified: true, - activity: 18, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 77641 - }, - { - id: 1147, - name: 'Chau Kitzman', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Benoff, Edward Esq', - date: '2019-07-04', - status: 'new', - verified: true, - activity: 9, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 43289 - }, - { - id: 1148, - name: 'Theola Frey', - country: { - name: 'Vietnam', - code: 'vn' - }, - company: 'Woodbridge Free Public Library', - date: '2020-03-14', - status: 'unqualified', - verified: true, - activity: 44, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 85657 - }, - { - id: 1149, - name: 'Cheryl Haroldson', - country: { - name: 'France', - code: 'fr' - }, - company: 'New York Life John Thune', - date: '2018-04-03', - status: 'new', - verified: false, - activity: 55, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 82733 - }, - { - id: 1150, - name: 'Laticia Merced', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Alinabal Inc', - date: '2017-03-04', - status: 'unqualified', - verified: false, - activity: 21, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 38004 - }, - { - id: 1151, - name: 'Carissa Batman', - country: { - name: 'Greece', - code: 'gr' - }, - company: 'Poletto, Kim David Esq', - date: '2016-05-05', - status: 'negotiation', - verified: true, - activity: 91, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 29038 - }, - { - id: 1152, - name: 'Lezlie Craghead', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Chang, Carolyn Esq', - date: '2019-05-28', - status: 'renewal', - verified: false, - activity: 30, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 75123 - }, - { - id: 1153, - name: 'Ozell Shealy', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Silver Bros Inc', - date: '2016-08-19', - status: 'negotiation', - verified: true, - activity: 14, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 33214 - }, - { - id: 1154, - name: 'Arminda Parvis', - country: { - name: 'Indonesia', - code: 'id' - }, - company: 'Newtec Inc', - date: '2020-02-09', - status: 'negotiation', - verified: true, - activity: 77, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 80651 - }, - { - id: 1155, - name: 'Reita Leto', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Creative Business Systems', - date: '2020-04-03', - status: 'unqualified', - verified: true, - activity: 58, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 5085 - }, - { - id: 1156, - name: 'Yolando Luczki', - country: { - name: 'France', - code: 'fr' - }, - company: 'Dal Tile Corporation', - date: '2015-01-27', - status: 'renewal', - verified: true, - activity: 78, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 93021 - }, - { - id: 1157, - name: 'Lizette Stem', - country: { - name: 'Slovakia', - code: 'sk' - }, - company: 'Edward S Katz', - date: '2018-08-06', - status: 'new', - verified: false, - activity: 67, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 37287 - }, - { - id: 1158, - name: 'Gregoria Pawlowicz', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Oh My Goodknits Inc', - date: '2020-02-20', - status: 'renewal', - verified: false, - activity: 29, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 73070 - }, - { - id: 1159, - name: 'Carin Deleo', - country: { - name: 'China', - code: 'cn' - }, - company: 'Redeker, Debbie', - date: '2015-05-28', - status: 'qualified', - verified: true, - activity: 13, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 64422 - }, - { - id: 1160, - name: 'Chantell Maynerich', - country: { - name: 'Estonia', - code: 'ee' - }, - company: 'Desert Sands Motel', - date: '2016-09-05', - status: 'unqualified', - verified: true, - activity: 75, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 36826 - }, - { - id: 1161, - name: 'Dierdre Yum', - country: { - name: 'Czech Republic', - code: 'cz' - }, - company: 'Cummins Southern Plains Inc', - date: '2016-12-20', - status: 'negotiation', - verified: true, - activity: 1, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 93101 - }, - { - id: 1162, - name: 'Larae Gudroe', - country: { - name: 'Slovenia', - code: 'si' - }, - company: 'Lehigh Furn Divsn Lehigh', - date: '2015-11-28', - status: 'unqualified', - verified: false, - activity: 13, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 60177 - }, - { - id: 1163, - name: 'Latrice Tolfree', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: 'United Van Lines Agent', - date: '2018-11-11', - status: 'renewal', - verified: false, - activity: 73, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 47198 - }, - { - id: 1164, - name: 'Kerry Theodorov', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Capitol Reporters', - date: '2016-11-05', - status: 'unqualified', - verified: true, - activity: 76, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 71305 - }, - { - id: 1165, - name: 'Dorthy Hidvegi', - country: { - name: 'Poland', - code: 'pl' - }, - company: 'Kwik Kopy Printing', - date: '2020-08-13', - status: 'qualified', - verified: true, - activity: 60, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 17526 - }, - { - id: 1166, - name: 'Fannie Lungren', - country: { - name: 'Belarus', - code: 'by' - }, - company: 'Centro Inc', - date: '2015-07-06', - status: 'negotiation', - verified: true, - activity: 24, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 16596 - }, - { - id: 1167, - name: 'Evangelina Radde', - country: { - name: 'Ivory Coast', - code: 'ci' - }, - company: 'Campbell, Jan Esq', - date: '2020-02-25', - status: 'unqualified', - verified: true, - activity: 93, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 56870 - }, - { - id: 1168, - name: 'Novella Degroot', - country: { - name: 'Slovenia', - code: 'si' - }, - company: 'Evans, C Kelly Esq', - date: '2017-12-19', - status: 'unqualified', - verified: false, - activity: 30, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 82928 - }, - { - id: 1169, - name: 'Clay Hoa', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Scat Enterprises', - date: '2016-02-22', - status: 'negotiation', - verified: false, - activity: 93, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 64181 - }, - { - id: 1170, - name: 'Jennifer Fallick', - country: { - name: 'Australia', - code: 'au' - }, - company: 'Nagle, Daniel J Esq', - date: '2016-12-24', - status: 'unqualified', - verified: true, - activity: 88, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 30561 - }, - { - id: 1171, - name: 'Irma Wolfgramm', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Serendiquity Bed & Breakfast', - date: '2020-10-18', - status: 'negotiation', - verified: true, - activity: 70, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 24617 - }, - { - id: 1172, - name: 'Eun Coody', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Ray Carolyne Realty', - date: '2018-02-12', - status: 'qualified', - verified: true, - activity: 61, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 77860 - }, - { - id: 1173, - name: 'Sylvia Cousey', - country: { - name: 'Ireland', - code: 'ie' - }, - company: 'Berg, Charles E', - date: '2018-06-10', - status: 'unqualified', - verified: false, - activity: 91, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 25664 - }, - { - id: 1174, - name: 'Nana Wrinkles', - country: { - name: 'Austria', - code: 'at' - }, - company: 'Ray, Milbern D', - date: '2017-04-11', - status: 'renewal', - verified: true, - activity: 98, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 98113 - }, - { - id: 1175, - name: 'Layla Springe', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Chadds Ford Winery', - date: '2019-07-27', - status: 'unqualified', - verified: true, - activity: 97, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 14763 - }, - { - id: 1176, - name: 'Joesph Degonia', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'A R Packaging', - date: '2020-04-23', - status: 'renewal', - verified: true, - activity: 56, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 31317 - }, - { - id: 1177, - name: 'Annabelle Boord', - country: { - name: 'Guatemala', - code: 'gt' - }, - company: 'Corn Popper', - date: '2020-09-16', - status: 'negotiation', - verified: true, - activity: 76, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 30883 - }, - { - id: 1178, - name: 'Stephaine Vinning', - country: { - name: 'Australia', - code: 'au' - }, - company: 'Birite Foodservice Distr', - date: '2016-05-14', - status: 'negotiation', - verified: true, - activity: 43, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 93785 - }, - { - id: 1179, - name: 'Nelida Sawchuk', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Anchorage Museum Of Hist & Art', - date: '2018-06-22', - status: 'qualified', - verified: true, - activity: 58, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 68380 - }, - { - id: 1180, - name: 'Marguerita Hiatt', - country: { - name: 'United Kingdom', - code: 'gb' - }, - company: 'Haber, George D Md', - date: '2018-10-25', - status: 'qualified', - verified: false, - activity: 72, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 93454 - }, - { - id: 1181, - name: 'Carmela Cookey', - country: { - name: 'France', - code: 'fr' - }, - company: 'Royal Pontiac Olds Inc', - date: '2018-07-19', - status: 'negotiation', - verified: false, - activity: 24, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 30570 - }, - { - id: 1182, - name: 'Junita Brideau', - country: { - name: 'Indonesia', - code: 'id' - }, - company: 'Leonards Antiques Inc', - date: '2015-03-15', - status: 'negotiation', - verified: true, - activity: 86, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 79506 - }, - { - id: 1183, - name: 'Claribel Varriano', - country: { - name: 'Ecuador', - code: 'ec' - }, - company: 'Meca', - date: '2017-04-14', - status: 'unqualified', - verified: true, - activity: 15, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 8654 - }, - { - id: 1184, - name: 'Benton Skursky', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Nercon Engineering & Mfg Inc', - date: '2015-02-19', - status: 'negotiation', - verified: true, - activity: 9, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 13368 - }, - { - id: 1185, - name: 'Hillary Skulski', - country: { - name: 'France', - code: 'fr' - }, - company: 'Replica I', - date: '2016-03-25', - status: 'unqualified', - verified: true, - activity: 82, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 92631 - }, - { - id: 1186, - name: 'Merilyn Bayless', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: '20 20 Printing Inc', - date: '2020-10-13', - status: 'unqualified', - verified: true, - activity: 13, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 4989 - }, - { - id: 1187, - name: 'Teri Ennaco', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Publishers Group West', - date: '2019-12-21', - status: 'unqualified', - verified: true, - activity: 57, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 77668 - }, - { - id: 1188, - name: 'Merlyn Lawler', - country: { - name: 'Germany', - code: 'de' - }, - company: 'Nischwitz, Jeffrey L Esq', - date: '2016-02-26', - status: 'renewal', - verified: true, - activity: 45, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 3525 - }, - { - id: 1189, - name: 'Georgene Montezuma', - country: { - name: 'Senegal', - code: 'sn' - }, - company: 'Payne Blades & Wellborn Pa', - date: '2018-10-11', - status: 'new', - verified: true, - activity: 64, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 45838 - }, - { - id: 1190, - name: 'Jettie Mconnell', - country: { - name: 'Denmark', - code: 'dk' - }, - company: 'Coldwell Bnkr Wright Real Est', - date: '2015-10-18', - status: 'negotiation', - verified: false, - activity: 74, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 49148 - }, - { - id: 1191, - name: 'Lemuel Latzke', - country: { - name: 'Colombia', - code: 'co' - }, - company: 'Computer Repair Service', - date: '2016-02-13', - status: 'negotiation', - verified: false, - activity: 79, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 96709 - }, - { - id: 1192, - name: 'Melodie Knipp', - country: { - name: 'Finland', - code: 'fi' - }, - company: 'Fleetwood Building Block Inc', - date: '2018-03-08', - status: 'negotiation', - verified: false, - activity: 19, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 23253 - }, - { - id: 1193, - name: 'Candida Corbley', - country: { - name: 'Poland', - code: 'pl' - }, - company: 'Colts Neck Medical Assocs Inc', - date: '2017-12-02', - status: 'negotiation', - verified: true, - activity: 11, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 40836 - }, - { - id: 1194, - name: 'Karan Karpin', - country: { - name: 'Estonia', - code: 'ee' - }, - company: 'New England Taxidermy', - date: '2019-01-07', - status: 'negotiation', - verified: true, - activity: 4, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 60719 - }, - { - id: 1195, - name: 'Andra Scheyer', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Ludcke, George O Esq', - date: '2016-08-14', - status: 'qualified', - verified: true, - activity: 62, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 17419 - }, - { - id: 1196, - name: 'Felicidad Poullion', - country: { - name: 'Greece', - code: 'gr' - }, - company: 'Mccorkle, Tom S Esq', - date: '2016-03-05', - status: 'renewal', - verified: true, - activity: 64, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 94052 - }, - { - id: 1197, - name: 'Belen Strassner', - country: { - name: 'Ivory Coast', - code: 'ci' - }, - company: 'Eagle Software Inc', - date: '2015-12-14', - status: 'qualified', - verified: true, - activity: 91, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 54241 - }, - { - id: 1198, - name: 'Gracia Melnyk', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'Juvenile & Adult Super', - date: '2019-06-01', - status: 'unqualified', - verified: true, - activity: 40, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 87668 - }, - { - id: 1199, - name: 'Jolanda Hanafan', - country: { - name: 'Cameroon', - code: 'cm' - }, - company: 'Perez, Joseph J Esq', - date: '2015-12-09', - status: 'qualified', - verified: true, - activity: 27, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 99417 - }, - { - id: 1200, - name: 'Barrett Toyama', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Case Foundation Co', - date: '2019-08-16', - status: 'new', - verified: true, - activity: 82, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 89792 - }, - { - id: 1201, - name: 'Helga Fredicks', - country: { - name: 'Guatemala', - code: 'gt' - }, - company: 'Eis Environmental Engrs Inc', - date: '2018-06-20', - status: 'new', - verified: true, - activity: 33, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 42356 - }, - { - id: 1202, - name: 'Ashlyn Pinilla', - country: { - name: 'Japan', - code: 'jp' - }, - company: 'Art Crafters', - date: '2018-04-11', - status: 'unqualified', - verified: true, - activity: 5, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 90979 - }, - { - id: 1203, - name: 'Fausto Agramonte', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Marriott Hotels Resorts Suites', - date: '2019-06-25', - status: 'new', - verified: false, - activity: 22, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 45082 - }, - { - id: 1204, - name: 'Ronny Caiafa', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Remaco Inc', - date: '2020-07-21', - status: 'new', - verified: true, - activity: 61, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 9871 - }, - { - id: 1205, - name: 'Marge Limmel', - country: { - name: 'Cameroon', - code: 'cm' - }, - company: 'Bjork, Robert D Jr', - date: '2015-03-12', - status: 'unqualified', - verified: true, - activity: 90, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 47043 - }, - { - id: 1206, - name: 'Norah Waymire', - country: { - name: 'United States', - code: 'us' - }, - company: 'Carmichael, Jeffery L Esq', - date: '2019-06-11', - status: 'renewal', - verified: true, - activity: 48, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 92763 - }, - { - id: 1207, - name: 'Aliza Baltimore', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Andrews, J Robert Esq', - date: '2020-11-25', - status: 'unqualified', - verified: true, - activity: 59, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 18075 - }, - { - id: 1208, - name: 'Mozell Pelkowski', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Winship \u0026 Byrne', - date: '2018-04-13', - status: 'unqualified', - verified: true, - activity: 94, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 34393 - }, - { - id: 1209, - name: 'Viola Bitsuie', - country: { - name: 'Denmark', - code: 'dk' - }, - company: 'Burton \u0026 Davis', - date: '2018-07-07', - status: 'new', - verified: true, - activity: 94, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 16410 - }, - { - id: 1210, - name: 'Franklyn Emard', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Olympic Graphic Arts', - date: '2018-02-25', - status: 'qualified', - verified: true, - activity: 95, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 1017 - }, - { - id: 1211, - name: 'Willodean Konopacki', - country: { - name: 'Hong Kong', - code: 'hk' - }, - company: 'Magnuson', - date: '2017-10-03', - status: 'renewal', - verified: false, - activity: 20, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 77843 - }, - { - id: 1212, - name: 'Beckie Silvestrini', - country: { - name: 'Poland', - code: 'pl' - }, - company: 'A All American Travel Inc', - date: '2016-11-26', - status: 'renewal', - verified: true, - activity: 81, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 30549 - }, - { - id: 1213, - name: 'Rebecka Gesick', - country: { - name: 'Philippines', - code: 'ph' - }, - company: 'Polykote Inc', - date: '2019-06-22', - status: 'renewal', - verified: true, - activity: 45, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 51738 - }, - { - id: 1214, - name: 'Frederica Blunk', - country: { - name: 'Lithuania', - code: 'lt' - }, - company: 'Jets Cybernetics', - date: '2019-06-07', - status: 'renewal', - verified: true, - activity: 56, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 13111 - }, - { - id: 1215, - name: 'Glen Bartolet', - country: { - name: 'Germany', - code: 'de' - }, - company: 'Metlab Testing Services', - date: '2015-02-13', - status: 'negotiation', - verified: true, - activity: 99, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 85802 - }, - { - id: 1216, - name: 'Freeman Gochal', - country: { - name: 'Slovenia', - code: 'si' - }, - company: 'Kellermann, William T Esq', - date: '2019-08-27', - status: 'negotiation', - verified: false, - activity: 2, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 89221 - }, - { - id: 1217, - name: 'Vincent Meinerding', - country: { - name: 'United States', - code: 'us' - }, - company: 'Arturi, Peter D Esq', - date: '2018-06-18', - status: 'new', - verified: true, - activity: 58, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 32661 - }, - { - id: 1218, - name: 'Rima Bevelacqua', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Mcauley Mfg Co', - date: '2019-05-18', - status: 'new', - verified: true, - activity: 31, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 18809 - }, - { - id: 1219, - name: 'Glendora Sarbacher', - country: { - name: 'Lithuania', - code: 'lt' - }, - company: 'Defur Voran Hanley Radcliff', - date: '2018-04-21', - status: 'new', - verified: true, - activity: 79, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 94374 - }, - { - id: 1220, - name: 'Avery Steier', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'Dill Dill Carr \u0026 Stonbraker Pc', - date: '2017-07-27', - status: 'negotiation', - verified: true, - activity: 63, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 45436 - }, - { - id: 1221, - name: 'Cristy Lother', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Kleensteel', - date: '2018-05-19', - status: 'renewal', - verified: true, - activity: 55, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 72645 - }, - { - id: 1222, - name: 'Nicolette Brossart', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Goulds Pumps Inc Slurry Pump', - date: '2015-05-26', - status: 'new', - verified: false, - activity: 25, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 61023 - }, - { - id: 1223, - name: 'Tracey Modzelewski', - country: { - name: 'Denmark', - code: 'dk' - }, - company: 'Kansas City Insurance Report', - date: '2019-07-02', - status: 'renewal', - verified: true, - activity: 4, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 13685 - }, - { - id: 1224, - name: 'Virgina Tegarden', - country: { - name: 'Cameroon', - code: 'cm' - }, - company: 'Berhanu International Foods', - date: '2017-10-09', - status: 'qualified', - verified: true, - activity: 62, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 84436 - }, - { - id: 1225, - name: 'Tiera Frankel', - country: { - name: 'India', - code: 'in' - }, - company: 'Roland Ashcroft', - date: '2018-03-27', - status: 'unqualified', - verified: true, - activity: 90, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 61860 - }, - { - id: 1226, - name: 'Alaine Bergesen', - country: { - name: 'Peru', - code: 'pe' - }, - company: 'Hispanic Magazine', - date: '2017-08-10', - status: 'qualified', - verified: true, - activity: 34, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 76679 - }, - { - id: 1227, - name: 'Earleen Mai', - country: { - name: 'Italy', - code: 'it' - }, - company: 'Little Sheet Metal Co', - date: '2016-06-22', - status: 'negotiation', - verified: true, - activity: 38, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 14959 - }, - { - id: 1228, - name: 'Leonida Gobern', - country: { - name: 'Cuba', - code: 'cu' - }, - company: 'Holmes, Armstead J Esq', - date: '2020-02-24', - status: 'renewal', - verified: true, - activity: 96, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 14174 - }, - { - id: 1229, - name: 'Ressie Auffrey', - country: { - name: 'Japan', - code: 'jp' - }, - company: 'Faw, James C Cpa', - date: '2016-10-21', - status: 'negotiation', - verified: false, - activity: 28, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 80328 - }, - { - id: 1230, - name: 'Justine Mugnolo', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Evans Rule Company', - date: '2016-02-21', - status: 'negotiation', - verified: true, - activity: 83, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 56392 - }, - { - id: 1231, - name: 'Eladia Saulter', - country: { - name: 'Switzerland', - code: 'ch' - }, - company: 'Tyee Productions Inc', - date: '2016-03-10', - status: 'new', - verified: true, - activity: 16, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 17176 - }, - { - id: 1232, - name: 'Chaya Malvin', - country: { - name: 'Cuba', - code: 'cu' - }, - company: 'Dunnells \u0026 Duvall', - date: '2016-07-22', - status: 'renewal', - verified: true, - activity: 12, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 90141 - }, - { - id: 1233, - name: 'Gwenn Suffield', - country: { - name: 'Austria', - code: 'at' - }, - company: 'Deltam Systems Inc', - date: '2019-06-23', - status: 'qualified', - verified: true, - activity: 67, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 38187 - }, - { - id: 1234, - name: 'Salena Karpel', - country: { - name: 'Puerto Rico', - code: 'pr' - }, - company: 'Hammill Mfg Co', - date: '2016-08-02', - status: 'renewal', - verified: true, - activity: 0, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 35596 - }, - { - id: 1235, - name: 'Yoko Fishburne', - country: { - name: 'Croatia', - code: 'hr' - }, - company: 'Sams Corner Store', - date: '2017-08-06', - status: 'unqualified', - verified: true, - activity: 73, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 73926 - }, - { - id: 1236, - name: 'Taryn Moyd', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'Siskin, Mark J Esq', - date: '2016-12-18', - status: 'negotiation', - verified: true, - activity: 57, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 38375 - }, - { - id: 1237, - name: 'Katina Polidori', - country: { - name: 'Nigeria', - code: 'ng' - }, - company: 'Cape \u0026 Associates Real Estate', - date: '2016-08-25', - status: 'unqualified', - verified: true, - activity: 37, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 35932 - }, - { - id: 1238, - name: 'Rickie Plumer', - country: { - name: 'Turkey', - code: 'tr' - }, - company: 'Merrill Lynch', - date: '2018-11-04', - status: 'unqualified', - verified: true, - activity: 71, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 28331 - }, - { - id: 1239, - name: 'Alex Loader', - country: { - name: 'Italy', - code: 'it' - }, - company: 'Sublett, Scott Esq', - date: '2016-01-07', - status: 'unqualified', - verified: false, - activity: 22, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 33549 - }, - { - id: 1240, - name: 'Lashon Vizarro', - country: { - name: 'Ecuador', - code: 'ec' - }, - company: 'Sentry Signs', - date: '2019-08-02', - status: 'negotiation', - verified: true, - activity: 46, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 63860 - }, - { - id: 1241, - name: 'Lauran Burnard', - country: { - name: 'Czech Republic', - code: 'cz' - }, - company: 'Professionals Unlimited', - date: '2016-04-27', - status: 'renewal', - verified: true, - activity: 30, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 34992 - }, - { - id: 1242, - name: 'Ceola Setter', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Southern Steel Shelving Co', - date: '2017-05-13', - status: 'qualified', - verified: true, - activity: 43, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 97068 - }, - { - id: 1243, - name: 'My Rantanen', - country: { - name: 'Philippines', - code: 'ph' - }, - company: 'Bosco, Paul J', - date: '2017-09-11', - status: 'negotiation', - verified: true, - activity: 60, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 2316 - }, - { - id: 1244, - name: 'Lorrine Worlds', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Longo, Nicholas J Esq', - date: '2018-05-10', - status: 'renewal', - verified: true, - activity: 51, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 89374 - }, - { - id: 1245, - name: 'Peggie Sturiale', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Henry County Middle School', - date: '2019-11-03', - status: 'renewal', - verified: true, - activity: 41, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 51152 - }, - { - id: 1246, - name: 'Marvel Raymo', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Edison Supply \u0026 Equipment Co', - date: '2016-03-08', - status: 'renewal', - verified: true, - activity: 9, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 39848 - }, - { - id: 1247, - name: 'Daron Dinos', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Wolf, Warren R Esq', - date: '2016-03-25', - status: 'unqualified', - verified: true, - activity: 30, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 35060 - }, - { - id: 1248, - name: 'An Fritz', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Linguistic Systems Inc', - date: '2017-08-04', - status: 'negotiation', - verified: true, - activity: 86, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 23037 - }, - { - id: 1249, - name: 'Portia Stimmel', - country: { - name: 'Australia', - code: 'au' - }, - company: 'Peace Christian Center', - date: '2020-01-13', - status: 'qualified', - verified: true, - activity: 30, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 35637 - }, - { - id: 1250, - name: 'Rhea Aredondo', - country: { - name: 'Greece', - code: 'gr' - }, - company: 'Double B Foods Inc', - date: '2016-06-19', - status: 'qualified', - verified: true, - activity: 68, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 70379 - }, - { - id: 1251, - name: 'Benedict Sama', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Alexander \u0026 Alexander Inc', - date: '2018-08-18', - status: 'negotiation', - verified: true, - activity: 79, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 99271 - }, - { - id: 1252, - name: 'Alyce Arias', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Fairbanks Scales', - date: '2018-09-14', - status: 'new', - verified: true, - activity: 77, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 69658 - }, - { - id: 1253, - name: 'Heike Berganza', - country: { - name: 'Bulgaria', - code: 'bg' - }, - company: 'Cali Sportswear Cutting Dept', - date: '2019-01-21', - status: 'unqualified', - verified: true, - activity: 95, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 78159 - }, - { - id: 1254, - name: 'Carey Dopico', - country: { - name: 'Saudi Arabia', - code: 'sa' - }, - company: 'Garofani, John Esq', - date: '2020-05-25', - status: 'negotiation', - verified: true, - activity: 35, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 84097 - }, - { - id: 1255, - name: 'Dottie Hellickson', - country: { - name: 'Chile', - code: 'cl' - }, - company: 'Thompson Fabricating Co', - date: '2016-02-12', - status: 'qualified', - verified: true, - activity: 7, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 54606 - }, - { - id: 1256, - name: 'Deandrea Hughey', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Century 21 Krall Real Estate', - date: '2018-09-26', - status: 'unqualified', - verified: true, - activity: 96, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 2730 - }, - { - id: 1257, - name: 'Kimberlie Duenas', - country: { - name: 'Bulgaria', - code: 'bg' - }, - company: 'Mid Contntl Rlty \u0026 Prop Mgmt', - date: '2015-07-27', - status: 'qualified', - verified: true, - activity: 96, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 71836 - }, - { - id: 1258, - name: 'Martina Staback', - country: { - name: 'Luxembourg', - code: 'lu' - }, - company: 'Ace Signs Inc', - date: '2017-02-14', - status: 'new', - verified: true, - activity: 47, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 37044 - }, - { - id: 1259, - name: 'Skye Fillingim', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Rodeway Inn', - date: '2017-02-12', - status: 'new', - verified: true, - activity: 86, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 5990 - }, - { - id: 1260, - name: 'Jade Farrar', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'Bonnet \u0026 Daughter', - date: '2017-02-23', - status: 'new', - verified: true, - activity: 73, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 7878 - }, - { - id: 1261, - name: 'Charlene Hamilton', - country: { - name: 'India', - code: 'in' - }, - company: 'Oshins \u0026 Gibbons', - date: '2017-09-23', - status: 'unqualified', - verified: true, - activity: 32, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 38077 - }, - { - id: 1262, - name: 'Geoffrey Acey', - country: { - name: 'Hong Kong', - code: 'hk' - }, - company: 'Price Business Services', - date: '2019-10-11', - status: 'negotiation', - verified: true, - activity: 98, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 24537 - }, - { - id: 1263, - name: 'Stevie Westerbeck', - country: { - name: 'Lithuania', - code: 'lt' - }, - company: 'Wise, Dennis W Md', - date: '2017-08-01', - status: 'renewal', - verified: true, - activity: 57, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 19164 - }, - { - id: 1264, - name: 'Pamella Fortino', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Super 8 Motel', - date: '2018-09-03', - status: 'new', - verified: true, - activity: 100, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 21880 - }, - { - id: 1265, - name: 'Harrison Haufler', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'John Wagner Associates', - date: '2016-08-25', - status: 'qualified', - verified: true, - activity: 85, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 14975 - }, - { - id: 1266, - name: 'Johnna Engelberg', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Thrifty Oil Co', - date: '2019-06-02', - status: 'renewal', - verified: true, - activity: 1, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 28001 - }, - { - id: 1267, - name: 'Buddy Cloney', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Larkfield Photo', - date: '2020-05-14', - status: 'qualified', - verified: true, - activity: 9, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 44811 - }, - { - id: 1268, - name: 'Dalene Riden', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Silverman Planetarium', - date: '2019-08-23', - status: 'renewal', - verified: true, - activity: 31, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 70963 - }, - { - id: 1269, - name: 'Jerry Zurcher', - country: { - name: 'Ukraine', - code: 'ua' - }, - company: 'J \u0026 F Lumber', - date: '2015-05-11', - status: 'renewal', - verified: true, - activity: 52, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 27808 - }, - { - id: 1270, - name: 'Haydee Denooyer', - country: { - name: 'Ivory Coast', - code: 'ci' - }, - company: 'Cleaning Station Inc', - date: '2016-04-17', - status: 'qualified', - verified: true, - activity: 80, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 41216 - }, - { - id: 1271, - name: 'Joseph Cryer', - country: { - name: 'Philippines', - code: 'ph' - }, - company: 'Ames Stationers', - date: '2019-11-26', - status: 'qualified', - verified: true, - activity: 53, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 8819 - }, - { - id: 1272, - name: 'Deonna Kippley', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Midas Muffler Shops', - date: '2017-08-26', - status: 'qualified', - verified: true, - activity: 52, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 77610 - }, - { - id: 1273, - name: 'Raymon Calvaresi', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Seaboard Securities Inc', - date: '2017-07-09', - status: 'qualified', - verified: true, - activity: 45, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 80612 - }, - { - id: 1274, - name: 'Alecia Bubash', - country: { - name: 'Poland', - code: 'pl' - }, - company: 'Petersen, James E Esq', - date: '2016-05-19', - status: 'new', - verified: false, - activity: 28, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 45311 - }, - { - id: 1275, - name: 'Ma Layous', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Development Authority', - date: '2016-02-11', - status: 'qualified', - verified: false, - activity: 2, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 88737 - }, - { - id: 1276, - name: 'Detra Coyier', - country: { - name: 'Ivory Coast', - code: 'ci' - }, - company: 'Schott Fiber Optics Inc', - date: '2019-06-05', - status: 'negotiation', - verified: true, - activity: 95, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 13224 - }, - { - id: 1277, - name: 'Terrilyn Rodeigues', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Stuart J Agins', - date: '2016-08-04', - status: 'renewal', - verified: true, - activity: 35, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 64656 - }, - { - id: 1278, - name: 'Salome Lacovara', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Mitsumi Electronics Corp', - date: '2015-06-05', - status: 'unqualified', - verified: true, - activity: 78, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 61947 - }, - { - id: 1279, - name: 'Garry Keetch', - country: { - name: 'Luxembourg', - code: 'lu' - }, - company: 'Italian Express Franchise Corp', - date: '2015-06-20', - status: 'unqualified', - verified: true, - activity: 86, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 6380 - }, - { - id: 1280, - name: 'Matthew Neither', - country: { - name: 'United Kingdom', - code: 'gb' - }, - company: 'American Council On Sci \u0026 Hlth', - date: '2018-06-24', - status: 'qualified', - verified: true, - activity: 4, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 80112 - }, - { - id: 1281, - name: 'Theodora Restrepo', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Kleri, Patricia S Esq', - date: '2017-08-15', - status: 'renewal', - verified: true, - activity: 66, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 42038 - }, - { - id: 1282, - name: 'Noah Kalafatis', - country: { - name: 'Saudi Arabia', - code: 'sa' - }, - company: 'Twiggs Abrams Blanchard', - date: '2020-06-24', - status: 'negotiation', - verified: true, - activity: 35, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 36052 - }, - { - id: 1283, - name: 'Carmen Sweigard', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Maui Research \u0026 Technology Pk', - date: '2019-08-08', - status: 'new', - verified: true, - activity: 96, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 51660 - }, - { - id: 1284, - name: 'Lavonda Hengel', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Bradley Nameplate Corp', - date: '2019-10-25', - status: 'negotiation', - verified: true, - activity: 48, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 56142 - }, - { - id: 1285, - name: 'Junita Stoltzman', - country: { - name: 'Turkey', - code: 'tr' - }, - company: 'Geonex Martel Inc', - date: '2015-03-19', - status: 'negotiation', - verified: true, - activity: 64, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 21631 - }, - { - id: 1286, - name: 'Herminia Nicolozakes', - country: { - name: 'Venezuela', - code: 've' - }, - company: 'Sea Island Div Of Fstr Ind Inc', - date: '2019-09-09', - status: 'negotiation', - verified: true, - activity: 0, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 59171 - }, - { - id: 1287, - name: 'Casie Good', - country: { - name: 'Japan', - code: 'jp' - }, - company: 'Papay, Debbie J Esq', - date: '2016-11-27', - status: 'new', - verified: true, - activity: 87, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 97858 - }, - { - id: 1288, - name: 'Reena Maisto', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Lane Promotions', - date: '2016-08-22', - status: 'new', - verified: true, - activity: 16, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 90388 - }, - { - id: 1289, - name: 'Mirta Mallett', - country: { - name: 'Singapore', - code: 'sg' - }, - company: 'Stephen Kennerly Archts Inc Pc', - date: '2017-11-27', - status: 'renewal', - verified: true, - activity: 14, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 68632 - }, - { - id: 1290, - name: 'Cathrine Pontoriero', - country: { - name: 'Finland', - code: 'fi' - }, - company: 'Business Systems Of Wis Inc', - date: '2020-02-07', - status: 'negotiation', - verified: true, - activity: 58, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 95552 - }, - { - id: 1291, - name: 'Filiberto Tawil', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Flash, Elena Salerno Esq', - date: '2018-01-28', - status: 'negotiation', - verified: true, - activity: 0, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 39725 - }, - { - id: 1292, - name: 'Raul Upthegrove', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Neeley, Gregory W Esq', - date: '2019-11-16', - status: 'renewal', - verified: true, - activity: 59, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 62251 - }, - { - id: 1293, - name: 'Sarah Candlish', - country: { - name: 'Hong Kong', - code: 'hk' - }, - company: 'Alabama Educational Tv Comm', - date: '2019-06-09', - status: 'negotiation', - verified: true, - activity: 30, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 73523 - }, - { - id: 1294, - name: 'Lucy Treston', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: 'Franz Inc', - date: '2017-02-07', - status: 'negotiation', - verified: true, - activity: 59, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 41331 - }, - { - id: 1295, - name: 'Judy Aquas', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Plantation Restaurant', - date: '2020-09-14', - status: 'renewal', - verified: true, - activity: 86, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 24208 - }, - { - id: 1296, - name: 'Yvonne Tjepkema', - country: { - name: 'United Kingdom', - code: 'gb' - }, - company: 'Radio Communications Co', - date: '2017-01-06', - status: 'renewal', - verified: true, - activity: 33, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 56409 - }, - { - id: 1297, - name: 'Kayleigh Lace', - country: { - name: 'Denmark', - code: 'dk' - }, - company: 'Dentalaw Divsn Hlth Care', - date: '2019-11-04', - status: 'negotiation', - verified: true, - activity: 70, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 70025 - }, - { - id: 1298, - name: 'Felix Hirpara', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'American Speedy Printing Ctrs', - date: '2015-03-13', - status: 'new', - verified: true, - activity: 8, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 88115 - }, - { - id: 1299, - name: 'Tresa Sweely', - country: { - name: 'Germany', - code: 'de' - }, - company: 'Grayson, Grant S Esq', - date: '2019-12-22', - status: 'negotiation', - verified: true, - activity: 22, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 69703 - }, - { - id: 1300, - name: 'Kristeen Turinetti', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Jeanerette Middle School', - date: '2017-09-28', - status: 'new', - verified: true, - activity: 67, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 10718 - }, - { - id: 1301, - name: 'Jenelle Regusters', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Haavisto, Brian F Esq', - date: '2019-07-27', - status: 'qualified', - verified: true, - activity: 13, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 29825 - }, - { - id: 1302, - name: 'Renea Monterrubio', - country: { - name: 'Greece', - code: 'gr' - }, - company: 'Wmmt Radio Station', - date: '2016-03-28', - status: 'negotiation', - verified: true, - activity: 73, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 90351 - }, - { - id: 1303, - name: 'Olive Matuszak', - country: { - name: 'Germany', - code: 'de' - }, - company: 'Colony Paints Sales Ofc \u0026 Plnt', - date: '2018-04-15', - status: 'unqualified', - verified: true, - activity: 70, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 75682 - }, - { - id: 1304, - name: 'Ligia Reiber', - country: { - name: 'Cameroon', - code: 'cm' - }, - company: 'Floral Expressions', - date: '2017-02-02', - status: 'negotiation', - verified: true, - activity: 51, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 74935 - }, - { - id: 1305, - name: 'Christiane Eschberger', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Casco Services Inc', - date: '2018-03-27', - status: 'unqualified', - verified: true, - activity: 81, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 5254 - }, - { - id: 1306, - name: 'Goldie Schirpke', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Reuter, Arthur C Jr', - date: '2015-04-21', - status: 'renewal', - verified: true, - activity: 8, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 37306 - }, - { - id: 1307, - name: 'Loreta Timenez', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Kaminski, Katherine Andritsaki', - date: '2015-07-17', - status: 'negotiation', - verified: true, - activity: 29, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 70520 - }, - { - id: 1308, - name: 'Fabiola Hauenstein', - country: { - name: 'Czech Republic', - code: 'cz' - }, - company: 'Sidewinder Products Corp', - date: '2015-12-12', - status: 'renewal', - verified: true, - activity: 42, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 74510 - }, - { - id: 1309, - name: 'Amie Perigo', - country: { - name: 'Russia', - code: 'ru' - }, - company: 'General Foam Corporation', - date: '2016-06-13', - status: 'new', - verified: true, - activity: 55, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 74410 - }, - { - id: 1310, - name: 'Raina Brachle', - country: { - name: 'Greece', - code: 'gr' - }, - company: 'Ikg Borden Divsn Harsco Corp', - date: '2016-11-28', - status: 'negotiation', - verified: true, - activity: 12, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 56116 - }, - { - id: 1311, - name: 'Erinn Canlas', - country: { - name: 'United Kingdom', - code: 'gb' - }, - company: 'Anchor Computer Inc', - date: '2018-12-08', - status: 'negotiation', - verified: true, - activity: 89, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 46518 - }, - { - id: 1312, - name: 'Cherry Lietz', - country: { - name: 'Bulgaria', - code: 'bg' - }, - company: 'Sebring \u0026 Co', - date: '2017-11-04', - status: 'qualified', - verified: true, - activity: 22, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 92213 - }, - { - id: 1313, - name: 'Kattie Vonasek', - country: { - name: 'Austria', - code: 'at' - }, - company: 'H A C Farm Lines Co Optv Assoc', - date: '2017-02-17', - status: 'negotiation', - verified: true, - activity: 58, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 6405 - }, - { - id: 1314, - name: 'Lilli Scriven', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Hunter, John J Esq', - date: '2017-04-15', - status: 'qualified', - verified: true, - activity: 79, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 92900 - }, - { - id: 1315, - name: 'Whitley Tomasulo', - country: { - name: 'Qatar', - code: 'qa' - }, - company: 'Freehold Fence Co', - date: '2017-11-16', - status: 'qualified', - verified: true, - activity: 6, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 86727 - }, - { - id: 1316, - name: 'Barbra Adkin', - country: { - name: 'Nigeria', - code: 'ng' - }, - company: 'Binswanger', - date: '2019-07-24', - status: 'qualified', - verified: true, - activity: 64, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 48040 - }, - { - id: 1317, - name: 'Hermila Thyberg', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Chilton Malting Co', - date: '2016-11-05', - status: 'qualified', - verified: true, - activity: 57, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 24026 - }, - { - id: 1318, - name: 'Jesusita Flister', - country: { - name: 'Ukraine', - code: 'ua' - }, - company: 'Schoen, Edward J Jr', - date: '2017-03-03', - status: 'negotiation', - verified: true, - activity: 29, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 76388 - }, - { - id: 1319, - name: 'Caitlin Julia', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Helderman, Seymour Cpa', - date: '2018-03-13', - status: 'renewal', - verified: true, - activity: 19, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 89068 - }, - { - id: 1320, - name: 'Roosevelt Hoffis', - country: { - name: 'Puerto Rico', - code: 'pr' - }, - company: 'Denbrook, Myron', - date: '2019-04-14', - status: 'new', - verified: true, - activity: 49, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 12727 - }, - { - id: 1321, - name: 'Helaine Halter', - country: { - name: 'Estonia', - code: 'ee' - }, - company: 'Lippitt, Mike', - date: '2019-09-28', - status: 'renewal', - verified: true, - activity: 62, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 83411 - }, - { - id: 1322, - name: 'Lorean Martabano', - country: { - name: 'Slovakia', - code: 'sk' - }, - company: 'Hiram, Hogg P Esq', - date: '2017-03-23', - status: 'negotiation', - verified: true, - activity: 8, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 44242 - }, - { - id: 1323, - name: 'France Buzick', - country: { - name: 'Nigeria', - code: 'ng' - }, - company: 'In Travel Agency', - date: '2016-12-14', - status: 'renewal', - verified: true, - activity: 22, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 5644 - }, - { - id: 1324, - name: 'Justine Ferrario', - country: { - name: 'Ukraine', - code: 'ua' - }, - company: 'Newhart Foods Inc', - date: '2015-09-07', - status: 'unqualified', - verified: true, - activity: 7, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 29321 - }, - { - id: 1325, - name: 'Adelina Nabours', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'Courtyard By Marriott', - date: '2018-05-26', - status: 'renewal', - verified: true, - activity: 59, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 13353 - }, - { - id: 1326, - name: 'Derick Dhamer', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Studer, Eugene A Esq', - date: '2020-07-04', - status: 'new', - verified: true, - activity: 72, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 53454 - }, - { - id: 1327, - name: 'Jerry Dallen', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Seashore Supply Co Waretown', - date: '2015-10-23', - status: 'renewal', - verified: false, - activity: 21, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 30074 - }, - { - id: 1328, - name: 'Leota Ragel', - country: { - name: 'Qatar', - code: 'qa' - }, - company: 'Mayar Silk Inc', - date: '2019-06-15', - status: 'negotiation', - verified: true, - activity: 74, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 36310 - }, - { - id: 1329, - name: 'Jutta Amyot', - country: { - name: 'Cameroon', - code: 'cm' - }, - company: 'National Medical Excess Corp', - date: '2019-09-01', - status: 'negotiation', - verified: true, - activity: 8, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 27563 - }, - { - id: 1330, - name: 'Aja Gehrett', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'Stero Company', - date: '2018-01-28', - status: 'qualified', - verified: true, - activity: 46, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 45163 - }, - { - id: 1331, - name: 'Kirk Herritt', - country: { - name: 'Morocco', - code: 'ma' - }, - company: 'Hasting, H Duane Esq', - date: '2018-10-24', - status: 'renewal', - verified: false, - activity: 2, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 52970 - }, - { - id: 1332, - name: 'Leonora Mauson', - country: { - name: 'Hong Kong', - code: 'hk' - }, - company: 'Insty Prints', - date: '2019-02-02', - status: 'negotiation', - verified: true, - activity: 8, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 18922 - }, - { - id: 1333, - name: 'Winfred Brucato', - country: { - name: 'Austria', - code: 'at' - }, - company: 'Glenridge Manor Mobile Home Pk', - date: '2019-08-16', - status: 'renewal', - verified: true, - activity: 8, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 59632 - }, - { - id: 1334, - name: 'Tarra Nachor', - country: { - name: 'Panama', - code: 'pa' - }, - company: 'Circuit Solution Inc', - date: '2019-07-10', - status: 'negotiation', - verified: true, - activity: 88, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 6733 - }, - { - id: 1335, - name: 'Corinne Loder', - country: { - name: 'Brazil', - code: 'br' - }, - company: 'Local Office', - date: '2016-05-21', - status: 'negotiation', - verified: true, - activity: 85, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 22704 - }, - { - id: 1336, - name: 'Dulce Labreche', - country: { - name: 'South Africa', - code: 'za' - }, - company: 'Lee Kilkelly Paulson \u0026 Kabaker', - date: '2019-11-10', - status: 'qualified', - verified: true, - activity: 24, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 82613 - }, - { - id: 1337, - name: 'Kate Keneipp', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Davis, Maxon R Esq', - date: '2019-06-20', - status: 'negotiation', - verified: true, - activity: 44, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 97960 - }, - { - id: 1338, - name: 'Kaitlyn Ogg', - country: { - name: 'Tunisia', - code: 'tn' - }, - company: 'Garrison, Paul E Esq', - date: '2019-08-01', - status: 'negotiation', - verified: true, - activity: 91, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 63123 - }, - { - id: 1339, - name: 'Sherita Saras', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Black History Resource Center', - date: '2017-06-09', - status: 'unqualified', - verified: true, - activity: 79, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 38090 - }, - { - id: 1340, - name: 'Lashawnda Stuer', - country: { - name: 'Indonesia', - code: 'id' - }, - company: 'Rodriguez, J Christopher Esq', - date: '2018-01-08', - status: 'negotiation', - verified: true, - activity: 6, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 58826 - }, - { - id: 1341, - name: 'Ernest Syrop', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: 'Grant Family Health Center', - date: '2016-10-06', - status: 'unqualified', - verified: true, - activity: 90, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 22419 - }, - { - id: 1342, - name: 'Nobuko Halsey', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Goeman Wood Products Inc', - date: '2019-01-02', - status: 'unqualified', - verified: true, - activity: 72, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 86006 - }, - { - id: 1343, - name: 'Lavonna Wolny', - country: { - name: 'Czech Republic', - code: 'cz' - }, - company: 'Linhares, Kenneth A Esq', - date: '2019-03-09', - status: 'negotiation', - verified: true, - activity: 77, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 40641 - }, - { - id: 1344, - name: 'Lashaunda Lizama', - country: { - name: 'Ecuador', - code: 'ec' - }, - company: 'Earnhardt Printing', - date: '2016-02-16', - status: 'negotiation', - verified: true, - activity: 76, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 73493 - }, - { - id: 1345, - name: 'Mariann Bilden', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'H P G Industrys Inc', - date: '2019-12-15', - status: 'negotiation', - verified: true, - activity: 20, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 87704 - }, - { - id: 1346, - name: 'Helene Rodenberger', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Bailey Transportation Prod Inc', - date: '2016-09-22', - status: 'unqualified', - verified: true, - activity: 26, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 19662 - }, - { - id: 1347, - name: 'Roselle Estell', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Mcglynn Bliss Pc', - date: '2016-11-25', - status: 'negotiation', - verified: true, - activity: 80, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 80534 - }, - { - id: 1348, - name: 'Samira Heintzman', - country: { - name: 'Vietnam', - code: 'vn' - }, - company: 'Mutual Fish Co', - date: '2019-11-26', - status: 'qualified', - verified: true, - activity: 70, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 19473 - }, - { - id: 1349, - name: 'Margart Meisel', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'Yeates, Arthur L Aia', - date: '2019-10-27', - status: 'negotiation', - verified: true, - activity: 77, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 89796 - }, - { - id: 1350, - name: 'Kristofer Bennick', - country: { - name: 'Tunisia', - code: 'tn' - }, - company: 'Logan, Ronald J Esq', - date: '2016-02-13', - status: 'negotiation', - verified: true, - activity: 5, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 54429 - }, - { - id: 1351, - name: 'Weldon Acuff', - country: { - name: 'Estonia', - code: 'ee' - }, - company: 'Advantage Martgage Company', - date: '2019-10-22', - status: 'qualified', - verified: true, - activity: 38, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 16134 - }, - { - id: 1352, - name: 'Shalon Shadrick', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Germer And Gertz Llp', - date: '2015-01-03', - status: 'negotiation', - verified: true, - activity: 66, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 9173 - }, - { - id: 1353, - name: 'Denise Patak', - country: { - name: 'Uruguay', - code: 'uy' - }, - company: 'Spence Law Offices', - date: '2016-11-03', - status: 'qualified', - verified: true, - activity: 77, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 42857 - }, - { - id: 1354, - name: 'Louvenia Beech', - country: { - name: 'Ecuador', - code: 'ec' - }, - company: 'John Ortiz Nts Therapy Center', - date: '2016-04-11', - status: 'renewal', - verified: true, - activity: 62, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 54300 - }, - { - id: 1355, - name: 'Audry Yaw', - country: { - name: 'Portugal', - code: 'pt' - }, - company: 'Mike Uchrin Htg \u0026 Air Cond Inc', - date: '2017-11-22', - status: 'unqualified', - verified: true, - activity: 12, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 94652 - }, - { - id: 1356, - name: 'Kristel Ehmann', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Mccoy, Joy Reynolds Esq', - date: '2016-06-23', - status: 'new', - verified: true, - activity: 67, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 88295 - }, - { - id: 1357, - name: 'Vincenza Zepp', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Kbor 1600 Am', - date: '2016-01-04', - status: 'qualified', - verified: true, - activity: 25, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 92710 - }, - { - id: 1358, - name: 'Elouise Gwalthney', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'Quality Inn Northwest', - date: '2016-04-05', - status: 'negotiation', - verified: true, - activity: 14, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 25145 - }, - { - id: 1359, - name: 'Venita Maillard', - country: { - name: 'Poland', - code: 'pl' - }, - company: 'Wallace Church Assoc Inc', - date: '2016-03-23', - status: 'negotiation', - verified: true, - activity: 69, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 61630 - }, - { - id: 1360, - name: 'Kasandra Semidey', - country: { - name: 'Indonesia', - code: 'id' - }, - company: 'Can Tron', - date: '2015-09-03', - status: 'new', - verified: true, - activity: 25, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 66134 - }, - { - id: 1361, - name: 'Xochitl Discipio', - country: { - name: 'Slovakia', - code: 'sk' - }, - company: 'Ravaal Enterprises Inc', - date: '2016-11-14', - status: 'qualified', - verified: true, - activity: 47, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 14822 - }, - { - id: 1362, - name: 'Maile Linahan', - country: { - name: 'Nigeria', - code: 'ng' - }, - company: 'Thompson Steel Company Inc', - date: '2016-07-24', - status: 'new', - verified: true, - activity: 0, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 17759 - }, - { - id: 1363, - name: 'Krissy Rauser', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Anderson, Mark A Esq', - date: '2020-03-06', - status: 'renewal', - verified: true, - activity: 33, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 14922 - }, - { - id: 1364, - name: 'Pete Dubaldi', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Womack \u0026 Galich', - date: '2015-11-22', - status: 'unqualified', - verified: true, - activity: 31, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 96575 - }, - { - id: 1365, - name: 'Linn Paa', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Valerie \u0026 Company', - date: '2015-08-12', - status: 'unqualified', - verified: true, - activity: 26, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 5847 - }, - { - id: 1366, - name: 'Paris Wide', - country: { - name: 'Uruguay', - code: 'uy' - }, - company: 'Gehring Pumps Inc', - date: '2018-10-21', - status: 'negotiation', - verified: true, - activity: 90, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 22929 - }, - { - id: 1367, - name: 'Wynell Dorshorst', - country: { - name: 'Romania', - code: 'ro' - }, - company: 'Haehnel, Craig W Esq', - date: '2018-05-10', - status: 'new', - verified: true, - activity: 60, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 31837 - }, - { - id: 1368, - name: 'Quentin Birkner', - country: { - name: 'Senegal', - code: 'sn' - }, - company: 'Spoor Behrins Campbell \u0026 Young', - date: '2019-02-03', - status: 'unqualified', - verified: true, - activity: 68, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 27095 - }, - { - id: 1369, - name: 'Regenia Kannady', - country: { - name: 'Portugal', - code: 'pt' - }, - company: 'Ken Jeter Store Equipment Inc', - date: '2018-07-13', - status: 'new', - verified: true, - activity: 74, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 43696 - }, - { - id: 1370, - name: 'Sheron Louissant', - country: { - name: 'France', - code: 'fr' - }, - company: 'Potter, Brenda J Cpa', - date: '2017-01-04', - status: 'qualified', - verified: true, - activity: 86, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 79897 - }, - { - id: 1371, - name: 'Izetta Funnell', - country: { - name: 'Hong Kong', - code: 'hk' - }, - company: 'Baird Kurtz \u0026 Dobson', - date: '2019-11-05', - status: 'new', - verified: true, - activity: 67, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 27264 - }, - { - id: 1372, - name: 'Rodolfo Butzen', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Minor, Cynthia A Esq', - date: '2020-09-25', - status: 'negotiation', - verified: true, - activity: 17, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 16490 - }, - { - id: 1373, - name: 'Zona Colla', - country: { - name: 'Switzerland', - code: 'ch' - }, - company: 'Solove, Robert A Esq', - date: '2020-10-08', - status: 'negotiation', - verified: true, - activity: 64, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 21990 - }, - { - id: 1374, - name: 'Serina Zagen', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Mark Ii Imports Inc', - date: '2018-07-14', - status: 'negotiation', - verified: true, - activity: 46, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 11918 - }, - { - id: 1375, - name: 'Paz Sahagun', - country: { - name: 'Colombia', - code: 'co' - }, - company: 'White Sign Div Ctrl Equip Co', - date: '2018-03-23', - status: 'negotiation', - verified: true, - activity: 49, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 13268 - }, - { - id: 1376, - name: 'Markus Lukasik', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'M \u0026 M Store Fixtures Co Inc', - date: '2018-03-21', - status: 'negotiation', - verified: true, - activity: 23, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 15941 - }, - { - id: 1377, - name: 'Jaclyn Bachman', - country: { - name: 'Slovakia', - code: 'sk' - }, - company: 'Judah Caster \u0026 Wheel Co', - date: '2020-10-20', - status: 'new', - verified: true, - activity: 10, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 53132 - }, - { - id: 1378, - name: 'Cyril Daufeldt', - country: { - name: 'India', - code: 'in' - }, - company: 'Galaxy International Inc', - date: '2019-02-11', - status: 'qualified', - verified: true, - activity: 79, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 47531 - }, - { - id: 1379, - name: 'Gayla Schnitzler', - country: { - name: 'Brazil', - code: 'br' - }, - company: 'Sigma Corp Of America', - date: '2017-09-15', - status: 'new', - verified: true, - activity: 14, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 88950 - }, - { - id: 1380, - name: 'Erick Nievas', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Soward, Anne Esq', - date: '2018-10-07', - status: 'negotiation', - verified: false, - activity: 28, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 88497 - }, - { - id: 1381, - name: 'Jennie Drymon', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'Osborne, Michelle M Esq', - date: '2016-09-14', - status: 'negotiation', - verified: true, - activity: 80, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 60634 - }, - { - id: 1382, - name: 'Mitsue Scipione', - country: { - name: 'Ecuador', - code: 'ec' - }, - company: 'Students In Free Entrprs Natl', - date: '2019-07-28', - status: 'qualified', - verified: true, - activity: 24, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 21164 - }, - { - id: 1383, - name: 'Ciara Ventura', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'Johnson, Robert M Esq', - date: '2018-04-02', - status: 'renewal', - verified: false, - activity: 24, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 83645 - }, - { - id: 1384, - name: 'Galen Cantres', - country: { - name: 'Saudi Arabia', - code: 'sa' - }, - company: 'Del Charro Apartments', - date: '2020-02-16', - status: 'unqualified', - verified: true, - activity: 61, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 32433 - }, - { - id: 1385, - name: 'Truman Feichtner', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Legal Search Inc', - date: '2019-10-16', - status: 'renewal', - verified: true, - activity: 98, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 96983 - }, - { - id: 1386, - name: 'Gail Kitty', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Service Supply Co Inc', - date: '2020-01-15', - status: 'negotiation', - verified: true, - activity: 67, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 72211 - }, - { - id: 1387, - name: 'Dalene Schoeneck', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Sameshima, Douglas J Esq', - date: '2019-11-27', - status: 'negotiation', - verified: true, - activity: 85, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 40262 - }, - { - id: 1388, - name: 'Gertude Witten', - country: { - name: 'Morocco', - code: 'ma' - }, - company: 'Thompson, John Randolph Jr', - date: '2017-08-13', - status: 'negotiation', - verified: true, - activity: 40, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 91139 - }, - { - id: 1389, - name: 'Lizbeth Kohl', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'E T Balancing Co Inc', - date: '2019-04-20', - status: 'qualified', - verified: true, - activity: 57, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 79659 - }, - { - id: 1390, - name: 'Glenn Berray', - country: { - name: 'Poland', - code: 'pl' - }, - company: 'Griswold, John E Esq', - date: '2017-08-13', - status: 'negotiation', - verified: true, - activity: 68, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 93576 - }, - { - id: 1391, - name: 'Lashandra Klang', - country: { - name: 'Bulgaria', - code: 'bg' - }, - company: 'Acqua Group', - date: '2016-06-08', - status: 'negotiation', - verified: true, - activity: 32, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 93576 - }, - { - id: 1392, - name: 'Lenna Newville', - country: { - name: 'Venezuela', - code: 've' - }, - company: 'Brooks, Morris J Jr', - date: '2020-09-12', - status: 'qualified', - verified: true, - activity: 82, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 93576 - }, - { - id: 1393, - name: 'Laurel Pagliuca', - country: { - name: 'Russia', - code: 'ru' - }, - company: 'Printing Images Corp', - date: '2017-05-26', - status: 'unqualified', - verified: true, - activity: 21, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 2009 - }, - { - id: 1394, - name: 'Mireya Frerking', - country: { - name: 'Belarus', - code: 'by' - }, - company: 'Roberts Supply Co Inc', - date: '2017-04-21', - status: 'renewal', - verified: true, - activity: 54, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 35341 - }, - { - id: 1395, - name: 'Annelle Tagala', - country: { - name: 'Colombia', - code: 'co' - }, - company: 'Vico Products Mfg Co', - date: '2017-10-02', - status: 'negotiation', - verified: true, - activity: 53, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 13077 - }, - { - id: 1396, - name: 'Dean Ketelsen', - country: { - name: 'Ivory Coast', - code: 'ci' - }, - company: 'J M Custom Design Millwork', - date: '2019-07-25', - status: 'negotiation', - verified: true, - activity: 98, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 83423 - }, - { - id: 1397, - name: 'Levi Munis', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Farrell \u0026 Johnson Office Equip', - date: '2017-06-24', - status: 'negotiation', - verified: true, - activity: 39, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 14350 - }, - { - id: 1398, - name: 'Sylvie Ryser', - country: { - name: 'India', - code: 'in' - }, - company: 'Millers Market \u0026 Deli', - date: '2016-02-23', - status: 'unqualified', - verified: true, - activity: 89, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 98864 - }, - { - id: 1399, - name: 'Sharee Maile', - country: { - name: 'Ireland', - code: 'ie' - }, - company: 'Holiday Inn Naperville', - date: '2020-07-17', - status: 'renewal', - verified: true, - activity: 0, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 29326 - }, - { - id: 1400, - name: 'Cordelia Storment', - country: { - name: 'Guatemala', - code: 'gt' - }, - company: 'Burrows, Jon H Esq', - date: '2020-02-17', - status: 'negotiation', - verified: true, - activity: 45, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 81198 - }, - { - id: 1401, - name: 'Mollie Mcdoniel', - country: { - name: 'Vietnam', - code: 'vn' - }, - company: 'Dock Seal Specialty', - date: '2017-08-13', - status: 'unqualified', - verified: true, - activity: 59, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 82391 - }, - { - id: 1402, - name: 'Brett Mccullan', - country: { - name: 'Senegal', - code: 'sn' - }, - company: 'Five Star Limousines Of Tx Inc', - date: '2015-05-21', - status: 'qualified', - verified: true, - activity: 9, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 48071 - }, - { - id: 1403, - name: 'Teddy Pedrozo', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Barkan, Neal J Esq', - date: '2019-02-19', - status: 'negotiation', - verified: true, - activity: 38, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 14593 - }, - { - id: 1404, - name: 'Tasia Andreason', - country: { - name: 'Venezuela', - code: 've' - }, - company: 'Campbell, Robert A', - date: '2016-03-06', - status: 'renewal', - verified: true, - activity: 25, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 8750 - }, - { - id: 1405, - name: 'Hubert Walthall', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'Dee, Deanna', - date: '2020-12-19', - status: 'renewal', - verified: true, - activity: 32, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 39655 - }, - { - id: 1406, - name: 'Arthur Farrow', - country: { - name: 'Brazil', - code: 'br' - }, - company: 'Young, Timothy L Esq', - date: '2019-02-05', - status: 'negotiation', - verified: true, - activity: 55, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 71713 - }, - { - id: 1407, - name: 'Vilma Berlanga', - country: { - name: 'Tunisia', - code: 'tn' - }, - company: 'Wells, D Fred Esq', - date: '2016-02-09', - status: 'unqualified', - verified: false, - activity: 26, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 81056 - }, - { - id: 1408, - name: 'Billye Miro', - country: { - name: 'Hungary', - code: 'hu' - }, - company: 'Gray, Francine H Esq', - date: '2015-09-05', - status: 'new', - verified: true, - activity: 70, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 34220 - }, - { - id: 1409, - name: 'Glenna Slayton', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Toledo Iv Care', - date: '2016-03-10', - status: 'unqualified', - verified: true, - activity: 86, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 21459 - }, - { - id: 1410, - name: 'Mitzie Hudnall', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Cangro Transmission Co', - date: '2020-05-04', - status: 'new', - verified: true, - activity: 19, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 51281 - }, - { - id: 1411, - name: 'Bernardine Rodefer', - country: { - name: 'Switzerland', - code: 'ch' - }, - company: 'Sat Poly Inc', - date: '2020-10-19', - status: 'negotiation', - verified: true, - activity: 69, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 53841 - }, - { - id: 1412, - name: 'Staci Schmaltz', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Midwest Contracting \u0026 Mfg Inc', - date: '2018-03-14', - status: 'unqualified', - verified: true, - activity: 81, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 34878 - }, - { - id: 1413, - name: 'Nichelle Meteer', - country: { - name: 'Denmark', - code: 'dk' - }, - company: 'Print Doctor', - date: '2016-09-23', - status: 'renewal', - verified: true, - activity: 39, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 85399 - }, - { - id: 1414, - name: 'Janine Rhoden', - country: { - name: 'Nigeria', - code: 'ng' - }, - company: 'Nordic Group Inc', - date: '2018-08-13', - status: 'qualified', - verified: true, - activity: 95, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 29237 - }, - { - id: 1415, - name: 'Ettie Hoopengardner', - country: { - name: 'Switzerland', - code: 'ch' - }, - company: 'Jackson Millwork Co', - date: '2017-07-24', - status: 'renewal', - verified: false, - activity: 23, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 12179 - }, - { - id: 1416, - name: 'Eden Jayson', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'Harris Corporation', - date: '2018-03-15', - status: 'renewal', - verified: true, - activity: 9, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 27840 - }, - { - id: 1417, - name: 'Lynelle Auber', - country: { - name: 'Netherlands', - code: 'nl' - }, - company: 'United Cerebral Palsy Of Ne Pa', - date: '2020-12-11', - status: 'negotiation', - verified: true, - activity: 0, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 51958 - }, - { - id: 1418, - name: 'Merissa Tomblin', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: 'One Day Surgery Center Inc', - date: '2018-03-05', - status: 'new', - verified: true, - activity: 50, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 33138 - }, - { - id: 1419, - name: 'Golda Kaniecki', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Calaveras Prospect', - date: '2019-04-17', - status: 'negotiation', - verified: true, - activity: 91, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 82539 - }, - { - id: 1420, - name: 'Catarina Gleich', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Terk, Robert E Esq', - date: '2017-01-26', - status: 'unqualified', - verified: true, - activity: 12, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 5619 - }, - { - id: 1421, - name: 'Virgie Kiel', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Cullen, Terrence P Esq', - date: '2016-06-28', - status: 'renewal', - verified: true, - activity: 89, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 44763 - }, - { - id: 1422, - name: 'Jolene Ostolaza', - country: { - name: 'Puerto Rico', - code: 'pr' - }, - company: 'Central Die Casting Mfg Co Inc', - date: '2016-08-08', - status: 'negotiation', - verified: true, - activity: 85, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 97208 - }, - { - id: 1423, - name: 'Keneth Borgman', - country: { - name: 'Qatar', - code: 'qa' - }, - company: 'Centerline Engineering', - date: '2019-02-04', - status: 'unqualified', - verified: true, - activity: 41, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 93316 - }, - { - id: 1424, - name: 'Rikki Nayar', - country: { - name: 'Norway', - code: 'no' - }, - company: 'Targan \u0026 Kievit Pa', - date: '2017-03-06', - status: 'negotiation', - verified: true, - activity: 47, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 23786 - }, - { - id: 1425, - name: 'Elke Sengbusch', - country: { - name: 'Canada', - code: 'ca' - }, - company: 'Riley Riper Hollin \u0026 Colagreco', - date: '2019-05-28', - status: 'renewal', - verified: true, - activity: 76, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 98367 - }, - { - id: 1426, - name: 'Hoa Sarao', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'Kaplan, Joel S Esq', - date: '2020-08-13', - status: 'negotiation', - verified: true, - activity: 0, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 68683 - }, - { - id: 1427, - name: 'Trinidad Mcrae', - country: { - name: 'Burkina Faso', - code: 'bf' - }, - company: 'Water Office', - date: '2020-12-26', - status: 'renewal', - verified: true, - activity: 76, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 85602 - }, - { - id: 1428, - name: 'Mari Lueckenbach', - country: { - name: 'Cuba', - code: 'cu' - }, - company: 'Westbrooks, Nelson E Jr', - date: '2017-10-27', - status: 'new', - verified: true, - activity: 34, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 14402 - }, - { - id: 1429, - name: 'Selma Husser', - country: { - name: 'Morocco', - code: 'ma' - }, - company: 'Armon Communications', - date: '2018-02-16', - status: 'negotiation', - verified: true, - activity: 84, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 81608 - }, - { - id: 1430, - name: 'Antione Onofrio', - country: { - name: 'Taiwan', - code: 'tw' - }, - company: 'Jacobs \u0026 Gerber Inc', - date: '2017-11-07', - status: 'negotiation', - verified: true, - activity: 37, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 15573 - }, - { - id: 1431, - name: 'Luisa Jurney', - country: { - name: 'Canada', - code: 'ca' - }, - company: 'Forest Fire Laboratory', - date: '2018-06-12', - status: 'unqualified', - verified: true, - activity: 96, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 50121 - }, - { - id: 1432, - name: 'Clorinda Heimann', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Haughey, Charles Jr', - date: '2016-11-03', - status: 'negotiation', - verified: true, - activity: 63, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 93911 - }, - { - id: 1433, - name: 'Dick Wenzinger', - country: { - name: 'Mexico', - code: 'mx' - }, - company: 'Wheaton Plastic Products', - date: '2017-04-05', - status: 'negotiation', - verified: true, - activity: 92, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 66383 - }, - { - id: 1434, - name: 'Ahmed Angalich', - country: { - name: 'Australia', - code: 'au' - }, - company: 'Reese Plastics', - date: '2018-11-20', - status: 'unqualified', - verified: true, - activity: 83, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 89183 - }, - { - id: 1435, - name: 'Iluminada Ohms', - country: { - name: 'Croatia', - code: 'hr' - }, - company: 'Nazette Marner Good Wendt', - date: '2015-08-18', - status: 'negotiation', - verified: true, - activity: 66, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 9752 - }, - { - id: 1436, - name: 'Joanna Leinenbach', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Levinson Axelrod Wheaton', - date: '2016-02-11', - status: 'negotiation', - verified: true, - activity: 64, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 2623 - }, - { - id: 1437, - name: 'Caprice Suell', - country: { - name: 'Algeria', - code: 'dz' - }, - company: 'Egnor, W Dan Esq', - date: '2018-07-09', - status: 'unqualified', - verified: true, - activity: 99, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 87620 - }, - { - id: 1438, - name: 'Stephane Myricks', - country: { - name: 'Honduras', - code: 'hn' - }, - company: 'Portland Central Thriftlodge', - date: '2018-05-28', - status: 'renewal', - verified: true, - activity: 51, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 14625 - }, - { - id: 1439, - name: 'Quentin Swayze', - country: { - name: 'Tunisia', - code: 'tn' - }, - company: 'Ulbrich Trucking', - date: '2019-02-11', - status: 'negotiation', - verified: true, - activity: 37, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 39339 - }, - { - id: 1440, - name: 'Annmarie Castros', - country: { - name: 'Jamaica', - code: 'jm' - }, - company: 'Tipiak Inc', - date: '2015-08-24', - status: 'qualified', - verified: true, - activity: 46, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 77704 - }, - { - id: 1441, - name: 'Shonda Greenbush', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'Saint George Well Drilling', - date: '2018-06-01', - status: 'negotiation', - verified: true, - activity: 16, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 75326 - }, - { - id: 1442, - name: 'Cecil Lapage', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Hawkes, Douglas D', - date: '2018-11-09', - status: 'qualified', - verified: true, - activity: 43, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 71364 - }, - { - id: 1443, - name: 'Jeanice Claucherty', - country: { - name: 'Lithuania', - code: 'lt' - }, - company: 'Accurel Systems Intrntl Corp', - date: '2016-06-02', - status: 'qualified', - verified: true, - activity: 48, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 73360 - }, - { - id: 1444, - name: 'Josphine Villanueva', - country: { - name: 'Japan', - code: 'jp' - }, - company: 'Santa Cruz Community Internet', - date: '2019-11-08', - status: 'unqualified', - verified: true, - activity: 39, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 59442 - }, - { - id: 1445, - name: 'Daniel Perruzza', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Gersh \u0026 Danielson', - date: '2017-09-24', - status: 'renewal', - verified: true, - activity: 86, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 84338 - }, - { - id: 1446, - name: 'Cassi Wildfong', - country: { - name: 'Tunisia', - code: 'tn' - }, - company: 'Cobb, James O Esq', - date: '2015-09-08', - status: 'qualified', - verified: true, - activity: 85, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 72545 - }, - { - id: 1447, - name: 'Britt Galam', - country: { - name: 'Poland', - code: 'pl' - }, - company: 'Wheatley Trucking Company', - date: '2020-10-26', - status: 'new', - verified: true, - activity: 69, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 53307 - }, - { - id: 1448, - name: 'Adell Lipkin', - country: { - name: 'Saudi Arabia', - code: 'sa' - }, - company: 'Systems Graph Inc Ab Dick Dlr', - date: '2017-05-09', - status: 'unqualified', - verified: true, - activity: 92, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 12178 - }, - { - id: 1449, - name: 'Jacqueline Rowling', - country: { - name: 'Qatar', - code: 'qa' - }, - company: 'John Hancock Mutl Life Ins Co', - date: '2019-06-28', - status: 'negotiation', - verified: true, - activity: 79, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 35576 - }, - { - id: 1450, - name: 'Lonny Weglarz', - country: { - name: 'Chile', - code: 'cl' - }, - company: 'History Division Of State', - date: '2016-08-12', - status: 'new', - verified: true, - activity: 49, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 20507 - }, - { - id: 1451, - name: 'Lonna Diestel', - country: { - name: 'Philippines', - code: 'ph' - }, - company: 'Dimmock, Thomas J Esq', - date: '2017-02-10', - status: 'negotiation', - verified: true, - activity: 9, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 56415 - }, - { - id: 1452, - name: 'Cristal Samara', - country: { - name: 'Australia', - code: 'au' - }, - company: 'Intermed Inc', - date: '2016-08-17', - status: 'qualified', - verified: true, - activity: 99, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 33427 - }, - { - id: 1453, - name: 'Kenneth Grenet', - country: { - name: 'Croatia', - code: 'hr' - }, - company: 'Bank Of New York', - date: '2020-07-24', - status: 'negotiation', - verified: true, - activity: 78, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 44004 - }, - { - id: 1454, - name: 'Elli Mclaird', - country: { - name: 'Switzerland', - code: 'ch' - }, - company: 'Sportmaster Intrnatl', - date: '2017-06-10', - status: 'qualified', - verified: true, - activity: 61, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 37227 - }, - { - id: 1455, - name: 'Alline Jeanty', - country: { - name: 'Denmark', - code: 'dk' - }, - company: 'W W John Holden Inc', - date: '2015-12-08', - status: 'renewal', - verified: true, - activity: 74, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 44560 - }, - { - id: 1456, - name: 'Sharika Eanes', - country: { - name: 'Chile', - code: 'cl' - }, - company: 'Maccani \u0026 Delp', - date: '2018-08-16', - status: 'qualified', - verified: true, - activity: 14, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 50922 - }, - { - id: 1457, - name: 'Nu Mcnease', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Amazonia Film Project', - date: '2018-07-03', - status: 'negotiation', - verified: true, - activity: 47, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 61262 - }, - { - id: 1458, - name: 'Daniela Comnick', - country: { - name: 'Tunisia', - code: 'tn' - }, - company: 'Water \u0026 Sewer Department', - date: '2017-07-07', - status: 'negotiation', - verified: true, - activity: 31, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 13459 - }, - { - id: 1459, - name: 'Cecilia Colaizzo', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'Switchcraft Inc', - date: '2019-06-08', - status: 'negotiation', - verified: true, - activity: 21, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 52299 - }, - { - id: 1460, - name: 'Leslie Threets', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'C W D C Metal Fabricators', - date: '2016-11-26', - status: 'unqualified', - verified: true, - activity: 50, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 61040 - }, - { - id: 1461, - name: 'Nan Koppinger', - country: { - name: 'Norway', - code: 'no' - }, - company: 'Shimotani, Grace T', - date: '2020-11-15', - status: 'negotiation', - verified: true, - activity: 94, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 91297 - }, - { - id: 1462, - name: 'Izetta Dewar', - country: { - name: 'Cuba', - code: 'cu' - }, - company: 'Lisatoni, Jean Esq', - date: '2019-11-22', - status: 'renewal', - verified: true, - activity: 41, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 39947 - }, - { - id: 1463, - name: 'Tegan Arceo', - country: { - name: 'Iceland', - code: 'is' - }, - company: 'Ceramic Tile Sales Inc', - date: '2016-08-07', - status: 'new', - verified: true, - activity: 79, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 78224 - }, - { - id: 1464, - name: 'Ruthann Keener', - country: { - name: 'Morocco', - code: 'ma' - }, - company: 'Maiden Craft Inc', - date: '2019-04-25', - status: 'negotiation', - verified: true, - activity: 43, - representative: { - name: 'Elwin Sharvill', - image: 'elwinsharvill.png' - }, - balance: 22727 - }, - { - id: 1465, - name: 'Joni Breland', - country: { - name: 'Uruguay', - code: 'uy' - }, - company: 'Carriage House Cllsn Rpr Inc', - date: '2018-07-20', - status: 'new', - verified: true, - activity: 18, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 70650 - }, - { - id: 1466, - name: 'Vi Rentfro', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Video Workshop', - date: '2018-10-01', - status: 'negotiation', - verified: true, - activity: 99, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 45956 - }, - { - id: 1467, - name: 'Colette Kardas', - country: { - name: 'Honduras', - code: 'hn' - }, - company: 'Fresno Tile Center Inc', - date: '2017-08-22', - status: 'new', - verified: true, - activity: 14, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 72627 - }, - { - id: 1468, - name: 'Malcolm Tromblay', - country: { - name: 'Uruguay', - code: 'uy' - }, - company: 'Versatile Sash \u0026 Woodwork', - date: '2019-11-25', - status: 'renewal', - verified: true, - activity: 23, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 80176 - }, - { - id: 1469, - name: 'Ryan Harnos', - country: { - name: 'Paraguay', - code: 'py' - }, - company: 'Warner Electric Brk \u0026 Cltch Co', - date: '2019-02-12', - status: 'qualified', - verified: true, - activity: 71, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 97227 - }, - { - id: 1470, - name: 'Jess Chaffins', - country: { - name: 'Belarus', - code: 'by' - }, - company: 'New York Public Library', - date: '2017-02-12', - status: 'qualified', - verified: true, - activity: 91, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 63121 - }, - { - id: 1471, - name: 'Sharen Bourbon', - country: { - name: 'Saudi Arabia', - code: 'sa' - }, - company: 'Mccaleb, John A Esq', - date: '2017-06-13', - status: 'renewal', - verified: true, - activity: 35, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 44726 - }, - { - id: 1472, - name: 'Nickolas Juvera', - country: { - name: 'Finland', - code: 'fi' - }, - company: 'United Oil Co Inc', - date: '2019-01-06', - status: 'negotiation', - verified: true, - activity: 14, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 70748 - }, - { - id: 1473, - name: 'Gary Nunlee', - country: { - name: 'Turkey', - code: 'tr' - }, - company: 'Irving Foot Center', - date: '2015-07-22', - status: 'renewal', - verified: true, - activity: 72, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 71061 - }, - { - id: 1474, - name: 'Diane Devreese', - country: { - name: 'Bolivia', - code: 'bo' - }, - company: 'Acme Supply Co', - date: '2018-05-13', - status: 'renewal', - verified: true, - activity: 78, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 7486 - }, - { - id: 1475, - name: 'Roslyn Chavous', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Mcrae, James L', - date: '2018-03-20', - status: 'negotiation', - verified: true, - activity: 45, - representative: { - name: 'Bernardo Dominic', - image: 'bernardodominic.png' - }, - balance: 58495 - }, - { - id: 1476, - name: 'Glory Schieler', - country: { - name: 'Italy', - code: 'it' - }, - company: 'Mcgraths Seafood', - date: '2017-05-13', - status: 'negotiation', - verified: true, - activity: 34, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 96252 - }, - { - id: 1477, - name: 'Rasheeda Sayaphon', - country: { - name: 'Latvia', - code: 'lv' - }, - company: 'Kummerer, J Michael Esq', - date: '2017-02-21', - status: 'negotiation', - verified: true, - activity: 12, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 71454 - }, - { - id: 1478, - name: 'Alpha Palaia', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'Stoffer, James M Jr', - date: '2017-07-21', - status: 'renewal', - verified: true, - activity: 4, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 81894 - }, - { - id: 1479, - name: 'Refugia Jacobos', - country: { - name: 'China', - code: 'cn' - }, - company: 'North Central Fl Sfty Cncl', - date: '2020-11-25', - status: 'negotiation', - verified: true, - activity: 18, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 31601 - }, - { - id: 1480, - name: 'Shawnda Yori', - country: { - name: 'Luxembourg', - code: 'lu' - }, - company: 'Fiorucci Foods Usa Inc', - date: '2018-05-09', - status: 'unqualified', - verified: true, - activity: 11, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 12090 - }, - { - id: 1481, - name: 'Mona Delasancha', - country: { - name: 'Hong Kong', - code: 'hk' - }, - company: 'Sign All', - date: '2017-10-06', - status: 'renewal', - verified: true, - activity: 61, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 24073 - }, - { - id: 1482, - name: 'Gilma Liukko', - country: { - name: 'Morocco', - code: 'ma' - }, - company: 'Sammys Steak Den', - date: '2018-10-06', - status: 'unqualified', - verified: true, - activity: 34, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 35129 - }, - { - id: 1483, - name: 'Janey Gabisi', - country: { - name: 'Israel', - code: 'il' - }, - company: 'Dobscha, Stephen F Esq', - date: '2019-05-22', - status: 'unqualified', - verified: true, - activity: 38, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 25518 - }, - { - id: 1484, - name: 'Lili Paskin', - country: { - name: 'Costa Rica', - code: 'cr' - }, - company: 'Morgan Custom Homes', - date: '2018-06-11', - status: 'unqualified', - verified: true, - activity: 69, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 7300 - }, - { - id: 1485, - name: 'Loren Asar', - country: { - name: 'Italy', - code: 'it' - }, - company: 'Olsen Payne \u0026 Company', - date: '2017-12-11', - status: 'unqualified', - verified: true, - activity: 16, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 82949 - }, - { - id: 1486, - name: 'Dorothy Chesterfield', - country: { - name: 'Spain', - code: 'es' - }, - company: 'Cowan \u0026 Kelly', - date: '2015-08-11', - status: 'renewal', - verified: true, - activity: 31, - representative: { - name: 'Anna Fali', - image: 'annafali.png' - }, - balance: 25044 - }, - { - id: 1487, - name: 'Gail Similton', - country: { - name: 'Malaysia', - code: 'my' - }, - company: 'Johnson, Wes Esq', - date: '2016-08-10', - status: 'qualified', - verified: true, - activity: 63, - representative: { - name: 'Xuxue Feng', - image: 'xuxuefeng.png' - }, - balance: 97553 - }, - { - id: 1488, - name: 'Catalina Tillotson', - country: { - name: 'Pakistan', - code: 'pk' - }, - company: 'Icn Pharmaceuticals Inc', - date: '2018-08-04', - status: 'negotiation', - verified: true, - activity: 13, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 38294 - }, - { - id: 1489, - name: 'Lawrence Lorens', - country: { - name: 'Egypt', - code: 'eg' - }, - company: 'New England Sec Equip Co Inc', - date: '2020-04-15', - status: 'negotiation', - verified: true, - activity: 82, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 56617 - }, - { - id: 1490, - name: 'Carlee Boulter', - country: { - name: 'Vietnam', - code: 'vn' - }, - company: 'Tippett, Troy M Ii', - date: '2016-09-22', - status: 'renewal', - verified: true, - activity: 71, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 76817 - }, - { - id: 1491, - name: 'Thaddeus Ankeny', - country: { - name: 'Qatar', - code: 'qa' - }, - company: 'Atc Contracting', - date: '2015-03-08', - status: 'unqualified', - verified: true, - activity: 78, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 80787 - }, - { - id: 1492, - name: 'Jovita Oles', - country: { - name: 'Sweden', - code: 'se' - }, - company: 'Pagano, Philip G Esq', - date: '2019-07-18', - status: 'negotiation', - verified: true, - activity: 42, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 4158 - }, - { - id: 1493, - name: 'Alesia Hixenbaugh', - country: { - name: 'Thailand', - code: 'th' - }, - company: 'Kwikprint', - date: '2017-07-24', - status: 'negotiation', - verified: false, - activity: 23, - representative: { - name: 'Ivan Magalhaes', - image: 'ivanmagalhaes.png' - }, - balance: 66993 - }, - { - id: 1494, - name: 'Lai Harabedian', - country: { - name: 'Serbia', - code: 'rs' - }, - company: 'Buergi \u0026 Madden Scale', - date: '2018-11-11', - status: 'new', - verified: true, - activity: 28, - representative: { - name: 'Asiya Javayant', - image: 'asiyajavayant.png' - }, - balance: 53330 - }, - { - id: 1495, - name: 'Brittni Gillaspie', - country: { - name: 'Senegal', - code: 'sn' - }, - company: 'Inner Label', - date: '2019-11-23', - status: 'renewal', - verified: true, - activity: 14, - representative: { - name: 'Ioni Bowcher', - image: 'ionibowcher.png' - }, - balance: 72342 - }, - { - id: 1496, - name: 'Raylene Kampa', - country: { - name: 'Belgium', - code: 'be' - }, - company: 'Hermar Inc', - date: '2020-04-22', - status: 'unqualified', - verified: true, - activity: 65, - representative: { - name: 'Stephen Shaw', - image: 'stephenshaw.png' - }, - balance: 53660 - }, - { - id: 1497, - name: 'Flo Bookamer', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Simonton Howe \u0026 Schneider Pc', - date: '2020-08-10', - status: 'unqualified', - verified: true, - activity: 30, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 44528 - }, - { - id: 1498, - name: 'Jani Biddy', - country: { - name: 'Switzerland', - code: 'ch' - }, - company: 'Warehouse Office \u0026 Paper Prod', - date: '2019-11-07', - status: 'negotiation', - verified: false, - activity: 20, - representative: { - name: 'Onyama Limba', - image: 'onyamalimba.png' - }, - balance: 69613 - }, - { - id: 1499, - name: 'Chauncey Motley', - country: { - name: 'Argentina', - code: 'ar' - }, - company: 'Affiliated With Travelodge', - date: '2019-04-23', - status: 'renewal', - verified: true, - activity: 42, - representative: { - name: 'Amy Elsner', - image: 'amyelsner.png' - }, - balance: 88090 - } - ]; - } - - constructor(private http: HttpClient) {} - - getCustomersMini() { - return Promise.resolve(this.getData().slice(0, 5)); - } - - getCustomersSmall() { - return Promise.resolve(this.getData().slice(0, 10)); - } - - getCustomersMedium() { - return Promise.resolve(this.getData().slice(0, 50)); - } - - getCustomersLarge() { - return Promise.resolve(this.getData().slice(0, 200)); - } - - getCustomersXLarge() { - return Promise.resolve(this.getData()); - } - - getCustomers(params?: any) { - return this.http.get('https://www.primefaces.org/data/customers', { params: params }).toPromise(); - } -} diff --git a/src/app/pages/service/icon.service.ts b/src/app/pages/service/icon.service.ts deleted file mode 100644 index 0da429b..0000000 --- a/src/app/pages/service/icon.service.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient } from '@angular/common/http'; -import { map } from 'rxjs/operators'; - -@Injectable() -export class IconService { - constructor(private http: HttpClient) {} - - icons!: any[]; - - selectedIcon: any; - - apiUrl = 'assets/demo/data/icons.json'; - - getIcons() { - return this.http.get(this.apiUrl).pipe( - map((response: any) => { - this.icons = response.icons; - return this.icons; - }) - ); - } -} diff --git a/src/app/pages/service/node.service.ts b/src/app/pages/service/node.service.ts deleted file mode 100644 index 5146322..0000000 --- a/src/app/pages/service/node.service.ts +++ /dev/null @@ -1,816 +0,0 @@ -import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; -import { TreeNode } from 'primeng/api'; - -@Injectable() -export class NodeService { - getTreeNodesData() { - return [ - { - key: '0', - label: 'Documents', - data: 'Documents Folder', - icon: 'pi pi-fw pi-inbox', - children: [ - { - key: '0-0', - label: 'Work', - data: 'Work Folder', - icon: 'pi pi-fw pi-cog', - children: [ - { key: '0-0-0', label: 'Expenses.doc', icon: 'pi pi-fw pi-file', data: 'Expenses Document' }, - { key: '0-0-1', label: 'Resume.doc', icon: 'pi pi-fw pi-file', data: 'Resume Document' } - ] - }, - { - key: '0-1', - label: 'Home', - data: 'Home Folder', - icon: 'pi pi-fw pi-home', - children: [{ key: '0-1-0', label: 'Invoices.txt', icon: 'pi pi-fw pi-file', data: 'Invoices for this month' }] - } - ] - }, - { - key: '1', - label: 'Events', - data: 'Events Folder', - icon: 'pi pi-fw pi-calendar', - children: [ - { key: '1-0', label: 'Meeting', icon: 'pi pi-fw pi-calendar-plus', data: 'Meeting' }, - { key: '1-1', label: 'Product Launch', icon: 'pi pi-fw pi-calendar-plus', data: 'Product Launch' }, - { key: '1-2', label: 'Report Review', icon: 'pi pi-fw pi-calendar-plus', data: 'Report Review' } - ] - }, - { - key: '2', - label: 'Movies', - data: 'Movies Folder', - icon: 'pi pi-fw pi-star-fill', - children: [ - { - key: '2-0', - icon: 'pi pi-fw pi-star-fill', - label: 'Al Pacino', - data: 'Pacino Movies', - children: [ - { key: '2-0-0', label: 'Scarface', icon: 'pi pi-fw pi-video', data: 'Scarface Movie' }, - { key: '2-0-1', label: 'Serpico', icon: 'pi pi-fw pi-video', data: 'Serpico Movie' } - ] - }, - { - key: '2-1', - label: 'Robert De Niro', - icon: 'pi pi-fw pi-star-fill', - data: 'De Niro Movies', - children: [ - { key: '2-1-0', label: 'Goodfellas', icon: 'pi pi-fw pi-video', data: 'Goodfellas Movie' }, - { key: '2-1-1', label: 'Untouchables', icon: 'pi pi-fw pi-video', data: 'Untouchables Movie' } - ] - } - ] - } - ]; - } - - getTreeTableNodesData() { - return [ - { - key: '0', - data: { - name: 'Applications', - size: '100kb', - type: 'Folder' - }, - children: [ - { - key: '0-0', - data: { - name: 'Angular', - size: '25kb', - type: 'Folder' - }, - children: [ - { - key: '0-0-0', - data: { - name: 'angular.app', - size: '10kb', - type: 'Application' - } - }, - { - key: '0-0-1', - data: { - name: 'native.app', - size: '10kb', - type: 'Application' - } - }, - { - key: '0-0-2', - data: { - name: 'mobile.app', - size: '5kb', - type: 'Application' - } - } - ] - }, - { - key: '0-1', - data: { - name: 'editor.app', - size: '25kb', - type: 'Application' - } - }, - { - key: '0-2', - data: { - name: 'settings.app', - size: '50kb', - type: 'Application' - } - } - ] - }, - { - key: '1', - data: { - name: 'Cloud', - size: '20kb', - type: 'Folder' - }, - children: [ - { - key: '1-0', - data: { - name: 'backup-1.zip', - size: '10kb', - type: 'Zip' - } - }, - { - key: '1-1', - data: { - name: 'backup-2.zip', - size: '10kb', - type: 'Zip' - } - } - ] - }, - { - key: '2', - data: { - name: 'Desktop', - size: '150kb', - type: 'Folder' - }, - children: [ - { - key: '2-0', - data: { - name: 'note-meeting.txt', - size: '50kb', - type: 'Text' - } - }, - { - key: '2-1', - data: { - name: 'note-todo.txt', - size: '100kb', - type: 'Text' - } - } - ] - }, - { - key: '3', - data: { - name: 'Documents', - size: '75kb', - type: 'Folder' - }, - children: [ - { - key: '3-0', - data: { - name: 'Work', - size: '55kb', - type: 'Folder' - }, - children: [ - { - key: '3-0-0', - data: { - name: 'Expenses.doc', - size: '30kb', - type: 'Document' - } - }, - { - key: '3-0-1', - data: { - name: 'Resume.doc', - size: '25kb', - type: 'Resume' - } - } - ] - }, - { - key: '3-1', - data: { - name: 'Home', - size: '20kb', - type: 'Folder' - }, - children: [ - { - key: '3-1-0', - data: { - name: 'Invoices', - size: '20kb', - type: 'Text' - } - } - ] - } - ] - }, - { - key: '4', - data: { - name: 'Downloads', - size: '25kb', - type: 'Folder' - }, - children: [ - { - key: '4-0', - data: { - name: 'Spanish', - size: '10kb', - type: 'Folder' - }, - children: [ - { - key: '4-0-0', - data: { - name: 'tutorial-a1.txt', - size: '5kb', - type: 'Text' - } - }, - { - key: '4-0-1', - data: { - name: 'tutorial-a2.txt', - size: '5kb', - type: 'Text' - } - } - ] - }, - { - key: '4-1', - data: { - name: 'Travel', - size: '15kb', - type: 'Text' - }, - children: [ - { - key: '4-1-0', - data: { - name: 'Hotel.pdf', - size: '10kb', - type: 'PDF' - } - }, - { - key: '4-1-1', - data: { - name: 'Flight.pdf', - size: '5kb', - type: 'PDF' - } - } - ] - } - ] - }, - { - key: '5', - data: { - name: 'Main', - size: '50kb', - type: 'Folder' - }, - children: [ - { - key: '5-0', - data: { - name: 'bin', - size: '50kb', - type: 'Link' - } - }, - { - key: '5-1', - data: { - name: 'etc', - size: '100kb', - type: 'Link' - } - }, - { - key: '5-2', - data: { - name: 'var', - size: '100kb', - type: 'Link' - } - } - ] - }, - { - key: '6', - data: { - name: 'Other', - size: '5kb', - type: 'Folder' - }, - children: [ - { - key: '6-0', - data: { - name: 'todo.txt', - size: '3kb', - type: 'Text' - } - }, - { - key: '6-1', - data: { - name: 'logo.png', - size: '2kb', - type: 'Picture' - } - } - ] - }, - { - key: '7', - data: { - name: 'Pictures', - size: '150kb', - type: 'Folder' - }, - children: [ - { - key: '7-0', - data: { - name: 'barcelona.jpg', - size: '90kb', - type: 'Picture' - } - }, - { - key: '7-1', - data: { - name: 'primeng.png', - size: '30kb', - type: 'Picture' - } - }, - { - key: '7-2', - data: { - name: 'prime.jpg', - size: '30kb', - type: 'Picture' - } - } - ] - }, - { - key: '8', - data: { - name: 'Videos', - size: '1500kb', - type: 'Folder' - }, - children: [ - { - key: '8-0', - data: { - name: 'primefaces.mkv', - size: '1000kb', - type: 'Video' - } - }, - { - key: '8-1', - data: { - name: 'intro.avi', - size: '500kb', - type: 'Video' - } - } - ] - } - ]; - } - - getLazyNodesData() { - return [ - { - label: 'Lazy Node 0', - data: 'Node 0', - expandedIcon: 'pi pi-folder-open', - collapsedIcon: 'pi pi-folder', - leaf: false - }, - { - label: 'Lazy Node 1', - data: 'Node 1', - expandedIcon: 'pi pi-folder-open', - collapsedIcon: 'pi pi-folder', - leaf: false - }, - { - label: 'Lazy Node 1', - data: 'Node 2', - expandedIcon: 'pi pi-folder-open', - collapsedIcon: 'pi pi-folder', - leaf: false - } - ]; - } - - getFileSystemNodesData() { - return [ - { - data: { - name: 'Applications', - size: '200mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'Angular', - size: '25mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'angular.app', - size: '10mb', - type: 'Application' - } - }, - { - data: { - name: 'cli.app', - size: '10mb', - type: 'Application' - } - }, - { - data: { - name: 'mobile.app', - size: '5mb', - type: 'Application' - } - } - ] - }, - { - data: { - name: 'editor.app', - size: '25mb', - type: 'Application' - } - }, - { - data: { - name: 'settings.app', - size: '50mb', - type: 'Application' - } - } - ] - }, - { - data: { - name: 'Cloud', - size: '20mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'backup-1.zip', - size: '10mb', - type: 'Zip' - } - }, - { - data: { - name: 'backup-2.zip', - size: '10mb', - type: 'Zip' - } - } - ] - }, - { - data: { - name: 'Desktop', - size: '150kb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'note-meeting.txt', - size: '50kb', - type: 'Text' - } - }, - { - data: { - name: 'note-todo.txt', - size: '100kb', - type: 'Text' - } - } - ] - }, - { - data: { - name: 'Documents', - size: '75kb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'Work', - size: '55kb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'Expenses.doc', - size: '30kb', - type: 'Document' - } - }, - { - data: { - name: 'Resume.doc', - size: '25kb', - type: 'Resume' - } - } - ] - }, - { - data: { - name: 'Home', - size: '20kb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'Invoices', - size: '20kb', - type: 'Text' - } - } - ] - } - ] - }, - { - data: { - name: 'Downloads', - size: '25mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'Spanish', - size: '10mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'tutorial-a1.txt', - size: '5mb', - type: 'Text' - } - }, - { - data: { - name: 'tutorial-a2.txt', - size: '5mb', - type: 'Text' - } - } - ] - }, - { - data: { - name: 'Travel', - size: '15mb', - type: 'Text' - }, - children: [ - { - data: { - name: 'Hotel.pdf', - size: '10mb', - type: 'PDF' - } - }, - { - data: { - name: 'Flight.pdf', - size: '5mb', - type: 'PDF' - } - } - ] - } - ] - }, - { - data: { - name: 'Main', - size: '50mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'bin', - size: '50kb', - type: 'Link' - } - }, - { - data: { - name: 'etc', - size: '100kb', - type: 'Link' - } - }, - { - data: { - name: 'var', - size: '100kb', - type: 'Link' - } - } - ] - }, - { - data: { - name: 'Other', - size: '5mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'todo.txt', - size: '3mb', - type: 'Text' - } - }, - { - data: { - name: 'logo.png', - size: '2mb', - type: 'Picture' - } - } - ] - }, - { - data: { - name: 'Pictures', - size: '150kb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'barcelona.jpg', - size: '90kb', - type: 'Picture' - } - }, - { - data: { - name: 'primeng.png', - size: '30kb', - type: 'Picture' - } - }, - { - data: { - name: 'prime.jpg', - size: '30kb', - type: 'Picture' - } - } - ] - }, - { - data: { - name: 'Videos', - size: '1500mb', - type: 'Folder' - }, - children: [ - { - data: { - name: 'primefaces.mkv', - size: '1000mb', - type: 'Video' - } - }, - { - data: { - name: 'intro.avi', - size: '500mb', - type: 'Video' - } - } - ] - } - ]; - } - - getDynamicTreeNodes(parentCount: number, childrenCount: number): TreeNode[] { - const nodes: TreeNode[] = []; - - for (let parentIndex = 0; parentIndex < parentCount; parentIndex++) { - const children: TreeNode[] = []; - - for (let childIndex = 0; childIndex < childrenCount; childIndex++) { - children.push({ - key: `${parentIndex}-${childIndex}`, - label: `Child ${parentIndex}-${childIndex}`, - selectable: true - }); - } - - nodes.push({ - key: parentIndex.toString(), - label: `Parent ${parentIndex}`, - selectable: true, - children: children - }); - } - - return nodes; - } - - getLargeTreeNodes() { - return Promise.resolve(this.getDynamicTreeNodes(10, 100)); - } - - getTreeTableNodes() { - return Promise.resolve(this.getTreeTableNodesData()); - } - - getTreeNodes() { - return Promise.resolve(this.getTreeNodesData()); - } - - getFiles() { - return Promise.resolve(this.getTreeNodesData()); - } - - getLazyFiles() { - return Promise.resolve(this.getLazyNodesData()); - } - - getFilesystem() { - return Promise.resolve(this.getFileSystemNodesData()); - } -} diff --git a/src/app/pages/service/photo.service.ts b/src/app/pages/service/photo.service.ts deleted file mode 100644 index 4620abd..0000000 --- a/src/app/pages/service/photo.service.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Injectable } from '@angular/core'; - -@Injectable() -export class PhotoService { - getData() { - return [ - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria1.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria1s.jpg', - alt: 'Description for Image 1', - title: 'Title 1' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria2.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria2s.jpg', - alt: 'Description for Image 2', - title: 'Title 2' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria3.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria3s.jpg', - alt: 'Description for Image 3', - title: 'Title 3' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria4.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria4s.jpg', - alt: 'Description for Image 4', - title: 'Title 4' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria5.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria5s.jpg', - alt: 'Description for Image 5', - title: 'Title 5' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria6.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria6s.jpg', - alt: 'Description for Image 6', - title: 'Title 6' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria7.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria7s.jpg', - alt: 'Description for Image 7', - title: 'Title 7' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria8.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria8s.jpg', - alt: 'Description for Image 8', - title: 'Title 8' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria9.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria9s.jpg', - alt: 'Description for Image 9', - title: 'Title 9' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria10.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria10s.jpg', - alt: 'Description for Image 10', - title: 'Title 10' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria11.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria11s.jpg', - alt: 'Description for Image 11', - title: 'Title 11' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria12.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria12s.jpg', - alt: 'Description for Image 12', - title: 'Title 12' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria13.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria13s.jpg', - alt: 'Description for Image 13', - title: 'Title 13' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria14.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria14s.jpg', - alt: 'Description for Image 14', - title: 'Title 14' - }, - { - itemImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria15.jpg', - thumbnailImageSrc: 'https://primefaces.org/cdn/primeng/images/galleria/galleria15s.jpg', - alt: 'Description for Image 15', - title: 'Title 15' - } - ]; - } - - getImages() { - return Promise.resolve(this.getData()); - } -} diff --git a/src/app/pages/service/product.service.ts b/src/app/pages/service/product.service.ts deleted file mode 100644 index cad353d..0000000 --- a/src/app/pages/service/product.service.ts +++ /dev/null @@ -1,1322 +0,0 @@ -import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; - -interface InventoryStatus { - label: string; - value: string; -} - -export interface Product { - id?: string; - code?: string; - name?: string; - description?: string; - price?: number; - quantity?: number; - inventoryStatus?: string; - category?: string; - image?: string; - rating?: number; -} - -@Injectable() -export class ProductService { - getProductsData() { - return [ - { - id: '1000', - code: 'f230fh0g3', - name: 'Bamboo Watch', - description: 'Product Description', - image: 'bamboo-watch.jpg', - price: 65, - category: 'Accessories', - quantity: 24, - inventoryStatus: 'INSTOCK', - rating: 5 - }, - { - id: '1001', - code: 'nvklal433', - name: 'Black Watch', - description: 'Product Description', - image: 'black-watch.jpg', - price: 72, - category: 'Accessories', - quantity: 61, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1002', - code: 'zz21cz3c1', - name: 'Blue Band', - description: 'Product Description', - image: 'blue-band.jpg', - price: 79, - category: 'Fitness', - quantity: 2, - inventoryStatus: 'LOWSTOCK', - rating: 3 - }, - { - id: '1003', - code: '244wgerg2', - name: 'Blue T-Shirt', - description: 'Product Description', - image: 'blue-t-shirt.jpg', - price: 29, - category: 'Clothing', - quantity: 25, - inventoryStatus: 'INSTOCK', - rating: 5 - }, - { - id: '1004', - code: 'h456wer53', - name: 'Bracelet', - description: 'Product Description', - image: 'bracelet.jpg', - price: 15, - category: 'Accessories', - quantity: 73, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1005', - code: 'av2231fwg', - name: 'Brown Purse', - description: 'Product Description', - image: 'brown-purse.jpg', - price: 120, - category: 'Accessories', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 4 - }, - { - id: '1006', - code: 'bib36pfvm', - name: 'Chakra Bracelet', - description: 'Product Description', - image: 'chakra-bracelet.jpg', - price: 32, - category: 'Accessories', - quantity: 5, - inventoryStatus: 'LOWSTOCK', - rating: 3 - }, - { - id: '1007', - code: 'mbvjkgip5', - name: 'Galaxy Earrings', - description: 'Product Description', - image: 'galaxy-earrings.jpg', - price: 34, - category: 'Accessories', - quantity: 23, - inventoryStatus: 'INSTOCK', - rating: 5 - }, - { - id: '1008', - code: 'vbb124btr', - name: 'Game Controller', - description: 'Product Description', - image: 'game-controller.jpg', - price: 99, - category: 'Electronics', - quantity: 2, - inventoryStatus: 'LOWSTOCK', - rating: 4 - }, - { - id: '1009', - code: 'cm230f032', - name: 'Gaming Set', - description: 'Product Description', - image: 'gaming-set.jpg', - price: 299, - category: 'Electronics', - quantity: 63, - inventoryStatus: 'INSTOCK', - rating: 3 - }, - { - id: '1010', - code: 'plb34234v', - name: 'Gold Phone Case', - description: 'Product Description', - image: 'gold-phone-case.jpg', - price: 24, - category: 'Accessories', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 4 - }, - { - id: '1011', - code: '4920nnc2d', - name: 'Green Earbuds', - description: 'Product Description', - image: 'green-earbuds.jpg', - price: 89, - category: 'Electronics', - quantity: 23, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1012', - code: '250vm23cc', - name: 'Green T-Shirt', - description: 'Product Description', - image: 'green-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 74, - inventoryStatus: 'INSTOCK', - rating: 5 - }, - { - id: '1013', - code: 'fldsmn31b', - name: 'Grey T-Shirt', - description: 'Product Description', - image: 'grey-t-shirt.jpg', - price: 48, - category: 'Clothing', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 3 - }, - { - id: '1014', - code: 'waas1x2as', - name: 'Headphones', - description: 'Product Description', - image: 'headphones.jpg', - price: 175, - category: 'Electronics', - quantity: 8, - inventoryStatus: 'LOWSTOCK', - rating: 5 - }, - { - id: '1015', - code: 'vb34btbg5', - name: 'Light Green T-Shirt', - description: 'Product Description', - image: 'light-green-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 34, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1016', - code: 'k8l6j58jl', - name: 'Lime Band', - description: 'Product Description', - image: 'lime-band.jpg', - price: 79, - category: 'Fitness', - quantity: 12, - inventoryStatus: 'INSTOCK', - rating: 3 - }, - { - id: '1017', - code: 'v435nn85n', - name: 'Mini Speakers', - description: 'Product Description', - image: 'mini-speakers.jpg', - price: 85, - category: 'Clothing', - quantity: 42, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1018', - code: '09zx9c0zc', - name: 'Painted Phone Case', - description: 'Product Description', - image: 'painted-phone-case.jpg', - price: 56, - category: 'Accessories', - quantity: 41, - inventoryStatus: 'INSTOCK', - rating: 5 - }, - { - id: '1019', - code: 'mnb5mb2m5', - name: 'Pink Band', - description: 'Product Description', - image: 'pink-band.jpg', - price: 79, - category: 'Fitness', - quantity: 63, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1020', - code: 'r23fwf2w3', - name: 'Pink Purse', - description: 'Product Description', - image: 'pink-purse.jpg', - price: 110, - category: 'Accessories', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 4 - }, - { - id: '1021', - code: 'pxpzczo23', - name: 'Purple Band', - description: 'Product Description', - image: 'purple-band.jpg', - price: 79, - category: 'Fitness', - quantity: 6, - inventoryStatus: 'LOWSTOCK', - rating: 3 - }, - { - id: '1022', - code: '2c42cb5cb', - name: 'Purple Gemstone Necklace', - description: 'Product Description', - image: 'purple-gemstone-necklace.jpg', - price: 45, - category: 'Accessories', - quantity: 62, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1023', - code: '5k43kkk23', - name: 'Purple T-Shirt', - description: 'Product Description', - image: 'purple-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 2, - inventoryStatus: 'LOWSTOCK', - rating: 5 - }, - { - id: '1024', - code: 'lm2tny2k4', - name: 'Shoes', - description: 'Product Description', - image: 'shoes.jpg', - price: 64, - category: 'Clothing', - quantity: 0, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1025', - code: 'nbm5mv45n', - name: 'Sneakers', - description: 'Product Description', - image: 'sneakers.jpg', - price: 78, - category: 'Clothing', - quantity: 52, - inventoryStatus: 'INSTOCK', - rating: 4 - }, - { - id: '1026', - code: 'zx23zc42c', - name: 'Teal T-Shirt', - description: 'Product Description', - image: 'teal-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 3, - inventoryStatus: 'LOWSTOCK', - rating: 3 - }, - { - id: '1027', - code: 'acvx872gc', - name: 'Yellow Earbuds', - description: 'Product Description', - image: 'yellow-earbuds.jpg', - price: 89, - category: 'Electronics', - quantity: 35, - inventoryStatus: 'INSTOCK', - rating: 3 - }, - { - id: '1028', - code: 'tx125ck42', - name: 'Yoga Mat', - description: 'Product Description', - image: 'yoga-mat.jpg', - price: 20, - category: 'Fitness', - quantity: 15, - inventoryStatus: 'INSTOCK', - rating: 5 - }, - { - id: '1029', - code: 'gwuby345v', - name: 'Yoga Set', - description: 'Product Description', - image: 'yoga-set.jpg', - price: 20, - category: 'Fitness', - quantity: 25, - inventoryStatus: 'INSTOCK', - rating: 8 - } - ]; - } - - getProductsWithOrdersData() { - return [ - { - id: '1000', - code: 'f230fh0g3', - name: 'Bamboo Watch', - description: 'Product Description', - image: 'bamboo-watch.jpg', - price: 65, - category: 'Accessories', - quantity: 24, - inventoryStatus: 'INSTOCK', - rating: 5, - orders: [ - { - id: '1000-0', - productCode: 'f230fh0g3', - date: '2020-09-13', - amount: 65, - quantity: 1, - customer: 'David James', - status: 'PENDING' - }, - { - id: '1000-1', - productCode: 'f230fh0g3', - date: '2020-05-14', - amount: 130, - quantity: 2, - customer: 'Leon Rodrigues', - status: 'DELIVERED' - }, - { - id: '1000-2', - productCode: 'f230fh0g3', - date: '2019-01-04', - amount: 65, - quantity: 1, - customer: 'Juan Alejandro', - status: 'RETURNED' - }, - { - id: '1000-3', - productCode: 'f230fh0g3', - date: '2020-09-13', - amount: 195, - quantity: 3, - customer: 'Claire Morrow', - status: 'CANCELLED' - } - ] - }, - { - id: '1001', - code: 'nvklal433', - name: 'Black Watch', - description: 'Product Description', - image: 'black-watch.jpg', - price: 72, - category: 'Accessories', - quantity: 61, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [ - { - id: '1001-0', - productCode: 'nvklal433', - date: '2020-05-14', - amount: 72, - quantity: 1, - customer: 'Maisha Jefferson', - status: 'DELIVERED' - }, - { - id: '1001-1', - productCode: 'nvklal433', - date: '2020-02-28', - amount: 144, - quantity: 2, - customer: 'Octavia Murillo', - status: 'PENDING' - } - ] - }, - { - id: '1002', - code: 'zz21cz3c1', - name: 'Blue Band', - description: 'Product Description', - image: 'blue-band.jpg', - price: 79, - category: 'Fitness', - quantity: 2, - inventoryStatus: 'LOWSTOCK', - rating: 3, - orders: [ - { - id: '1002-0', - productCode: 'zz21cz3c1', - date: '2020-07-05', - amount: 79, - quantity: 1, - customer: 'Stacey Leja', - status: 'DELIVERED' - }, - { - id: '1002-1', - productCode: 'zz21cz3c1', - date: '2020-02-06', - amount: 79, - quantity: 1, - customer: 'Ashley Wickens', - status: 'DELIVERED' - } - ] - }, - { - id: '1003', - code: '244wgerg2', - name: 'Blue T-Shirt', - description: 'Product Description', - image: 'blue-t-shirt.jpg', - price: 29, - category: 'Clothing', - quantity: 25, - inventoryStatus: 'INSTOCK', - rating: 5, - orders: [] - }, - { - id: '1004', - code: 'h456wer53', - name: 'Bracelet', - description: 'Product Description', - image: 'bracelet.jpg', - price: 15, - category: 'Accessories', - quantity: 73, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [ - { - id: '1004-0', - productCode: 'h456wer53', - date: '2020-09-05', - amount: 60, - quantity: 4, - customer: 'Mayumi Misaki', - status: 'PENDING' - }, - { - id: '1004-1', - productCode: 'h456wer53', - date: '2019-04-16', - amount: 2, - quantity: 30, - customer: 'Francesco Salvatore', - status: 'DELIVERED' - } - ] - }, - { - id: '1005', - code: 'av2231fwg', - name: 'Brown Purse', - description: 'Product Description', - image: 'brown-purse.jpg', - price: 120, - category: 'Accessories', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 4, - orders: [ - { - id: '1005-0', - productCode: 'av2231fwg', - date: '2020-01-25', - amount: 120, - quantity: 1, - customer: 'Isabel Sinclair', - status: 'RETURNED' - }, - { - id: '1005-1', - productCode: 'av2231fwg', - date: '2019-03-12', - amount: 240, - quantity: 2, - customer: 'Lionel Clifford', - status: 'DELIVERED' - }, - { - id: '1005-2', - productCode: 'av2231fwg', - date: '2019-05-05', - amount: 120, - quantity: 1, - customer: 'Cody Chavez', - status: 'DELIVERED' - } - ] - }, - { - id: '1006', - code: 'bib36pfvm', - name: 'Chakra Bracelet', - description: 'Product Description', - image: 'chakra-bracelet.jpg', - price: 32, - category: 'Accessories', - quantity: 5, - inventoryStatus: 'LOWSTOCK', - rating: 3, - orders: [ - { - id: '1006-0', - productCode: 'bib36pfvm', - date: '2020-02-24', - amount: 32, - quantity: 1, - customer: 'Arvin Darci', - status: 'DELIVERED' - }, - { - id: '1006-1', - productCode: 'bib36pfvm', - date: '2020-01-14', - amount: 64, - quantity: 2, - customer: 'Izzy Jones', - status: 'PENDING' - } - ] - }, - { - id: '1007', - code: 'mbvjkgip5', - name: 'Galaxy Earrings', - description: 'Product Description', - image: 'galaxy-earrings.jpg', - price: 34, - category: 'Accessories', - quantity: 23, - inventoryStatus: 'INSTOCK', - rating: 5, - orders: [ - { - id: '1007-0', - productCode: 'mbvjkgip5', - date: '2020-06-19', - amount: 34, - quantity: 1, - customer: 'Jennifer Smith', - status: 'DELIVERED' - } - ] - }, - { - id: '1008', - code: 'vbb124btr', - name: 'Game Controller', - description: 'Product Description', - image: 'game-controller.jpg', - price: 99, - category: 'Electronics', - quantity: 2, - inventoryStatus: 'LOWSTOCK', - rating: 4, - orders: [ - { - id: '1008-0', - productCode: 'vbb124btr', - date: '2020-01-05', - amount: 99, - quantity: 1, - customer: 'Jeanfrancois David', - status: 'DELIVERED' - }, - { - id: '1008-1', - productCode: 'vbb124btr', - date: '2020-01-19', - amount: 198, - quantity: 2, - customer: 'Ivar Greenwood', - status: 'RETURNED' - } - ] - }, - { - id: '1009', - code: 'cm230f032', - name: 'Gaming Set', - description: 'Product Description', - image: 'gaming-set.jpg', - price: 299, - category: 'Electronics', - quantity: 63, - inventoryStatus: 'INSTOCK', - rating: 3, - orders: [ - { - id: '1009-0', - productCode: 'cm230f032', - date: '2020-06-24', - amount: 299, - quantity: 1, - customer: 'Kadeem Mujtaba', - status: 'PENDING' - }, - { - id: '1009-1', - productCode: 'cm230f032', - date: '2020-05-11', - amount: 299, - quantity: 1, - customer: 'Ashley Wickens', - status: 'DELIVERED' - }, - { - id: '1009-2', - productCode: 'cm230f032', - date: '2019-02-07', - amount: 299, - quantity: 1, - customer: 'Julie Johnson', - status: 'DELIVERED' - }, - { - id: '1009-3', - productCode: 'cm230f032', - date: '2020-04-26', - amount: 299, - quantity: 1, - customer: 'Tony Costa', - status: 'CANCELLED' - } - ] - }, - { - id: '1010', - code: 'plb34234v', - name: 'Gold Phone Case', - description: 'Product Description', - image: 'gold-phone-case.jpg', - price: 24, - category: 'Accessories', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 4, - orders: [ - { - id: '1010-0', - productCode: 'plb34234v', - date: '2020-02-04', - amount: 24, - quantity: 1, - customer: 'James Butt', - status: 'DELIVERED' - }, - { - id: '1010-1', - productCode: 'plb34234v', - date: '2020-05-05', - amount: 48, - quantity: 2, - customer: 'Josephine Darakjy', - status: 'DELIVERED' - } - ] - }, - { - id: '1011', - code: '4920nnc2d', - name: 'Green Earbuds', - description: 'Product Description', - image: 'green-earbuds.jpg', - price: 89, - category: 'Electronics', - quantity: 23, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [ - { - id: '1011-0', - productCode: '4920nnc2d', - date: '2020-06-01', - amount: 89, - quantity: 1, - customer: 'Art Venere', - status: 'DELIVERED' - } - ] - }, - { - id: '1012', - code: '250vm23cc', - name: 'Green T-Shirt', - description: 'Product Description', - image: 'green-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 74, - inventoryStatus: 'INSTOCK', - rating: 5, - orders: [ - { - id: '1012-0', - productCode: '250vm23cc', - date: '2020-02-05', - amount: 49, - quantity: 1, - customer: 'Lenna Paprocki', - status: 'DELIVERED' - }, - { - id: '1012-1', - productCode: '250vm23cc', - date: '2020-02-15', - amount: 49, - quantity: 1, - customer: 'Donette Foller', - status: 'PENDING' - } - ] - }, - { - id: '1013', - code: 'fldsmn31b', - name: 'Grey T-Shirt', - description: 'Product Description', - image: 'grey-t-shirt.jpg', - price: 48, - category: 'Clothing', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 3, - orders: [ - { - id: '1013-0', - productCode: 'fldsmn31b', - date: '2020-04-01', - amount: 48, - quantity: 1, - customer: 'Simona Morasca', - status: 'DELIVERED' - } - ] - }, - { - id: '1014', - code: 'waas1x2as', - name: 'Headphones', - description: 'Product Description', - image: 'headphones.jpg', - price: 175, - category: 'Electronics', - quantity: 8, - inventoryStatus: 'LOWSTOCK', - rating: 5, - orders: [ - { - id: '1014-0', - productCode: 'waas1x2as', - date: '2020-05-15', - amount: 175, - quantity: 1, - customer: 'Lenna Paprocki', - status: 'DELIVERED' - }, - { - id: '1014-1', - productCode: 'waas1x2as', - date: '2020-01-02', - amount: 175, - quantity: 1, - customer: 'Donette Foller', - status: 'CANCELLED' - } - ] - }, - { - id: '1015', - code: 'vb34btbg5', - name: 'Light Green T-Shirt', - description: 'Product Description', - image: 'light-green-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 34, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [ - { - id: '1015-0', - productCode: 'vb34btbg5', - date: '2020-07-02', - amount: 98, - quantity: 2, - customer: 'Mitsue Tollner', - status: 'DELIVERED' - } - ] - }, - { - id: '1016', - code: 'k8l6j58jl', - name: 'Lime Band', - description: 'Product Description', - image: 'lime-band.jpg', - price: 79, - category: 'Fitness', - quantity: 12, - inventoryStatus: 'INSTOCK', - rating: 3, - orders: [] - }, - { - id: '1017', - code: 'v435nn85n', - name: 'Mini Speakers', - description: 'Product Description', - image: 'mini-speakers.jpg', - price: 85, - category: 'Clothing', - quantity: 42, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [ - { - id: '1017-0', - productCode: 'v435nn85n', - date: '2020-07-12', - amount: 85, - quantity: 1, - customer: 'Minna Amigon', - status: 'DELIVERED' - } - ] - }, - { - id: '1018', - code: '09zx9c0zc', - name: 'Painted Phone Case', - description: 'Product Description', - image: 'painted-phone-case.jpg', - price: 56, - category: 'Accessories', - quantity: 41, - inventoryStatus: 'INSTOCK', - rating: 5, - orders: [ - { - id: '1018-0', - productCode: '09zx9c0zc', - date: '2020-07-01', - amount: 56, - quantity: 1, - customer: 'Abel Maclead', - status: 'DELIVERED' - }, - { - id: '1018-1', - productCode: '09zx9c0zc', - date: '2020-05-02', - amount: 56, - quantity: 1, - customer: 'Minna Amigon', - status: 'RETURNED' - } - ] - }, - { - id: '1019', - code: 'mnb5mb2m5', - name: 'Pink Band', - description: 'Product Description', - image: 'pink-band.jpg', - price: 79, - category: 'Fitness', - quantity: 63, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [] - }, - { - id: '1020', - code: 'r23fwf2w3', - name: 'Pink Purse', - description: 'Product Description', - image: 'pink-purse.jpg', - price: 110, - category: 'Accessories', - quantity: 0, - inventoryStatus: 'OUTOFSTOCK', - rating: 4, - orders: [ - { - id: '1020-0', - productCode: 'r23fwf2w3', - date: '2020-05-29', - amount: 110, - quantity: 1, - customer: 'Kiley Caldarera', - status: 'DELIVERED' - }, - { - id: '1020-1', - productCode: 'r23fwf2w3', - date: '2020-02-11', - amount: 220, - quantity: 2, - customer: 'Graciela Ruta', - status: 'DELIVERED' - } - ] - }, - { - id: '1021', - code: 'pxpzczo23', - name: 'Purple Band', - description: 'Product Description', - image: 'purple-band.jpg', - price: 79, - category: 'Fitness', - quantity: 6, - inventoryStatus: 'LOWSTOCK', - rating: 3, - orders: [ - { - id: '1021-0', - productCode: 'pxpzczo23', - date: '2020-02-02', - amount: 79, - quantity: 1, - customer: 'Cammy Albares', - status: 'DELIVERED' - } - ] - }, - { - id: '1022', - code: '2c42cb5cb', - name: 'Purple Gemstone Necklace', - description: 'Product Description', - image: 'purple-gemstone-necklace.jpg', - price: 45, - category: 'Accessories', - quantity: 62, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [ - { - id: '1022-0', - productCode: '2c42cb5cb', - date: '2020-06-29', - amount: 45, - quantity: 1, - customer: 'Mattie Poquette', - status: 'DELIVERED' - }, - { - id: '1022-1', - productCode: '2c42cb5cb', - date: '2020-02-11', - amount: 135, - quantity: 3, - customer: 'Meaghan Garufi', - status: 'DELIVERED' - } - ] - }, - { - id: '1023', - code: '5k43kkk23', - name: 'Purple T-Shirt', - description: 'Product Description', - image: 'purple-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 2, - inventoryStatus: 'LOWSTOCK', - rating: 5, - orders: [ - { - id: '1023-0', - productCode: '5k43kkk23', - date: '2020-04-15', - amount: 49, - quantity: 1, - customer: 'Gladys Rim', - status: 'RETURNED' - } - ] - }, - { - id: '1024', - code: 'lm2tny2k4', - name: 'Shoes', - description: 'Product Description', - image: 'shoes.jpg', - price: 64, - category: 'Clothing', - quantity: 0, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [] - }, - { - id: '1025', - code: 'nbm5mv45n', - name: 'Sneakers', - description: 'Product Description', - image: 'sneakers.jpg', - price: 78, - category: 'Clothing', - quantity: 52, - inventoryStatus: 'INSTOCK', - rating: 4, - orders: [ - { - id: '1025-0', - productCode: 'nbm5mv45n', - date: '2020-02-19', - amount: 78, - quantity: 1, - customer: 'Yuki Whobrey', - status: 'DELIVERED' - }, - { - id: '1025-1', - productCode: 'nbm5mv45n', - date: '2020-05-21', - amount: 78, - quantity: 1, - customer: 'Fletcher Flosi', - status: 'PENDING' - } - ] - }, - { - id: '1026', - code: 'zx23zc42c', - name: 'Teal T-Shirt', - description: 'Product Description', - image: 'teal-t-shirt.jpg', - price: 49, - category: 'Clothing', - quantity: 3, - inventoryStatus: 'LOWSTOCK', - rating: 3, - orders: [ - { - id: '1026-0', - productCode: 'zx23zc42c', - date: '2020-04-24', - amount: 98, - quantity: 2, - customer: 'Bette Nicka', - status: 'DELIVERED' - } - ] - }, - { - id: '1027', - code: 'acvx872gc', - name: 'Yellow Earbuds', - description: 'Product Description', - image: 'yellow-earbuds.jpg', - price: 89, - category: 'Electronics', - quantity: 35, - inventoryStatus: 'INSTOCK', - rating: 3, - orders: [ - { - id: '1027-0', - productCode: 'acvx872gc', - date: '2020-01-29', - amount: 89, - quantity: 1, - customer: 'Veronika Inouye', - status: 'DELIVERED' - }, - { - id: '1027-1', - productCode: 'acvx872gc', - date: '2020-06-11', - amount: 89, - quantity: 1, - customer: 'Willard Kolmetz', - status: 'DELIVERED' - } - ] - }, - { - id: '1028', - code: 'tx125ck42', - name: 'Yoga Mat', - description: 'Product Description', - image: 'yoga-mat.jpg', - price: 20, - category: 'Fitness', - quantity: 15, - inventoryStatus: 'INSTOCK', - rating: 5, - orders: [] - }, - { - id: '1029', - code: 'gwuby345v', - name: 'Yoga Set', - description: 'Product Description', - image: 'yoga-set.jpg', - price: 20, - category: 'Fitness', - quantity: 25, - inventoryStatus: 'INSTOCK', - rating: 8, - orders: [ - { - id: '1029-0', - productCode: 'gwuby345v', - date: '2020-02-14', - amount: 4, - quantity: 80, - customer: 'Maryann Royster', - status: 'DELIVERED' - } - ] - } - ]; - } - - status: string[] = ['OUTOFSTOCK', 'INSTOCK', 'LOWSTOCK']; - - productNames: string[] = [ - 'Bamboo Watch', - 'Black Watch', - 'Blue Band', - 'Blue T-Shirt', - 'Bracelet', - 'Brown Purse', - 'Chakra Bracelet', - 'Galaxy Earrings', - 'Game Controller', - 'Gaming Set', - 'Gold Phone Case', - 'Green Earbuds', - 'Green T-Shirt', - 'Grey T-Shirt', - 'Headphones', - 'Light Green T-Shirt', - 'Lime Band', - 'Mini Speakers', - 'Painted Phone Case', - 'Pink Band', - 'Pink Purse', - 'Purple Band', - 'Purple Gemstone Necklace', - 'Purple T-Shirt', - 'Shoes', - 'Sneakers', - 'Teal T-Shirt', - 'Yellow Earbuds', - 'Yoga Mat', - 'Yoga Set' - ]; - - constructor(private http: HttpClient) {} - - getProductsMini() { - return Promise.resolve(this.getProductsData().slice(0, 5)); - } - - getProductsSmall() { - return Promise.resolve(this.getProductsData().slice(0, 10)); - } - - getProducts() { - return Promise.resolve(this.getProductsData()); - } - - getProductsWithOrdersSmall() { - return Promise.resolve(this.getProductsWithOrdersData().slice(0, 10)); - } - - generatePrduct(): Product { - const product: Product = { - id: this.generateId(), - name: this.generateName(), - description: 'Product Description', - price: this.generatePrice(), - quantity: this.generateQuantity(), - category: 'Product Category', - inventoryStatus: this.generateStatus(), - rating: this.generateRating() - }; - - product.image = product.name?.toLocaleLowerCase().split(/[ ,]+/).join('-') + '.jpg'; - return product; - } - - generateId() { - let text = ''; - let possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - - for (var i = 0; i < 5; i++) { - text += possible.charAt(Math.floor(Math.random() * possible.length)); - } - - return text; - } - - generateName() { - return this.productNames[Math.floor(Math.random() * Math.floor(30))]; - } - - generatePrice() { - return Math.floor(Math.random() * Math.floor(299) + 1); - } - - generateQuantity() { - return Math.floor(Math.random() * Math.floor(75) + 1); - } - - generateStatus() { - return this.status[Math.floor(Math.random() * Math.floor(3))]; - } - - generateRating() { - return Math.floor(Math.random() * Math.floor(5) + 1); - } -} diff --git a/src/app/pages/uikit/buttondemo.ts b/src/app/pages/uikit/buttondemo.ts deleted file mode 100644 index e92a998..0000000 --- a/src/app/pages/uikit/buttondemo.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { MenuItem } from 'primeng/api'; -import { ButtonModule } from 'primeng/button'; -import { ButtonGroupModule } from 'primeng/buttongroup'; -import { SplitButtonModule } from 'primeng/splitbutton'; - -@Component({ - selector: 'app-button-demo', - standalone: true, - imports: [ButtonModule, ButtonGroupModule, SplitButtonModule], - template: `
-
-
-
Default
-
- - - -
-
-
-
Severities
-
- - - - - - - - -
-
-
-
Text
-
- - - - - - - - -
-
-
-
Outlined
-
- - - - - - - - -
-
-
-
Group
-
- - - - - -
-
-
-
SplitButton
-
- - - - - - - - -
-
-
-
Templating
-
- - logo - - - logo - PrimeNG - -
-
-
-
-
-
Icons
-
- - - -
-
-
-
Raised
-
- - - - - - - - -
-
-
-
Rounded
-
- - - - - - - - -
-
-
-
Rounded Icons
-
- - - - - - - -
-
-
-
Rounded Text
-
- - - - - - - -
-
-
-
Rounded Outlined
-
- - - - - - - -
-
-
-
Loading
-
- - - - -
-
-
-
` -}) -export class ButtonDemo implements OnInit { - items: MenuItem[] = []; - - loading = [false, false, false, false]; - - ngOnInit() { - this.items = [{ label: 'Update', icon: 'pi pi-refresh' }, { label: 'Delete', icon: 'pi pi-times' }, { label: 'Angular.io', icon: 'pi pi-info', url: 'http://angular.io' }, { separator: true }, { label: 'Setup', icon: 'pi pi-cog' }]; - } - - load(index: number) { - this.loading[index] = true; - setTimeout(() => (this.loading[index] = false), 1000); - } -} diff --git a/src/app/pages/uikit/chartdemo.ts b/src/app/pages/uikit/chartdemo.ts deleted file mode 100644 index 9e9a2db..0000000 --- a/src/app/pages/uikit/chartdemo.ts +++ /dev/null @@ -1,302 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { ChartModule } from 'primeng/chart'; -import { FluidModule } from 'primeng/fluid'; -import { debounceTime, Subscription } from 'rxjs'; -import { LayoutService } from '../../layout/service/layout.service'; - -@Component({ - selector: 'app-chart-demo', - standalone: true, - imports: [CommonModule, ChartModule, FluidModule], - template: ` - -
-
-
Linear
- -
-
-
-
-
Bar
- -
-
-
-
-
Pie
- -
-
-
-
-
Doughnut
- -
-
-
-
-
Polar Area
- -
-
-
-
-
Radar
- -
-
-
- ` -}) -export class ChartDemo { - lineData: any; - - barData: any; - - pieData: any; - - polarData: any; - - radarData: any; - - lineOptions: any; - - barOptions: any; - - pieOptions: any; - - polarOptions: any; - - radarOptions: any; - - subscription: Subscription; - constructor(private layoutService: LayoutService) { - this.subscription = this.layoutService.configUpdate$.pipe(debounceTime(25)).subscribe(() => { - this.initCharts(); - }); - } - - ngOnInit() { - this.initCharts(); - } - - initCharts() { - const documentStyle = getComputedStyle(document.documentElement); - const textColor = documentStyle.getPropertyValue('--text-color'); - const textColorSecondary = documentStyle.getPropertyValue('--text-color-secondary'); - const surfaceBorder = documentStyle.getPropertyValue('--surface-border'); - - this.barData = { - labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], - datasets: [ - { - label: 'My First dataset', - backgroundColor: documentStyle.getPropertyValue('--p-primary-500'), - borderColor: documentStyle.getPropertyValue('--p-primary-500'), - data: [65, 59, 80, 81, 56, 55, 40] - }, - { - label: 'My Second dataset', - backgroundColor: documentStyle.getPropertyValue('--p-primary-200'), - borderColor: documentStyle.getPropertyValue('--p-primary-200'), - data: [28, 48, 40, 19, 86, 27, 90] - } - ] - }; - - this.barOptions = { - maintainAspectRatio: false, - aspectRatio: 0.8, - plugins: { - legend: { - labels: { - color: textColor - } - } - }, - scales: { - x: { - ticks: { - color: textColorSecondary, - font: { - weight: 500 - } - }, - grid: { - display: false, - drawBorder: false - } - }, - y: { - ticks: { - color: textColorSecondary - }, - grid: { - color: surfaceBorder, - drawBorder: false - } - } - } - }; - - this.pieData = { - labels: ['A', 'B', 'C'], - datasets: [ - { - data: [540, 325, 702], - backgroundColor: [documentStyle.getPropertyValue('--p-indigo-500'), documentStyle.getPropertyValue('--p-purple-500'), documentStyle.getPropertyValue('--p-teal-500')], - hoverBackgroundColor: [documentStyle.getPropertyValue('--p-indigo-400'), documentStyle.getPropertyValue('--p-purple-400'), documentStyle.getPropertyValue('--p-teal-400')] - } - ] - }; - - this.pieOptions = { - plugins: { - legend: { - labels: { - usePointStyle: true, - color: textColor - } - } - } - }; - - this.lineData = { - labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'], - datasets: [ - { - label: 'First Dataset', - data: [65, 59, 80, 81, 56, 55, 40], - fill: false, - backgroundColor: documentStyle.getPropertyValue('--p-primary-500'), - borderColor: documentStyle.getPropertyValue('--p-primary-500'), - tension: 0.4 - }, - { - label: 'Second Dataset', - data: [28, 48, 40, 19, 86, 27, 90], - fill: false, - backgroundColor: documentStyle.getPropertyValue('--p-primary-200'), - borderColor: documentStyle.getPropertyValue('--p-primary-200'), - tension: 0.4 - } - ] - }; - - this.lineOptions = { - maintainAspectRatio: false, - aspectRatio: 0.8, - plugins: { - legend: { - labels: { - color: textColor - } - } - }, - scales: { - x: { - ticks: { - color: textColorSecondary - }, - grid: { - color: surfaceBorder, - drawBorder: false - } - }, - y: { - ticks: { - color: textColorSecondary - }, - grid: { - color: surfaceBorder, - drawBorder: false - } - } - } - }; - - this.polarData = { - datasets: [ - { - data: [11, 16, 7, 3], - backgroundColor: [documentStyle.getPropertyValue('--p-indigo-500'), documentStyle.getPropertyValue('--p-purple-500'), documentStyle.getPropertyValue('--p-teal-500'), documentStyle.getPropertyValue('--p-orange-500')], - label: 'My dataset' - } - ], - labels: ['Indigo', 'Purple', 'Teal', 'Orange'] - }; - - this.polarOptions = { - plugins: { - legend: { - labels: { - color: textColor - } - } - }, - scales: { - r: { - grid: { - color: surfaceBorder, - }, - ticks: { - display: false, - color: textColorSecondary - }, - }, - }, - }; - - this.radarData = { - labels: ['Eating', 'Drinking', 'Sleeping', 'Designing', 'Coding', 'Cycling', 'Running'], - datasets: [ - { - label: 'My First dataset', - borderColor: documentStyle.getPropertyValue('--p-indigo-400'), - pointBackgroundColor: documentStyle.getPropertyValue('--p-indigo-400'), - pointBorderColor: documentStyle.getPropertyValue('--p-indigo-400'), - pointHoverBackgroundColor: textColor, - pointHoverBorderColor: documentStyle.getPropertyValue('--p-indigo-400'), - data: [65, 59, 90, 81, 56, 55, 40] - }, - { - label: 'My Second dataset', - borderColor: documentStyle.getPropertyValue('--p-purple-400'), - pointBackgroundColor: documentStyle.getPropertyValue('--p-purple-400'), - pointBorderColor: documentStyle.getPropertyValue('--p-purple-400'), - pointHoverBackgroundColor: textColor, - pointHoverBorderColor: documentStyle.getPropertyValue('--p-purple-400'), - data: [28, 48, 40, 19, 96, 27, 100] - } - ] - }; - - this.radarOptions = { - plugins: { - legend: { - labels: { - color: textColor - } - } - }, - scales: { - r: { - pointLabels: { - color: textColor - }, - grid: { - color: surfaceBorder - } - } - } - }; - } - - ngOnDestroy() { - if (this.subscription) { - this.subscription.unsubscribe(); - } - } -} diff --git a/src/app/pages/uikit/filedemo.ts b/src/app/pages/uikit/filedemo.ts deleted file mode 100644 index fbc6ad6..0000000 --- a/src/app/pages/uikit/filedemo.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { MessageService } from 'primeng/api'; -import { ButtonModule } from 'primeng/button'; -import { FileUploadModule } from 'primeng/fileupload'; -import { ToastModule } from 'primeng/toast'; - -@Component({ - selector: 'app-file-demo', - standalone: true, - imports: [CommonModule, FileUploadModule, ToastModule, ButtonModule], - template: ` -
-
-
-
Advanced
- - -
Drag and drop files to here to upload.
-
-
-
-
-
-
-
Basic
-
- - -
-
-
-
`, - providers: [MessageService] -}) -export class FileDemo { - uploadedFiles: any[] = []; - - constructor(private messageService: MessageService) {} - - onUpload(event: any) { - for (const file of event.files) { - this.uploadedFiles.push(file); - } - - this.messageService.add({ severity: 'info', summary: 'Success', detail: 'File Uploaded' }); - } - - onBasicUpload() { - this.messageService.add({ severity: 'info', summary: 'Success', detail: 'File Uploaded with Basic Mode' }); - } -} diff --git a/src/app/pages/uikit/formlayoutdemo.ts b/src/app/pages/uikit/formlayoutdemo.ts deleted file mode 100644 index a516c0d..0000000 --- a/src/app/pages/uikit/formlayoutdemo.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { Component } from '@angular/core'; -import { FluidModule } from 'primeng/fluid'; -import { InputTextModule } from 'primeng/inputtext'; -import { ButtonModule } from 'primeng/button'; -import { SelectModule } from 'primeng/select'; -import { FormsModule } from '@angular/forms'; -import { TextareaModule } from 'primeng/textarea'; - -@Component({ - selector: 'app-formlayout-demo', - standalone: true, - imports: [InputTextModule, FluidModule, ButtonModule, SelectModule, FormsModule, TextareaModule], - template: ` -
-
-
-
Vertical
-
- - -
-
- - -
-
- - -
-
- -
-
Vertical Grid
-
-
- - -
-
- - -
-
-
-
-
-
-
Horizontal
-
- -
- -
-
-
- -
- -
-
-
- -
-
Inline
-
-
- - -
-
- - -
- -
-
-
-
Help Text
-
- - - Enter your username to reset your password. -
-
-
-
- -
-
-
Advanced
-
-
- - -
-
- - -
-
- -
- - -
- -
-
- - -
-
- - -
-
-
-
-
` -}) -export class FormLayoutDemo { - dropdownItems = [ - { name: 'Option 1', code: 'Option 1' }, - { name: 'Option 2', code: 'Option 2' }, - { name: 'Option 3', code: 'Option 3' } - ]; - - dropdownItem = null; -} diff --git a/src/app/pages/uikit/inputdemo.ts b/src/app/pages/uikit/inputdemo.ts deleted file mode 100644 index c76a7d5..0000000 --- a/src/app/pages/uikit/inputdemo.ts +++ /dev/null @@ -1,339 +0,0 @@ -import { Component, inject, OnInit } from '@angular/core'; -import { InputTextModule } from 'primeng/inputtext'; -import { ButtonModule } from 'primeng/button'; -import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; -import { CheckboxModule } from 'primeng/checkbox'; -import { RadioButtonModule } from 'primeng/radiobutton'; -import { SelectButtonModule } from 'primeng/selectbutton'; -import { InputGroupModule } from 'primeng/inputgroup'; -import { FluidModule } from 'primeng/fluid'; -import { IconFieldModule } from 'primeng/iconfield'; -import { InputIconModule } from 'primeng/inputicon'; -import { FloatLabelModule } from 'primeng/floatlabel'; -import { AutoCompleteCompleteEvent, AutoCompleteModule } from 'primeng/autocomplete'; -import { InputNumberModule } from 'primeng/inputnumber'; -import { SliderModule } from 'primeng/slider'; -import { RatingModule } from 'primeng/rating'; -import { ColorPickerModule } from 'primeng/colorpicker'; -import { KnobModule } from 'primeng/knob'; -import { SelectModule } from 'primeng/select'; -import { DatePickerModule } from 'primeng/datepicker'; -import { ToggleSwitchModule } from 'primeng/toggleswitch'; -import { TreeSelectModule } from 'primeng/treeselect'; -import { MultiSelectModule } from 'primeng/multiselect'; -import { ListboxModule } from 'primeng/listbox'; -import { InputGroupAddonModule } from 'primeng/inputgroupaddon'; -import { TextareaModule } from 'primeng/textarea'; -import { ToggleButtonModule } from 'primeng/togglebutton'; -import { CountryService } from '../service/country.service'; -import { NodeService } from '../service/node.service'; -import { TreeNode } from 'primeng/api'; -import { Country } from '../service/customer.service'; - -@Component({ - selector: 'app-input-demo', - standalone: true, - imports: [ - CommonModule, - FormsModule, - InputTextModule, - ButtonModule, - CheckboxModule, - RadioButtonModule, - SelectButtonModule, - InputGroupModule, - FluidModule, - IconFieldModule, - InputIconModule, - FloatLabelModule, - AutoCompleteModule, - InputNumberModule, - SliderModule, - RatingModule, - ColorPickerModule, - KnobModule, - SelectModule, - DatePickerModule, - ToggleButtonModule, - ToggleSwitchModule, - TreeSelectModule, - MultiSelectModule, - ListboxModule, - InputGroupAddonModule, - TextareaModule - ], - template: ` -
-
-
InputText
-
- - - -
- -
Icons
- - - - - - - - - -
Float Label
- - - - - -
Textarea
- - -
AutoComplete
- - -
DatePicker
- - -
InputNumber
- -
- -
-
Slider
- - - -
-
-
Rating
- -
-
-
ColorPicker
- -
-
- -
Knob
- -
-
-
-
-
RadioButton
-
-
- - -
-
- - -
-
- - -
-
- -
Checkbox
-
-
- - -
-
- - -
-
- - -
-
- -
ToggleSwitch
- -
- -
-
Listbox
- - -
Select
- - -
MultiSelect
- - - @for (country of countries; track country.code) { -
- -
{{ country.name }}
-
- } -
- -
- -
{{ country.name }}
-
-
-
- -
TreeSelect
- -
- -
-
ToggleButton
- - -
SelectButton
- -
-
-
- - -
-
InputGroup
-
- - - - - - - - - - - - - - - $ - .00 - -
-
- - - - - - - - - - -
-
-
`, - providers: [CountryService, NodeService] -}) -export class InputDemo implements OnInit { - floatValue: any = null; - - autoValue: any[] | undefined; - - autoFilteredValue: any[] = []; - - selectedAutoValue: any = null; - - calendarValue: any = null; - - inputNumberValue: any = null; - - sliderValue: number = 50; - - ratingValue: any = null; - - colorValue: string = '#1976D2'; - - radioValue: any = null; - - checkboxValue: any[] = []; - - switchValue: boolean = false; - - listboxValues: any[] = [ - { name: 'New York', code: 'NY' }, - { name: 'Rome', code: 'RM' }, - { name: 'London', code: 'LDN' }, - { name: 'Istanbul', code: 'IST' }, - { name: 'Paris', code: 'PRS' } - ]; - - listboxValue: any = null; - - dropdownValues = [ - { name: 'New York', code: 'NY' }, - { name: 'Rome', code: 'RM' }, - { name: 'London', code: 'LDN' }, - { name: 'Istanbul', code: 'IST' }, - { name: 'Paris', code: 'PRS' } - ]; - - dropdownValue: any = null; - - multiselectCountries: Country[] = [ - { name: 'Australia', code: 'AU' }, - { name: 'Brazil', code: 'BR' }, - { name: 'China', code: 'CN' }, - { name: 'Egypt', code: 'EG' }, - { name: 'France', code: 'FR' }, - { name: 'Germany', code: 'DE' }, - { name: 'India', code: 'IN' }, - { name: 'Japan', code: 'JP' }, - { name: 'Spain', code: 'ES' }, - { name: 'United States', code: 'US' } - ]; - - multiselectSelectedCountries!: Country[]; - - toggleValue: boolean = false; - - selectButtonValue: any = null; - - selectButtonValues: any = [{ name: 'Option 1' }, { name: 'Option 2' }, { name: 'Option 3' }]; - - knobValue: number = 50; - - inputGroupValue: boolean = false; - - treeSelectNodes!: TreeNode[]; - - selectedNode: any = null; - - countryService = inject(CountryService); - - nodeService = inject(NodeService); - - ngOnInit() { - this.countryService.getCountries().then((countries) => { - this.autoValue = countries; - }); - - this.nodeService.getFiles().then((data) => (this.treeSelectNodes = data)); - } - - filterCountry(event: AutoCompleteCompleteEvent) { - const filtered: any[] = []; - const query = event.query; - - for (let i = 0; i < (this.autoValue as any[]).length; i++) { - const country = (this.autoValue as any[])[i]; - if (country.name.toLowerCase().indexOf(query.toLowerCase()) == 0) { - filtered.push(country); - } - } - - this.autoFilteredValue = filtered; - } -} diff --git a/src/app/pages/uikit/listdemo.ts b/src/app/pages/uikit/listdemo.ts deleted file mode 100644 index d06070e..0000000 --- a/src/app/pages/uikit/listdemo.ts +++ /dev/null @@ -1,217 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { ButtonModule } from 'primeng/button'; -import { DataViewModule } from 'primeng/dataview'; -import { OrderListModule } from 'primeng/orderlist'; -import { PickListModule } from 'primeng/picklist'; -import { SelectButtonModule } from 'primeng/selectbutton'; -import { TagModule } from 'primeng/tag'; -import { Product, ProductService } from '../service/product.service'; - -@Component({ - selector: 'app-list-demo', - standalone: true, - imports: [CommonModule, DataViewModule, FormsModule, SelectButtonModule, PickListModule, OrderListModule, TagModule, ButtonModule], - template: `
-
-
DataView
- - -
- - - - - -
-
- - -
-
-
-
- -
- -
-
-
-
-
- {{ item.category }} -
{{ item.name }}
-
-
-
- {{ item.rating }} - -
-
-
-
- $ {{ item.price }} -
- - -
-
-
-
-
-
-
- - -
-
-
-
- -
- -
-
-
-
-
- {{ item.category }} -
- {{ item.name }} -
-
-
-
- {{ item.rating }} - -
-
-
-
- $ {{ item.price }} -
- - -
-
-
-
-
-
-
-
-
- -
-
-
-
PickList
- - - {{ item.name }} - - -
-
- -
-
-
OrderList
- - - {{ option.name }} - - -
-
-
-
`, - styles: ` - ::ng-deep { - .p-orderlist-list-container { - width: 100%; - } - } - `, - providers: [ProductService] -}) -export class ListDemo { - layout: 'list' | 'grid' = 'list'; - - options = ['list', 'grid']; - - products: Product[] = []; - - sourceCities: any[] = []; - - targetCities: any[] = []; - - orderCities: any[] = []; - - constructor(private productService: ProductService) {} - - ngOnInit() { - this.productService.getProductsSmall().then((data) => (this.products = data.slice(0, 6))); - - this.sourceCities = [ - { name: 'San Francisco', code: 'SF' }, - { name: 'London', code: 'LDN' }, - { name: 'Paris', code: 'PRS' }, - { name: 'Istanbul', code: 'IST' }, - { name: 'Berlin', code: 'BRL' }, - { name: 'Barcelona', code: 'BRC' }, - { name: 'Rome', code: 'RM' } - ]; - - this.targetCities = []; - - this.orderCities = [ - { name: 'San Francisco', code: 'SF' }, - { name: 'London', code: 'LDN' }, - { name: 'Paris', code: 'PRS' }, - { name: 'Istanbul', code: 'IST' }, - { name: 'Berlin', code: 'BRL' }, - { name: 'Barcelona', code: 'BRC' }, - { name: 'Rome', code: 'RM' } - ]; - } - - getSeverity(product: Product) { - switch (product.inventoryStatus) { - case 'INSTOCK': - return 'success'; - - case 'LOWSTOCK': - return 'warn'; - - case 'OUTOFSTOCK': - return 'danger'; - - default: - return 'info'; - } - } -} diff --git a/src/app/pages/uikit/mediademo.ts b/src/app/pages/uikit/mediademo.ts deleted file mode 100644 index e702a85..0000000 --- a/src/app/pages/uikit/mediademo.ts +++ /dev/null @@ -1,128 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component, OnInit } from '@angular/core'; -import { ButtonModule } from 'primeng/button'; -import { CarouselModule } from 'primeng/carousel'; -import { GalleriaModule } from 'primeng/galleria'; -import { ImageModule } from 'primeng/image'; -import { TagModule } from 'primeng/tag'; -import { PhotoService } from '../service/photo.service'; -import { Product, ProductService } from '../service/product.service'; - -@Component({ - selector: 'app-media-demo', - standalone: true, - imports: [CommonModule, CarouselModule, ButtonModule, GalleriaModule, ImageModule, TagModule], - template: `
-
Carousel
- - -
-
-
- -
- -
-
-
-
{{ product.name }}
-
-
{{ '$' + product.price }}
- - - - -
-
-
-
-
- -
-
Image
- -
- -
-
Galleria
- - - - - - - - -
`, - providers: [ProductService, PhotoService] -}) -export class MediaDemo implements OnInit { - products!: Product[]; - - images!: any[]; - - galleriaResponsiveOptions: any[] = [ - { - breakpoint: '1024px', - numVisible: 5 - }, - { - breakpoint: '960px', - numVisible: 4 - }, - { - breakpoint: '768px', - numVisible: 3 - }, - { - breakpoint: '560px', - numVisible: 1 - } - ]; - - carouselResponsiveOptions: any[] = [ - { - breakpoint: '1024px', - numVisible: 3, - numScroll: 3 - }, - { - breakpoint: '768px', - numVisible: 2, - numScroll: 2 - }, - { - breakpoint: '560px', - numVisible: 1, - numScroll: 1 - } - ]; - - constructor( - private productService: ProductService, - private photoService: PhotoService - ) {} - - ngOnInit() { - this.productService.getProductsSmall().then((products) => { - this.products = products; - }); - - this.photoService.getImages().then((images) => { - this.images = images; - }); - } - - getSeverity(status: string) { - switch (status) { - case 'INSTOCK': - return 'success'; - case 'LOWSTOCK': - return 'warn'; - case 'OUTOFSTOCK': - return 'danger'; - default: - return 'success'; - } - } -} diff --git a/src/app/pages/uikit/menudemo.ts b/src/app/pages/uikit/menudemo.ts deleted file mode 100644 index bb2c896..0000000 --- a/src/app/pages/uikit/menudemo.ts +++ /dev/null @@ -1,540 +0,0 @@ -import { Component } from '@angular/core'; -import { BreadcrumbModule } from 'primeng/breadcrumb'; -import { TieredMenuModule } from 'primeng/tieredmenu'; -import { ContextMenuModule } from 'primeng/contextmenu'; -import { CommonModule } from '@angular/common'; -import { MenuModule } from 'primeng/menu'; -import { ButtonModule } from 'primeng/button'; -import { MegaMenuModule } from 'primeng/megamenu'; -import { PanelMenuModule } from 'primeng/panelmenu'; -import { TabsModule } from 'primeng/tabs'; -import { MenubarModule } from 'primeng/menubar'; -import { InputTextModule } from 'primeng/inputtext'; -import { StepperModule } from 'primeng/stepper'; -import { IconField, IconFieldModule } from 'primeng/iconfield'; -import { InputIcon, InputIconModule } from 'primeng/inputicon'; - -@Component({ - selector: 'app-menu-demo', - standalone: true, - imports: [ - CommonModule, - BreadcrumbModule, - TieredMenuModule, - IconFieldModule, - InputIconModule, - MenuModule, - ButtonModule, - ContextMenuModule, - MegaMenuModule, - PanelMenuModule, - TabsModule, - MenubarModule, - InputTextModule, - TabsModule, - StepperModule, - TabsModule, - IconField, - InputIcon - ], - template: ` -
-
Menubar
- - - - - - - - -
- -
-
Breadcrumb
- -
- -
-
-
-
Steps
- - - Header I - Header II - Header III - - -
-
-
-
-
TabMenu
- - - Header I - Header II - Header III - - -
-
-
- -
-
-
-
Tiered Menu
- -
-
-
-
-
Plain Menu
- -
-
-
-
-
Overlay Menu
- - -
- -
-
Context Menu
- Right click to display. - -
-
-
- -
-
-
-
MegaMenu | Horizontal
- - -
MegaMenu | Vertical
- -
-
-
-
-
PanelMenu
- -
-
-
- ` -}) -export class MenuDemo { - nestedMenuItems = [ - { - label: 'Customers', - icon: 'pi pi-fw pi-table', - items: [ - { - label: 'New', - icon: 'pi pi-fw pi-user-plus', - items: [ - { - label: 'Customer', - icon: 'pi pi-fw pi-plus' - }, - { - label: 'Duplicate', - icon: 'pi pi-fw pi-copy' - } - ] - }, - { - label: 'Edit', - icon: 'pi pi-fw pi-user-edit' - } - ] - }, - { - label: 'Orders', - icon: 'pi pi-fw pi-shopping-cart', - items: [ - { - label: 'View', - icon: 'pi pi-fw pi-list' - }, - { - label: 'Search', - icon: 'pi pi-fw pi-search' - } - ] - }, - { - label: 'Shipments', - icon: 'pi pi-fw pi-envelope', - items: [ - { - label: 'Tracker', - icon: 'pi pi-fw pi-compass' - }, - { - label: 'Map', - icon: 'pi pi-fw pi-map-marker' - }, - { - label: 'Manage', - icon: 'pi pi-fw pi-pencil' - } - ] - }, - { - label: 'Profile', - icon: 'pi pi-fw pi-user', - items: [ - { - label: 'Settings', - icon: 'pi pi-fw pi-cog' - }, - { - label: 'Billing', - icon: 'pi pi-fw pi-file' - } - ] - }, - { - label: 'Quit', - icon: 'pi pi-fw pi-sign-out' - } - ]; - breadcrumbHome = { icon: 'pi pi-home', to: '/' }; - breadcrumbItems = [{ label: 'Computer' }, { label: 'Notebook' }, { label: 'Accessories' }, { label: 'Backpacks' }, { label: 'Item' }]; - tieredMenuItems = [ - { - label: 'Customers', - icon: 'pi pi-fw pi-table', - items: [ - { - label: 'New', - icon: 'pi pi-fw pi-user-plus', - items: [ - { - label: 'Customer', - icon: 'pi pi-fw pi-plus' - }, - { - label: 'Duplicate', - icon: 'pi pi-fw pi-copy' - } - ] - }, - { - label: 'Edit', - icon: 'pi pi-fw pi-user-edit' - } - ] - }, - { - label: 'Orders', - icon: 'pi pi-fw pi-shopping-cart', - items: [ - { - label: 'View', - icon: 'pi pi-fw pi-list' - }, - { - label: 'Search', - icon: 'pi pi-fw pi-search' - } - ] - }, - { - label: 'Shipments', - icon: 'pi pi-fw pi-envelope', - items: [ - { - label: 'Tracker', - icon: 'pi pi-fw pi-compass' - }, - { - label: 'Map', - icon: 'pi pi-fw pi-map-marker' - }, - { - label: 'Manage', - icon: 'pi pi-fw pi-pencil' - } - ] - }, - { - label: 'Profile', - icon: 'pi pi-fw pi-user', - items: [ - { - label: 'Settings', - icon: 'pi pi-fw pi-cog' - }, - { - label: 'Billing', - icon: 'pi pi-fw pi-file' - } - ] - }, - { - separator: true - }, - { - label: 'Quit', - icon: 'pi pi-fw pi-sign-out' - } - ]; - overlayMenuItems = [ - { - label: 'Save', - icon: 'pi pi-save' - }, - { - label: 'Update', - icon: 'pi pi-refresh' - }, - { - label: 'Delete', - icon: 'pi pi-trash' - }, - { - separator: true - }, - { - label: 'Home', - icon: 'pi pi-home' - } - ]; - menuItems = [ - { - label: 'Customers', - items: [ - { - label: 'New', - icon: 'pi pi-fw pi-plus' - }, - { - label: 'Edit', - icon: 'pi pi-fw pi-user-edit' - } - ] - }, - { - label: 'Orders', - items: [ - { - label: 'View', - icon: 'pi pi-fw pi-list' - }, - { - label: 'Search', - icon: 'pi pi-fw pi-search' - } - ] - } - ]; - contextMenuItems = [ - { - label: 'Save', - icon: 'pi pi-save' - }, - { - label: 'Update', - icon: 'pi pi-refresh' - }, - { - label: 'Delete', - icon: 'pi pi-trash' - }, - { - separator: true - }, - { - label: 'Options', - icon: 'pi pi-cog' - } - ]; - megaMenuItems = [ - { - label: 'Fashion', - icon: 'pi pi-fw pi-tag', - items: [ - [ - { - label: 'Woman', - items: [{ label: 'Woman Item' }, { label: 'Woman Item' }, { label: 'Woman Item' }] - }, - { - label: 'Men', - items: [{ label: 'Men Item' }, { label: 'Men Item' }, { label: 'Men Item' }] - } - ], - [ - { - label: 'Kids', - items: [{ label: 'Kids Item' }, { label: 'Kids Item' }] - }, - { - label: 'Luggage', - items: [{ label: 'Luggage Item' }, { label: 'Luggage Item' }, { label: 'Luggage Item' }] - } - ] - ] - }, - { - label: 'Electronics', - icon: 'pi pi-fw pi-desktop', - items: [ - [ - { - label: 'Computer', - items: [{ label: 'Computer Item' }, { label: 'Computer Item' }] - }, - { - label: 'Camcorder', - items: [{ label: 'Camcorder Item' }, { label: 'Camcorder Item' }, { label: 'Camcorder Item' }] - } - ], - [ - { - label: 'TV', - items: [{ label: 'TV Item' }, { label: 'TV Item' }] - }, - { - label: 'Audio', - items: [{ label: 'Audio Item' }, { label: 'Audio Item' }, { label: 'Audio Item' }] - } - ], - [ - { - label: 'Sports.7', - items: [{ label: 'Sports.7.1' }, { label: 'Sports.7.2' }] - } - ] - ] - }, - { - label: 'Furniture', - icon: 'pi pi-fw pi-image', - items: [ - [ - { - label: 'Living Room', - items: [{ label: 'Living Room Item' }, { label: 'Living Room Item' }] - }, - { - label: 'Kitchen', - items: [{ label: 'Kitchen Item' }, { label: 'Kitchen Item' }, { label: 'Kitchen Item' }] - } - ], - [ - { - label: 'Bedroom', - items: [{ label: 'Bedroom Item' }, { label: 'Bedroom Item' }] - }, - { - label: 'Outdoor', - items: [{ label: 'Outdoor Item' }, { label: 'Outdoor Item' }, { label: 'Outdoor Item' }] - } - ] - ] - }, - { - label: 'Sports', - icon: 'pi pi-fw pi-star', - items: [ - [ - { - label: 'Basketball', - items: [{ label: 'Basketball Item' }, { label: 'Basketball Item' }] - }, - { - label: 'Football', - items: [{ label: 'Football Item' }, { label: 'Football Item' }, { label: 'Football Item' }] - } - ], - [ - { - label: 'Tennis', - items: [{ label: 'Tennis Item' }, { label: 'Tennis Item' }] - } - ] - ] - } - ]; - panelMenuItems = [ - { - label: 'Customers', - icon: 'pi pi-fw pi-table', - items: [ - { - label: 'New', - icon: 'pi pi-fw pi-user-plus', - items: [ - { - label: 'Customer', - icon: 'pi pi-fw pi-plus' - }, - { - label: 'Duplicate', - icon: 'pi pi-fw pi-copy' - } - ] - }, - { - label: 'Edit', - icon: 'pi pi-fw pi-user-edit' - } - ] - }, - { - label: 'Orders', - icon: 'pi pi-fw pi-shopping-cart', - items: [ - { - label: 'View', - icon: 'pi pi-fw pi-list' - }, - { - label: 'Search', - icon: 'pi pi-fw pi-search' - } - ] - }, - { - label: 'Shipments', - icon: 'pi pi-fw pi-envelope', - items: [ - { - label: 'Tracker', - icon: 'pi pi-fw pi-compass' - }, - { - label: 'Map', - icon: 'pi pi-fw pi-map-marker' - }, - { - label: 'Manage', - icon: 'pi pi-fw pi-pencil' - } - ] - }, - { - label: 'Profile', - icon: 'pi pi-fw pi-user', - items: [ - { - label: 'Settings', - icon: 'pi pi-fw pi-cog' - }, - { - label: 'Billing', - icon: 'pi pi-fw pi-file' - } - ] - } - ]; -} diff --git a/src/app/pages/uikit/messagesdemo.ts b/src/app/pages/uikit/messagesdemo.ts deleted file mode 100644 index e5405ca..0000000 --- a/src/app/pages/uikit/messagesdemo.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { MessageService, ToastMessageOptions } from 'primeng/api'; -import { ButtonModule } from 'primeng/button'; -import { InputTextModule } from 'primeng/inputtext'; -import { MessageModule } from 'primeng/message'; -import { ToastModule } from 'primeng/toast'; - -@Component({ - selector: 'app-messages-demo', - standalone: true, - imports: [CommonModule, ToastModule, ButtonModule, InputTextModule, MessageModule, FormsModule], - template: ` -
-
-
-
Toast
-
- - - - - -
- -
Inline
-
- - Username is required -
-
- - Email is required -
-
-
-
-
-
Message
-
- Success Message - Info Message - Warn Message - Error Message - Secondary Message - Contrast Message -
-
-
-
- `, - providers: [MessageService] -}) -export class MessagesDemo { - msgs: ToastMessageOptions[] | null = []; - - username: string | undefined; - - email: string | undefined; - - constructor(private service: MessageService) {} - - showInfoViaToast() { - this.service.add({ severity: 'info', summary: 'Info Message', detail: 'PrimeNG rocks' }); - } - - showWarnViaToast() { - this.service.add({ severity: 'warn', summary: 'Warn Message', detail: 'There are unsaved changes' }); - } - - showErrorViaToast() { - this.service.add({ severity: 'error', summary: 'Error Message', detail: 'Validation failed' }); - } - - showSuccessViaToast() { - this.service.add({ severity: 'success', summary: 'Success Message', detail: 'Message sent' }); - } -} diff --git a/src/app/pages/uikit/miscdemo.ts b/src/app/pages/uikit/miscdemo.ts deleted file mode 100644 index eaa384a..0000000 --- a/src/app/pages/uikit/miscdemo.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { AvatarModule } from 'primeng/avatar'; -import { AvatarGroupModule } from 'primeng/avatargroup'; -import { BadgeModule } from 'primeng/badge'; -import { ButtonModule } from 'primeng/button'; -import { ChipModule } from 'primeng/chip'; -import { OverlayBadgeModule } from 'primeng/overlaybadge'; -import { ProgressBarModule } from 'primeng/progressbar'; -import { ScrollPanelModule } from 'primeng/scrollpanel'; -import { ScrollTopModule } from 'primeng/scrolltop'; -import { SkeletonModule } from 'primeng/skeleton'; -import { TagModule } from 'primeng/tag'; - -@Component({ - selector: 'app-misc-demo', - standalone: true, - imports: [CommonModule, ProgressBarModule, BadgeModule, AvatarModule, ScrollPanelModule, TagModule, ChipModule, ButtonModule, SkeletonModule, AvatarGroupModule, ScrollTopModule, OverlayBadgeModule], - template: ` -
-
ProgressBar
-
-
- -
-
- -
-
-
- -
-
-
-
Badge
-
- - - - - -
- -
Overlay
-
- - - - - - - - - -
- -
Button
-
- - -
- -
Sizes
-
- - - -
-
- -
-
Avatar
-
Group
- - - - - - - - - -
Label - Circle
- - - - -
Icon - Badge
- - - -
- -
-
Skeleton
-
-
- -
- - - -
-
- -
- - -
-
-
-
-
-
-
Tag
-
Default
-
- - - - - -
- -
Pills
-
- - - - - -
- -
Icons
-
- - - - - -
-
- -
-
Chip
-
Basic
-
- - - - -
- -
Icon
-
- - - - -
- -
Image
-
- - - - -
-
-
-
- ` -}) -export class MiscDemo { - value = 0; - - interval: any; - - ngOnInit() { - this.interval = setInterval(() => { - this.value = this.value + Math.floor(Math.random() * 10) + 1; - if (this.value >= 100) { - this.value = 100; - clearInterval(this.interval); - } - }, 2000); - } - - ngOnDestroy() { - clearInterval(this.interval); - } -} diff --git a/src/app/pages/uikit/overlaydemo.ts b/src/app/pages/uikit/overlaydemo.ts deleted file mode 100644 index 6f7f154..0000000 --- a/src/app/pages/uikit/overlaydemo.ts +++ /dev/null @@ -1,334 +0,0 @@ -import { SharedDialogComponent } from '@/shared/components/dialog/dialog.component'; -import { Component, OnInit } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { ConfirmationService, MessageService } from 'primeng/api'; -import { ButtonModule } from 'primeng/button'; -import { ConfirmPopupModule } from 'primeng/confirmpopup'; -import { DialogModule } from 'primeng/dialog'; -import { DrawerModule } from 'primeng/drawer'; -import { InputTextModule } from 'primeng/inputtext'; -import { Popover, PopoverModule } from 'primeng/popover'; -import { TableModule } from 'primeng/table'; -import { ToastModule } from 'primeng/toast'; -import { TooltipModule } from 'primeng/tooltip'; -import { Product, ProductService } from '../service/product.service'; - -@Component({ - selector: 'app-overlay-demo', - standalone: true, - imports: [ - ToastModule, - DialogModule, - ButtonModule, - DrawerModule, - PopoverModule, - ConfirmPopupModule, - InputTextModule, - FormsModule, - TooltipModule, - TableModule, - ToastModule, - SharedDialogComponent, - ], - template: `
-
-
-
SharedDialogComponent
- -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud - exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure - dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. - Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt - mollit anim id est laborum. -

- - - -
- -
- -
-
Popover
-
- - - - - - Name - Image - Price - - - - - {{ product.name }} - - - - {{ product.price }} - - - - - -
-
- -
-
Tooltip
-
- - -
-
-
-
-
-
Drawer
- -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud - exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -

-
- - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud - exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -

-
- - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud - exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -

-
- - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud - exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -

-
- - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor - incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud - exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. -

-
- - - - - - -
- -
-
ConfirmPopup
- - -
- -
-
ConfirmDialog
- - -
- - Are you sure you want to proceed? -
- - - - -
-
-
-
`, - providers: [ConfirmationService, MessageService, ProductService], -}) -export class OverlayDemo implements OnInit { - images: any[] = []; - - display: boolean = false; - - products: Product[] = []; - - visibleLeft: boolean = false; - - visibleRight: boolean = false; - - visibleTop: boolean = false; - - visibleBottom: boolean = false; - - visibleFull: boolean = false; - - displayConfirmation: boolean = false; - - selectedProduct!: Product; - - constructor( - private productService: ProductService, - private confirmationService: ConfirmationService, - private messageService: MessageService, - ) {} - - ngOnInit() { - this.productService.getProductsSmall().then((products) => (this.products = products)); - - this.images = []; - this.images.push({ - source: 'assets/demo/images/sopranos/sopranos1.jpg', - thumbnail: 'assets/demo/images/sopranos/sopranos1_small.jpg', - title: 'Sopranos 1', - }); - this.images.push({ - source: 'assets/demo/images/sopranos/sopranos2.jpg', - thumbnail: 'assets/demo/images/sopranos/sopranos2_small.jpg', - title: 'Sopranos 2', - }); - this.images.push({ - source: 'assets/demo/images/sopranos/sopranos3.jpg', - thumbnail: 'assets/demo/images/sopranos/sopranos3_small.jpg', - title: 'Sopranos 3', - }); - this.images.push({ - source: 'assets/demo/images/sopranos/sopranos4.jpg', - thumbnail: 'assets/demo/images/sopranos/sopranos4_small.jpg', - title: 'Sopranos 4', - }); - } - - confirm(event: Event) { - this.confirmationService.confirm({ - key: 'confirm2', - target: event.target || new EventTarget(), - message: 'Are you sure that you want to proceed?', - icon: 'pi pi-exclamation-triangle', - accept: () => { - this.messageService.add({ - severity: 'info', - summary: 'Confirmed', - detail: 'You have accepted', - }); - }, - reject: () => { - this.messageService.add({ - severity: 'error', - summary: 'Rejected', - detail: 'You have rejected', - }); - }, - }); - } - - open() { - this.display = true; - } - - close() { - this.display = false; - } - - toggleDataTable(op: Popover, event: any) { - op.toggle(event); - } - - onProductSelect(op: Popover, event: any) { - op.hide(); - this.messageService.add({ - severity: 'info', - summary: 'Product Selected', - detail: event?.data.name, - life: 3000, - }); - } - - openConfirmation() { - this.displayConfirmation = true; - } - - closeConfirmation() { - this.displayConfirmation = false; - } -} diff --git a/src/app/pages/uikit/panelsdemo.ts b/src/app/pages/uikit/panelsdemo.ts deleted file mode 100644 index d5d512a..0000000 --- a/src/app/pages/uikit/panelsdemo.ts +++ /dev/null @@ -1,235 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { Component } from '@angular/core'; -import { FormsModule } from '@angular/forms'; -import { AccordionModule } from 'primeng/accordion'; -import { MenuItem } from 'primeng/api'; -import { ButtonModule } from 'primeng/button'; -import { DividerModule } from 'primeng/divider'; -import { FieldsetModule } from 'primeng/fieldset'; -import { IconFieldModule } from 'primeng/iconfield'; -import { InputIconModule } from 'primeng/inputicon'; -import { InputTextModule } from 'primeng/inputtext'; -import { MenuModule } from 'primeng/menu'; -import { PanelModule } from 'primeng/panel'; -import { RippleModule } from 'primeng/ripple'; -import { SplitButtonModule } from 'primeng/splitbutton'; -import { SplitterModule } from 'primeng/splitter'; -import { TabsModule } from 'primeng/tabs'; -import { ToolbarModule } from 'primeng/toolbar'; - -@Component({ - selector: 'app-panels-demo', - standalone: true, - imports: [ - CommonModule, - FormsModule, - ToolbarModule, - ButtonModule, - RippleModule, - SplitButtonModule, - AccordionModule, - FieldsetModule, - MenuModule, - InputTextModule, - DividerModule, - SplitterModule, - PanelModule, - TabsModule, - IconFieldModule, - InputIconModule - ], - template: ` -
-
-
Toolbar
- - - - - - - - - - - - - - - - - - -
- -
-
-
-
Accordion
- - - Header I - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt - mollit anim id est laborum. -

-
-
- - - Header II - -

- Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt - explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Consectetur, adipisci velit, sed quia non - numquam eius modi. -

-
-
- - - Header III - -

- Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt - explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Consectetur, adipisci velit, sed quia non - numquam eius modi. -

-
-
-
-
-
-
Tabs
- - - Header I - Header II - Header III - - - -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex - ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt - mollit anim id est laborum. -

-
- -

- Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt - explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Consectetur, adipisci velit, sed quia non - numquam eius modi. -

-
- -

- At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, - similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga. Et harum quidem rerum facilis est et expedita distinctio. Nam libero tempore, cum soluta nobis est eligendi optio - cumque nihil impedit quo minus. -

-
-
-
-
-
-
-
-
Panel
- -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea - commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim - id est laborum. -

-
-
-
-
Fieldset
- -

- Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea - commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim - id est laborum. -

-
-
-
-
- -
-
Divider
-
-
-
- - -
-
- - -
-
- -
-
-
- OR - OR -
-
- -
-
-
- -
-
Splitter
- - -
Panel 1
-
- - - -
Panel 2
-
- - - -
Panel 3
-
- -
Panel 4
-
-
-
-
-
-
-
-
- ` -}) -export class PanelsDemo { - items: MenuItem[] = [ - { - label: 'Save', - icon: 'pi pi-check' - }, - { - label: 'Update', - icon: 'pi pi-upload' - }, - { - label: 'Delete', - icon: 'pi pi-trash' - }, - { - label: 'Home Page', - icon: 'pi pi-home' - } - ]; -} diff --git a/src/app/pages/uikit/tabledemo.ts b/src/app/pages/uikit/tabledemo.ts deleted file mode 100644 index 0b032d8..0000000 --- a/src/app/pages/uikit/tabledemo.ts +++ /dev/null @@ -1,568 +0,0 @@ -import { Component, ElementRef, OnInit, ViewChild } from '@angular/core'; -import { ConfirmationService, MessageService } from 'primeng/api'; -import { InputTextModule } from 'primeng/inputtext'; -import { MultiSelectModule } from 'primeng/multiselect'; -import { SelectModule } from 'primeng/select'; -import { SliderModule } from 'primeng/slider'; -import { Table, TableModule } from 'primeng/table'; -import { ProgressBarModule } from 'primeng/progressbar'; -import { ToggleButtonModule } from 'primeng/togglebutton'; -import { ToastModule } from 'primeng/toast'; -import { CommonModule } from '@angular/common'; -import { FormsModule } from '@angular/forms'; -import { ButtonModule } from 'primeng/button'; -import { RatingModule } from 'primeng/rating'; -import { RippleModule } from 'primeng/ripple'; -import { InputIconModule } from 'primeng/inputicon'; -import { IconFieldModule } from 'primeng/iconfield'; -import { TagModule } from 'primeng/tag'; -import { Customer, CustomerService, Representative } from '../service/customer.service'; -import { Product, ProductService } from '../service/product.service'; -import {ObjectUtils} from "primeng/utils"; - -interface expandedRows { - [key: string]: boolean; -} - -@Component({ - selector: 'app-table-demo', - standalone: true, - imports: [ - TableModule, - MultiSelectModule, - SelectModule, - InputIconModule, - TagModule, - InputTextModule, - SliderModule, - ProgressBarModule, - ToggleButtonModule, - ToastModule, - CommonModule, - FormsModule, - ButtonModule, - RatingModule, - RippleModule, - IconFieldModule - ], - template: `
-
Filtering
- - -
- - - - - - - -
-
- - - -
- Name - -
- - -
- Country - -
- - -
- Agent - - -
- Agent Picker -
-
- - - -
- - {{ option.name }} -
-
-
-
-
-
- - -
- Date - -
- - -
- Balance - -
- - -
- Status - - - - - {{ option.label }} - - - - -
- - -
- Activity - - - -
- {{ activityValues[0] }} - {{ activityValues[1] }} -
-
-
-
- - -
- Verified - -
- - -
- - - - {{ customer.name }} - - -
- - {{ customer.country.name }} -
- - -
- - {{ customer.representative.name }} -
- - - {{ customer.date | date: 'MM/dd/yyyy' }} - - - {{ customer.balance | currency: 'USD' : 'symbol' }} - - - - - - - - - - - -
- - - No customers found. - - - - - Loading customers data. Please wait. - - -
-
- -
-
Frozen Columns
- - - - - - Name - Id - Country - Date - Company - Status - Activity - Representative - Balance - - - - - {{ customer.name }} - {{ customer.id }} - {{ customer.country.name }} - {{ customer.date }} - {{ customer.company }} - {{ customer.status }} - {{ customer.activity }} - {{ customer.representative.name }} - - {{ formatCurrency(customer.balance) }} - - - - -
- -
-
Row Expansion
- - - -
-
- - - - Name - Image - Price - Category - Reviews - Status - - - - - - - - {{ product.name }} - - - - {{ product.price | currency: 'USD' }} - {{ product.category }} - - - - - - - - - - - -
-
Orders for {{ product.name }}
- - - - Id - - Customer - - - Date - - Amount - - - - Status - - - - - - - - {{ order.id }} - {{ order.customer }} - {{ order.date }} - - {{ order.amount | currency: 'USD' }} - - - - - - - - - - - - There are no order for this product yet. - - - -
- - -
-
-
- -
-
Grouping
- - - - Name - Country - Company - Status - Date - - - - - -
- - {{ customer.representative.name }} -
- - -
- - - Total Customers: {{ calculateCustomerTotal(customer.representative.name) }} - - - - - - {{ customer.name }} - - -
- - {{ customer.country.name }} -
- - - {{ customer.company }} - - - - - - {{ customer.date }} - - -
-
-
`, - styles: ` - .p-datatable-frozen-tbody { - font-weight: bold; - } - - .p-datatable-scrollable .p-frozen-column { - font-weight: bold; - } - `, - providers: [ConfirmationService, MessageService, CustomerService, ProductService] -}) -export class TableDemo implements OnInit { - customers1: Customer[] = []; - - customers2: Customer[] = []; - - customers3: Customer[] = []; - - selectedCustomers1: Customer[] = []; - - selectedCustomer: Customer = {}; - - representatives: Representative[] = []; - - statuses: any[] = []; - - products: Product[] = []; - - rowGroupMetadata: any; - - expandedRows: expandedRows = {}; - - activityValues: number[] = [0, 100]; - - isExpanded: boolean = false; - - balanceFrozen: boolean = false; - - loading: boolean = true; - - @ViewChild('filter') filter!: ElementRef; - - constructor( - private customerService: CustomerService, - private productService: ProductService - ) {} - - ngOnInit() { - this.customerService.getCustomersLarge().then((customers) => { - this.customers1 = customers; - this.loading = false; - - // @ts-ignore - this.customers1.forEach((customer) => (customer.date = new Date(customer.date))); - }); - this.customerService.getCustomersMedium().then((customers) => (this.customers2 = customers)); - this.customerService.getCustomersLarge().then((customers) => (this.customers3 = customers)); - this.productService.getProductsWithOrdersSmall().then((data) => (this.products = data)); - - this.representatives = [ - { name: 'Amy Elsner', image: 'amyelsner.png' }, - { name: 'Anna Fali', image: 'annafali.png' }, - { name: 'Asiya Javayant', image: 'asiyajavayant.png' }, - { name: 'Bernardo Dominic', image: 'bernardodominic.png' }, - { name: 'Elwin Sharvill', image: 'elwinsharvill.png' }, - { name: 'Ioni Bowcher', image: 'ionibowcher.png' }, - { name: 'Ivan Magalhaes', image: 'ivanmagalhaes.png' }, - { name: 'Onyama Limba', image: 'onyamalimba.png' }, - { name: 'Stephen Shaw', image: 'stephenshaw.png' }, - { name: 'XuXue Feng', image: 'xuxuefeng.png' } - ]; - - this.statuses = [ - { label: 'Unqualified', value: 'unqualified' }, - { label: 'Qualified', value: 'qualified' }, - { label: 'New', value: 'new' }, - { label: 'Negotiation', value: 'negotiation' }, - { label: 'Renewal', value: 'renewal' }, - { label: 'Proposal', value: 'proposal' } - ]; - } - - onSort() { - this.updateRowGroupMetaData(); - } - - updateRowGroupMetaData() { - this.rowGroupMetadata = {}; - - if (this.customers3) { - for (let i = 0; i < this.customers3.length; i++) { - const rowData = this.customers3[i]; - const representativeName = rowData?.representative?.name || ''; - - if (i === 0) { - this.rowGroupMetadata[representativeName] = { index: 0, size: 1 }; - } else { - const previousRowData = this.customers3[i - 1]; - const previousRowGroup = previousRowData?.representative?.name; - if (representativeName === previousRowGroup) { - this.rowGroupMetadata[representativeName].size++; - } else { - this.rowGroupMetadata[representativeName] = { index: i, size: 1 }; - } - } - } - } - } - - expandAll() { - if(ObjectUtils.isEmpty(this.expandedRows)) { - this.expandedRows = this.products.reduce( - (acc, p) => { - if (p.id) { - acc[p.id] = true; - } - return acc; - }, - {} as { [key: string]: boolean } - ); - this.isExpanded = true; - } else { - this.collapseAll() - } - - } - - collapseAll() { - this.expandedRows = {}; - this.isExpanded = false; - } - - formatCurrency(value: number) { - return value.toLocaleString('en-US', { style: 'currency', currency: 'USD' }); - } - - onGlobalFilter(table: Table, event: Event) { - table.filterGlobal((event.target as HTMLInputElement).value, 'contains'); - } - - clear(table: Table) { - table.clear(); - this.filter.nativeElement.value = ''; - } - - getSeverity(status: string) { - switch (status) { - case 'qualified': - case 'instock': - case 'INSTOCK': - case 'DELIVERED': - case 'delivered': - return 'success'; - - case 'negotiation': - case 'lowstock': - case 'LOWSTOCK': - case 'PENDING': - case 'pending': - return 'warn'; - - case 'unqualified': - case 'outofstock': - case 'OUTOFSTOCK': - case 'CANCELLED': - case 'cancelled': - return 'danger'; - - default: - return 'info'; - } - } - - calculateCustomerTotal(name: string) { - let total = 0; - - if (this.customers2) { - for (let customer of this.customers2) { - if (customer.representative?.name === name) { - total++; - } - } - } - - return total; - } -} diff --git a/src/app/pages/uikit/timelinedemo.ts b/src/app/pages/uikit/timelinedemo.ts deleted file mode 100644 index 42fe80c..0000000 --- a/src/app/pages/uikit/timelinedemo.ts +++ /dev/null @@ -1,141 +0,0 @@ -import {Component} from '@angular/core'; -import {TimelineModule} from 'primeng/timeline'; -import {CardModule} from 'primeng/card'; -import {CommonModule} from '@angular/common'; -import {ButtonModule} from 'primeng/button'; - -@Component({ - selector: 'app-timeline-demo', - standalone: true, - imports: [CommonModule, TimelineModule, ButtonModule, CardModule], - template: `
-
-
-
Left Align
- - - {{ event.status }} - - -
-
-
-
-
Right Align
- - - {{ event.status }} - - -
-
-
-
-
Alternate Align
- - - {{ event.status }} - - -
-
-
-
-
Opposite Content
- - - {{ event.date }} - - - {{ event.status }} - - -
-
-
-
-
Templating
- - - - - - - - - -

- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Inventore sed consequuntur error repudiandae numquam deserunt quisquam repellat libero asperiores earum nam nobis, culpa ratione quam perferendis esse, - cupiditate neque quas! -

- -
-
-
-
-
-
-
-
Horizontal
-
Top Align
- - - {{ event }} - - - -
Bottom Align
- - - {{ event }} - - - -
Alternate Align
- - - {{ event }} - -   - -
-
-
` -}) -export class TimelineDemo { - events1: any[] = []; - - events2: any[] = []; - - ngOnInit() { - this.events1 = [ - { - status: 'Ordered', - date: '15/10/2020 10:30', - icon: 'pi pi-shopping-cart', - color: '#9C27B0', - image: 'game-controller.jpg' - }, - { - status: 'Processing', - date: '15/10/2020 14:00', - icon: 'pi pi-cog', - color: '#673AB7' - }, - { - status: 'Shipped', - date: '15/10/2020 16:15', - icon: 'pi pi-envelope', - color: '#FF9800' - }, - { - status: 'Delivered', - date: '16/10/2020 10:00', - icon: 'pi pi-check', - color: '#607D8B' - } - ]; - - this.events2 = ['2020', '2021', '2022', '2023']; - } -} diff --git a/src/app/pages/uikit/treedemo.ts b/src/app/pages/uikit/treedemo.ts deleted file mode 100644 index 7879f1b..0000000 --- a/src/app/pages/uikit/treedemo.ts +++ /dev/null @@ -1,75 +0,0 @@ -import { Component, inject, OnInit } from '@angular/core'; -import { TreeNode } from 'primeng/api'; -import { TreeModule } from 'primeng/tree'; -import { FormsModule } from '@angular/forms'; -import { TreeTableModule } from 'primeng/treetable'; -import { CommonModule } from '@angular/common'; -import { NodeService } from '../service/node.service'; - -@Component({ - selector: 'app-tree-demo', - standalone: true, - imports: [CommonModule, FormsModule, TreeModule, TreeTableModule], - template: ` -
-
Tree
- -
- -
-
TreeTable
- - - - - {{ col.header }} - - - - - - - - - - {{ rowData[col.field] }} - - - - - -
- `, - providers: [NodeService] -}) -export class TreeDemo implements OnInit { - treeValue: TreeNode[] = []; - - treeTableValue: TreeNode[] = []; - - selectedTreeValue: TreeNode[] = []; - - selectedTreeTableValue = {}; - - cols: any[] = []; - - nodeService = inject(NodeService); - - ngOnInit() { - this.nodeService.getFiles().then((files) => (this.treeValue = files)); - this.nodeService.getTreeTableNodes().then((files: any) => (this.treeTableValue = files)); - - this.cols = [ - { field: 'name', header: 'Name' }, - { field: 'size', header: 'Size' }, - { field: 'type', header: 'Type' } - ]; - - this.selectedTreeTableValue = { - '0-0': { - partialChecked: false, - checked: true - } - }; - } -} diff --git a/src/app/pages/uikit/uikit.routes.ts b/src/app/pages/uikit/uikit.routes.ts deleted file mode 100644 index c9ed471..0000000 --- a/src/app/pages/uikit/uikit.routes.ts +++ /dev/null @@ -1,35 +0,0 @@ -import { Routes } from '@angular/router'; -import { ButtonDemo } from './buttondemo'; -import { ChartDemo } from './chartdemo'; -import { FileDemo } from './filedemo'; -import { FormLayoutDemo } from './formlayoutdemo'; -import { InputDemo } from './inputdemo'; -import { ListDemo } from './listdemo'; -import { MediaDemo } from './mediademo'; -import { MessagesDemo } from './messagesdemo'; -import { MiscDemo } from './miscdemo'; -import { PanelsDemo } from './panelsdemo'; -import { TimelineDemo } from './timelinedemo'; -import { TableDemo } from './tabledemo'; -import { OverlayDemo } from './overlaydemo'; -import { TreeDemo } from './treedemo'; -import { MenuDemo } from './menudemo'; - -export default [ - { path: 'button', data: { breadcrumb: 'Button' }, component: ButtonDemo }, - { path: 'charts', data: { breadcrumb: 'Charts' }, component: ChartDemo }, - { path: 'file', data: { breadcrumb: 'File' }, component: FileDemo }, - { path: 'formlayout', data: { breadcrumb: 'Form Layout' }, component: FormLayoutDemo }, - { path: 'input', data: { breadcrumb: 'Input' }, component: InputDemo }, - { path: 'list', data: { breadcrumb: 'List' }, component: ListDemo }, - { path: 'media', data: { breadcrumb: 'Media' }, component: MediaDemo }, - { path: 'message', data: { breadcrumb: 'Message' }, component: MessagesDemo }, - { path: 'misc', data: { breadcrumb: 'Misc' }, component: MiscDemo }, - { path: 'panel', data: { breadcrumb: 'Panel' }, component: PanelsDemo }, - { path: 'timeline', data: { breadcrumb: 'Timeline' }, component: TimelineDemo }, - { path: 'table', data: { breadcrumb: 'Table' }, component: TableDemo }, - { path: 'overlay', data: { breadcrumb: 'Overlay' }, component: OverlayDemo }, - { path: 'tree', data: { breadcrumb: 'Tree' }, component: TreeDemo }, - { path: 'menu', data: { breadcrumb: 'Menu' }, component: MenuDemo }, - { path: '**', redirectTo: '/notfound' } -] as Routes; diff --git a/src/app/shared/abstractClasses/abstract-is-mobile.ts b/src/app/shared/abstractClasses/abstract-is-mobile.ts new file mode 100644 index 0000000..ade7cbb --- /dev/null +++ b/src/app/shared/abstractClasses/abstract-is-mobile.ts @@ -0,0 +1,34 @@ +import { + Component, + EventEmitter, + HostListener, + Input, + OnInit, + Output, + signal, +} from '@angular/core'; + +@Component({ + selector: 'abstract-isMobile', + template: '', +}) +export class AbstractIsMobileComponent implements OnInit { + @Input() mobileBreakpoint = 768; + + @Output() onHide = new EventEmitter(); + + isMobile = signal(false); + + ngOnInit() { + this.updateViewportMode(); + } + + @HostListener('window:resize') + onResize() { + this.updateViewportMode(); + } + + private updateViewportMode() { + this.isMobile.set(typeof window !== 'undefined' && window.innerWidth <= this.mobileBreakpoint); + } +} diff --git a/src/app/shared/components/input/input.component.ts b/src/app/shared/components/input/input.component.ts index d17a9f8..21caa59 100644 --- a/src/app/shared/components/input/input.component.ts +++ b/src/app/shared/components/input/input.component.ts @@ -68,6 +68,7 @@ export class InputComponent { @Input() min?: number; @Input() max?: number; @Input() fixed?: number; + @Input() numericValue?: number; @Output() valueChange = new EventEmitter(); @Output() blur = new EventEmitter(); @@ -263,15 +264,7 @@ export class InputComponent { numericValue = Number.isNaN(parseFloat(value)) ? 0 : parseFloat(value); } - const isIdentifierField = [ - 'nationalId', - 'phone', - 'postalCode', - 'mobile', - 'email', - 'password', - 'simple', - ].includes(this.type); + const isIdentifierField = !this.numericValue; this.control.setValue(isIdentifierField ? value : value === '' ? '' : numericValue); const viewValue = isPriceFormat && value !== '' ? numericValue.toLocaleString('en-US') : value; diff --git a/src/app/shared/components/page-loading.component.html b/src/app/shared/components/page-loading.component.html index 88a192a..8a6a61f 100644 --- a/src/app/shared/components/page-loading.component.html +++ b/src/app/shared/components/page-loading.component.html @@ -1,3 +1,3 @@ -
+
diff --git a/src/app/utils/prepare-invoice-print.utils.ts b/src/app/utils/prepare-invoice-print.utils.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 8055915..61b7975 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -2,8 +2,8 @@ export const environment = { production: false, // apiBaseUrl: 'http://194.59.214.243:5002', - apiBaseUrl: 'http://192.168.128.73:5002', - // apiBaseUrl: 'http://localhost:5002', + // apiBaseUrl: 'http://192.168.128.73:5002', + apiBaseUrl: 'http://localhost:5002', // host: 'http://194.59.214.243', host: 'localhost', port: 5000, diff --git a/src/tenants/default/app.routes.ts b/src/tenants/default/app.routes.ts index 458d540..5b28c47 100644 --- a/src/tenants/default/app.routes.ts +++ b/src/tenants/default/app.routes.ts @@ -5,8 +5,6 @@ import { PROVIDER_ROUTES } from '@/domains/provider/routes'; import { SUPER_ADMIN_ROUTES } from '@/domains/superAdmin/routes'; import { AppLayout } from '@/layout/default/app.layout.component'; import { AuthComponent } from '@/modules/auth/pages/auth.component'; -import { Dashboard } from '@/pages/dashboard/dashboard'; -import { Documentation } from '@/pages/documentation/documentation'; import { Notfound } from '@/pages/notfound/notfound.component'; import { Routes } from '@angular/router'; @@ -14,17 +12,7 @@ export const appRoutes: Routes = [ { path: '', component: AppLayout, - children: [ - SUPER_ADMIN_ROUTES, - CONSUMER_ROUTES, - PROVIDER_ROUTES, - PARTNER_ROUTES, - POS_ROUTES, - { path: 'ng', component: Dashboard }, - { path: 'uikit', loadChildren: () => import('@/pages/uikit/uikit.routes') }, - { path: 'documentation', component: Documentation }, - { path: 'pages', loadChildren: () => import('@/pages/pages.routes') }, - ], + children: [SUPER_ADMIN_ROUTES, CONSUMER_ROUTES, PROVIDER_ROUTES, PARTNER_ROUTES, POS_ROUTES], }, { path: 'auth', diff --git a/src/tenants/tis/branding.config.ts b/src/tenants/tis/branding.config.ts index a6dfd0f..a154735 100644 --- a/src/tenants/tis/branding.config.ts +++ b/src/tenants/tis/branding.config.ts @@ -1,7 +1,7 @@ import { BrandingConfig } from '../default/branding.config'; export const brandingConfig: BrandingConfig = { - appTitle: 'PSP A - مدیریت صورت‌حساب‌های مالیاتی', + appTitle: 'تیس - مدیریت صورت‌حساب‌های مالیاتی', manifestPath: '/favicon/site.webmanifest', themeColor: '#ffffff', };