fixa-admin 0.0.60 → 0.0.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fixa-admin.mjs","sources":["../../../projects/shared/src/lib/models/shared.model.ts","../../../projects/shared/src/lib/services/shared.service.ts","../../../projects/shared/src/lib/services/dialog.service.ts","../../../projects/shared/src/lib/services/toast.service.ts","../../../projects/shared/src/lib/services/form.service.ts","../../../projects/shared/src/lib/services/confirm.service.ts","../../../projects/shared/src/lib/directive/mask.ts","../../../projects/shared/src/lib/directive/mask.directive.ts","../../../projects/shared/src/lib/components/grid/filter/date-filter.component.ts","../../../projects/shared/src/lib/components/grid/filter/time-filter.component.ts","../../../projects/shared/src/lib/pipes/date.pipe.ts","../../../projects/shared/src/lib/db.ts","../../../projects/shared/src/lib/components/grid/grid.component.ts","../../../projects/shared/src/lib/components/grid/grid.component.html","../../../projects/shared/src/lib/components/grid/render/action-button.component.ts","../../../projects/shared/src/lib/components/grid/render/action-button.component.html","../../../projects/shared/src/lib/components/captcha/captcha.component.ts","../../../projects/shared/src/lib/components/captcha/captcha.component.html","../../../projects/shared/src/lib/components/map/map.component.ts","../../../projects/shared/src/lib/components/map/map.component.html","../../../projects/shared/src/lib/components/spinner/spinner.component.ts","../../../projects/shared/src/lib/components/spinner/spinner.component.html","../../../projects/shared/src/lib/class/popover.ts","../../../projects/shared/src/lib/popover/image-cropper/image-cropper.popover.ts","../../../projects/shared/src/lib/popover/image-cropper/image-cropper.popover.html","../../../projects/shared/src/lib/components/uploader/uploader.component.ts","../../../projects/shared/src/lib/components/uploader/uploader.component.html","../../../projects/shared/src/lib/components/upload-file/upload-file.component.ts","../../../projects/shared/src/lib/components/upload-file/upload-file.component.html","../../../projects/shared/src/lib/directive/char-input.directive.ts","../../../projects/shared/src/lib/directive/numeric-input.directive.ts","../../../projects/shared/src/lib/directive/image.directive.ts","../../../projects/shared/src/lib/directive/video.directive.ts","../../../projects/shared/src/lib/guard/auth.guard.ts","../../../projects/shared/src/lib/layouts/master/master.layout.ts","../../../projects/shared/src/lib/layouts/master/master.layout.html","../../../projects/shared/src/lib/layouts/blank/blank.layout.ts","../../../projects/shared/src/lib/layouts/blank/blank.layout.html","../../../projects/shared/src/lib/charts/pie.chart.ts","../../../projects/shared/src/lib/shared.module.ts","../../../projects/shared/src/lib/pipes/timer.pipe.ts","../../../projects/shared/src/public-api.ts","../../../projects/shared/src/fixa-admin.ts"],"sourcesContent":["import { NzButtonType } from \"ng-zorro-antd/button\";\nimport { NzTreeNodeOptions } from 'ng-zorro-antd/tree';\n\nexport interface ToolbarItems {\n icon?: string;\n text: string;\n code: 'insert' | 'refresh' | string;\n class?: string;\n type?: NzButtonType;\n loading?: boolean;\n}\n\nexport interface ColumnItems {\n id?: any;\n field: string;\n label: string;\n filter?: 'filter-box' | 'grid-header' | 'none';\n sortable?: boolean;\n editable?: boolean;\n editItems?: void;\n filterItems?: any;\n minWidth?: number;\n searchField?: string;\n pinned?: boolean | \"left\" | \"right\";\n type?: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image' | 'time';\n}\n\nexport interface ActionItems {\n icon: string;\n code: string;\n alt: string;\n}\n\nexport interface DatasourceOutputModel {\n items: any;\n totalCount: number;\n}\n\nexport interface GridActionOutput {\n event: string;\n data: any;\n id: string;\n}\n\nexport interface DialogBodyModel<T> {\n title: string;\n size?: 'sm' | 'md' | 'xl' | 'lg' | 'full';\n data?: T;\n disableFooter?: boolean;\n closable?: boolean;\n class?: string;\n}\n\nexport interface MenuItems {\n title: string;\n path: string;\n icon?: string;\n children?: MenuItems[];\n}\n\nexport interface PolygonData {\n name: string;\n coordinates: number[][];\n color: string;\n editable: boolean;\n data?: any;\n}\n\nexport interface GridInputModel {\n take: number;\n skip: number;\n filter: {\n field: string;\n value: any;\n operator: FilterOperator;\n logic: 'AND' | 'OR';\n disable: boolean;\n truncateDate: boolean;\n ignoreCase: boolean;\n filters: FilterGridItemsModel[],\n },\n sorts: SortModel[],\n data: any;\n}\n\nexport interface SortModel {\n field: string;\n dir: 'asc' | 'desc';\n}\n\nexport interface FilterGridItemsModel {\n field: string;\n value: any;\n operator: FilterOperator;\n logic: 'AND' | 'OR';\n disable: boolean;\n truncateDate: boolean;\n ignoreCase: boolean;\n filters: FilterGridItemsModel[]\n}\n\nexport enum FilterOperator {\n equals = 'EQ',\n notEqual = 'NEQ',\n lessThan = 'LT',\n lessThanOrEqual = 'LTE',\n greaterThan = 'GT',\n greaterThanOrEqual = 'GTE',\n startsWith = 'STARTSWITH',\n endsWith = 'ENDSWITH',\n inRange = 'IN',\n contains = 'LIKE',\n notContains = 'NOTLIKE',\n truncEqual = 'TRUNC_EQ',\n truncNotEqual = 'TRUNC_NEQ',\n truncGreaterThanEqual = 'TRUNC_GTE',\n truncGreaterThan = 'TRUNC_GT',\n truncLessThanOr = 'TRUNC_LT',\n truncLessThanOrEqual = 'TRUNC_LTE',\n between = 'BETWEEN'\n}\n\nexport class SelectModel {\n items: SelectItemsModel[] = [];\n loading?: boolean = false;\n page?: number = null;\n pageSize?: number = null;\n totalCount?: number = null;\n}\n\nexport interface FilterItemsValuesModel {\n field: string;\n label: string;\n value: string;\n}\n\nexport interface FilterBoxModel {\n field: string;\n label: string;\n items?: FilterBoxItemsModel[];\n value: any;\n nodes: NzTreeNodeOptions[];\n colSpan: 1 | 2;\n sort: number;\n position: 'filter' | 'data';\n type?: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image' | 'tree-select' | 'time';\n}\n\nexport interface FilterBoxItemsModel {\n label: string;\n value: any;\n children?: FilterBoxItemsModel[];\n}\n\nexport interface FilterItemsModel {\n field: string;\n label: string;\n items?: () => Promise<FilterBoxItemsModel[]>;\n position?: 'filter' | 'data';\n type: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image' | 'tree-select' | 'time';\n defaultValue?: any;\n colSpan?: 1 | 2;\n sort?: number;\n}\n\nexport interface SelectItemsModel {\n id: any;\n title: string;\n data?: any;\n}\n\nexport interface GridRequestParam {\n parentNode: any;\n}\n\nexport interface PolygonEventEmiter {\n lat: number;\n lng: number;\n}\n\nexport interface CropperInputModel {\n file: File;\n aspectRatio: number;\n}\n\nexport enum ContentType {\n VIDEO,\n IMAGE\n}\n\nexport interface FilterTemplateModel {\n id: string;\n tableId: string;\n userName: string;\n title: string;\n grid: GridInputModel;\n}","import { Inject, Injectable } from '@angular/core';\nimport { ContentType, MenuItems } from '../models/shared.model';\nimport { FormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SharedService {\n constructor(\n @Inject('environment') environment,\n private _http: HttpClient\n ) {\n this.environment = environment;\n }\n environment: any = null;\n menuItems: MenuItems[] = [];\n\n upload(file: File): Observable<string> {\n let formData: FormData = new FormData();\n formData.append('file', file, file.name);\n return this._http.post<string>(`${this.environment.apiUrl}/file`, formData, {\n responseType: 'text' as 'json',\n });\n }\n\n getFile(url: string, type: ContentType = ContentType.IMAGE): Promise<string> {\n return new Promise((resolve, reject) => {\n this._http.get(`${this.environment.apiUrl}/file/${url}`, {\n responseType: 'arraybuffer'\n }).subscribe({\n next: (value) => {\n let blobUrl=null;\n if (type == ContentType.IMAGE) {\n const blob = new Blob([value], { type: 'image/jpeg' });\n blobUrl = URL.createObjectURL(blob);\n } else {\n const blob = new Blob([value], { type: 'video/mp4' });\n blobUrl = URL.createObjectURL(blob);\n }\n resolve(blobUrl);\n },\n });\n });\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';\nimport { DialogBodyModel } from '../models/shared.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n constructor(\n private _modal: NzModalService,\n ) { }\n\n open<T>(component: ComponentType<any>, body: DialogBodyModel<T>): NzModalRef {\n let size = '520px';\n let height = 'auto';\n let className = null;\n switch (body.size) {\n case 'md':\n size = '640px'\n break;\n case 'lg':\n size = '780px'\n break;\n case 'xl':\n size = '1024px'\n break;\n case 'full':\n size = '100%';\n height = '100%';\n className = 'full-screen'\n break;\n default:\n size = '520px';\n break;\n }\n const modal: NzModalRef = this._modal.create({\n nzTitle: body.title,\n nzWidth: size,\n nzClassName: body.class ? body.class + ' ' + className : className,\n nzMaskClosable: body.closable != null ? body.closable : true,\n nzStyle: body.size == 'full' ? {\n height: height,\n top: '20px'\n } : null,\n nzData: {\n ...body.data\n },\n nzOnOk: () => {\n const instance = modal.getContentComponent();\n return instance.onOk();\n },\n nzOnCancel: () => {\n const instance = modal.getContentComponent();\n return instance.onCancel();\n },\n nzFooter: body.disableFooter ? null : undefined,\n nzContent: component,\n });\n\n return modal;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n constructor(\n private _message: NzMessageService\n ) { }\n\n show(message, type: \"success\" | \"info\" | \"warning\" | \"error\" | \"loading\") {\n this._message.create(type, message)\n }\n}","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormService {\n constructor() { }\n\n validateForm(form: FormGroup) {\n Object.values(form.controls).forEach(control => {\n if (control.invalid) {\n control.markAsDirty();\n control.updateValueAndValidity({ onlySelf: true });\n }\n });\n }\n}","import { Injectable, Input } from '@angular/core';\nimport { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmService {\n constructor(\n private _modal: NzModalService\n ) { }\n\n confirm(action: () => Promise<any>, title: string = 'آیا از انجام این عملیات اطمینان دارید؟'): Promise<void> {\n return new Promise((resolve, reject) => {\n const modalRef: NzModalRef = this._modal.confirm({\n nzTitle: title,\n nzOkText: 'تائید',\n nzOkType: 'primary',\n nzOkDanger: true,\n nzOnOk: () => {\n return action()\n .then(() => {\n resolve();\n })\n .catch((error) => {\n reject(error);\n });\n },\n nzCancelText: 'لغو',\n nzOnCancel: () => { }\n });\n })\n }\n}","\nconst _formatToRegExp = {\n '0': /[0-9]/, 'a': /[a-z]/, 'A': /[A-Z]/, 'B': /[a-zA-Z]/,\n};\n\nconst _allFormatsStr = '(' +\n Object.keys(_formatToRegExp)\n .map(key => _formatToRegExp[key].toString())\n .map(regexStr => regexStr.substr(1, regexStr.length - 2))\n .join('|')\n + ')';\n\nconst _allFormatsGlobal = getAllFormatRegexp('g');\n\n/**\n * Apply format to a value string\n *\n * Format can be constructed from next symbols:\n * - '0': /[0-9]/,\n * - 'a': /[a-z]/,\n * - 'A': /[A-Z]/,\n * - 'B': /[a-zA-Z]/\n *\n * Example: 'AAA-00BB-aaaa'\n * will accept 'COD-12Rt-efww'\n *\n * @param value Current value\n * @param format Format\n * @param goingBack Indicates if change was done by BackSpace\n * @param prevValue Pass to precisely detect formatter chars\n */\nexport function valueToFormat(value: string, format: string, goingBack = false, prevValue?: string): string {\n let maskedValue = '';\n const unmaskedValue = unmaskValue(value);\n const isLastCharFormatter = !getAllFormatRegexp().test(value[value.length - 1]);\n const isPrevLastCharFormatter = prevValue && !getAllFormatRegexp().test(prevValue[prevValue.length - 1]);\n\n let formatOffset = 0;\n for (let i = 0, maxI = Math.min(unmaskedValue.length, format.length); i < maxI; ++i) {\n const valueChar = unmaskedValue[i];\n let formatChar = format[formatOffset + i];\n let formatRegex = getFormatRegexp(formatChar);\n\n if (formatChar && !formatRegex) {\n maskedValue += formatChar;\n formatChar = format[++formatOffset + i];\n formatRegex = getFormatRegexp(formatChar);\n }\n\n if (valueChar && formatRegex) {\n if (formatRegex.test(valueChar)) {\n maskedValue += valueChar;\n } else {\n break;\n }\n }\n\n const nextFormatChar = format[formatOffset + i + 1];\n const nextFormatRegex = getFormatRegexp(nextFormatChar);\n const isLastIteration = i === maxI - 1;\n\n if (isLastIteration && nextFormatChar && !nextFormatRegex) {\n if (!isLastCharFormatter && goingBack) {\n if (prevValue && !isPrevLastCharFormatter) {\n continue;\n }\n maskedValue = maskedValue.substr(0, formatOffset + i);\n } else {\n maskedValue += nextFormatChar;\n }\n }\n }\n\n return maskedValue;\n}\n\nexport function unmaskValue(value: string): string {\n const unmaskedMathes = value.match(_allFormatsGlobal);\n return unmaskedMathes ? unmaskedMathes.join('') : '';\n}\n\nfunction getAllFormatRegexp(flags?: string) {\n return new RegExp(_allFormatsStr, flags);\n}\n\nfunction getFormatRegexp(formatChar: string): RegExp | null {\n return formatChar && _formatToRegExp[formatChar] ? _formatToRegExp[formatChar] : null;\n}","import { Directive, Injector, Input, OnInit } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { valueToFormat, unmaskValue } from './mask';\n\n@Directive({\n selector: '[appMask]',\n})\nexport class MaskDirective implements OnInit {\n\n @Input() appMask: string;\n\n private control: NgControl;\n private _lastMaskedValue = '';\n\n constructor(\n private injector: Injector,\n ) { }\n\n ngOnInit() {\n this.control = this.injector.get(NgControl);\n\n if (!this.control || !this.control.valueAccessor) {\n return;\n }\n\n const originalWriteVal = this.control.valueAccessor.writeValue.bind(this.control.valueAccessor);\n this.control.valueAccessor.writeValue = (val: any) => originalWriteVal(this._maskValue(val));\n\n const originalChange = (<any>this.control.valueAccessor)['onChange'].bind(this.control.valueAccessor);\n this.control.valueAccessor.registerOnChange((val: any) => originalChange(this._unmaskValue(val)));\n\n this._setVal(this._maskValue(this.control.value));\n }\n\n private _maskValue(val: string): string {\n if (!this.appMask || val === this._lastMaskedValue) {\n return val;\n }\n if (val == null) val = \"\";\n\n const maskedVal = this._lastMaskedValue =\n valueToFormat(\n val,\n this.appMask, this._lastMaskedValue.length > val.length,\n this._lastMaskedValue);\n\n return maskedVal;\n }\n\n private _unmaskValue(val: string): string {\n const maskedVal = this._maskValue(val);\n const unmaskedVal = unmaskValue(maskedVal);\n\n if (maskedVal !== val) {\n this._setVal(maskedVal);\n }\n\n return maskedVal ? unmaskedVal : '';\n }\n\n private _setVal(val: string) {\n if (this.control.control) {\n this.control.control.setValue(val, { emitEvent: false });\n }\n }\n\n}","import { IFilterAngularComp } from '@ag-grid-community/angular';\nimport { IAfterGuiAttachedParams, IDoesFilterPassParams, IFilterParams } from '@ag-grid-community/core';\nimport { Component, ElementRef, ViewChild } from '@angular/core';\nimport moment from 'jalali-moment';\n\n\n@Component({\n template: `\n <div class=\"p-4\">\n <nz-form-item>\n <nz-form-label>از تاریخ</nz-form-label>\n <nz-form-control>\n <input nz-input appMask=\"0000-00-00\" placeholder=\"1403-01-01\" autocomplete=\"off\" class=\"w-[250px]\" dir=\"ltr\" [(ngModel)]=\"dateFrom\" #eFilterText/>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label>تا تاریخ</nz-form-label>\n <nz-form-control>\n <input nz-input appMask=\"0000-00-00\" placeholder=\"1403-12-30\" autocomplete=\"off\" class=\"w-[250px]\" dir=\"ltr\" [(ngModel)]=\"dateTo\"/>\n </nz-form-control>\n </nz-form-item>\n <hr/>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"primary\" class=\"mt-4\" (click)=\"filter()\">فیلتر</button>\n <button nz-button nzType=\"default\" class=\"mt-4\" (click)=\"clear()\">پاکسازی</button>\n </div>\n </div>\n `,\n})\nexport class DateFilter implements IFilterAngularComp {\n @ViewChild('eFilterText') eFilterText!: ElementRef;\n params!: IFilterParams;\n dateFrom = \"\";\n dateTo = \"\";\n\n agInit(params: IFilterParams): void {\n this.params = params;\n }\n\n isFilterActive(): boolean {\n if ((this.dateFrom == \"\" && this.dateTo == \"\") || (this.dateFrom == null && this.dateTo == null)) {\n return false;\n }\n return true;\n }\n\n doesFilterPass(params: IDoesFilterPassParams): boolean {\n let passed = true;\n const { node } = params;\n\n this.dateFrom\n .toLowerCase()\n .split(' ')\n .forEach((filterWord) => {\n const value = this.params.getValue(node);\n if (value.toString().toLowerCase().indexOf(filterWord) < 0) {\n passed = false;\n }\n });\n if (this.dateFrom == \"\" && this.dateTo == \"\") {\n passed = false;\n }\n return passed;\n }\n\n getModel() {\n if (!this.isFilterActive()) {\n return null;\n }\n let dateFrom = \"\";\n let dateTo = \"\";\n if (this.dateFrom != null && this.dateFrom) {\n dateFrom = `${this.dateFrom.slice(0, 4)}/${this.dateFrom.slice(4, 6)}/${this.dateFrom.slice(6, 8)}`;\n dateFrom = moment.from(dateFrom, 'fa', 'YYYY/MM/DD').format('YYYY-MM-DD');\n }\n if (this.dateTo != null && this.dateTo) {\n dateTo = `${this.dateTo.slice(0, 4)}/${this.dateTo.slice(4, 6)}/${this.dateTo.slice(6, 8)}`;\n dateTo = moment.from(dateTo, 'fa', 'YYYY/MM/DD').format('YYYY-MM-DD');\n }\n return { dateFrom, dateTo, filterType: 'custom-date' };\n }\n\n setModel(model: any) {\n this.dateFrom = model == null || model.dateFrom == null ? null : model.dateFrom;\n this.dateTo = model == null || model.dateTo == null ? null : model.dateTo;\n }\n\n filter() {\n this.params.filterChangedCallback();\n }\n\n clear() {\n this.dateFrom = this.dateTo = \"\";\n this.filter();\n }\n\n afterGuiAttached(params?: IAfterGuiAttachedParams): void {\n if (!params?.suppressFocus) {\n // focus the input element for keyboard navigation\n this.eFilterText!.nativeElement.focus();\n }\n }\n}","import { IFilterAngularComp } from '@ag-grid-community/angular';\nimport { IAfterGuiAttachedParams, IDoesFilterPassParams, IFilterParams } from '@ag-grid-community/core';\nimport { Component, ElementRef, ViewChild } from '@angular/core';\n\n\n@Component({\n template: `\n <div class=\"p-4\">\n <nz-form-item>\n <nz-form-label>ساعت</nz-form-label>\n <nz-form-control>\n <input nz-input appMask=\"00:00:00\" placeholder=\"12:00:00\" autocomplete=\"off\" class=\"w-[250px]\" dir=\"ltr\" [(ngModel)]=\"time\" #eFilterText/>\n </nz-form-control>\n </nz-form-item>\n <hr/>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"primary\" class=\"mt-4\" (click)=\"filter()\">فیلتر</button>\n <button nz-button nzType=\"default\" class=\"mt-4\" (click)=\"clear()\">پاکسازی</button>\n </div>\n </div>\n `,\n})\nexport class TimeFilter implements IFilterAngularComp {\n @ViewChild('eFilterText') eFilterText!: ElementRef;\n params!: IFilterParams;\n time = \"\";\n\n agInit(params: IFilterParams): void {\n this.params = params;\n }\n\n isFilterActive(): boolean {\n if (this.time == null) {\n return false\n }\n return true;\n }\n\n doesFilterPass(params: IDoesFilterPassParams): boolean {\n let passed = true;\n const { node } = params;\n this.time\n .toLowerCase()\n .split(' ')\n .forEach((filterWord) => {\n const value = this.params.getValue(node);\n if (value.toString().toLowerCase().indexOf(filterWord) < 0) {\n passed = false;\n }\n });\n if (this.time == null) {\n passed = false;\n }\n return passed;\n }\n\n getModel() {\n if (!this.isFilterActive()) {\n return null;\n }\n let time = this.time;\n return { time, filterType: 'custom-time' };\n }\n\n setModel(model: any) {\n this.time = model == null || model.time == null ? null : model.time;\n }\n\n filter() {\n this.params.filterChangedCallback();\n }\n\n clear() {\n this.time = null;\n this.filter();\n }\n\n afterGuiAttached(params?: IAfterGuiAttachedParams): void {\n if (!params?.suppressFocus) {\n // focus the input element for keyboard navigation\n this.eFilterText!.nativeElement.focus();\n }\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'jalali-moment';\n\n@Pipe({ name: 'jdate' })\nexport class JDatePipe implements PipeTransform {\n transform(value: string, time: boolean = false, format = 'YYYY/MM/DD'): string {\n if (value != null) {\n if (!time) {\n return moment.from(value, 'YYYY/MM/DD').locale('fa').format(format);\n } else {\n return moment.from(value, 'YYYY/MM/DD').locale('fa').format('YYYY/MM/DD-HH:mm');\n }\n } else {\n return value;\n }\n }\n}","// db.ts\nimport Dexie, { Table } from 'dexie';\nimport { FilterTemplateModel } from './models/index.api';\nexport class AppDB extends Dexie {\n constructor() {\n super('fixa-admin-grid');\n this.version(3).stores({\n gridFilterItems: 'id',\n });\n }\n gridFilterItems!: Table<FilterTemplateModel, string>;\n}\n\nexport const db = new AppDB();\n","import { CellDoubleClickedEvent, ColDef, GridApi, IDateFilterParams, IRowNode, IServerSideDatasource, IServerSideGetRowsParams, RowModelType, RowSelectionOptions, SelectionChangedEvent, SizeColumnsToContentStrategy, SizeColumnsToFitGridStrategy, SizeColumnsToFitProvidedWidthStrategy } from '@ag-grid-community/core';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActionItems, ColumnItems, DatasourceOutputModel, FilterBoxItemsModel, FilterBoxModel, FilterGridItemsModel, FilterItemsModel, FilterItemsValuesModel, FilterOperator, FilterTemplateModel, GridActionOutput, GridInputModel, GridRequestParam, SortModel, ToolbarItems } from '../../models/shared.model';\nimport { JDatePipe } from '../../pipes/date.pipe';\nimport { ActionsCellRenderer } from '../index.api';\nimport { DateFilter, TimeFilter } from './filter/index.api';\nimport { NzTreeNodeOptions } from 'ng-zorro-antd/tree';\nimport { ToastService } from '../../services/index.api';\nimport { db } from '../../db';\nexport interface IOlympicData {\n athlete: string,\n age: number,\n country: string,\n year: number,\n date: string,\n sport: string,\n gold: number,\n silver: number,\n bronze: number,\n total: number\n}\n@Component({\n selector: 'app-grid',\n templateUrl: './grid.component.html',\n})\nexport class GridComponent implements OnInit {\n constructor(\n private _translate: TranslateService,\n private _cdr: ChangeDetectorRef,\n private _toast: ToastService\n ) {\n this.datasource = this.createServerSideDatasource();\n }\n private gridApi!: GridApi;\n public isServerSideGroup;\n public getServerSideGroupKey = null;\n public groupDefaultExpanded = -1;\n private _treeGroupColumn: string = null;\n _rowSelection: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false\n };\n datasource: IServerSideDatasource;\n themeClass: string = \"ag-theme-quartz\";\n columnDefs: ColDef[] = [];\n visibleFilterBox: boolean = false;\n _column: ColumnItems[] = [];\n _filterBoxItems: FilterBoxModel[] = [];\n filterItemsValues: FilterItemsValuesModel[] = [];\n filterTemplateItems: FilterTemplateModel[] = [];\n visibleFilterTemplateBox: boolean = false;\n isVisibleModal: boolean = false;\n gridModel: GridInputModel = null;\n templateName: string = null;\n gridId: string = null;\n\n _autoColumnSize: SizeColumnsToFitGridStrategy | SizeColumnsToFitProvidedWidthStrategy | SizeColumnsToContentStrategy = { type: 'fitGridWidth' };\n autoGroupColumnDef: ColDef = {\n headerName: \"\",\n minWidth: 250,\n sortable: false,\n cellRendererParams: {\n suppressCount: true,\n },\n filterParams: {\n maxNumConditions: 1\n }\n };\n\n defaultColDef: ColDef = {\n flex: 1,\n minWidth: 150,\n filter: 'agTextColumnFilter',\n suppressHeaderMenuButton: true,\n suppressHeaderContextMenu: true,\n suppressSizeToFit: true\n };\n\n getRowClass(params) {\n if (params.node.rowIndex % 2 !== 0) {\n return 'row-odd'\n }\n return '';\n }\n\n\n @Output()\n onAction: EventEmitter<GridActionOutput> = new EventEmitter();\n\n @Output()\n onToolbar: EventEmitter<ToolbarItems> = new EventEmitter();\n\n @Output()\n onClicked: EventEmitter<any> = new EventEmitter();\n\n @Output()\n rowSelectionChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n actionWidth: number = 100;\n\n @Input()\n label: string = null;\n\n @Input()\n id: string = null;\n\n @Input()\n public set isRowSelection(v: boolean) {\n if (v) {\n this._rowSelection = {\n mode: 'multiRow',\n checkboxes: true\n }\n }\n }\n\n selectionChanged(e: SelectionChangedEvent) {\n const items = [];\n e.api.forEachNode((el) => {\n if (el.isSelected()) {\n items.push(el.data);\n }\n });\n this.rowSelectionChange.emit(items);\n }\n\n public selectAll() {\n this.gridApi.selectAll();\n }\n\n public deselectAll() {\n this.gridApi.deselectAll();\n }\n\n @Input()\n requireFilterOrData: boolean = false;\n\n @Input()\n rowModelType: RowModelType = 'serverSide';\n\n @Input()\n serverSideSort: boolean = true;\n\n @Input()\n serverSideFilter: boolean = true;\n\n @Input()\n isToolbar: boolean = true;\n\n @Input()\n rtl: boolean = true;\n\n @Input()\n paginationPageSize = 25;\n\n @Input()\n paginationPageSizeSelector: number[] | boolean = [25];\n\n @Input()\n enableAdvancedFilter: boolean = false;\n\n @Input()\n treeModel: boolean = false;\n\n @Input()\n isLeaf: boolean = false;\n\n @Input()\n rowData: any = null;\n\n @Input()\n public get autoColumnSize(): SizeColumnsToFitGridStrategy | SizeColumnsToFitProvidedWidthStrategy | SizeColumnsToContentStrategy {\n return this._autoColumnSize;\n }\n public set autoColumnSize(v: boolean) {\n if (v) {\n this._autoColumnSize = { type: 'fitCellContents' };\n } else {\n this._autoColumnSize = { type: 'fitGridWidth' };\n }\n }\n\n @Input()\n showAdvancedButton: boolean = true;\n\n @Input()\n actionItems: ActionItems[] = [\n {\n code: 'edit',\n icon: 'fa-light fa-pen',\n alt: 'ویرایش'\n },\n {\n code: 'delete',\n icon: 'fa-light fa-trash',\n alt: 'حذف'\n }\n ];\n\n @Input()\n toolbarItems: ToolbarItems[] = [\n {\n code: 'insert',\n icon: 'plus',\n text: 'ایجاد ردیف جدید',\n type: 'primary'\n },\n // {\n // code: 'refresh',\n // icon: 'sync',\n // text: 'بروزرسانی',\n // type: 'default'\n // }\n ];\n\n @Input()\n public get treeGroupColumn() {\n return this.treeGroupColumn;\n }\n public set treeGroupColumn(v: string) {\n if (v) {\n this._treeGroupColumn = v;\n this.isServerSideGroup = dataItem => {\n if (this.isLeaf) {\n if (!dataItem.lastNode)\n return dataItem[v];\n else\n return false\n } else {\n return dataItem[v];\n }\n };\n this.getServerSideGroupKey = dataItem => {\n return dataItem[v];\n };\n // this.autoGroupColumnDef.headerName = v;\n }\n }\n\n @Input()\n public set filterItems(v: FilterItemsModel[]) {\n if (v != null && v.length > 0) {\n v.forEach((el) => {\n if (!this._filterBoxItems.find((item) => item.field == el.field)) {\n let items = [];\n if ((el.type == 'enum' || el.type == 'select' || el.type == 'tree-select') && el.items != null) {\n el.items?.().then((res) => {\n let nodes: NzTreeNodeOptions[] = [];\n if (el.type == 'tree-select') {\n const convertToNzTreeNodes = (items: FilterBoxItemsModel[]): NzTreeNodeOptions[] => {\n return items.map(item => ({\n title: item.label,\n key: String(item.value),\n isLeaf: item.children && item.children.length > 0 ? false : true,\n children: item.children ? convertToNzTreeNodes(item.children) : [],\n }));\n }\n nodes = convertToNzTreeNodes(res);\n }\n this._filterBoxItems.push({\n field: el.field,\n label: el.label,\n value: el.defaultValue != null ? el.defaultValue : null,\n items: res,\n type: el.type,\n position: el.position ? el.position : 'filter',\n colSpan: el.colSpan ? el.colSpan : 1,\n sort: el.sort ? el.sort : 0,\n nodes\n });\n });\n } else if (el.type == 'boolean') {\n items.push({\n label: this._translate.instant(\"true\"),\n value: true\n }, {\n label: this._translate.instant(\"false\"),\n value: false\n });\n this._filterBoxItems.push({\n field: el.field,\n label: el.label,\n value: el.defaultValue != null ? el.defaultValue : null,\n items,\n type: el.type,\n position: el.position ? el.position : 'filter',\n colSpan: el.colSpan ? el.colSpan : 1,\n sort: el.sort ? el.sort : 0,\n nodes: []\n });\n } else {\n this._filterBoxItems.push({\n field: el.field,\n label: el.label,\n value: el.defaultValue != null ? el.defaultValue : null,\n items,\n type: el.type,\n position: el.position ? el.position : 'filter',\n colSpan: el.colSpan ? el.colSpan : 1,\n sort: el.sort ? el.sort : 0,\n nodes: []\n });\n }\n this._filterBoxItems.sort((a, b) => {\n return a.sort - b.sort\n });\n this._cdr.detectChanges();\n }\n });\n setTimeout(() => {\n this.handleFilterLabelValue();\n }, 50);\n }\n }\n\n @Input()\n fetchData: (filterGrid: GridInputModel, requestParams: GridRequestParam) => Promise<DatasourceOutputModel>;\n\n @Input()\n public get column() {\n return this.column;\n }\n public set column(v: ColumnItems[]) {\n setTimeout(() => {\n this.columnDefs = [];\n if (v != null) {\n this._column = v;\n v.forEach((el) => {\n var filter: any = 'agTextColumnFilter';\n var sortable: boolean = true;\n var filterParams: IDateFilterParams = {\n maxNumConditions: 1\n };\n switch (el.type) {\n case 'boolean':\n filter = 'agNumberColumnFilter';\n filterParams.filterOptions = [\n \"empty\",\n {\n displayKey: 'true',\n displayName: this._translate.instant('YES'),\n predicate: () => true,\n numberOfInputs: 0\n },\n {\n displayKey: 'false',\n displayName: this._translate.instant('NO'),\n predicate: () => true,\n numberOfInputs: 0\n }\n ];\n break;\n case 'enum':\n filter = 'agNumberColumnFilter';\n const items = [];\n for (const property in el.filterItems) {\n items.push({\n displayKey: el.filterItems[property],\n displayName: this._translate.instant(el.filterItems[property]),\n predicate: true,\n numberOfInputs: 0\n })\n }\n filterParams.filterOptions = [\n \"empty\",\n ...items\n ];\n break;\n case 'number':\n filter = 'agNumberColumnFilter';\n break;\n case 'select':\n filter = 'agSetColumnFilter';\n break;\n case 'string':\n filter = 'agTextColumnFilter';\n break;\n case 'date':\n filter = 'agDateColumnFilter';\n break;\n default:\n filter = 'agTextColumnFilter';\n break;\n }\n if (this._filterBoxItems.find((item) => item.field == el.field || item.field == el.searchField)) {\n filter = false;\n }\n if (el.filter != undefined && (el.filter == 'filter-box' || el.filter == 'none')) {\n filter = false;\n }\n if (el.sortable != undefined && !el.sortable) {\n sortable = false;\n }\n if (el.field != this._treeGroupColumn) {\n if (el.type && el.type == 'boolean') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: filter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellClass: 'ag-boolean-cell',\n cellRenderer: params => {\n if (params.value != null) {\n return params.value ? '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" stroke=\"green\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-check\"><path d=\"M20 6L9 17L4 12\"/></svg>' : '<svg xmlns=\"http://www.w3.org/2000/svg\" stroke=\"red\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-x\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" /></svg>';\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'enum') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: filter,\n sortable,\n editable: el.editable,\n pinned: el.pinned,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n cellRenderer: params => {\n if (params.value) {\n return this._translate.instant(params.value);\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'date') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: DateFilter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return new JDatePipe().transform(params.value);\n } else {\n return '';\n }\n }\n })\n }\n else if (el.type && el.type == 'time') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: TimeFilter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return params.value;\n } else {\n return '';\n }\n }\n })\n }\n else if (el.type && el.type == 'date-time') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: DateFilter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return new JDatePipe().transform(params.value, true);\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'price') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: filter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return params.value.toLocaleString();\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'image') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n minWidth: 80,\n width: 80,\n filter: 'none',\n sortable: false,\n editable: false,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return `<img class=\"rounded-full mt-1\" width=\"32\" height=\"32\" src=\"${params.value}\"/>`;\n } else {\n return '';\n }\n }\n })\n }\n else {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter,\n sortable,\n editable: el.editable,\n filterParams,\n pinned: el.pinned,\n minWidth: el.minWidth ? el.minWidth : null\n })\n }\n } else {\n this.autoGroupColumnDef.field = el.field;\n }\n });\n this._column.filter((el) => el.filter == 'filter-box').forEach((el) => {\n let items = [];\n if (el.filterItems != null) {\n switch (el.type) {\n case 'enum':\n Object.keys(el.filterItems).forEach((item) => {\n items.push({\n label: this._translate.instant(el.filterItems[item]),\n value: el.filterItems[item]\n })\n });\n break;\n case 'boolean':\n Object.keys(el.filterItems).forEach((item) => {\n items.push({\n label: this._translate.instant(\"true\"),\n value: true\n }, {\n label: this._translate.instant(\"false\"),\n value: false\n })\n });\n break;\n }\n }\n this._filterBoxItems.push({\n label: el.label,\n value: null,\n items,\n type: el.type,\n field: el.field,\n position: 'filter',\n colSpan: 1,\n sort: 1,\n nodes: []\n });\n this._filterBoxItems.sort((a, b) => {\n return a.sort - b.sort\n });\n this._cdr.detectChanges();\n });\n if (this.actionItems.length > 0) {\n this.columnDefs.push({\n filter: false,\n headerName: '',\n minWidth: this.actionWidth,\n resizable: true,\n pinned: true,\n sortable: false,\n field: 'actions',\n cellRenderer: ActionsCellRenderer,\n cellRendererParams: {\n onClick: (params: GridActionOutput) => {\n this.onAction.emit(params);\n }\n }\n })\n }\n }\n }, 100);\n }\n\n changeDatePickerValue(e, item: FilterBoxModel, index) {\n if (item.value != null) {\n item.value[index] = e;\n } else {\n item.value = [null, null];\n item.value[index] = e;\n }\n }\n\n cellDoubleClicked(e: CellDoubleClickedEvent) {\n this.onClicked.emit({ ...e.data, colId: e.column.getColId() });\n }\n\n handleClick(item: ToolbarItems) {\n this.onToolbar.emit(item);\n }\n\n saveFilterGrid() {\n if (this.id == null) {\n this._toast.show('شناسه ی جدول وارد نشده است', 'error');\n return\n }\n if (this.gridId == null) {\n this.isVisibleModal = true;\n this._cdr.detectChanges();\n } else {\n db.gridFilterItems.get(this.gridId).then((res) => {\n db.gridFilterItems.put({\n ...res,\n grid: this.gridModel,\n });\n this.fetchTemplate();\n this._toast.show('قالب با موفقیت بروزرسانی شد', 'success');\n })\n }\n\n }\n\n handleCancelModal() {\n this.isVisibleModal = false;\n this._cdr.detectChanges();\n }\n\n handleOkModal() {\n if (this.templateName == null) {\n this._toast.show('عنوان قالب وارد نشده است', 'error');\n return\n }\n this.gridId = new Date().getTime().toString();\n db.gridFilterItems.add({\n id: this.gridId,\n grid: this.gridModel,\n tableId: this.id,\n title: this.templateName,\n userName: null\n });\n this._toast.show('قالب با موفقیت ذخیره شد', 'success');\n this.templateName = null;\n this.isVisibleModal = false;\n this._cdr.detectChanges();\n this.fetchTemplate();\n }\n\n public refresh(purge = false) {\n if (this.rowModelType == 'serverSide') {\n this.gridApi.refreshServerSide({ purge })\n } else {\n this.rowData = [];\n this.gridApi.refreshCells();\n this.gridApi.setGridOption('columnDefs', this.columnDefs);\n this.gridApi.setGridOption('loading', true);\n this.fetchData(null, null).then(data => {\n this.rowData = data.items;\n this.gridApi.setGridOption('loading', false);\n });\n }\n }\n\n onGridReady(params: any) {\n this.gridApi = params.api;\n if (this.rowModelType == 'clientSide') {\n this.fetchData(null, null).then(data => {\n this.rowData = data.items;\n }).catch(() => {\n params.fail();\n });\n }\n }\n\n advancedFilter() {\n this.enableAdvancedFilter = !this.enableAdvancedFilter;\n setTimeout(() => {\n this.gridApi.showAdvancedFilterBuilder();\n setTimeout(() => {\n (document.getElementsByClassName('ag-icon-maximize')[0] as HTMLElement).click();\n })\n }, 10);\n }\n\n private getRouteToNode(rowNode: IRowNode): string[] {\n if (!rowNode.parent) {\n return [];\n }\n return [\n ...this.getRouteToNode(rowNode.parent),\n rowNode.key ? rowNode.key : rowNode.data.employeeName,\n ];\n }\n\n refreshNode(id: string): void {\n const selectedRows = this.gridApi.getRowNode(id);\n const route = this.getRouteToNode(selectedRows);\n this.gridApi.refreshServerSide({\n purge: true,\n route: route\n });\n }\n\n handleVisibleFilterBox() {\n this._filterBoxItems.sort((a, b) => {\n return a.sort - b.sort;\n });\n this._cdr.detectChanges();\n setTimeout(() => {\n this.visibleFilterBox = true;\n }, 50);\n }\n\n clearFilter() {\n this.visibleFilterBox = false;\n this._filterBoxItems.forEach((el) => {\n el.value = null;\n });\n this.gridApi.setFilterModel(null);\n this.gridApi.onFilterChanged();\n this.filterItemsValues = [];\n this.refresh();\n }\n\n refreshParentNode(id: string): void {\n const selectedRows = this.gridApi.getRowNode(id);\n const route = this.getRouteToNode(selectedRows.parent);\n this.gridApi.refreshServerSide({\n purge: true,\n route: route\n });\n }\n\n filter() {\n this.handleFilterLabelValue();\n this.refresh();\n this.visibleFilterBox = false;\n }\n\n setTemplateFilter(item: FilterTemplateModel) {\n this.clearFilter();\n setTimeout(() => {\n item.grid.filter.filters.forEach((el) => {\n const findEl = this._column.find((item) => item.field == el.field || item.searchField == el.field);\n if (findEl && this.columnDefs.find((item) => item.field == findEl.field && item.filter)) {\n this.gridApi.setColumnFilterModel(findEl.field, {\n type: el.logic,\n filter: el.value\n });\n } else {\n const index = this._filterBoxItems.findIndex((item) => item.field == el.field);\n this._filterBoxItems[index].value = el.value;\n this._cdr.detectChanges();\n }\n });\n this.gridId = item.id;\n this.visibleFilterTemplateBox = false;\n this._cdr.detectChanges();\n this.handleFilterLabelValue();\n this.gridApi.onFilterChanged();\n this.refresh();\n }, 100);\n }\n\n handleFilterLabelValue() {\n this._filterBoxItems.forEach((el) => {\n const findEl = this.filterItemsValues.find((fi) => fi.field == el.field);\n let value = el.value;\n switch (el.type) {\n case 'date':\n const dateForm = el.value != null ? el.value[0] : null;\n const dateTo = el.value != null && el.value[1] ? el.value[1] : new Date().toString();\n value = `${new JDatePipe().transform(dateForm)} - ${new JDatePipe().transform(dateTo)}`;\n break;\n case 'select':\n value = el.items.find((item) => item.value == el.value)?.label;\n break;\n case 'tree-select':\n const findItemByValue = (items: FilterBoxItemsModel[], targetValue: any) => {\n for (const item of items) {\n if (item.value == targetValue) {\n return item.label;\n }\n\n if (item.children && item.children.length > 0) {\n debugger\n const found = findItemByValue(item.children, targetValue);\n if (found) {\n return found;\n }\n }\n }\n return targetValue;\n }\n value = findItemByValue(el.items, el.value);\n break;\n }\n if (!findEl) {\n if (el.value != null) {\n this.filterItemsValues.push({\n field: el.field,\n label: el.label,\n value: value\n });\n this._cdr.detectChanges();\n }\n } else {\n if (el.value == null || el.value == \"\") {\n this.filterItemsValues = this.filterItemsValues.filter((fi) => fi.field != el.field);\n } else {\n findEl.value = value;\n }\n this._cdr.detectChanges();\n }\n });\n }\n\n removeFilter(item: FilterItemsValuesModel) {\n const index = this._filterBoxItems.findIndex((el) => el.field == item.field);\n if (index >= 0) {\n this._filterBoxItems[index].value = null;\n } else {\n this.gridApi.setColumnFilterModel(item.field, null);\n this.gridApi.onFilterChanged();\n }\n this.filterItemsValues = this.filterItemsValues.filter((el) => el.field != item.field);\n this._cdr.detectChanges();\n this.refresh();\n }\n\n createServerSideDatasource(): IServerSideDatasource {\n return {\n getRows: (params: IServerSideGetRowsParams) => {\n let filter: FilterGridItemsModel = null;\n filter = {\n disable: false,\n field: null,\n logic: 'AND',\n filters: [],\n ignoreCase: null,\n operator: null,\n truncateDate: null,\n value: null,\n };\n if (Object.keys(params.request.filterModel).length > 0) {\n for (const key in params.request.filterModel) {\n let field = key == 'ag-Grid-AutoColumn' ? this._treeGroupColumn : key;\n let value = null;\n let operator = FilterOperator.equals;\n let ignoreCase = false;\n const findEl = this._column.find((el) => el.field == key);\n if (key == 'ag-Grid-AutoColumn') {\n field = this._treeGroupColumn;\n } else {\n field = key;\n if (findEl.searchField != null) {\n field = findEl.searchField;\n }\n }\n if (params.request.filterModel[key].filterType == 'custom-date') {\n if (params.request.filterModel[key].dateFrom && params.request.filterModel[key].dateTo) {\n operator = FilterOperator.between;\n value = [params.request.filterModel[key].dateFrom, params.request.filterModel[key].dateTo];\n } else if (params.request.filterModel[key].dateFrom) {\n operator = FilterOperator.truncGreaterThanEqual;\n value = params.request.filterModel[key].dateFrom;\n } else if (params.request.filterModel[key].dateTo && params.request.filterModel[key].dateTo != \"\") {\n operator = FilterOperator.truncLessThanOrEqual;\n value = params.request.filterModel[key].dateTo;\n }\n } else if (params.request.filterModel[key].filterType == 'custom-time' && params.request.filterModel[key].time != null) {\n operator = FilterOperator.equals;\n value = `${params.request.filterModel[key].time.substr(0, 2)}:${params.request.filterModel[key].time.substr(2, 2)}:${params.request.filterModel[key].time.substr(4, 2)}`;\n } else {\n if (FilterOperator[params.request.filterModel[key].type]) {\n operator = FilterOperator[params.request.filterModel[key].type];\n }\n ignoreCase = true;\n value = params.request.filterModel[key].filter ? params.request.filterModel[key].filter : params.request.filterModel[key].type;\n if (findEl && findEl.type == 'enum') {\n ignoreCase = false;\n }\n }\n const findFilterItemsEl = this.filterItemsValues.find((fi) => fi.field == findEl.field);\n if (!findFilterItemsEl) {\n this.filterItemsValues.push({\n field: findEl.field,\n label: findEl.label,\n value: value\n });\n } else {\n findFilterItemsEl.value = value;\n }\n filter.filters.push({\n disable: false,\n field,\n logic: 'AND',\n filters: null,\n ignoreCase,\n operator,\n truncateDate: true,\n value\n });\n }\n this._cdr.detectChanges();\n // this.filterItemsValues = structuredClone(this.filterItemsValues);\n }\n let sorts: SortModel[] = [];\n if (params.request.sortModel.length) {\n const findEl = this._column.find((el) => el.field == params.request.sortModel[0].colId);\n if (findEl.searchField != null) {\n sorts = [{\n dir: params.request.sortModel[0].sort,\n field: findEl.searchField\n }];\n } else {\n sorts = [{\n dir: params.request.sortModel[0].sort,\n field: params.request.sortModel[0].colId\n }];\n }\n }\n const gridFilter: GridInputModel = {\n take: params.api.paginationGetPageSize(),\n data: {},\n filter,\n skip: params.api.paginationGetCurrentPage() * params.api.paginationGetPageSize(),\n sorts\n };\n const requestParams: GridRequestParam = {\n parentNode: params.parentNode.data\n };\n this._filterBoxItems.forEach((el) => {\n if (el.value != null) {\n if (el.position == 'filter') {\n let operator: FilterOperator = null;\n switch (el.type) {\n case 'string':\n operator = FilterOperator.contains;\n break;\n case 'date': case 'date-time':\n operator = FilterOperator.between;\n if (el.value[0] == null) {\n el.value[0] = new Date('1997-01-01').toISOString();\n } else if (el.value[1] == null) {\n el.value[1] = new Date().toISOString();\n }\n break;\n default:\n operator = FilterOperator.equals;\n break;\n }\n gridFilter.filter.filters.push({\n disable: false,\n field: el.field,\n filters: null,\n ignoreCase: false,\n logic: 'AND',\n operator,\n truncateDate: false,\n value: el.value\n });\n } else {\n gridFilter.data[el.field] = el.value;\n }\n }\n });\n if (this.requireFilterOrData != null) {\n if (this.requireFilterOrData && ((gridFilter.data == null || Object.keys(gridFilter.data).length == 0) && (gridFilter.filter.filters == null || gridFilter.filter.filters.length == 0))) {\n this._toast.show('برای نمایش اطلاعات ، انتخاب یک فیلتر الزامی است', 'warning');\n params.success({\n rowData: [],\n rowCount: 0,\n })\n return;\n }\n }\n this.gridModel = gridFilter;\n this.fetchData(gridFilter, requestParams).then(data => {\n params.success({\n rowData: data.items,\n rowCount: data.totalCount,\n });\n if (this.rowModelType == 'serverSide' && this.gridApi.getServerSideSelectionState()['selectAll']) {\n this.selectAll();\n }\n }).catch(() => {\n params.fail();\n });\n }\n };\n }\n\n fetchTemplate() {\n if (this.id != null) {\n db.gridFilterItems.filter((el) => el.tableId == this.id).toArray().then((res) => {\n this.filterTemplateItems = res;\n });\n }\n }\n\n ngOnInit(): void {\n this.fetchTemplate();\n }\n}","<!-- <button (click)=\"enableAdvancedFilter=!enableAdvancedFilter\">advanced</button> -->\n<div class=\"flex justify-between items-center py-4 border-b border-b-slate-200 mx-4\" *ngIf=\"isToolbar\">\n <div>\n <h4 class=\"font-semibold text-2xl\">{{ label }}</h4>\n </div>\n <div class=\"flex gap-3\">\n @for (item of toolbarItems; track $index) {\n <button nz-button [nzLoading]=\"item.loading ? item.loading : false\" (click)=\"handleClick(item)\" [nzType]=\"item.type\">\n <span nz-icon [nzType]=\"item.icon\"></span>\n {{ item.text }}\n </button>\n }\n <button\n (click)=\"handleVisibleFilterBox()\"\n nz-button\n nzType=\"default\"\n nz-popover\n nzPopoverTitle=\"\"\n nzPopoverTrigger=\"click\"\n [nzPopoverContent]=\"contentTemplate\"\n nzPopoverOverlayClassName=\"filter-popover\"\n nzPopoverPlacement=\"bottom\"\n *ngIf=\"_filterBoxItems.length > 0\">\n <span nz-icon nzType=\"filter\"></span>\n فیلتر\n </button>\n <button\n nz-button\n nzType=\"default\"\n class=\"flex items-center\"\n nz-popover\n nzPopoverTitle=\"\"\n [(nzPopoverVisible)]=\"visibleFilterTemplateBox\"\n nzPopoverTrigger=\"click\"\n [nzPopoverContent]=\"contentFilterTemplate\"\n nzPopoverOverlayClassName=\"filter-popover-sm\"\n nzPopoverPlacement=\"bottom\"\n *ngIf=\"id != null\">\n <span nz-icon nzType=\"layout\"></span>\n فیلتر های ذخیره شده\n </button>\n <button nz-button (click)=\"refresh()\" nzType=\"default\">\n <span nz-icon nzType=\"sync\"></span>\n بروزرسانی\n </button>\n <!-- <button nz-button (click)=\"advancedFilter()\" *ngIf=\"showAdvancedButton\" nzType=\"default\">\n <span nz-icon nzType=\"filter\"></span>\n جستجوی پیشرفته\n </button> -->\n </div>\n</div>\n<ng-template #contentTemplate class=\"w-full\">\n <div class=\"grid gap-x-4 p-4 max-h-[400px] overflow-auto\" [ngClass]=\"{ 'grid-cols-1': _filterBoxItems.length == 1, 'grid-cols-2': _filterBoxItems.length > 1 }\">\n <div *ngFor=\"let item of _filterBoxItems\" [ngClass]=\"{ 'col-span-2': item.type == 'date' || item.type == 'date-time' || item.colSpan == 2 }\">\n <div *ngIf=\"item.type == 'date' || item.type == 'date-time'\" class=\"grid grid-cols-2 gap-x-4\">\n <nz-form-item>\n <nz-form-label>از تاریخ</nz-form-label>\n <nz-form-control>\n <qeydar-date-picker\n [ngModel]=\"item.value != null ? item.value[0] : null\"\n (onChangeValue)=\"changeDatePickerValue($event, item, 0)\"\n [showToday]=\"true\"\n [allowEmpty]=\"true\"\n [calendarType]=\"'jalali'\"\n format=\"yyyy-MM-dd\"\n [rtl]=\"true\"></qeydar-date-picker>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label>تا تاریخ</nz-form-label>\n <nz-form-control>\n <qeydar-date-picker\n [ngModel]=\"item.value != null ? item.value[1] : null\"\n (onChangeValue)=\"changeDatePickerValue($event, item, 1)\"\n [showToday]=\"true\"\n [allowEmpty]=\"true\"\n [calendarType]=\"'jalali'\"\n format=\"yyyy-MM-dd\"\n [rtl]=\"true\"></qeydar-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div>\n <div *ngIf=\"item.type == 'enum' || item.type == 'select' || item.type == 'boolean'\">\n <nz-form-item class=\"w-full\">\n <nz-form-label>{{ item.label }}</nz-form-label>\n <nz-select class=\"w-full\" [(ngModel)]=\"item.value\" nzShowSearch>\n <nz-option *ngFor=\"let item2 of item.items\" [nzValue]=\"item2.value\" [nzLabel]=\"item2.label\"></nz-option>\n </nz-select>\n </nz-form-item>\n </div>\n <div *ngIf=\"item.type == 'tree-select'\">\n <nz-form-item class=\"w-full\">\n <nz-form-label>{{ item.label }}</nz-form-label>\n <nz-tree-select class=\"w-full\" [nzNodes]=\"item.nodes\" nzVirtualHeight=\"320px\" nzShowSearch [(ngModel)]=\"item.value\"></nz-tree-select>\n </nz-form-item>\n </div>\n <div *ngIf=\"item.type == 'string' || item.type == null\">\n <nz-form-item class=\"w-full\">\n <nz-form-label>{{ item.label }}</nz-form-label>\n <input type=\"text\" nz-input [(ngModel)]=\"item.value\" />\n </nz-form-item>\n </div>\n </div>\n </div>\n <div class=\"flex gap-2 p-4 border-t border-t-slate-200\">\n <button nz-button nzType=\"primary\" (click)=\"filter()\">اعمال</button>\n <button nz-button nzType=\"default\" (click)=\"clearFilter()\">پاکسازی و بستن</button>\n </div>\n</ng-template>\n<!-- template items box -->\n<ng-template #contentFilterTemplate class=\"w-full\">\n <ul class=\"flex flex-col gap-2\" *ngIf=\"filterTemplateItems.length > 0\">\n <li class=\"p-2 rounded-lg cursor-pointer border border-slate-200\" *ngFor=\"let item of filterTemplateItems\" (click)=\"setTemplateFilter(item)\">{{ item.title }}</li>\n </ul>\n <p *ngIf=\"filterTemplateItems.length == 0\" class=\"text-center\">قالبی جهت نمایش وجود ندارد</p>\n</ng-template>\n<div class=\"flex items-center justify-between gap-2 px-4 py-2 h-14\" *ngIf=\"isToolbar\">\n <div class=\"flex items-center gap-2\">\n <span class=\"font-medium text-sm text-blue-500\">فیلترهای اعمال شده:</span>\n <ul class=\"flex items-center gap-2\">\n <li class=\"bg-white border border-slate-200 rounded-md px-2 py-1 flex items-center gap-1 h-8\" *ngIf=\"filterItemsValues.length == 0\">\n <span class=\"text-slate-800 font-medium text-sm\">بدون فیلتر</span>\n </li>\n <li class=\"bg-white border border-slate-200 rounded-md px-2 py-1 flex items-center gap-1 h-8\" *ngFor=\"let item of filterItemsValues\">\n <label class=\"text-slate-500 text-sm\">{{ item.label }}:</label>\n <span class=\"text-slate-800 font-medium text-sm\">{{ item.value | translate }}</span>\n <i class=\"fa-regular fa-times cursor-pointer ps-2\" (click)=\"removeFilter(item)\"></i>\n </li>\n </ul>\n </div>\n <div class=\"flex items-center gap-2\" *ngIf=\"id != null\">\n <button nz-button nzType=\"default\" *ngIf=\"filterItemsValues.length > 0 || gridId != null\" (click)=\"saveFilterGrid()\">\n {{ gridId == null ? 'ذخیره فیلتر' : 'اعمال تغییرات فیلتر' }}\n </button>\n <button nz-button nzType=\"default\" *ngIf=\"gridId != null\" (click)=\"clearFilter(); gridId = null\">لغو</button>\n </div>\n</div>\n\n<nz-modal [(nzVisible)]=\"isVisibleModal\" nzTitle=\"افزودن قالب جدید\" (nzOnCancel)=\"handleCancelModal()\" (nzOnOk)=\"handleOkModal()\">\n <ng-container *nzModalContent>\n <nz-form-item class=\"w-full\">\n <nz-form-label>عنوان قالب</nz-form-label>\n <input type=\"text\" nz-input [(ngModel)]=\"templateName\" />\n </nz-form-item>\n </ng-container>\n</nz-modal>\n\n<ag-grid-angular\n style=\"width: 100%\"\n [style]=\"isToolbar ? 'height: calc(100% - 1rem - 114px);' : 'height: 100%;'\"\n [columnDefs]=\"columnDefs\"\n [pagination]=\"true\"\n [paginationPageSize]=\"paginationPageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [class]=\"themeClass\"\n [rowHeight]=\"48\"\n [defaultColDef]=\"defaultColDef\"\n [enableAdvancedFilter]=\"enableAdvancedFilter\"\n [enableRtl]=\"rtl\"\n [treeData]=\"treeModel\"\n [autoGroupColumnDef]=\"autoGroupColumnDef\"\n [isServerSideGroup]=\"isServerSideGroup\"\n [getServerSideGroupKey]=\"getServerSideGroupKey\"\n [rowModelType]=\"rowModelType\"\n [rowData]=\"rowData\"\n [serverSideDatasource]=\"datasource\"\n (gridReady)=\"onGridReady($event)\"\n [cacheBlockSize]=\"paginationPageSize\"\n [maxBlocksInCache]=\"2\"\n [context]=\"{ actionItems: actionItems }\"\n (cellDoubleClicked)=\"cellDoubleClicked($event)\"\n [autoSizeStrategy]=\"_autoColumnSize\"\n [rowSelection]=\"_rowSelection\"\n (selectionChanged)=\"selectionChanged($event)\"\n [theme]=\"\"\n [getRowClass]=\"getRowClass\"\n #grid />\n","import { ICellRendererAngularComp } from '@ag-grid-community/angular';\nimport { ICellRendererParams } from '@ag-grid-community/core';\nimport { Component } from '@angular/core';\nimport { ActionItems } from '../../../models/shared.model';\n\n@Component({\n selector: 'app-button-renderer',\n templateUrl: `./action-button.component.html`\n})\nexport class ActionsCellRenderer implements ICellRendererAngularComp {\n private params!: any;\n public items: ActionItems[] = [];\n\n agInit(params: ICellRendererParams): void {\n this.params = params;\n this.items = params.context.actionItems;\n }\n\n refresh(params: ICellRendererParams): boolean {\n this.params = params;\n return true;\n }\n\n handleClick(item: ActionItems) {\n this.params.onClick({ data: this.params.data, event: item.code, id: this.params.node.id });\n }\n}\n","<div class=\"h-full flex gap-2 items-center\">\n <button mat-button class=\"min-w-[30px] min-h-[30px] h-[30px]\" *ngFor=\"let item of items\" nz-tooltip [nzTooltipTitle]=\"item.alt\" nzTooltipPlacement=\"bottom\" (click)=\"handleClick(item)\">\n <div class=\"flex justify-center items-center\">\n <i [class]=\"item.icon\"></i>\n </div>\n </button>\n \n</div>","import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'app-captcha',\n templateUrl: './captcha.component.html',\n})\nexport class CaptchaComponent implements OnInit {\n constructor() { }\n @ViewChild('canvas', { static: true }) captchaCanvas!: ElementRef<HTMLCanvasElement>;\n value: string = '';\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter();\n\n generateCode(){\n this.value=Math.round((Math.random() * 1000000)).toString();\n this.drawCaptcha();\n this.valueChange.emit(this.value);\n }\n\n drawCaptcha() {\n const canvas: HTMLCanvasElement = this.captchaCanvas.nativeElement;\n const ctx = canvas.getContext('2d');\n\n if (ctx) {\n // تنظیمات اولیه Canvas\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.font = '30px Arial';\n ctx.fillStyle = '#000';\n ctx.textAlign = 'center';\n\n // وسطچین کردن عمودی: تعیین y براساس ارتفاع فونت\n const textX = canvas.width / 2;\n const textY = (canvas.height / 2) + 10;\n\n // رندر کردن متن کپچا\n ctx.fillText(this.value, textX, textY);\n\n // اضافه کردن نویز و خطوط برای پیچیدهتر کردن کپچا\n for (let i = 0; i < 10; i++) {\n ctx.beginPath();\n ctx.moveTo(Math.random() * canvas.width, Math.random() * canvas.height);\n ctx.lineTo(Math.random() * canvas.width, Math.random() * canvas.height);\n ctx.strokeStyle = '#ccc';\n ctx.stroke();\n }\n }\n }\n\n ngOnInit(): void {\n this.generateCode();\n }\n}\n","<div class=\"rounded-xl border border-slate-200 relative\">\n <canvas #canvas class=\"w-full h-[80px]\"></canvas>\n <div class=\"absolute left-2 top-0 bottom-0 m-auto z-10 flex justify-center items-center\">\n <button nz-button nzShape=\"circle\" type=\"button\" (click)=\"generateCode()\">\n <span nz-icon nzType=\"undo\" nzTheme=\"outline\"></span>\n </button>\n </div>\n</div>","import { Component, AfterViewInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { PolygonData, PolygonEventEmiter } from '../../models/shared.model';\ndeclare let L: any;\n@Component({\n selector: 'app-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss']\n})\nexport class MapComponent implements AfterViewInit {\n constructor() { }\n public map: any;\n private drawnItems = new L.FeatureGroup();\n\n @Input()\n editable: boolean = false;\n\n @Input()\n polygons: PolygonData[] = [];\n\n @Input()\n drawPolygon: boolean = false;\n\n @Input()\n drawCircle: boolean = false;\n\n @Input()\n drawPolyline: boolean = false;\n\n @Input()\n drawRectangle: boolean = false;\n\n @Input()\n drawMarker: boolean = false;\n\n @Input()\n zoom: number = 13;\n\n @Input()\n center: number[] = [35.6961, 51.4231];\n\n @Output()\n onCreatePolygon: EventEmitter<PolygonEventEmiter[]> = new EventEmitter();\n\n @Output()\n onEditPolygon: EventEmitter<PolygonEventEmiter[]> = new EventEmitter();\n\n private initMap(): void {\n if (L && L.map && L.Control && L.Control.Draw) {\n if (this.center.length == 0) {\n this.center = [35.6961, 51.4231];\n }\n this.map = L.map('map').setView(this.center, this.zoom);\n\n L.tileLayer('https://raster.snappmaps.ir/styles/snapp-style/{z}/{x}/{y}@2x.webp', {\n maxZoom: 18,\n }).addTo(this.map);\n (L as any).Draw.Tooltip.prototype.updateContent = function () {\n return this;\n };\n this.map.addLayer(this.drawnItems);\n const drawControl = new L.Control.Draw({\n edit: this.editable ? {\n featureGroup: this.drawnItems\n } : null,\n draw: {\n polygon: this.drawPolygon,\n polyline: this.drawPolyline,\n circle: this.drawCircle,\n rectangle: this.drawRectangle,\n marker: this.drawMarker,\n circlemarker: false,\n }\n });\n this.map.addControl(drawControl);\n if (L.Draw && L.Draw.Event && L.Draw.Event.CREATED) {\n this.map.on(L.Draw.Event.CREATED, (event: any) => {\n this.onCreatePolygon.emit(event.layer._latlngs[0]);\n const layer = event.layer;\n this.drawnItems.addLayer(layer);\n });\n this.map.on(L.Draw.Event.EDITED, (event: any) => {\n const polygon = [];\n event.layers.eachLayer((layer: any) => {\n layer._latlngs[0].forEach(element => {\n polygon.push({\n lat: element.lat,\n lng: element.lng\n });\n });\n });\n this.onEditPolygon.emit(polygon);\n });\n } else {\n console.error('Leaflet Draw Event is not available.');\n }\n } else {\n console.error('Leaflet or Leaflet Draw is not correctly loaded.');\n }\n }\n\n private addPolygonsToMap(): void {\n this.polygons.forEach(polygon => {\n // polygon.coordinates.forEach((el) => {\n // el.reverse();\n // });\n const layer = L.polygon(polygon.coordinates, { color: polygon.color }).addTo(this.map);\n\n // اضافه کردن لیبل به پالیگان\n layer.bindTooltip(polygon.name, { permanent: true, direction: 'center', className: 'font-[yekanBakh]' }).openTooltip();\n if (polygon.editable) {\n // اضافه کردن پالیگان به drawnItems برای ویرایش\n this.drawnItems.addLayer(layer);\n }\n });\n }\n\n clearMap() {\n this.map?.eachLayer((layer) => {\n if (!(layer instanceof L.TileLayer)) {\n this.map.removeLayer(layer);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['polygons']) {\n this.clearMap();\n this.addPolygonsToMap();\n }\n if (changes['center'] || changes['zoom']) {\n if (this.map) {\n this.map.setView(this.center, this.zoom);\n }\n }\n }\n\n ngAfterViewInit(): void {\n this.initMap();\n this.addPolygonsToMap();\n }\n}\n","<div class=\"map-container\">\n <div class=\"map-frame\">\n <div id=\"map\" #mapElement></div>\n <!-- <button mat-flat-button (click)=\"currentLocation()\" *ngIf=\"allowCurrentLocation\">\n <i class=\"fa-solid fa-location-crosshairs\"></i>\n </button> -->\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html'\n})\nexport class SpinnerComponent implements OnInit {\n constructor() { }\n\n ngOnInit(): void { }\n}\n","<div class=\"w-full h-full absolute top-0 left-0 flex justify-center items-center bg-white z-10\">\n <nz-spin nzSimple nzSize=\"large\" nzSimple></nz-spin>\n</div>","import { ComponentRef, inject, Injector, ViewContainerRef } from \"@angular/core\";\nimport { NZ_MODAL_DATA, NzModalRef } from \"ng-zorro-antd/modal\";\nimport { SpinnerComponent } from \"../components/index.api\";\n\nexport abstract class PopoverComponent<DataModel> {\n data: DataModel | null = inject(NZ_MODAL_DATA, { optional: true });\n dialogRef: NzModalRef | null = inject(NzModalRef, { optional: true });\n viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n injector: Injector = inject(Injector);\n\n private spinnerRef: ComponentRef<any> | null = null;\n public get loadingDialog() {\n return this.loadingDialog;\n }\n public set loadingDialog(value: boolean) {\n if (value) {\n this.spinnerRef = this.viewContainerRef.createComponent(SpinnerComponent, {\n injector: this.injector,\n });\n } else {\n this.spinnerRef.destroy();\n this.spinnerRef = null;\n }\n }\n abstract onOk(): Promise<any>;\n abstract onCancel(): Promise<any>;\n\n onClose(data?: any) {\n this.dialogRef.close(data);\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { PopoverComponent } from '../../class/index.api';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\nimport { CropperInputModel } from '../../models/shared.model';\nimport { ToastService } from '../../services/index.api';\n\n@Component({\n templateUrl: './image-cropper.popover.html',\n})\nexport class ImageCropperPopover extends PopoverComponent<CropperInputModel> implements OnInit {\n constructor(\n private _toast: ToastService\n ) {\n super()\n }\n croppedImage: File = null;\n\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = new File([event.blob], this.data.file.name, { type: event.blob.type });\n }\n\n loadImageFailed() {\n this._toast.show('خطا در لود تصویر', 'error');\n }\n\n override onOk(): Promise<any> {\n return Promise.resolve({\n file: this.croppedImage\n });\n }\n\n override onCancel(): Promise<any> {\n return Promise.resolve();\n }\n\n ngOnInit(): void {\n }\n}\n","<image-cropper\n [imageFile]=\"data.file\"\n [maintainAspectRatio]=\"true\"\n [aspectRatio]=\"data.aspectRatio\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (loadImageFailed)=\"loadImageFailed()\"\n class=\"max-h-[400px]\"\n></image-cropper>","\nimport { HttpClient, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\nimport { Observable, Observer, Subscription } from 'rxjs';\nimport { ToastService } from '../../services/toast.service';\nimport { DialogService, SharedService } from '../../services/index.api';\nimport Compressor from 'compressorjs';\nimport { ImageCropperPopover } from '../../popover/index.api';\nimport { CropperInputModel } from '../../models/shared.model';\n\n@Component({\n selector: 'app-uploader',\n templateUrl: './uploader.component.html',\n})\nexport class UploaderComponent implements OnInit {\n constructor(\n @Inject('environment') environment,\n private _toast: ToastService,\n private _http: HttpClient,\n private _sharedService: SharedService,\n private _dialog: DialogService\n ) {\n this.env = environment;\n }\n loading = false;\n env = null;\n avatarUrl?: string;\n _avatarUid: string = null;\n _fileUploaded: File = null;\n\n @Input()\n maxWithSize: number = 1024;\n\n @Input()\n cropper: boolean = false;\n\n @Input()\n aspectRatio: number = 1 / 1;\n\n @Input()\n isCompress: boolean = true;\n\n @Input()\n public get avatar() {\n return this.avatarUrl;\n }\n public set avatar(v: string) {\n if (v) {\n this._avatarUid = v;\n this.loading = true;\n this._sharedService.getFile(v).then((res) => {\n this.avatarUrl = res;\n }).finally(() => {\n this.loading = false;\n })\n }\n }\n\n @Output()\n onUploaded: EventEmitter<string> = new EventEmitter();\n\n\n customRequest = (item: any) => {\n // return Subscription\n const subscription = new Subscription();\n\n const uploadFile = (file: File) => {\n this.loading = true;\n if(this.isCompress){\n this.resizeImage(file).then((res) => {\n const isLt1M = res.size! / 1024 / 1024 < 1;\n if (!isLt1M) {\n this._toast.show('Image must smaller than 1MB!', 'error');\n subscription.unsubscribe();\n this.loading = false;\n return;\n }\n const formData = new FormData();\n formData.append('file', res as any);\n const req = new HttpRequest('POST', `${this.env.apiUrl}/file`, formData, {\n reportProgress: true,\n responseType: 'text' as 'json',\n });\n this._fileUploaded = res;\n subscription.add(\n this._http.request(req).subscribe(\n (event: any) => {\n if (event instanceof HttpResponse) {\n item.onSuccess(event.body, file, event);\n }\n },\n (err) => {\n item.onError(err, file);\n }\n )\n );\n }).catch(() => {\n this.loading = false;\n });\n } else {\n const isLt1M = file.size! / 1024 / 1024 < 1;\n if (!isLt1M) {\n this._toast.show('Image must smaller than 1MB!', 'error');\n subscription.unsubscribe();\n this.loading = false;\n return;\n }\n const formData = new FormData();\n formData.append('file', file as any);\n const req = new HttpRequest('POST', `${this.env.apiUrl}/file`, formData, {\n reportProgress: true,\n responseType: 'text' as 'json',\n });\n this._fileUploaded = file;\n subscription.add(\n this._http.request(req).subscribe(\n (event: any) => {\n if (event instanceof HttpResponse) {\n item.onSuccess(event.body, file, event);\n }\n },\n (err) => {\n item.onError(err, file);\n }\n )\n );\n }\n \n }\n\n if (this.cropper) {\n this._dialog.open<CropperInputModel>(ImageCropperPopover, {\n title: 'برش تصویر',\n data: {\n file: item.file,\n aspectRatio: this.aspectRatio\n }\n }).afterClose.subscribe((res) => {\n if (res.file) {\n uploadFile(res.file);\n }\n });\n } else {\n uploadFile(item.file);\n }\n\n return subscription;\n };\n\n beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]): Observable<boolean> =>\n new Observable((observer: Observer<boolean>) => {\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/webp';\n if (!isJpgOrPng) {\n this._toast.show('You can only upload JPG,PNG,WEBP file!', 'error');\n observer.complete();\n return;\n }\n observer.next(isJpgOrPng);\n observer.complete();\n });\n\n private getBase64(img: File, callback: (img: string) => void): void {\n const reader = new FileReader();\n reader.addEventListener('load', () => callback(reader.result!.toString()));\n reader.readAsDataURL(img);\n }\n\n handleChange(info: any): void {\n switch (info.file.status) {\n case 'uploading':\n this.loading = true;\n break;\n case 'done':\n this.getBase64(this._fileUploaded, (img: string) => {\n this.loading = false;\n this.avatarUrl = img;\n this.onUploaded.emit(info.file.response);\n });\n break;\n case 'error':\n this.loading = false;\n break;\n }\n }\n\n resizeImage(base64Str): Promise<File> {\n return new Promise((resolve, reject) => {\n new Compressor(base64Str, {\n quality: 1,\n maxWidth: this.maxWithSize,\n success(result) {\n resolve(result as File);\n },\n error(err) {\n reject(err);\n }\n });\n });\n }\n\n ngOnInit(): void { }\n}\n","<nz-upload class=\"w-[128px] h-[128px] overflow-hidden\" nzAction=\"{{env.apiUrl}}/file\" nzName=\"file\"\n nzListType=\"picture-card\" [nzShowUploadList]=\"false\" [nzBeforeUpload]=\"beforeUpload\"\n (nzChange)=\"handleChange($event)\" [nzCustomRequest]=\"customRequest\">\n @if (!avatarUrl) {\n <span class=\"upload-icon\" nz-icon [nzType]=\"loading ? 'loading' : 'plus'\"></span>\n <div class=\"ant-upload-text\">Upload</div>\n } @else {\n <img [src]=\"avatarUrl\" class=\"max-w-full max-h-full\" />\n }\n</nz-upload>","\nimport { HttpClient, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\nimport { Observable, Observer } from 'rxjs';\nimport { ToastService } from '../../services/toast.service';\n@Component({\n selector: 'app-upload-file',\n templateUrl: './upload-file.component.html',\n})\nexport class UploadFileComponent implements OnInit {\n constructor(\n @Inject('environment') environment,\n private _toast: ToastService,\n private _http: HttpClient,\n ) {\n this.env = environment;\n }\n loading = false;\n env = null;\n avatarUrl?: string;\n _avatarUid: string = null;\n fileList: NzUploadFile[] = [];\n\n @Input()\n acceptFileType: string = null;\n\n @Input()\n type: 'serverSide' | 'clientSide' = 'serverSide';\n\n @Output()\n onUploaded: EventEmitter<string> = new EventEmitter();\n\n handleChangeClientSide(e) {\n this.onUploaded.emit(e.file);\n }\n\n customRequest = (item: any) => {\n const formData = new FormData();\n formData.append('file', item.file as any);\n const req = new HttpRequest('POST', `${this.env.apiUrl}/file`, formData, {\n reportProgress: true,\n responseType: 'text' as 'json',\n });\n return this._http.request(req).subscribe(\n (event: any) => {\n if (event instanceof HttpResponse) {\n item.onSuccess(event.body, item.file, event);\n }\n },\n (err) => {\n item.onError(err, item.file);\n }\n );\n };\n\n beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]): Observable<boolean> =>\n new Observable((observer: Observer<boolean>) => {\n let checkType = file.type === this.acceptFileType;\n if (this.acceptFileType != null) {\n if (!checkType) {\n this._toast.show('You can only upload JPG,PNG,WEBP file!', 'error');\n observer.complete();\n return;\n }\n } else {\n checkType = true;\n }\n const isLt2M = file.size! / 1024 / 1024 < 3;\n if (!isLt2M) {\n this._toast.show('Image must smaller than 2MB!', 'error');\n observer.complete();\n return;\n }\n observer.next(checkType && isLt2M);\n observer.complete();\n });\n\n handleChange(info: any): void {\n switch (info.file.status) {\n case 'uploading':\n this.loading = true;\n break;\n case 'done':\n this.onUploaded.emit(info.file.response);\n break;\n case 'error':\n this.loading = false;\n break;\n }\n }\n\n ngOnInit(): void { }\n}\n","@if(type == 'serverSide'){\n <nz-upload nzName=\"file\" nzType=\"drag\"\n [nzBeforeUpload]=\"beforeUpload\" (nzChange)=\"handleChange($event)\" [nzCustomRequest]=\"customRequest\">\n <p class=\"ant-upload-drag-icon\">\n <span nz-icon nzType=\"inbox\"></span>\n </p>\n <p class=\"ant-upload-text\">برای آپلود، روی فایل کلیک کنید یا آن را به این قسمت بکشید</p>\n <p class=\"ant-upload-hint\">\n حداکثر حجم قابل قبول برای اپلود ۳ مگابایت می باشد\n </p>\n </nz-upload>\n} @else {\n <nz-upload nzName=\"file\" nzType=\"drag\" [nzBeforeUpload]=\"beforeUpload\" (nzChange)=\"handleChangeClientSide($event)\">\n <p class=\"ant-upload-drag-icon\">\n <span nz-icon nzType=\"inbox\"></span>\n </p>\n <p class=\"ant-upload-text\">برای آپلود، روی فایل کلیک کنید یا آن را به این قسمت بکشید</p>\n <p class=\"ant-upload-hint\">\n حداکثر حجم قابل قبول برای اپلود ۳ مگابایت می باشد\n </p>\n </nz-upload>\n}","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[charInput]',\n})\nexport class CharInputDirective {\n constructor(private el: ElementRef, private control: NgControl, public renderer: Renderer2) { }\n\n @Input()\n allowPersianChar: boolean = false;\n\n @Input()\n allowEnglishChar: boolean = false;\n\n @Input()\n allowLocalChar: boolean = true;\n\n\n @HostListener('input', ['$event']) onEvent($event: InputEvent) {\n const englishPattern = /^[A-Za-z\\u0600-\\u06FF ]+$/;\n const persianPattern = /^[\\u0600-\\u06FF ]+$/;\n let value = this.el.nativeElement.value;\n if (this.allowEnglishChar) {\n if (!englishPattern.test(value)) {\n value = value.replaceAll($event.data, '');\n }\n } else if (!persianPattern.test(value)) {\n value = value.replaceAll($event.data, '');\n }\n this.el.nativeElement.value = value;\n this.control.control.setValue(value);\n this.renderer.setProperty(this.el.nativeElement, 'value', value);\n return value;\n }\n}","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[englishNumberInput]',\n})\nexport class EnglishNumberInputDirective {\n constructor(private el: ElementRef, private control: NgControl, public renderer: Renderer2) { }\n\n @HostListener('input', ['$event']) onEvent($event: InputEvent) {\n var persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],\n arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],\n fixNumbers = function (str) {\n if (typeof str === 'string') {\n for (var i = 0; i < 10; i++) {\n str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);\n }\n }\n return str;\n };\n const numberPattern = /^\\d+$/;\n let value = fixNumbers(this.el.nativeElement.value);\n\n if (!numberPattern.test(value)) {\n value = value.replaceAll($event.data, '');\n }\n this.el.nativeElement.value = value;\n this.control.control.setValue(value);\n this.renderer.setProperty(this.el.nativeElement, 'value', value);\n return value;\n }\n}","import {\n Directive,\n Attribute,\n Renderer2,\n ElementRef,\n HostListener,\n Input\n} from '@angular/core';\nimport { SharedService } from '../services/index.api';\n\n@Directive({\n selector: '[imageLoader]'\n})\nexport class ImageLoaderDirective {\n constructor(\n @Attribute('loader') public loader: string,\n @Attribute('onErrorSrc') public onErrorSrc: string,\n private renderer: Renderer2,\n private el: ElementRef,\n private _http: SharedService\n ) {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.loader);\n }\n\n _imageSrc: string = null;\n\n @Input()\n public get imageSrc() {\n return this._imageSrc;\n }\n public set imageSrc(v: string) {\n if (v != null) {\n this._http.getFile(v).then((res) => {\n this.renderer.setAttribute(this.el.nativeElement, 'src', res);\n })\n }\n this._imageSrc = v;\n }\n\n // @HostListener('load') onLoad() {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.el.nativeElement.src);\n // }\n // @HostListener('error') onError() {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.onErrorSrc);\n // }\n}","import {\n Attribute,\n Directive,\n ElementRef,\n Input,\n Renderer2\n} from '@angular/core';\nimport { SharedService } from '../services/index.api';\nimport { ContentType } from '../models/shared.model';\n\n@Directive({\n selector: '[videoLoader]',\n})\nexport class VideoLoaderDirective {\n constructor(\n @Attribute('loader') public loader: string,\n @Attribute('onErrorSrc') public onErrorSrc: string,\n private renderer: Renderer2,\n private el: ElementRef,\n private _http: SharedService\n ) {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.loader);\n }\n\n _videoSrc: string = null;\n\n @Input()\n public get videoSrc() {\n return this._videoSrc;\n }\n public set videoSrc(v: string) {\n if (v != null) {\n this._http.getFile(v,ContentType.VIDEO).then((res) => {\n this.renderer.setAttribute(this.el.nativeElement, 'src', res);\n setTimeout(()=>{\n this.el.nativeElement.parentElement.load();\n },100);\n })\n }\n this._videoSrc = v;\n }\n}","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n constructor(private _router: Router) { }\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean> | Promise<boolean> | boolean {\n if (localStorage.getItem('userInfo')) {\n return true\n }\n this._router.navigate(['/auth']);\n return false;\n }\n}\n","import { Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { MenuItems } from '../../models/shared.model';\nimport { SharedService } from '../../services/shared.service';\nimport { ConfirmService } from '../../services/confirm.service';\ninterface TokenInfo {\n acr: string;\n azp: string;\n email: string;\n email_verified: boolean;\n exp: number;\n family_name: string;\n given_name: string;\n iat: number;\n iss: string;\n jti: string;\n name: string;\n preferred_username: string;\n roles: string[];\n scope: string;\n sid: string;\n sub: string;\n typ: string;\n userId: number;\n username: string;\n}\n@Component({\n templateUrl: './master.layout.html',\n styleUrls: ['./master.layout.scss']\n})\nexport class MasterLayout implements OnInit {\n constructor(\n private _service: SharedService,\n private _confirm: ConfirmService,\n private componentFactoryResolver: ComponentFactoryResolver\n ) { }\n @ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) container: ViewContainerRef;\n isCollapsed = false;\n menuItems: MenuItems[] = [];\n userName: string = null;\n\n logout() {\n this._confirm.confirm(() => {\n localStorage.clear();\n location.reload();\n return Promise.resolve();\n })\n }\n\n loadComponent(component: any) {\n this.container.clear();\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n this.container.createComponent(componentFactory);\n }\n\n tokenInfo(token): TokenInfo {\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n return JSON.parse(jsonPayload);\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n // this.loadComponent(this._ac.);\n }, 500)\n }\n\n ngOnInit(): void {\n this.menuItems = this._service.menuItems;\n if (localStorage.getItem('userInfo')) {\n this.userName = this.tokenInfo(JSON.parse(localStorage.getItem('userInfo')).access_token).username;\n }\n }\n}\n","<nz-layout class=\"app-layout\">\n <nz-sider class=\"menu-sidebar bg-white\" nzCollapsible nzWidth=\"256px\" nzBreakpoint=\"md\" [(nzCollapsed)]=\"isCollapsed\" [nzTrigger]=\"null\">\n <div class=\"py-2 px-4 border-b border-b-slate-200 h-16 flex items-center gap-4\">\n <div class=\"size-10 rounded-full bg-slate-200\"></div>\n <div>\n <h5 class=\"text-sm text-slate-800 font-semibold\">{{userName}}</h5>\n <span class=\"text-sm text-slate-600\">به پنل مدیریت خوش آمدید 👋</span>\n </div>\n <!-- <div class=\"flex justify-center items-center border-b !border-b-slate-200 pb-4\"></div> -->\n </div>\n <ul nz-menu nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\" class=\"h-[calc(100%-64px)] overflow-y-auto overflow-x-hidden\">\n @for (item of menuItems; track item.title) { @if(item.children){\n <li nz-submenu [nzTitle]=\"item.title\" [nzIcon]=\"item.icon\">\n <ul nz-menu-group>\n @for (subitem of item.children; track subitem.title) {\n <li nz-menu-item [routerLink]=\"subitem.path\">{{ subitem.title }}</li>\n }\n </ul>\n </li>\n } @else{\n <li nz-menu-item [routerLink]=\"item.path\">\n <span nz-icon [nzType]=\"item.icon\"></span>\n <span>{{ item.title }}</span>\n </li>\n } }\n </ul>\n </nz-sider>\n <nz-layout>\n <nz-header>\n <div class=\"app-header p-4 flex justify-between items-center\">\n <div class=\"flex items-center gap-1\">\n <button nz-button nzType=\"text\" (click)=\"isCollapsed = !isCollapsed\">\n <span class=\"text-2xl\" nz-icon nzType=\"menu\"></span>\n </button>\n <img width=\"86\" src=\"assets/images/logo.svg\" alt=\"\" />\n </div>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon nzType=\"global\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon nzType=\"user\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon nzType=\"bell\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\" (click)=\"logout()\"><span nz-icon nzType=\"poweroff\"></span></button>\n </div>\n </div>\n </nz-header>\n <nz-content>\n <!-- <nz-tabset nzType=\"editable-card\">\n <nz-tab nzClosable nzTitle=\"درخت سرویس\">\n <div class=\"inner-content rounded-md overflow-auto\">\n <div #dynamicComponentContainer></div>\n </div>\n </nz-tab>\n </nz-tabset> -->\n <div class=\"inner-content rounded-xl overflow-auto p-0 border border-slate-200\">\n <router-outlet></router-outlet>\n </div>\n </nz-content>\n </nz-layout>\n</nz-layout>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n templateUrl: './blank.layout.html',\n})\nexport class BlankLayout implements OnInit {\n constructor() { }\n\n ngOnInit(): void { }\n}\n","<div class=\"w-full h-full\">\n <router-outlet></router-outlet>\n</div>","/* Imports */\nimport * as am5 from \"@amcharts/amcharts5\";\nimport * as am5percent from \"@amcharts/amcharts5/percent\";\nimport am5themes_Animated from \"@amcharts/amcharts5/themes/Animated\";\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-pie-chart',\n template: '<div id=\"chartdiv\" dir=\"ltr\" style=\"width: 100%; height: 180px;\"></div>',\n})\nexport class PieChart implements OnInit {\n private root!: am5.Root;\n\n @Input()\n items: { category: string, value: number }[] = [];\n\n @Input()\n label: string = '';\n\n ngAfterViewInit(): void {\n // Root\n this.root = am5.Root.new('chartdiv');\n this.root._logo.dispose();\n // Theme\n this.root.setThemes([am5themes_Animated.new(this.root)]);\n\n this.root.container.set('layout', this.root.verticalLayout);\n\n // Container for charts\n let chartContainer = this.root.container.children.push(\n am5.Container.new(this.root, {\n layout: this.root.verticalLayout,\n width: 250,\n height: 180,\n })\n );\n\n // First chart\n let chart = chartContainer.children.push(\n am5percent.PieChart.new(this.root, {\n width: 180,\n height: 180,\n radius: am5.percent(90),\n centerY: am5.percent(50),\n y: am5.percent(50),\n x: am5.percent(100),\n innerRadius: am5.percent(60)\n })\n );\n\n let series = chart.series.push(\n am5percent.PieSeries.new(this.root, {\n valueField: 'value',\n categoryField: 'category',\n alignLabels: false,\n })\n );\n series.children.push(am5.Label.new(this.root, {\n centerX: am5.percent(50),\n centerY: am5.percent(50),\n text: \"{valueSum} \" + this.label,\n populateText: true,\n fontSize: \"1.5em\",\n fontFamily: 'yekanBakh',\n fontWeight: '600',\n direction: 'rtl'\n }));\n series.get(\"colors\").setAll({\n step: 2\n });\n series.labels.template.setAll({ visible: false, fontFamily: 'yekanBakh' });\n series.ticks.template.set(\"visible\", false);\n series.slices.template.setAll({\n cornerRadius: 8,\n strokeWidth: 5,\n stroke: am5.color(0xffffff),\n });\n series.labels.template.setAll({ textType: 'aligned', fontFamily: 'yekanBakh' });\n\n // Data\n series.data.setAll(this.items);\n\n // Legend\n let legend = this.root.container.children.push(\n am5.Legend.new(this.root, {\n y: am5.percent(50),\n centerY: am5.percent(50),\n layout: this.root.verticalLayout,\n })\n );\n legend.markerRectangles.template.setAll({\n x: 200,\n });\n legend.labels.template.setAll({ fontFamily: 'yekanBakh', textAlign: 'right' });\n legend.valueLabels.template.setAll({ textAlign: \"right\", fontFamily: 'yekanBakh' });\n legend.labels.template.setAll({\n maxWidth: 100,\n width: 100,\n oversizedBehavior: \"wrap\"\n });\n legend.data.setAll(series.dataItems);\n\n series.appear(1000, 100);\n }\n\n getSlice(dataItem: am5.DataItem<any>, series: am5percent.PieSeries) {\n let otherSlice: any;\n am5.array.each(series.dataItems, (di) => {\n if (di.get('category') === dataItem.get('category')) {\n otherSlice = di.get('slice');\n }\n });\n return otherSlice;\n }\n\n ngOnDestroy(): void {\n if (this.root) {\n this.root.dispose();\n }\n }\n\n ngOnInit(): void {\n\n }\n}","import { AgGridModule } from '@ag-grid-community/angular';\nimport { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';\nimport { ModuleRegistry } from '@ag-grid-community/core';\nimport { AdvancedFilterModule } from '@ag-grid-enterprise/advanced-filter';\nimport { LicenseManager } from '@ag-grid-enterprise/core';\nimport { MasterDetailModule } from '@ag-grid-enterprise/master-detail';\nimport { MultiFilterModule } from '@ag-grid-enterprise/multi-filter';\nimport { RowGroupingModule } from '@ag-grid-enterprise/row-grouping';\nimport { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';\nimport { SetFilterModule } from '@ag-grid-enterprise/set-filter';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzLayoutModule } from 'ng-zorro-antd/layout';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzMessageModule } from 'ng-zorro-antd/message';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\nimport { NzTreeViewModule } from 'ng-zorro-antd/tree-view';\nimport { NzUploadModule } from 'ng-zorro-antd/upload';\nimport { ImageCropperComponent } from 'ngx-image-cropper';\nimport { JDatePipe } from '../public-api';\nimport { DateFilter, TimeFilter } from './components/grid/filter/index.api';\nimport { ActionsCellRenderer, CaptchaComponent, GridComponent, MapComponent, SpinnerComponent, UploaderComponent, UploadFileComponent } from './components/index.api';\nimport { CharInputDirective, EnglishNumberInputDirective, ImageLoaderDirective, MaskDirective, VideoLoaderDirective } from './directive/index.api';\nimport { AuthGuard } from './guard/index.api';\nimport { BlankLayout, MasterLayout } from './layouts/index.api';\nimport { ImageCropperPopover } from './popover/image-cropper/image-cropper.popover';\nimport { ConfirmService } from './services/index.api';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { PieChart } from './charts/index.api';\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';\nimport { QeydarDatePickerModule } from '@qeydar/datepicker';\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json?v=' + Date.now());\n}\n\nLicenseManager.prototype.isDisplayWatermark = () => {\n return false;\n}\nLicenseManager.prototype.validateLicense = () => {\n\n}\n\nModuleRegistry.registerModules([\n ClientSideRowModelModule,\n SetFilterModule,\n MultiFilterModule,\n MasterDetailModule,\n AdvancedFilterModule,\n ServerSideRowModelModule,\n RowGroupingModule\n]);\n\nexport function initializeApp(): Promise<any> {\n return new Promise((resolve, reject) => {\n if (typeof window !== 'undefined') {\n resolve(true);\n } else {\n reject();\n }\n });\n}\n\nconst Layouts = [\n MasterLayout,\n BlankLayout\n];\n\nconst Components = [\n GridComponent,\n ActionsCellRenderer,\n CaptchaComponent,\n MapComponent,\n SpinnerComponent,\n UploaderComponent,\n UploadFileComponent,\n DateFilter,\n TimeFilter\n];\n\nconst Popover: any[] = [\n ImageCropperPopover\n];\n\nconst Directive = [\n EnglishNumberInputDirective,\n CharInputDirective,\n MaskDirective,\n ImageLoaderDirective,\n VideoLoaderDirective\n];\n\nconst Pipes = [\n JDatePipe\n]\n\nconst Guard = [\n AuthGuard\n];\n\nconst Services = [\n ConfirmService\n];\n\nconst Chart = [\n PieChart\n]\n\nconst Modules = [\n HttpClientModule,\n CommonModule,\n AgGridModule,\n HttpClientModule,\n CdkMenuModule,\n NzLayoutModule,\n NzMenuModule,\n NzIconModule,\n NzButtonModule,\n NzModalModule,\n NzMessageModule,\n NzToolTipModule,\n NzTabsModule,\n NzTreeViewModule,\n NzSpinModule,\n FormsModule,\n NzInputModule,\n NzFormModule,\n NzSelectModule,\n NzUploadModule,\n NzCollapseModule,\n NzTreeSelectModule,\n ImageCropperComponent,\n NzPopoverModule,\n QeydarDatePickerModule,\n TranslateModule.forRoot({\n defaultLanguage: 'fa',\n useDefaultLang: true,\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n })\n];\n\n@NgModule({\n declarations: [\n ...Layouts,\n ...Components,\n ...Popover,\n ...Directive,\n ...Pipes,\n ...Chart\n ],\n imports: [\n RouterModule,\n ...Modules\n ],\n exports: [\n ...Layouts,\n ...Components,\n ...Popover,\n ...Directive,\n ...Pipes,\n ...Chart\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA\n ],\n providers: [\n ...Guard,\n ...Services,\n { provide: APP_INITIALIZER, useFactory: initializeApp, multi: true }\n ]\n})\nexport class SharedModule { }\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'timer',\n})\nexport class TimerPipe implements PipeTransform {\n transform(value: number): string {\n const hours: number = Math.floor(value / 3600);\n const minutes: number = Math.floor((value % 3600) / 60);\n const seconds: number = value % 60;\n\n if (value >= 3601) {\n return (\n ('00' + hours).slice(-2) +\n ':' +\n ('00' + minutes).slice(-2) +\n ':' +\n ('00' + seconds).slice(-2)\n );\n }\n\n else {\n return (\n ('00' + minutes).slice(-2) +\n ':' +\n ('00' + seconds).slice(-2)\n );\n }\n }\n}\n\n","/*\n * Public API Surface of shared\n */\n\nexport * from './lib/services/index.api';\nexport * from './lib/shared.module';\nexport * from './lib/layouts/index.api';\nexport * from './lib/components/index.api';\nexport * from './lib/models/index.api';\nexport * from './lib/class/index.api';\nexport * from './lib/guard/index.api';\nexport * from './lib/pipes/index.api';\nexport * from './lib/directive/index.api';\nexport * from './lib/components/grid/filter/index.api';\nexport * from './lib/popover/index.api';\nexport * from './lib/charts/index.api';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","Directive","moment","i2","i8.MaskDirective","i2.ToastService","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i1.ToastService","i3.SharedService","i3.DialogService","i1.SharedService","i2.ConfirmService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fixa-admin.mjs","sources":["../../../projects/shared/src/lib/models/shared.model.ts","../../../projects/shared/src/lib/services/shared.service.ts","../../../projects/shared/src/lib/services/dialog.service.ts","../../../projects/shared/src/lib/services/toast.service.ts","../../../projects/shared/src/lib/services/form.service.ts","../../../projects/shared/src/lib/services/confirm.service.ts","../../../projects/shared/src/lib/directive/mask.ts","../../../projects/shared/src/lib/directive/mask.directive.ts","../../../projects/shared/src/lib/components/grid/filter/date-filter.component.ts","../../../projects/shared/src/lib/components/grid/filter/time-filter.component.ts","../../../projects/shared/src/lib/pipes/date.pipe.ts","../../../projects/shared/src/lib/db.ts","../../../projects/shared/src/lib/components/grid/grid.component.ts","../../../projects/shared/src/lib/components/grid/grid.component.html","../../../projects/shared/src/lib/components/grid/render/action-button.component.ts","../../../projects/shared/src/lib/components/grid/render/action-button.component.html","../../../projects/shared/src/lib/components/captcha/captcha.component.ts","../../../projects/shared/src/lib/components/captcha/captcha.component.html","../../../projects/shared/src/lib/components/map/map.component.ts","../../../projects/shared/src/lib/components/map/map.component.html","../../../projects/shared/src/lib/components/spinner/spinner.component.ts","../../../projects/shared/src/lib/components/spinner/spinner.component.html","../../../projects/shared/src/lib/class/popover.ts","../../../projects/shared/src/lib/popover/image-cropper/image-cropper.popover.ts","../../../projects/shared/src/lib/popover/image-cropper/image-cropper.popover.html","../../../projects/shared/src/lib/components/uploader/uploader.component.ts","../../../projects/shared/src/lib/components/uploader/uploader.component.html","../../../projects/shared/src/lib/components/upload-file/upload-file.component.ts","../../../projects/shared/src/lib/components/upload-file/upload-file.component.html","../../../projects/shared/src/lib/directive/char-input.directive.ts","../../../projects/shared/src/lib/directive/numeric-input.directive.ts","../../../projects/shared/src/lib/directive/image.directive.ts","../../../projects/shared/src/lib/directive/video.directive.ts","../../../projects/shared/src/lib/guard/auth.guard.ts","../../../projects/shared/src/lib/layouts/master/master.layout.ts","../../../projects/shared/src/lib/layouts/master/master.layout.html","../../../projects/shared/src/lib/layouts/blank/blank.layout.ts","../../../projects/shared/src/lib/layouts/blank/blank.layout.html","../../../projects/shared/src/lib/charts/pie.chart.ts","../../../projects/shared/src/lib/shared.module.ts","../../../projects/shared/src/lib/pipes/timer.pipe.ts","../../../projects/shared/src/public-api.ts","../../../projects/shared/src/fixa-admin.ts"],"sourcesContent":["import { NzButtonType } from \"ng-zorro-antd/button\";\nimport { NzTreeNodeOptions } from 'ng-zorro-antd/tree';\n\nexport interface ToolbarItems {\n icon?: string;\n text: string;\n code: 'insert' | 'refresh' | string;\n class?: string;\n type?: NzButtonType;\n loading?: boolean;\n}\n\nexport interface ColumnItems {\n id?: any;\n field: string;\n label: string;\n filter?: 'filter-box' | 'grid-header' | 'none';\n sortable?: boolean;\n editable?: boolean;\n editItems?: void;\n filterItems?: any;\n minWidth?: number;\n searchField?: string;\n pinned?: boolean | \"left\" | \"right\";\n type?: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image' | 'time';\n}\n\nexport interface ActionItems {\n icon: string;\n code: string;\n alt: string;\n}\n\nexport interface DatasourceOutputModel {\n items: any;\n totalCount: number;\n}\n\nexport interface GridActionOutput {\n event: string;\n data: any;\n id: string;\n}\n\nexport interface DialogBodyModel<T> {\n title: string;\n size?: 'sm' | 'md' | 'xl' | 'lg' | 'full';\n data?: T;\n disableFooter?: boolean;\n closable?: boolean;\n class?: string;\n}\n\nexport interface MenuItems {\n title: string;\n path: string;\n icon?: string;\n children?: MenuItems[];\n}\n\nexport interface PolygonData {\n name: string;\n coordinates: number[][];\n color: string;\n editable: boolean;\n data?: any;\n}\n\nexport interface GridInputModel {\n take: number;\n skip: number;\n filter: {\n field: string;\n value: any;\n operator: FilterOperator;\n logic: 'AND' | 'OR';\n disable: boolean;\n truncateDate: boolean;\n ignoreCase: boolean;\n filters: FilterGridItemsModel[],\n },\n sorts: SortModel[],\n data: any;\n}\n\nexport interface SortModel {\n field: string;\n dir: 'asc' | 'desc';\n}\n\nexport interface FilterGridItemsModel {\n field: string;\n value: any;\n operator: FilterOperator;\n logic: 'AND' | 'OR';\n disable: boolean;\n truncateDate: boolean;\n ignoreCase: boolean;\n filters: FilterGridItemsModel[]\n}\n\nexport enum FilterOperator {\n equals = 'EQ',\n notEqual = 'NEQ',\n lessThan = 'LT',\n lessThanOrEqual = 'LTE',\n greaterThan = 'GT',\n greaterThanOrEqual = 'GTE',\n startsWith = 'STARTSWITH',\n endsWith = 'ENDSWITH',\n inRange = 'IN',\n contains = 'LIKE',\n notContains = 'NOTLIKE',\n truncEqual = 'TRUNC_EQ',\n truncNotEqual = 'TRUNC_NEQ',\n truncGreaterThanEqual = 'TRUNC_GTE',\n truncGreaterThan = 'TRUNC_GT',\n truncLessThanOr = 'TRUNC_LT',\n truncLessThanOrEqual = 'TRUNC_LTE',\n between = 'BETWEEN'\n}\n\nexport class SelectModel {\n items: SelectItemsModel[] = [];\n loading?: boolean = false;\n page?: number = null;\n pageSize?: number = null;\n totalCount?: number = null;\n}\n\nexport interface FilterItemsValuesModel {\n field: string;\n label: string;\n value: string;\n}\n\nexport interface FilterBoxModel {\n field: string;\n label: string;\n items?: FilterBoxItemsModel[];\n value: any;\n nodes: NzTreeNodeOptions[];\n colSpan: 1 | 2;\n sort: number;\n position: 'filter' | 'data';\n type?: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image' | 'tree-select' | 'time';\n}\n\nexport interface FilterBoxItemsModel {\n label: string;\n value: any;\n children?: FilterBoxItemsModel[];\n}\n\nexport interface FilterItemsModel {\n field: string;\n label: string;\n items?: () => Promise<FilterBoxItemsModel[]>;\n position?: 'filter' | 'data';\n type: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image' | 'tree-select' | 'time';\n defaultValue?: any;\n colSpan?: 1 | 2;\n sort?: number;\n}\n\nexport interface SelectItemsModel {\n id: any;\n title: string;\n data?: any;\n}\n\nexport interface GridRequestParam {\n parentNode: any;\n}\n\nexport interface PolygonEventEmiter {\n lat: number;\n lng: number;\n}\n\nexport interface CropperInputModel {\n file: File;\n aspectRatio: number;\n}\n\nexport enum ContentType {\n VIDEO,\n IMAGE\n}\n\nexport interface FilterTemplateModel {\n id: string;\n tableId: string;\n userName: string;\n title: string;\n grid: GridInputModel;\n}","import { Inject, Injectable } from '@angular/core';\nimport { ContentType, MenuItems } from '../models/shared.model';\nimport { FormGroup } from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { HttpClient } from '@angular/common/http';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SharedService {\n constructor(\n @Inject('environment') environment,\n private _http: HttpClient\n ) {\n this.environment = environment;\n }\n environment: any = null;\n menuItems: MenuItems[] = [];\n\n upload(file: File): Observable<string> {\n let formData: FormData = new FormData();\n formData.append('file', file, file.name);\n return this._http.post<string>(`${this.environment.apiUrl}/file`, formData, {\n responseType: 'text' as 'json',\n });\n }\n\n getFile(url: string, type: ContentType = ContentType.IMAGE): Promise<string> {\n return new Promise((resolve, reject) => {\n this._http.get(`${this.environment.apiUrl}/file/${url}`, {\n responseType: 'arraybuffer'\n }).subscribe({\n next: (value) => {\n let blobUrl=null;\n if (type == ContentType.IMAGE) {\n const blob = new Blob([value], { type: 'image/jpeg' });\n blobUrl = URL.createObjectURL(blob);\n } else {\n const blob = new Blob([value], { type: 'video/mp4' });\n blobUrl = URL.createObjectURL(blob);\n }\n resolve(blobUrl);\n },\n });\n });\n }\n}\n","import { ComponentType } from '@angular/cdk/portal';\nimport { Injectable } from '@angular/core';\nimport { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';\nimport { DialogBodyModel } from '../models/shared.model';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DialogService {\n constructor(\n private _modal: NzModalService,\n ) { }\n\n open<T>(component: ComponentType<any>, body: DialogBodyModel<T>): NzModalRef {\n let size = '520px';\n let height = 'auto';\n let className = null;\n switch (body.size) {\n case 'md':\n size = '640px'\n break;\n case 'lg':\n size = '780px'\n break;\n case 'xl':\n size = '1024px'\n break;\n case 'full':\n size = '100%';\n height = '100%';\n className = 'full-screen'\n break;\n default:\n size = '520px';\n break;\n }\n const modal: NzModalRef = this._modal.create({\n nzTitle: body.title,\n nzWidth: size,\n nzClassName: body.class ? body.class + ' ' + className : className,\n nzMaskClosable: body.closable != null ? body.closable : true,\n nzStyle: body.size == 'full' ? {\n height: height,\n top: '20px'\n } : null,\n nzData: {\n ...body.data\n },\n nzOnOk: () => {\n const instance = modal.getContentComponent();\n return instance.onOk();\n },\n nzOnCancel: () => {\n const instance = modal.getContentComponent();\n return instance.onCancel();\n },\n nzFooter: body.disableFooter ? null : undefined,\n nzContent: component,\n });\n\n return modal;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NzMessageService } from 'ng-zorro-antd/message';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ToastService {\n constructor(\n private _message: NzMessageService\n ) { }\n\n show(message, type: \"success\" | \"info\" | \"warning\" | \"error\" | \"loading\") {\n this._message.create(type, message)\n }\n}","import { Injectable } from '@angular/core';\nimport { FormGroup } from '@angular/forms';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class FormService {\n constructor() { }\n\n validateForm(form: FormGroup) {\n Object.values(form.controls).forEach(control => {\n if (control.invalid) {\n control.markAsDirty();\n control.updateValueAndValidity({ onlySelf: true });\n }\n });\n }\n}","import { Injectable, Input } from '@angular/core';\nimport { NzModalRef, NzModalService } from 'ng-zorro-antd/modal';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ConfirmService {\n constructor(\n private _modal: NzModalService\n ) { }\n\n confirm(action: () => Promise<any>, title: string = 'آیا از انجام این عملیات اطمینان دارید؟'): Promise<void> {\n return new Promise((resolve, reject) => {\n const modalRef: NzModalRef = this._modal.confirm({\n nzTitle: title,\n nzOkText: 'تائید',\n nzOkType: 'primary',\n nzOkDanger: true,\n nzOnOk: () => {\n return action()\n .then(() => {\n resolve();\n })\n .catch((error) => {\n reject(error);\n });\n },\n nzCancelText: 'لغو',\n nzOnCancel: () => { }\n });\n })\n }\n}","\nconst _formatToRegExp = {\n '0': /[0-9]/, 'a': /[a-z]/, 'A': /[A-Z]/, 'B': /[a-zA-Z]/,\n};\n\nconst _allFormatsStr = '(' +\n Object.keys(_formatToRegExp)\n .map(key => _formatToRegExp[key].toString())\n .map(regexStr => regexStr.substr(1, regexStr.length - 2))\n .join('|')\n + ')';\n\nconst _allFormatsGlobal = getAllFormatRegexp('g');\n\n/**\n * Apply format to a value string\n *\n * Format can be constructed from next symbols:\n * - '0': /[0-9]/,\n * - 'a': /[a-z]/,\n * - 'A': /[A-Z]/,\n * - 'B': /[a-zA-Z]/\n *\n * Example: 'AAA-00BB-aaaa'\n * will accept 'COD-12Rt-efww'\n *\n * @param value Current value\n * @param format Format\n * @param goingBack Indicates if change was done by BackSpace\n * @param prevValue Pass to precisely detect formatter chars\n */\nexport function valueToFormat(value: string, format: string, goingBack = false, prevValue?: string): string {\n let maskedValue = '';\n const unmaskedValue = unmaskValue(value);\n const isLastCharFormatter = !getAllFormatRegexp().test(value[value.length - 1]);\n const isPrevLastCharFormatter = prevValue && !getAllFormatRegexp().test(prevValue[prevValue.length - 1]);\n\n let formatOffset = 0;\n for (let i = 0, maxI = Math.min(unmaskedValue.length, format.length); i < maxI; ++i) {\n const valueChar = unmaskedValue[i];\n let formatChar = format[formatOffset + i];\n let formatRegex = getFormatRegexp(formatChar);\n\n if (formatChar && !formatRegex) {\n maskedValue += formatChar;\n formatChar = format[++formatOffset + i];\n formatRegex = getFormatRegexp(formatChar);\n }\n\n if (valueChar && formatRegex) {\n if (formatRegex.test(valueChar)) {\n maskedValue += valueChar;\n } else {\n break;\n }\n }\n\n const nextFormatChar = format[formatOffset + i + 1];\n const nextFormatRegex = getFormatRegexp(nextFormatChar);\n const isLastIteration = i === maxI - 1;\n\n if (isLastIteration && nextFormatChar && !nextFormatRegex) {\n if (!isLastCharFormatter && goingBack) {\n if (prevValue && !isPrevLastCharFormatter) {\n continue;\n }\n maskedValue = maskedValue.substr(0, formatOffset + i);\n } else {\n maskedValue += nextFormatChar;\n }\n }\n }\n\n return maskedValue;\n}\n\nexport function unmaskValue(value: string): string {\n const unmaskedMathes = value.match(_allFormatsGlobal);\n return unmaskedMathes ? unmaskedMathes.join('') : '';\n}\n\nfunction getAllFormatRegexp(flags?: string) {\n return new RegExp(_allFormatsStr, flags);\n}\n\nfunction getFormatRegexp(formatChar: string): RegExp | null {\n return formatChar && _formatToRegExp[formatChar] ? _formatToRegExp[formatChar] : null;\n}","import { Directive, Injector, Input, OnInit } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\nimport { valueToFormat, unmaskValue } from './mask';\n\n@Directive({\n selector: '[appMask]',\n})\nexport class MaskDirective implements OnInit {\n\n @Input() appMask: string;\n\n private control: NgControl;\n private _lastMaskedValue = '';\n\n constructor(\n private injector: Injector,\n ) { }\n\n ngOnInit() {\n this.control = this.injector.get(NgControl);\n\n if (!this.control || !this.control.valueAccessor) {\n return;\n }\n\n const originalWriteVal = this.control.valueAccessor.writeValue.bind(this.control.valueAccessor);\n this.control.valueAccessor.writeValue = (val: any) => originalWriteVal(this._maskValue(val));\n\n const originalChange = (<any>this.control.valueAccessor)['onChange'].bind(this.control.valueAccessor);\n this.control.valueAccessor.registerOnChange((val: any) => originalChange(this._unmaskValue(val)));\n\n this._setVal(this._maskValue(this.control.value));\n }\n\n private _maskValue(val: string): string {\n if (!this.appMask || val === this._lastMaskedValue) {\n return val;\n }\n if (val == null) val = \"\";\n\n const maskedVal = this._lastMaskedValue =\n valueToFormat(\n val,\n this.appMask, this._lastMaskedValue.length > val.length,\n this._lastMaskedValue);\n\n return maskedVal;\n }\n\n private _unmaskValue(val: string): string {\n const maskedVal = this._maskValue(val);\n const unmaskedVal = unmaskValue(maskedVal);\n\n if (maskedVal !== val) {\n this._setVal(maskedVal);\n }\n\n return maskedVal ? unmaskedVal : '';\n }\n\n private _setVal(val: string) {\n if (this.control.control) {\n this.control.control.setValue(val, { emitEvent: false });\n }\n }\n\n}","import { IFilterAngularComp } from '@ag-grid-community/angular';\nimport { IAfterGuiAttachedParams, IDoesFilterPassParams, IFilterParams } from '@ag-grid-community/core';\nimport { Component, ElementRef, ViewChild } from '@angular/core';\nimport moment from 'jalali-moment';\n\n\n@Component({\n template: `\n <div class=\"p-4\">\n <nz-form-item>\n <nz-form-label>از تاریخ</nz-form-label>\n <nz-form-control>\n <input nz-input appMask=\"0000-00-00\" placeholder=\"1403-01-01\" autocomplete=\"off\" class=\"w-[250px]\" dir=\"ltr\" [(ngModel)]=\"dateFrom\" #eFilterText/>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label>تا تاریخ</nz-form-label>\n <nz-form-control>\n <input nz-input appMask=\"0000-00-00\" placeholder=\"1403-12-30\" autocomplete=\"off\" class=\"w-[250px]\" dir=\"ltr\" [(ngModel)]=\"dateTo\"/>\n </nz-form-control>\n </nz-form-item>\n <hr/>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"primary\" class=\"mt-4\" (click)=\"filter()\">فیلتر</button>\n <button nz-button nzType=\"default\" class=\"mt-4\" (click)=\"clear()\">پاکسازی</button>\n </div>\n </div>\n `,\n})\nexport class DateFilter implements IFilterAngularComp {\n @ViewChild('eFilterText') eFilterText!: ElementRef;\n params!: IFilterParams;\n dateFrom = \"\";\n dateTo = \"\";\n\n agInit(params: IFilterParams): void {\n this.params = params;\n }\n\n isFilterActive(): boolean {\n if ((this.dateFrom == \"\" && this.dateTo == \"\") || (this.dateFrom == null && this.dateTo == null)) {\n return false;\n }\n return true;\n }\n\n doesFilterPass(params: IDoesFilterPassParams): boolean {\n let passed = true;\n const { node } = params;\n\n this.dateFrom\n .toLowerCase()\n .split(' ')\n .forEach((filterWord) => {\n const value = this.params.getValue(node);\n if (value.toString().toLowerCase().indexOf(filterWord) < 0) {\n passed = false;\n }\n });\n if (this.dateFrom == \"\" && this.dateTo == \"\") {\n passed = false;\n }\n return passed;\n }\n\n getModel() {\n if (!this.isFilterActive()) {\n return null;\n }\n let dateFrom = \"\";\n let dateTo = \"\";\n if (this.dateFrom != null && this.dateFrom) {\n dateFrom = `${this.dateFrom.slice(0, 4)}/${this.dateFrom.slice(4, 6)}/${this.dateFrom.slice(6, 8)}`;\n dateFrom = moment.from(dateFrom, 'fa', 'YYYY/MM/DD').format('YYYY-MM-DD');\n }\n if (this.dateTo != null && this.dateTo) {\n dateTo = `${this.dateTo.slice(0, 4)}/${this.dateTo.slice(4, 6)}/${this.dateTo.slice(6, 8)}`;\n dateTo = moment.from(dateTo, 'fa', 'YYYY/MM/DD').format('YYYY-MM-DD');\n }\n return { dateFrom, dateTo, filterType: 'custom-date' };\n }\n\n setModel(model: any) {\n this.dateFrom = model == null || model.dateFrom == null ? null : model.dateFrom;\n this.dateTo = model == null || model.dateTo == null ? null : model.dateTo;\n }\n\n filter() {\n this.params.filterChangedCallback();\n }\n\n clear() {\n this.dateFrom = this.dateTo = \"\";\n this.filter();\n }\n\n afterGuiAttached(params?: IAfterGuiAttachedParams): void {\n if (!params?.suppressFocus) {\n // focus the input element for keyboard navigation\n this.eFilterText!.nativeElement.focus();\n }\n }\n}","import { IFilterAngularComp } from '@ag-grid-community/angular';\nimport { IAfterGuiAttachedParams, IDoesFilterPassParams, IFilterParams } from '@ag-grid-community/core';\nimport { Component, ElementRef, ViewChild } from '@angular/core';\n\n\n@Component({\n template: `\n <div class=\"p-4\">\n <nz-form-item>\n <nz-form-label>ساعت</nz-form-label>\n <nz-form-control>\n <input nz-input appMask=\"00:00:00\" placeholder=\"12:00:00\" autocomplete=\"off\" class=\"w-[250px]\" dir=\"ltr\" [(ngModel)]=\"time\" #eFilterText/>\n </nz-form-control>\n </nz-form-item>\n <hr/>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"primary\" class=\"mt-4\" (click)=\"filter()\">فیلتر</button>\n <button nz-button nzType=\"default\" class=\"mt-4\" (click)=\"clear()\">پاکسازی</button>\n </div>\n </div>\n `,\n})\nexport class TimeFilter implements IFilterAngularComp {\n @ViewChild('eFilterText') eFilterText!: ElementRef;\n params!: IFilterParams;\n time = \"\";\n\n agInit(params: IFilterParams): void {\n this.params = params;\n }\n\n isFilterActive(): boolean {\n if (this.time == null) {\n return false\n }\n return true;\n }\n\n doesFilterPass(params: IDoesFilterPassParams): boolean {\n let passed = true;\n const { node } = params;\n this.time\n .toLowerCase()\n .split(' ')\n .forEach((filterWord) => {\n const value = this.params.getValue(node);\n if (value.toString().toLowerCase().indexOf(filterWord) < 0) {\n passed = false;\n }\n });\n if (this.time == null) {\n passed = false;\n }\n return passed;\n }\n\n getModel() {\n if (!this.isFilterActive()) {\n return null;\n }\n let time = this.time;\n return { time, filterType: 'custom-time' };\n }\n\n setModel(model: any) {\n this.time = model == null || model.time == null ? null : model.time;\n }\n\n filter() {\n this.params.filterChangedCallback();\n }\n\n clear() {\n this.time = null;\n this.filter();\n }\n\n afterGuiAttached(params?: IAfterGuiAttachedParams): void {\n if (!params?.suppressFocus) {\n // focus the input element for keyboard navigation\n this.eFilterText!.nativeElement.focus();\n }\n }\n}","import { Pipe, PipeTransform } from '@angular/core';\nimport * as moment from 'jalali-moment';\n\n@Pipe({ name: 'jdate' })\nexport class JDatePipe implements PipeTransform {\n transform(value: string, time: boolean = false, format = 'YYYY/MM/DD'): string {\n if (value != null) {\n if (!time) {\n return moment.from(value, 'YYYY/MM/DD').locale('fa').format(format);\n } else {\n return moment.from(value, 'YYYY/MM/DD').locale('fa').format('YYYY/MM/DD-HH:mm');\n }\n } else {\n return value;\n }\n }\n}","// db.ts\nimport Dexie, { Table } from 'dexie';\nimport { FilterTemplateModel } from './models/index.api';\nexport class AppDB extends Dexie {\n constructor() {\n super('fixa-admin-grid');\n this.version(3).stores({\n gridFilterItems: 'id',\n });\n }\n gridFilterItems!: Table<FilterTemplateModel, string>;\n}\n\nexport const db = new AppDB();\n","import { CellDoubleClickedEvent, ColDef, GridApi, IDateFilterParams, IRowNode, IServerSideDatasource, IServerSideGetRowsParams, RowModelType, RowSelectionOptions, SelectionChangedEvent, SizeColumnsToContentStrategy, SizeColumnsToFitGridStrategy, SizeColumnsToFitProvidedWidthStrategy } from '@ag-grid-community/core';\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActionItems, ColumnItems, DatasourceOutputModel, FilterBoxItemsModel, FilterBoxModel, FilterGridItemsModel, FilterItemsModel, FilterItemsValuesModel, FilterOperator, FilterTemplateModel, GridActionOutput, GridInputModel, GridRequestParam, SortModel, ToolbarItems } from '../../models/shared.model';\nimport { JDatePipe } from '../../pipes/date.pipe';\nimport { ActionsCellRenderer } from '../index.api';\nimport { DateFilter, TimeFilter } from './filter/index.api';\nimport { NzTreeNodeOptions } from 'ng-zorro-antd/tree';\nimport { ToastService } from '../../services/index.api';\nimport { db } from '../../db';\nexport interface IOlympicData {\n athlete: string,\n age: number,\n country: string,\n year: number,\n date: string,\n sport: string,\n gold: number,\n silver: number,\n bronze: number,\n total: number\n}\n@Component({\n selector: 'app-grid',\n templateUrl: './grid.component.html',\n})\nexport class GridComponent implements OnInit {\n constructor(\n private _translate: TranslateService,\n private _cdr: ChangeDetectorRef,\n private _toast: ToastService\n ) {\n this.datasource = this.createServerSideDatasource();\n }\n private gridApi!: GridApi;\n public isServerSideGroup;\n public getServerSideGroupKey = null;\n public groupDefaultExpanded = -1;\n private _treeGroupColumn: string = null;\n _rowSelection: RowSelectionOptions = {\n mode: 'singleRow',\n checkboxes: false\n };\n datasource: IServerSideDatasource;\n themeClass: string = \"ag-theme-quartz\";\n columnDefs: ColDef[] = [];\n visibleFilterBox: boolean = false;\n _column: ColumnItems[] = [];\n _filterBoxItems: FilterBoxModel[] = [];\n filterItemsValues: FilterItemsValuesModel[] = [];\n filterTemplateItems: FilterTemplateModel[] = [];\n visibleFilterTemplateBox: boolean = false;\n isVisibleModal: boolean = false;\n gridModel: GridInputModel = null;\n templateName: string = null;\n gridId: string = null;\n\n _autoColumnSize: SizeColumnsToFitGridStrategy | SizeColumnsToFitProvidedWidthStrategy | SizeColumnsToContentStrategy = { type: 'fitGridWidth' };\n autoGroupColumnDef: ColDef = {\n headerName: \"\",\n minWidth: 250,\n sortable: false,\n cellRendererParams: {\n suppressCount: true,\n },\n filterParams: {\n maxNumConditions: 1\n }\n };\n\n defaultColDef: ColDef = {\n flex: 1,\n minWidth: 150,\n filter: 'agTextColumnFilter',\n suppressHeaderMenuButton: true,\n suppressHeaderContextMenu: true,\n suppressSizeToFit: true\n };\n\n getRowClass(params) {\n if (params.node.rowIndex % 2 !== 0) {\n return 'row-odd'\n }\n return '';\n }\n\n\n @Output()\n onAction: EventEmitter<GridActionOutput> = new EventEmitter();\n\n @Output()\n onToolbar: EventEmitter<ToolbarItems> = new EventEmitter();\n\n @Output()\n onClicked: EventEmitter<any> = new EventEmitter();\n\n @Output()\n rowSelectionChange: EventEmitter<any> = new EventEmitter();\n\n @Input()\n actionWidth: number = 100;\n\n @Input()\n label: string = null;\n\n @Input()\n id: string = null;\n\n @Input()\n public set isRowSelection(v: boolean) {\n if (v) {\n this._rowSelection = {\n mode: 'multiRow',\n checkboxes: true\n }\n }\n }\n\n selectionChanged(e: SelectionChangedEvent) {\n const items = [];\n e.api.forEachNode((el) => {\n if (el.isSelected()) {\n items.push(el.data);\n }\n });\n this.rowSelectionChange.emit(items);\n }\n\n public selectAll() {\n this.gridApi.selectAll();\n }\n\n public deselectAll() {\n this.gridApi.deselectAll();\n }\n\n @Input()\n requireFilterOrData: boolean = false;\n\n @Input()\n rowModelType: RowModelType = 'serverSide';\n\n @Input()\n serverSideSort: boolean = true;\n\n @Input()\n serverSideFilter: boolean = true;\n\n @Input()\n isToolbar: boolean = true;\n\n @Input()\n rtl: boolean = true;\n\n @Input()\n paginationPageSize = 25;\n\n @Input()\n paginationPageSizeSelector: number[] | boolean = [25];\n\n @Input()\n enableAdvancedFilter: boolean = false;\n\n @Input()\n treeModel: boolean = false;\n\n @Input()\n isLeaf: boolean = false;\n\n @Input()\n rowData: any = null;\n\n @Input()\n public get autoColumnSize(): SizeColumnsToFitGridStrategy | SizeColumnsToFitProvidedWidthStrategy | SizeColumnsToContentStrategy {\n return this._autoColumnSize;\n }\n public set autoColumnSize(v: boolean) {\n if (v) {\n this._autoColumnSize = { type: 'fitCellContents' };\n } else {\n this._autoColumnSize = { type: 'fitGridWidth' };\n }\n }\n\n @Input()\n showAdvancedButton: boolean = true;\n\n @Input()\n actionItems: ActionItems[] = [\n {\n code: 'edit',\n icon: 'fa-light fa-pen',\n alt: 'ویرایش'\n },\n {\n code: 'delete',\n icon: 'fa-light fa-trash',\n alt: 'حذف'\n }\n ];\n\n @Input()\n toolbarItems: ToolbarItems[] = [\n {\n code: 'insert',\n icon: 'plus',\n text: 'ایجاد ردیف جدید',\n type: 'primary'\n },\n // {\n // code: 'refresh',\n // icon: 'sync',\n // text: 'بروزرسانی',\n // type: 'default'\n // }\n ];\n\n @Input()\n public get treeGroupColumn() {\n return this.treeGroupColumn;\n }\n public set treeGroupColumn(v: string) {\n if (v) {\n this._treeGroupColumn = v;\n this.isServerSideGroup = dataItem => {\n if (this.isLeaf) {\n if (!dataItem.lastNode)\n return dataItem[v];\n else\n return false\n } else {\n return dataItem[v];\n }\n };\n this.getServerSideGroupKey = dataItem => {\n return dataItem[v];\n };\n // this.autoGroupColumnDef.headerName = v;\n }\n }\n\n @Input()\n public set filterItems(v: FilterItemsModel[]) {\n if (v != null && v.length > 0) {\n v.forEach((el) => {\n if (!this._filterBoxItems.find((item) => item.field == el.field)) {\n let items = [];\n if ((el.type == 'enum' || el.type == 'select' || el.type == 'tree-select') && el.items != null) {\n el.items?.().then((res) => {\n let nodes: NzTreeNodeOptions[] = [];\n if (el.type == 'tree-select') {\n const convertToNzTreeNodes = (items: FilterBoxItemsModel[]): NzTreeNodeOptions[] => {\n return items.map(item => ({\n title: item.label,\n key: String(item.value),\n isLeaf: item.children && item.children.length > 0 ? false : true,\n children: item.children ? convertToNzTreeNodes(item.children) : [],\n }));\n }\n nodes = convertToNzTreeNodes(res);\n }\n this._filterBoxItems.push({\n field: el.field,\n label: el.label,\n value: el.defaultValue != null ? el.defaultValue : null,\n items: res,\n type: el.type,\n position: el.position ? el.position : 'filter',\n colSpan: el.colSpan ? el.colSpan : 1,\n sort: el.sort ? el.sort : 0,\n nodes\n });\n });\n } else if (el.type == 'boolean') {\n items.push({\n label: this._translate.instant(\"true\"),\n value: true\n }, {\n label: this._translate.instant(\"false\"),\n value: false\n });\n this._filterBoxItems.push({\n field: el.field,\n label: el.label,\n value: el.defaultValue != null ? el.defaultValue : null,\n items,\n type: el.type,\n position: el.position ? el.position : 'filter',\n colSpan: el.colSpan ? el.colSpan : 1,\n sort: el.sort ? el.sort : 0,\n nodes: []\n });\n } else {\n this._filterBoxItems.push({\n field: el.field,\n label: el.label,\n value: el.defaultValue != null ? el.defaultValue : null,\n items,\n type: el.type,\n position: el.position ? el.position : 'filter',\n colSpan: el.colSpan ? el.colSpan : 1,\n sort: el.sort ? el.sort : 0,\n nodes: []\n });\n }\n this._filterBoxItems.sort((a, b) => {\n return a.sort - b.sort\n });\n this._cdr.detectChanges();\n }\n });\n setTimeout(() => {\n this.handleFilterLabelValue();\n }, 50);\n }\n }\n\n @Input()\n fetchData: (filterGrid: GridInputModel, requestParams: GridRequestParam) => Promise<DatasourceOutputModel>;\n\n @Input()\n public get column() {\n return this.column;\n }\n public set column(v: ColumnItems[]) {\n setTimeout(() => {\n this.columnDefs = [];\n if (v != null) {\n this._column = v;\n v.forEach((el) => {\n var filter: any = 'agTextColumnFilter';\n var sortable: boolean = true;\n var filterParams: IDateFilterParams = {\n maxNumConditions: 1\n };\n switch (el.type) {\n case 'boolean':\n filter = 'agNumberColumnFilter';\n filterParams.filterOptions = [\n \"empty\",\n {\n displayKey: 'true',\n displayName: this._translate.instant('YES'),\n predicate: () => true,\n numberOfInputs: 0\n },\n {\n displayKey: 'false',\n displayName: this._translate.instant('NO'),\n predicate: () => true,\n numberOfInputs: 0\n }\n ];\n break;\n case 'enum':\n filter = 'agNumberColumnFilter';\n const items = [];\n for (const property in el.filterItems) {\n items.push({\n displayKey: el.filterItems[property],\n displayName: this._translate.instant(el.filterItems[property]),\n predicate: true,\n numberOfInputs: 0\n })\n }\n filterParams.filterOptions = [\n \"empty\",\n ...items\n ];\n break;\n case 'number':\n filter = 'agNumberColumnFilter';\n break;\n case 'select':\n filter = 'agSetColumnFilter';\n break;\n case 'string':\n filter = 'agTextColumnFilter';\n break;\n case 'date':\n filter = 'agDateColumnFilter';\n break;\n default:\n filter = 'agTextColumnFilter';\n break;\n }\n if (this._filterBoxItems.find((item) => item.field == el.field || item.field == el.searchField)) {\n filter = false;\n }\n if (el.filter != undefined && (el.filter == 'filter-box' || el.filter == 'none')) {\n filter = false;\n }\n if (el.sortable != undefined && !el.sortable) {\n sortable = false;\n }\n if (el.field != this._treeGroupColumn) {\n if (el.type && el.type == 'boolean') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: filter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellClass: 'ag-boolean-cell',\n cellRenderer: params => {\n if (params.value != null) {\n return params.value ? '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" stroke=\"green\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-check\"><path d=\"M20 6L9 17L4 12\"/></svg>' : '<svg xmlns=\"http://www.w3.org/2000/svg\" stroke=\"red\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"feather feather-x\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" /><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" /></svg>';\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'enum') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: filter,\n sortable,\n editable: el.editable,\n pinned: el.pinned,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n cellRenderer: params => {\n if (params.value) {\n return this._translate.instant(params.value);\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'date') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: DateFilter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return new JDatePipe().transform(params.value);\n } else {\n return '';\n }\n }\n })\n }\n else if (el.type && el.type == 'time') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: TimeFilter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return params.value;\n } else {\n return '';\n }\n }\n })\n }\n else if (el.type && el.type == 'date-time') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: DateFilter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return new JDatePipe().transform(params.value, true);\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'price') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter: filter,\n sortable,\n editable: el.editable,\n minWidth: el.minWidth ? el.minWidth : null,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return params.value.toLocaleString();\n } else {\n return '';\n }\n }\n })\n } else if (el.type && el.type == 'image') {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n minWidth: 80,\n width: 80,\n filter: 'none',\n sortable: false,\n editable: false,\n filterParams,\n pinned: el.pinned,\n cellRenderer: params => {\n if (params.value) {\n return `<img class=\"rounded-full mt-1\" width=\"32\" height=\"32\" src=\"${params.value}\"/>`;\n } else {\n return '';\n }\n }\n })\n }\n else {\n this.columnDefs.push({\n colId: el.id ? el.id : el.field,\n field: el.field,\n headerName: el.label,\n filter,\n sortable,\n editable: el.editable,\n filterParams,\n pinned: el.pinned,\n minWidth: el.minWidth ? el.minWidth : null\n })\n }\n } else {\n this.autoGroupColumnDef.field = el.field;\n }\n });\n this._column.filter((el) => el.filter == 'filter-box').forEach((el) => {\n let items = [];\n if (el.filterItems != null) {\n switch (el.type) {\n case 'enum':\n Object.keys(el.filterItems).forEach((item) => {\n items.push({\n label: this._translate.instant(el.filterItems[item]),\n value: el.filterItems[item]\n })\n });\n break;\n case 'boolean':\n Object.keys(el.filterItems).forEach((item) => {\n items.push({\n label: this._translate.instant(\"true\"),\n value: true\n }, {\n label: this._translate.instant(\"false\"),\n value: false\n })\n });\n break;\n }\n }\n this._filterBoxItems.push({\n label: el.label,\n value: null,\n items,\n type: el.type,\n field: el.field,\n position: 'filter',\n colSpan: 1,\n sort: 1,\n nodes: []\n });\n this._filterBoxItems.sort((a, b) => {\n return a.sort - b.sort\n });\n this._cdr.detectChanges();\n });\n if (this.actionItems.length > 0) {\n this.columnDefs.push({\n filter: false,\n headerName: '',\n minWidth: this.actionWidth,\n resizable: true,\n pinned: true,\n sortable: false,\n field: 'actions',\n cellRenderer: ActionsCellRenderer,\n cellRendererParams: {\n onClick: (params: GridActionOutput) => {\n this.onAction.emit(params);\n }\n }\n })\n }\n }\n }, 100);\n }\n\n changeDatePickerValue(e, item: FilterBoxModel, index) {\n if (item.value != null) {\n item.value[index] = e;\n } else {\n item.value = [null, null];\n item.value[index] = e;\n }\n }\n\n cellDoubleClicked(e: CellDoubleClickedEvent) {\n this.onClicked.emit({ ...e.data, colId: e.column.getColId() });\n }\n\n handleClick(item: ToolbarItems) {\n this.onToolbar.emit(item);\n }\n\n saveFilterGrid() {\n if (this.id == null) {\n this._toast.show('شناسه ی جدول وارد نشده است', 'error');\n return\n }\n if (this.gridId == null) {\n this.isVisibleModal = true;\n this._cdr.detectChanges();\n } else {\n db.gridFilterItems.get(this.gridId).then((res) => {\n db.gridFilterItems.put({\n ...res,\n grid: this.gridModel,\n });\n this.fetchTemplate();\n this._toast.show('قالب با موفقیت بروزرسانی شد', 'success');\n })\n }\n\n }\n\n handleCancelModal() {\n this.isVisibleModal = false;\n this._cdr.detectChanges();\n }\n\n handleOkModal() {\n if (this.templateName == null) {\n this._toast.show('عنوان قالب وارد نشده است', 'error');\n return\n }\n this.gridId = new Date().getTime().toString();\n db.gridFilterItems.add({\n id: this.gridId,\n grid: this.gridModel,\n tableId: this.id,\n title: this.templateName,\n userName: null\n });\n this._toast.show('قالب با موفقیت ذخیره شد', 'success');\n this.templateName = null;\n this.isVisibleModal = false;\n this._cdr.detectChanges();\n this.fetchTemplate();\n }\n\n public refresh(purge = false) {\n if (this.rowModelType == 'serverSide') {\n this.gridApi.refreshServerSide({ purge })\n } else {\n this.rowData = [];\n this.gridApi.refreshCells();\n this.gridApi.setGridOption('columnDefs', this.columnDefs);\n this.gridApi.setGridOption('loading', true);\n this.fetchData(null, null).then(data => {\n this.rowData = data.items;\n this.gridApi.setGridOption('loading', false);\n });\n }\n }\n\n onGridReady(params: any) {\n this.gridApi = params.api;\n if (this.rowModelType == 'clientSide') {\n this.fetchData(null, null).then(data => {\n this.rowData = data.items;\n }).catch(() => {\n params.fail();\n });\n }\n }\n\n advancedFilter() {\n this.enableAdvancedFilter = !this.enableAdvancedFilter;\n setTimeout(() => {\n this.gridApi.showAdvancedFilterBuilder();\n setTimeout(() => {\n (document.getElementsByClassName('ag-icon-maximize')[0] as HTMLElement).click();\n })\n }, 10);\n }\n\n private getRouteToNode(rowNode: IRowNode): string[] {\n if (!rowNode.parent) {\n return [];\n }\n return [\n ...this.getRouteToNode(rowNode.parent),\n rowNode.key ? rowNode.key : rowNode.data.employeeName,\n ];\n }\n\n refreshNode(id: string): void {\n const selectedRows = this.gridApi.getRowNode(id);\n const route = this.getRouteToNode(selectedRows);\n this.gridApi.refreshServerSide({\n purge: true,\n route: route\n });\n }\n\n handleVisibleFilterBox() {\n this._filterBoxItems.sort((a, b) => {\n return a.sort - b.sort;\n });\n this._cdr.detectChanges();\n setTimeout(() => {\n this.visibleFilterBox = true;\n }, 50);\n }\n\n clearFilter() {\n this.visibleFilterBox = false;\n this._filterBoxItems.forEach((el) => {\n el.value = null;\n });\n this.gridApi.setFilterModel(null);\n this.gridApi.onFilterChanged();\n this.filterItemsValues = [];\n this._cdr.detectChanges();\n this.refresh();\n }\n\n refreshParentNode(id: string): void {\n const selectedRows = this.gridApi.getRowNode(id);\n const route = this.getRouteToNode(selectedRows.parent);\n this.gridApi.refreshServerSide({\n purge: true,\n route: route\n });\n }\n\n filter() {\n this.handleFilterLabelValue();\n this.refresh();\n this.visibleFilterBox = false;\n this._cdr.detectChanges();\n }\n\n setTemplateFilter(item: FilterTemplateModel) {\n this.clearFilter();\n setTimeout(() => {\n item.grid.filter.filters.forEach((el) => {\n const findEl = this._column.find((item) => item.field == el.field || item.searchField == el.field);\n if (findEl && this.columnDefs.find((item) => item.field == findEl.field && item.filter)) {\n this.gridApi.setColumnFilterModel(findEl.field, {\n type: el.logic,\n filter: el.value\n });\n } else {\n const index = this._filterBoxItems.findIndex((item) => item.field == el.field);\n this._filterBoxItems[index].value = el.value;\n this._cdr.detectChanges();\n }\n });\n this.gridId = item.id;\n this.visibleFilterTemplateBox = false;\n this._cdr.detectChanges();\n this.handleFilterLabelValue();\n this.gridApi.onFilterChanged();\n this.refresh();\n }, 100);\n }\n\n handleFilterLabelValue() {\n this._filterBoxItems.forEach((el) => {\n const findEl = this.filterItemsValues.find((fi) => fi.field == el.field);\n let value = el.value;\n switch (el.type) {\n case 'date':\n const dateForm = el.value != null ? el.value[0] : null;\n const dateTo = el.value != null && el.value[1] ? el.value[1] : new Date().toString();\n value = `${new JDatePipe().transform(dateForm)} - ${new JDatePipe().transform(dateTo)}`;\n break;\n case 'select':\n value = el.items.find((item) => item.value == el.value)?.label;\n break;\n case 'tree-select':\n const findItemByValue = (items: FilterBoxItemsModel[], targetValue: any) => {\n for (const item of items) {\n if (item.value == targetValue) {\n return item.label;\n }\n\n if (item.children && item.children.length > 0) {\n debugger\n const found = findItemByValue(item.children, targetValue);\n if (found) {\n return found;\n }\n }\n }\n return targetValue;\n }\n value = findItemByValue(el.items, el.value);\n break;\n }\n if (!findEl) {\n if (el.value != null) {\n this.filterItemsValues.push({\n field: el.field,\n label: el.label,\n value: value\n });\n this._cdr.detectChanges();\n }\n } else {\n if (el.value == null || el.value == \"\") {\n this.filterItemsValues = this.filterItemsValues.filter((fi) => fi.field != el.field);\n } else {\n findEl.value = value;\n }\n this._cdr.detectChanges();\n }\n });\n }\n\n removeFilter(item: FilterItemsValuesModel) {\n const index = this._filterBoxItems.findIndex((el) => el.field == item.field);\n if (index >= 0) {\n this._filterBoxItems[index].value = null;\n } else {\n this.gridApi.setColumnFilterModel(item.field, null);\n this.gridApi.onFilterChanged();\n }\n this.filterItemsValues = this.filterItemsValues.filter((el) => el.field != item.field);\n this._cdr.detectChanges();\n this.refresh();\n }\n\n createServerSideDatasource(): IServerSideDatasource {\n return {\n getRows: (params: IServerSideGetRowsParams) => {\n let filter: FilterGridItemsModel = null;\n filter = {\n disable: false,\n field: null,\n logic: 'AND',\n filters: [],\n ignoreCase: null,\n operator: null,\n truncateDate: null,\n value: null,\n };\n if (Object.keys(params.request.filterModel).length > 0) {\n for (const key in params.request.filterModel) {\n let field = key == 'ag-Grid-AutoColumn' ? this._treeGroupColumn : key;\n let value = null;\n let operator = FilterOperator.equals;\n let ignoreCase = false;\n const findEl = this._column.find((el) => el.field == key);\n if (key == 'ag-Grid-AutoColumn') {\n field = this._treeGroupColumn;\n } else {\n field = key;\n if (findEl.searchField != null) {\n field = findEl.searchField;\n }\n }\n if (params.request.filterModel[key].filterType == 'custom-date') {\n if (params.request.filterModel[key].dateFrom && params.request.filterModel[key].dateTo) {\n operator = FilterOperator.between;\n value = [params.request.filterModel[key].dateFrom, params.request.filterModel[key].dateTo];\n } else if (params.request.filterModel[key].dateFrom) {\n operator = FilterOperator.truncGreaterThanEqual;\n value = params.request.filterModel[key].dateFrom;\n } else if (params.request.filterModel[key].dateTo && params.request.filterModel[key].dateTo != \"\") {\n operator = FilterOperator.truncLessThanOrEqual;\n value = params.request.filterModel[key].dateTo;\n }\n } else if (params.request.filterModel[key].filterType == 'custom-time' && params.request.filterModel[key].time != null) {\n operator = FilterOperator.equals;\n value = `${params.request.filterModel[key].time.substr(0, 2)}:${params.request.filterModel[key].time.substr(2, 2)}:${params.request.filterModel[key].time.substr(4, 2)}`;\n } else {\n if (FilterOperator[params.request.filterModel[key].type]) {\n operator = FilterOperator[params.request.filterModel[key].type];\n }\n ignoreCase = true;\n value = params.request.filterModel[key].filter ? params.request.filterModel[key].filter : params.request.filterModel[key].type;\n if (findEl && findEl.type == 'enum') {\n ignoreCase = false;\n }\n }\n const findFilterItemsEl = this.filterItemsValues.find((fi) => fi.field == findEl.field);\n if (!findFilterItemsEl) {\n this.filterItemsValues.push({\n field: findEl.field,\n label: findEl.label,\n value: value\n });\n } else {\n findFilterItemsEl.value = value;\n }\n filter.filters.push({\n disable: false,\n field,\n logic: 'AND',\n filters: null,\n ignoreCase,\n operator,\n truncateDate: true,\n value\n });\n }\n this._cdr.detectChanges();\n // this.filterItemsValues = structuredClone(this.filterItemsValues);\n }\n let sorts: SortModel[] = [];\n if (params.request.sortModel.length) {\n const findEl = this._column.find((el) => el.field == params.request.sortModel[0].colId);\n if (findEl.searchField != null) {\n sorts = [{\n dir: params.request.sortModel[0].sort,\n field: findEl.searchField\n }];\n } else {\n sorts = [{\n dir: params.request.sortModel[0].sort,\n field: params.request.sortModel[0].colId\n }];\n }\n }\n const gridFilter: GridInputModel = {\n take: params.api.paginationGetPageSize(),\n data: {},\n filter,\n skip: params.api.paginationGetCurrentPage() * params.api.paginationGetPageSize(),\n sorts\n };\n const requestParams: GridRequestParam = {\n parentNode: params.parentNode.data\n };\n this._filterBoxItems.forEach((el) => {\n if (el.value != null) {\n if (el.position == 'filter') {\n let operator: FilterOperator = null;\n switch (el.type) {\n case 'string':\n operator = FilterOperator.contains;\n break;\n case 'date': case 'date-time':\n operator = FilterOperator.between;\n if (el.value[0] == null) {\n el.value[0] = new Date('1997-01-01').toISOString();\n } else if (el.value[1] == null) {\n el.value[1] = new Date().toISOString();\n }\n break;\n default:\n operator = FilterOperator.equals;\n break;\n }\n gridFilter.filter.filters.push({\n disable: false,\n field: el.field,\n filters: null,\n ignoreCase: false,\n logic: 'AND',\n operator,\n truncateDate: false,\n value: el.value\n });\n } else {\n gridFilter.data[el.field] = el.value;\n }\n }\n });\n if (this.requireFilterOrData != null) {\n if (this.requireFilterOrData && ((gridFilter.data == null || Object.keys(gridFilter.data).length == 0) && (gridFilter.filter.filters == null || gridFilter.filter.filters.length == 0))) {\n this._toast.show('برای نمایش اطلاعات ، انتخاب یک فیلتر الزامی است', 'warning');\n params.success({\n rowData: [],\n rowCount: 0,\n })\n return;\n }\n }\n this.gridModel = gridFilter;\n this.fetchData(gridFilter, requestParams).then(data => {\n params.success({\n rowData: data.items,\n rowCount: data.totalCount,\n });\n if (this.rowModelType == 'serverSide' && this.gridApi.getServerSideSelectionState()['selectAll']) {\n this.selectAll();\n }\n }).catch(() => {\n params.fail();\n });\n }\n };\n }\n\n fetchTemplate() {\n if (this.id != null) {\n db.gridFilterItems.filter((el) => el.tableId == this.id).toArray().then((res) => {\n this.filterTemplateItems = res;\n });\n }\n }\n\n ngOnInit(): void {\n this.fetchTemplate();\n }\n}","<!-- <button (click)=\"enableAdvancedFilter=!enableAdvancedFilter\">advanced</button> -->\n<div class=\"flex justify-between items-center py-4 border-b border-b-slate-200 mx-4\" *ngIf=\"isToolbar\">\n <div>\n <h4 class=\"font-semibold text-2xl\">{{ label }}</h4>\n </div>\n <div class=\"flex gap-3\">\n @for (item of toolbarItems; track $index) {\n <button nz-button [nzLoading]=\"item.loading ? item.loading : false\" (click)=\"handleClick(item)\" [nzType]=\"item.type\">\n <span nz-icon [nzType]=\"item.icon\"></span>\n {{ item.text }}\n </button>\n }\n <button\n (click)=\"handleVisibleFilterBox()\"\n nz-button\n nzType=\"default\"\n nz-popover\n nzPopoverTitle=\"\"\n nzPopoverTrigger=\"click\"\n [nzPopoverContent]=\"contentTemplate\"\n nzPopoverOverlayClassName=\"filter-popover\"\n nzPopoverPlacement=\"bottom\"\n *ngIf=\"_filterBoxItems.length > 0\">\n <span nz-icon nzType=\"filter\"></span>\n فیلتر\n </button>\n <button\n nz-button\n nzType=\"default\"\n class=\"flex items-center\"\n nz-popover\n nzPopoverTitle=\"\"\n [(nzPopoverVisible)]=\"visibleFilterTemplateBox\"\n nzPopoverTrigger=\"click\"\n [nzPopoverContent]=\"contentFilterTemplate\"\n nzPopoverOverlayClassName=\"filter-popover-sm\"\n nzPopoverPlacement=\"bottom\"\n *ngIf=\"id != null\">\n <span nz-icon nzType=\"layout\"></span>\n فیلتر های ذخیره شده\n </button>\n <button nz-button (click)=\"refresh()\" nzType=\"default\">\n <span nz-icon nzType=\"sync\"></span>\n بروزرسانی\n </button>\n <!-- <button nz-button (click)=\"advancedFilter()\" *ngIf=\"showAdvancedButton\" nzType=\"default\">\n <span nz-icon nzType=\"filter\"></span>\n جستجوی پیشرفته\n </button> -->\n </div>\n</div>\n<ng-template #contentTemplate class=\"w-full\">\n <div class=\"grid gap-x-4 p-4 max-h-[400px] overflow-auto\" [ngClass]=\"{ 'grid-cols-1': _filterBoxItems.length == 1, 'grid-cols-2': _filterBoxItems.length > 1 }\">\n <div *ngFor=\"let item of _filterBoxItems\" [ngClass]=\"{ 'col-span-2': item.type == 'date' || item.type == 'date-time' || item.colSpan == 2 }\">\n <div *ngIf=\"item.type == 'date' || item.type == 'date-time'\" class=\"grid grid-cols-2 gap-x-4\">\n <nz-form-item>\n <nz-form-label>از تاریخ</nz-form-label>\n <nz-form-control>\n <qeydar-date-picker\n [ngModel]=\"item.value != null ? item.value[0] : null\"\n (onChangeValue)=\"changeDatePickerValue($event, item, 0)\"\n [showToday]=\"true\"\n [allowEmpty]=\"true\"\n [calendarType]=\"'jalali'\"\n format=\"yyyy-MM-dd\"\n [rtl]=\"true\"></qeydar-date-picker>\n </nz-form-control>\n </nz-form-item>\n <nz-form-item>\n <nz-form-label>تا تاریخ</nz-form-label>\n <nz-form-control>\n <qeydar-date-picker\n [ngModel]=\"item.value != null ? item.value[1] : null\"\n (onChangeValue)=\"changeDatePickerValue($event, item, 1)\"\n [showToday]=\"true\"\n [allowEmpty]=\"true\"\n [calendarType]=\"'jalali'\"\n format=\"yyyy-MM-dd\"\n [rtl]=\"true\"></qeydar-date-picker>\n </nz-form-control>\n </nz-form-item>\n </div>\n <div *ngIf=\"item.type == 'enum' || item.type == 'select' || item.type == 'boolean'\">\n <nz-form-item class=\"w-full\">\n <nz-form-label>{{ item.label }}</nz-form-label>\n <nz-select class=\"w-full\" [(ngModel)]=\"item.value\" nzShowSearch>\n <nz-option *ngFor=\"let item2 of item.items\" [nzValue]=\"item2.value\" [nzLabel]=\"item2.label\"></nz-option>\n </nz-select>\n </nz-form-item>\n </div>\n <div *ngIf=\"item.type == 'tree-select'\">\n <nz-form-item class=\"w-full\">\n <nz-form-label>{{ item.label }}</nz-form-label>\n <nz-tree-select class=\"w-full\" [nzNodes]=\"item.nodes\" nzVirtualHeight=\"320px\" nzShowSearch [(ngModel)]=\"item.value\"></nz-tree-select>\n </nz-form-item>\n </div>\n <div *ngIf=\"item.type == 'string' || item.type == null\">\n <nz-form-item class=\"w-full\">\n <nz-form-label>{{ item.label }}</nz-form-label>\n <input type=\"text\" nz-input [(ngModel)]=\"item.value\" />\n </nz-form-item>\n </div>\n </div>\n </div>\n <div class=\"flex gap-2 p-4 border-t border-t-slate-200\">\n <button nz-button nzType=\"primary\" (click)=\"filter()\">اعمال</button>\n <button nz-button nzType=\"default\" (click)=\"clearFilter()\">پاکسازی و بستن</button>\n </div>\n</ng-template>\n<!-- template items box -->\n<ng-template #contentFilterTemplate class=\"w-full\">\n <ul class=\"flex flex-col gap-2\" *ngIf=\"filterTemplateItems.length > 0\">\n <li class=\"p-2 rounded-lg cursor-pointer border border-slate-200\" *ngFor=\"let item of filterTemplateItems\" (click)=\"setTemplateFilter(item)\">{{ item.title }}</li>\n </ul>\n <p *ngIf=\"filterTemplateItems.length == 0\" class=\"text-center\">قالبی جهت نمایش وجود ندارد</p>\n</ng-template>\n<div class=\"flex items-center justify-between gap-2 px-4 py-2 h-14\" *ngIf=\"isToolbar\">\n <div class=\"flex items-center gap-2\">\n <span class=\"font-medium text-sm text-blue-500\">فیلترهای اعمال شده:</span>\n <ul class=\"flex items-center gap-2\">\n <li class=\"bg-white border border-slate-200 rounded-md px-2 py-1 flex items-center gap-1 h-8\" *ngIf=\"filterItemsValues.length == 0\">\n <span class=\"text-slate-800 font-medium text-sm\">بدون فیلتر</span>\n </li>\n <li class=\"bg-white border border-slate-200 rounded-md px-2 py-1 flex items-center gap-1 h-8\" *ngFor=\"let item of filterItemsValues\">\n <label class=\"text-slate-500 text-sm\">{{ item.label }}:</label>\n <span class=\"text-slate-800 font-medium text-sm\">{{ item.value | translate }}</span>\n <i class=\"fa-regular fa-times cursor-pointer ps-2\" (click)=\"removeFilter(item)\"></i>\n </li>\n </ul>\n </div>\n <div class=\"flex items-center gap-2\" *ngIf=\"id != null\">\n <button nz-button nzType=\"default\" *ngIf=\"filterItemsValues.length > 0 || gridId != null\" (click)=\"saveFilterGrid()\">\n {{ gridId == null ? 'ذخیره فیلتر' : 'اعمال تغییرات فیلتر' }}\n </button>\n <button nz-button nzType=\"default\" *ngIf=\"gridId != null\" (click)=\"clearFilter(); gridId = null\">لغو</button>\n </div>\n</div>\n\n<nz-modal [(nzVisible)]=\"isVisibleModal\" nzTitle=\"افزودن قالب جدید\" (nzOnCancel)=\"handleCancelModal()\" (nzOnOk)=\"handleOkModal()\">\n <ng-container *nzModalContent>\n <nz-form-item class=\"w-full\">\n <nz-form-label>عنوان قالب</nz-form-label>\n <input type=\"text\" nz-input [(ngModel)]=\"templateName\" />\n </nz-form-item>\n </ng-container>\n</nz-modal>\n\n<ag-grid-angular\n style=\"width: 100%\"\n [style]=\"isToolbar ? 'height: calc(100% - 1rem - 114px);' : 'height: 100%;'\"\n [columnDefs]=\"columnDefs\"\n [pagination]=\"true\"\n [paginationPageSize]=\"paginationPageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\"\n [class]=\"themeClass\"\n [rowHeight]=\"48\"\n [defaultColDef]=\"defaultColDef\"\n [enableAdvancedFilter]=\"enableAdvancedFilter\"\n [enableRtl]=\"rtl\"\n [treeData]=\"treeModel\"\n [autoGroupColumnDef]=\"autoGroupColumnDef\"\n [isServerSideGroup]=\"isServerSideGroup\"\n [getServerSideGroupKey]=\"getServerSideGroupKey\"\n [rowModelType]=\"rowModelType\"\n [rowData]=\"rowData\"\n [serverSideDatasource]=\"datasource\"\n (gridReady)=\"onGridReady($event)\"\n [cacheBlockSize]=\"paginationPageSize\"\n [maxBlocksInCache]=\"2\"\n [context]=\"{ actionItems: actionItems }\"\n (cellDoubleClicked)=\"cellDoubleClicked($event)\"\n [autoSizeStrategy]=\"_autoColumnSize\"\n [rowSelection]=\"_rowSelection\"\n (selectionChanged)=\"selectionChanged($event)\"\n [theme]=\"\"\n [getRowClass]=\"getRowClass\"\n #grid />\n","import { ICellRendererAngularComp } from '@ag-grid-community/angular';\nimport { ICellRendererParams } from '@ag-grid-community/core';\nimport { Component } from '@angular/core';\nimport { ActionItems } from '../../../models/shared.model';\n\n@Component({\n selector: 'app-button-renderer',\n templateUrl: `./action-button.component.html`\n})\nexport class ActionsCellRenderer implements ICellRendererAngularComp {\n private params!: any;\n public items: ActionItems[] = [];\n\n agInit(params: ICellRendererParams): void {\n this.params = params;\n this.items = params.context.actionItems;\n }\n\n refresh(params: ICellRendererParams): boolean {\n this.params = params;\n return true;\n }\n\n handleClick(item: ActionItems) {\n this.params.onClick({ data: this.params.data, event: item.code, id: this.params.node.id });\n }\n}\n","<div class=\"h-full flex gap-2 items-center\">\n <button mat-button class=\"min-w-[30px] min-h-[30px] h-[30px]\" *ngFor=\"let item of items\" nz-tooltip [nzTooltipTitle]=\"item.alt\" nzTooltipPlacement=\"bottom\" (click)=\"handleClick(item)\">\n <div class=\"flex justify-center items-center\">\n <i [class]=\"item.icon\"></i>\n </div>\n </button>\n \n</div>","import { Component, ElementRef, EventEmitter, OnInit, Output, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'app-captcha',\n templateUrl: './captcha.component.html',\n})\nexport class CaptchaComponent implements OnInit {\n constructor() { }\n @ViewChild('canvas', { static: true }) captchaCanvas!: ElementRef<HTMLCanvasElement>;\n value: string = '';\n\n @Output()\n valueChange: EventEmitter<string> = new EventEmitter();\n\n generateCode(){\n this.value=Math.round((Math.random() * 1000000)).toString();\n this.drawCaptcha();\n this.valueChange.emit(this.value);\n }\n\n drawCaptcha() {\n const canvas: HTMLCanvasElement = this.captchaCanvas.nativeElement;\n const ctx = canvas.getContext('2d');\n\n if (ctx) {\n // تنظیمات اولیه Canvas\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.font = '30px Arial';\n ctx.fillStyle = '#000';\n ctx.textAlign = 'center';\n\n // وسطچین کردن عمودی: تعیین y براساس ارتفاع فونت\n const textX = canvas.width / 2;\n const textY = (canvas.height / 2) + 10;\n\n // رندر کردن متن کپچا\n ctx.fillText(this.value, textX, textY);\n\n // اضافه کردن نویز و خطوط برای پیچیدهتر کردن کپچا\n for (let i = 0; i < 10; i++) {\n ctx.beginPath();\n ctx.moveTo(Math.random() * canvas.width, Math.random() * canvas.height);\n ctx.lineTo(Math.random() * canvas.width, Math.random() * canvas.height);\n ctx.strokeStyle = '#ccc';\n ctx.stroke();\n }\n }\n }\n\n ngOnInit(): void {\n this.generateCode();\n }\n}\n","<div class=\"rounded-xl border border-slate-200 relative\">\n <canvas #canvas class=\"w-full h-[80px]\"></canvas>\n <div class=\"absolute left-2 top-0 bottom-0 m-auto z-10 flex justify-center items-center\">\n <button nz-button nzShape=\"circle\" type=\"button\" (click)=\"generateCode()\">\n <span nz-icon nzType=\"undo\" nzTheme=\"outline\"></span>\n </button>\n </div>\n</div>","import { Component, AfterViewInit, Input, Output, EventEmitter, SimpleChanges } from '@angular/core';\nimport { PolygonData, PolygonEventEmiter } from '../../models/shared.model';\ndeclare let L: any;\n@Component({\n selector: 'app-map',\n templateUrl: './map.component.html',\n styleUrls: ['./map.component.scss']\n})\nexport class MapComponent implements AfterViewInit {\n constructor() { }\n public map: any;\n private drawnItems = new L.FeatureGroup();\n\n @Input()\n editable: boolean = false;\n\n @Input()\n polygons: PolygonData[] = [];\n\n @Input()\n drawPolygon: boolean = false;\n\n @Input()\n drawCircle: boolean = false;\n\n @Input()\n drawPolyline: boolean = false;\n\n @Input()\n drawRectangle: boolean = false;\n\n @Input()\n drawMarker: boolean = false;\n\n @Input()\n zoom: number = 13;\n\n @Input()\n center: number[] = [35.6961, 51.4231];\n\n @Output()\n onCreatePolygon: EventEmitter<PolygonEventEmiter[]> = new EventEmitter();\n\n @Output()\n onEditPolygon: EventEmitter<PolygonEventEmiter[]> = new EventEmitter();\n\n private initMap(): void {\n if (L && L.map && L.Control && L.Control.Draw) {\n if (this.center.length == 0) {\n this.center = [35.6961, 51.4231];\n }\n this.map = L.map('map').setView(this.center, this.zoom);\n\n L.tileLayer('https://raster.snappmaps.ir/styles/snapp-style/{z}/{x}/{y}@2x.webp', {\n maxZoom: 18,\n }).addTo(this.map);\n (L as any).Draw.Tooltip.prototype.updateContent = function () {\n return this;\n };\n this.map.addLayer(this.drawnItems);\n const drawControl = new L.Control.Draw({\n edit: this.editable ? {\n featureGroup: this.drawnItems\n } : null,\n draw: {\n polygon: this.drawPolygon,\n polyline: this.drawPolyline,\n circle: this.drawCircle,\n rectangle: this.drawRectangle,\n marker: this.drawMarker,\n circlemarker: false,\n }\n });\n this.map.addControl(drawControl);\n if (L.Draw && L.Draw.Event && L.Draw.Event.CREATED) {\n this.map.on(L.Draw.Event.CREATED, (event: any) => {\n this.onCreatePolygon.emit(event.layer._latlngs[0]);\n const layer = event.layer;\n this.drawnItems.addLayer(layer);\n });\n this.map.on(L.Draw.Event.EDITED, (event: any) => {\n const polygon = [];\n event.layers.eachLayer((layer: any) => {\n layer._latlngs[0].forEach(element => {\n polygon.push({\n lat: element.lat,\n lng: element.lng\n });\n });\n });\n this.onEditPolygon.emit(polygon);\n });\n } else {\n console.error('Leaflet Draw Event is not available.');\n }\n } else {\n console.error('Leaflet or Leaflet Draw is not correctly loaded.');\n }\n }\n\n private addPolygonsToMap(): void {\n this.polygons.forEach(polygon => {\n // polygon.coordinates.forEach((el) => {\n // el.reverse();\n // });\n const layer = L.polygon(polygon.coordinates, { color: polygon.color }).addTo(this.map);\n\n // اضافه کردن لیبل به پالیگان\n layer.bindTooltip(polygon.name, { permanent: true, direction: 'center', className: 'font-[yekanBakh]' }).openTooltip();\n if (polygon.editable) {\n // اضافه کردن پالیگان به drawnItems برای ویرایش\n this.drawnItems.addLayer(layer);\n }\n });\n }\n\n clearMap() {\n this.map?.eachLayer((layer) => {\n if (!(layer instanceof L.TileLayer)) {\n this.map.removeLayer(layer);\n }\n });\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['polygons']) {\n this.clearMap();\n this.addPolygonsToMap();\n }\n if (changes['center'] || changes['zoom']) {\n if (this.map) {\n this.map.setView(this.center, this.zoom);\n }\n }\n }\n\n ngAfterViewInit(): void {\n this.initMap();\n this.addPolygonsToMap();\n }\n}\n","<div class=\"map-container\">\n <div class=\"map-frame\">\n <div id=\"map\" #mapElement></div>\n <!-- <button mat-flat-button (click)=\"currentLocation()\" *ngIf=\"allowCurrentLocation\">\n <i class=\"fa-solid fa-location-crosshairs\"></i>\n </button> -->\n </div>\n</div>","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-spinner',\n templateUrl: './spinner.component.html'\n})\nexport class SpinnerComponent implements OnInit {\n constructor() { }\n\n ngOnInit(): void { }\n}\n","<div class=\"w-full h-full absolute top-0 left-0 flex justify-center items-center bg-white z-10\">\n <nz-spin nzSimple nzSize=\"large\" nzSimple></nz-spin>\n</div>","import { ComponentRef, inject, Injector, ViewContainerRef } from \"@angular/core\";\nimport { NZ_MODAL_DATA, NzModalRef } from \"ng-zorro-antd/modal\";\nimport { SpinnerComponent } from \"../components/index.api\";\n\nexport abstract class PopoverComponent<DataModel> {\n data: DataModel | null = inject(NZ_MODAL_DATA, { optional: true });\n dialogRef: NzModalRef | null = inject(NzModalRef, { optional: true });\n viewContainerRef: ViewContainerRef = inject(ViewContainerRef);\n injector: Injector = inject(Injector);\n\n private spinnerRef: ComponentRef<any> | null = null;\n public get loadingDialog() {\n return this.loadingDialog;\n }\n public set loadingDialog(value: boolean) {\n if (value) {\n this.spinnerRef = this.viewContainerRef.createComponent(SpinnerComponent, {\n injector: this.injector,\n });\n } else {\n this.spinnerRef.destroy();\n this.spinnerRef = null;\n }\n }\n abstract onOk(): Promise<any>;\n abstract onCancel(): Promise<any>;\n\n onClose(data?: any) {\n this.dialogRef.close(data);\n }\n}","import { Component, OnInit } from '@angular/core';\nimport { PopoverComponent } from '../../class/index.api';\nimport { ImageCroppedEvent } from 'ngx-image-cropper';\nimport { CropperInputModel } from '../../models/shared.model';\nimport { ToastService } from '../../services/index.api';\n\n@Component({\n templateUrl: './image-cropper.popover.html',\n})\nexport class ImageCropperPopover extends PopoverComponent<CropperInputModel> implements OnInit {\n constructor(\n private _toast: ToastService\n ) {\n super()\n }\n croppedImage: File = null;\n\n imageCropped(event: ImageCroppedEvent) {\n this.croppedImage = new File([event.blob], this.data.file.name, { type: event.blob.type });\n }\n\n loadImageFailed() {\n this._toast.show('خطا در لود تصویر', 'error');\n }\n\n override onOk(): Promise<any> {\n return Promise.resolve({\n file: this.croppedImage\n });\n }\n\n override onCancel(): Promise<any> {\n return Promise.resolve();\n }\n\n ngOnInit(): void {\n }\n}\n","<image-cropper\n [imageFile]=\"data.file\"\n [maintainAspectRatio]=\"true\"\n [aspectRatio]=\"data.aspectRatio\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (loadImageFailed)=\"loadImageFailed()\"\n class=\"max-h-[400px]\"\n></image-cropper>","\nimport { HttpClient, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\nimport { Observable, Observer, Subscription } from 'rxjs';\nimport { ToastService } from '../../services/toast.service';\nimport { DialogService, SharedService } from '../../services/index.api';\nimport Compressor from 'compressorjs';\nimport { ImageCropperPopover } from '../../popover/index.api';\nimport { CropperInputModel } from '../../models/shared.model';\n\n@Component({\n selector: 'app-uploader',\n templateUrl: './uploader.component.html',\n})\nexport class UploaderComponent implements OnInit {\n constructor(\n @Inject('environment') environment,\n private _toast: ToastService,\n private _http: HttpClient,\n private _sharedService: SharedService,\n private _dialog: DialogService\n ) {\n this.env = environment;\n }\n loading = false;\n env = null;\n avatarUrl?: string;\n _avatarUid: string = null;\n _fileUploaded: File = null;\n\n @Input()\n maxWithSize: number = 1024;\n\n @Input()\n cropper: boolean = false;\n\n @Input()\n aspectRatio: number = 1 / 1;\n\n @Input()\n isCompress: boolean = true;\n\n @Input()\n public get avatar() {\n return this.avatarUrl;\n }\n public set avatar(v: string) {\n if (v) {\n this._avatarUid = v;\n this.loading = true;\n this._sharedService.getFile(v).then((res) => {\n this.avatarUrl = res;\n }).finally(() => {\n this.loading = false;\n })\n }\n }\n\n @Output()\n onUploaded: EventEmitter<string> = new EventEmitter();\n\n\n customRequest = (item: any) => {\n // return Subscription\n const subscription = new Subscription();\n\n const uploadFile = (file: File) => {\n this.loading = true;\n if(this.isCompress){\n this.resizeImage(file).then((res) => {\n const isLt1M = res.size! / 1024 / 1024 < 1;\n if (!isLt1M) {\n this._toast.show('Image must smaller than 1MB!', 'error');\n subscription.unsubscribe();\n this.loading = false;\n return;\n }\n const formData = new FormData();\n formData.append('file', res as any);\n const req = new HttpRequest('POST', `${this.env.apiUrl}/file`, formData, {\n reportProgress: true,\n responseType: 'text' as 'json',\n });\n this._fileUploaded = res;\n subscription.add(\n this._http.request(req).subscribe(\n (event: any) => {\n if (event instanceof HttpResponse) {\n item.onSuccess(event.body, file, event);\n }\n },\n (err) => {\n item.onError(err, file);\n }\n )\n );\n }).catch(() => {\n this.loading = false;\n });\n } else {\n const isLt1M = file.size! / 1024 / 1024 < 1;\n if (!isLt1M) {\n this._toast.show('Image must smaller than 1MB!', 'error');\n subscription.unsubscribe();\n this.loading = false;\n return;\n }\n const formData = new FormData();\n formData.append('file', file as any);\n const req = new HttpRequest('POST', `${this.env.apiUrl}/file`, formData, {\n reportProgress: true,\n responseType: 'text' as 'json',\n });\n this._fileUploaded = file;\n subscription.add(\n this._http.request(req).subscribe(\n (event: any) => {\n if (event instanceof HttpResponse) {\n item.onSuccess(event.body, file, event);\n }\n },\n (err) => {\n item.onError(err, file);\n }\n )\n );\n }\n \n }\n\n if (this.cropper) {\n this._dialog.open<CropperInputModel>(ImageCropperPopover, {\n title: 'برش تصویر',\n data: {\n file: item.file,\n aspectRatio: this.aspectRatio\n }\n }).afterClose.subscribe((res) => {\n if (res.file) {\n uploadFile(res.file);\n }\n });\n } else {\n uploadFile(item.file);\n }\n\n return subscription;\n };\n\n beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]): Observable<boolean> =>\n new Observable((observer: Observer<boolean>) => {\n const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png' || file.type === 'image/webp';\n if (!isJpgOrPng) {\n this._toast.show('You can only upload JPG,PNG,WEBP file!', 'error');\n observer.complete();\n return;\n }\n observer.next(isJpgOrPng);\n observer.complete();\n });\n\n private getBase64(img: File, callback: (img: string) => void): void {\n const reader = new FileReader();\n reader.addEventListener('load', () => callback(reader.result!.toString()));\n reader.readAsDataURL(img);\n }\n\n handleChange(info: any): void {\n switch (info.file.status) {\n case 'uploading':\n this.loading = true;\n break;\n case 'done':\n this.getBase64(this._fileUploaded, (img: string) => {\n this.loading = false;\n this.avatarUrl = img;\n this.onUploaded.emit(info.file.response);\n });\n break;\n case 'error':\n this.loading = false;\n break;\n }\n }\n\n resizeImage(base64Str): Promise<File> {\n return new Promise((resolve, reject) => {\n new Compressor(base64Str, {\n quality: 1,\n maxWidth: this.maxWithSize,\n success(result) {\n resolve(result as File);\n },\n error(err) {\n reject(err);\n }\n });\n });\n }\n\n ngOnInit(): void { }\n}\n","<nz-upload class=\"w-[128px] h-[128px] overflow-hidden\" nzAction=\"{{env.apiUrl}}/file\" nzName=\"file\"\n nzListType=\"picture-card\" [nzShowUploadList]=\"false\" [nzBeforeUpload]=\"beforeUpload\"\n (nzChange)=\"handleChange($event)\" [nzCustomRequest]=\"customRequest\">\n @if (!avatarUrl) {\n <span class=\"upload-icon\" nz-icon [nzType]=\"loading ? 'loading' : 'plus'\"></span>\n <div class=\"ant-upload-text\">Upload</div>\n } @else {\n <img [src]=\"avatarUrl\" class=\"max-w-full max-h-full\" />\n }\n</nz-upload>","\nimport { HttpClient, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Inject, Input, OnInit, Output } from '@angular/core';\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\nimport { Observable, Observer } from 'rxjs';\nimport { ToastService } from '../../services/toast.service';\n@Component({\n selector: 'app-upload-file',\n templateUrl: './upload-file.component.html',\n})\nexport class UploadFileComponent implements OnInit {\n constructor(\n @Inject('environment') environment,\n private _toast: ToastService,\n private _http: HttpClient,\n ) {\n this.env = environment;\n }\n loading = false;\n env = null;\n avatarUrl?: string;\n _avatarUid: string = null;\n fileList: NzUploadFile[] = [];\n\n @Input()\n acceptFileType: string = null;\n\n @Input()\n type: 'serverSide' | 'clientSide' = 'serverSide';\n\n @Output()\n onUploaded: EventEmitter<string> = new EventEmitter();\n\n handleChangeClientSide(e) {\n this.onUploaded.emit(e.file);\n }\n\n customRequest = (item: any) => {\n const formData = new FormData();\n formData.append('file', item.file as any);\n const req = new HttpRequest('POST', `${this.env.apiUrl}/file`, formData, {\n reportProgress: true,\n responseType: 'text' as 'json',\n });\n return this._http.request(req).subscribe(\n (event: any) => {\n if (event instanceof HttpResponse) {\n item.onSuccess(event.body, item.file, event);\n }\n },\n (err) => {\n item.onError(err, item.file);\n }\n );\n };\n\n beforeUpload = (file: NzUploadFile, _fileList: NzUploadFile[]): Observable<boolean> =>\n new Observable((observer: Observer<boolean>) => {\n let checkType = file.type === this.acceptFileType;\n if (this.acceptFileType != null) {\n if (!checkType) {\n this._toast.show('You can only upload JPG,PNG,WEBP file!', 'error');\n observer.complete();\n return;\n }\n } else {\n checkType = true;\n }\n const isLt2M = file.size! / 1024 / 1024 < 3;\n if (!isLt2M) {\n this._toast.show('Image must smaller than 2MB!', 'error');\n observer.complete();\n return;\n }\n observer.next(checkType && isLt2M);\n observer.complete();\n });\n\n handleChange(info: any): void {\n switch (info.file.status) {\n case 'uploading':\n this.loading = true;\n break;\n case 'done':\n this.onUploaded.emit(info.file.response);\n break;\n case 'error':\n this.loading = false;\n break;\n }\n }\n\n ngOnInit(): void { }\n}\n","@if(type == 'serverSide'){\n <nz-upload nzName=\"file\" nzType=\"drag\"\n [nzBeforeUpload]=\"beforeUpload\" (nzChange)=\"handleChange($event)\" [nzCustomRequest]=\"customRequest\">\n <p class=\"ant-upload-drag-icon\">\n <span nz-icon nzType=\"inbox\"></span>\n </p>\n <p class=\"ant-upload-text\">برای آپلود، روی فایل کلیک کنید یا آن را به این قسمت بکشید</p>\n <p class=\"ant-upload-hint\">\n حداکثر حجم قابل قبول برای اپلود ۳ مگابایت می باشد\n </p>\n </nz-upload>\n} @else {\n <nz-upload nzName=\"file\" nzType=\"drag\" [nzBeforeUpload]=\"beforeUpload\" (nzChange)=\"handleChangeClientSide($event)\">\n <p class=\"ant-upload-drag-icon\">\n <span nz-icon nzType=\"inbox\"></span>\n </p>\n <p class=\"ant-upload-text\">برای آپلود، روی فایل کلیک کنید یا آن را به این قسمت بکشید</p>\n <p class=\"ant-upload-hint\">\n حداکثر حجم قابل قبول برای اپلود ۳ مگابایت می باشد\n </p>\n </nz-upload>\n}","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[charInput]',\n})\nexport class CharInputDirective {\n constructor(private el: ElementRef, private control: NgControl, public renderer: Renderer2) { }\n\n @Input()\n allowPersianChar: boolean = false;\n\n @Input()\n allowEnglishChar: boolean = false;\n\n @Input()\n allowLocalChar: boolean = true;\n\n\n @HostListener('input', ['$event']) onEvent($event: InputEvent) {\n const englishPattern = /^[A-Za-z\\u0600-\\u06FF ]+$/;\n const persianPattern = /^[\\u0600-\\u06FF ]+$/;\n let value = this.el.nativeElement.value;\n if (this.allowEnglishChar) {\n if (!englishPattern.test(value)) {\n value = value.replaceAll($event.data, '');\n }\n } else if (!persianPattern.test(value)) {\n value = value.replaceAll($event.data, '');\n }\n this.el.nativeElement.value = value;\n this.control.control.setValue(value);\n this.renderer.setProperty(this.el.nativeElement, 'value', value);\n return value;\n }\n}","import { Directive, ElementRef, HostListener, Input, Renderer2 } from '@angular/core';\nimport { NgControl } from '@angular/forms';\n\n@Directive({\n selector: '[englishNumberInput]',\n})\nexport class EnglishNumberInputDirective {\n constructor(private el: ElementRef, private control: NgControl, public renderer: Renderer2) { }\n\n @HostListener('input', ['$event']) onEvent($event: InputEvent) {\n var persianNumbers = [/۰/g, /۱/g, /۲/g, /۳/g, /۴/g, /۵/g, /۶/g, /۷/g, /۸/g, /۹/g],\n arabicNumbers = [/٠/g, /١/g, /٢/g, /٣/g, /٤/g, /٥/g, /٦/g, /٧/g, /٨/g, /٩/g],\n fixNumbers = function (str) {\n if (typeof str === 'string') {\n for (var i = 0; i < 10; i++) {\n str = str.replace(persianNumbers[i], i).replace(arabicNumbers[i], i);\n }\n }\n return str;\n };\n const numberPattern = /^\\d+$/;\n let value = fixNumbers(this.el.nativeElement.value);\n\n if (!numberPattern.test(value)) {\n value = value.replaceAll($event.data, '');\n }\n this.el.nativeElement.value = value;\n this.control.control.setValue(value);\n this.renderer.setProperty(this.el.nativeElement, 'value', value);\n return value;\n }\n}","import {\n Directive,\n Attribute,\n Renderer2,\n ElementRef,\n HostListener,\n Input\n} from '@angular/core';\nimport { SharedService } from '../services/index.api';\n\n@Directive({\n selector: '[imageLoader]'\n})\nexport class ImageLoaderDirective {\n constructor(\n @Attribute('loader') public loader: string,\n @Attribute('onErrorSrc') public onErrorSrc: string,\n private renderer: Renderer2,\n private el: ElementRef,\n private _http: SharedService\n ) {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.loader);\n }\n\n _imageSrc: string = null;\n\n @Input()\n public get imageSrc() {\n return this._imageSrc;\n }\n public set imageSrc(v: string) {\n if (v != null) {\n this._http.getFile(v).then((res) => {\n this.renderer.setAttribute(this.el.nativeElement, 'src', res);\n })\n }\n this._imageSrc = v;\n }\n\n // @HostListener('load') onLoad() {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.el.nativeElement.src);\n // }\n // @HostListener('error') onError() {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.onErrorSrc);\n // }\n}","import {\n Attribute,\n Directive,\n ElementRef,\n Input,\n Renderer2\n} from '@angular/core';\nimport { SharedService } from '../services/index.api';\nimport { ContentType } from '../models/shared.model';\n\n@Directive({\n selector: '[videoLoader]',\n})\nexport class VideoLoaderDirective {\n constructor(\n @Attribute('loader') public loader: string,\n @Attribute('onErrorSrc') public onErrorSrc: string,\n private renderer: Renderer2,\n private el: ElementRef,\n private _http: SharedService\n ) {\n // this.renderer.setAttribute(this.el.nativeElement, 'src', this.loader);\n }\n\n _videoSrc: string = null;\n\n @Input()\n public get videoSrc() {\n return this._videoSrc;\n }\n public set videoSrc(v: string) {\n if (v != null) {\n this._http.getFile(v,ContentType.VIDEO).then((res) => {\n this.renderer.setAttribute(this.el.nativeElement, 'src', res);\n setTimeout(()=>{\n this.el.nativeElement.parentElement.load();\n },100);\n })\n }\n this._videoSrc = v;\n }\n}","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';\nimport { Observable } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AuthGuard implements CanActivate {\n constructor(private _router: Router) { }\n canActivate(\n route: ActivatedRouteSnapshot,\n state: RouterStateSnapshot\n ): Observable<boolean> | Promise<boolean> | boolean {\n if (localStorage.getItem('userInfo')) {\n return true\n }\n this._router.navigate(['/auth']);\n return false;\n }\n}\n","import { Component, ComponentFactoryResolver, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { MenuItems } from '../../models/shared.model';\nimport { SharedService } from '../../services/shared.service';\nimport { ConfirmService } from '../../services/confirm.service';\ninterface TokenInfo {\n acr: string;\n azp: string;\n email: string;\n email_verified: boolean;\n exp: number;\n family_name: string;\n given_name: string;\n iat: number;\n iss: string;\n jti: string;\n name: string;\n preferred_username: string;\n roles: string[];\n scope: string;\n sid: string;\n sub: string;\n typ: string;\n userId: number;\n username: string;\n}\n@Component({\n templateUrl: './master.layout.html',\n styleUrls: ['./master.layout.scss']\n})\nexport class MasterLayout implements OnInit {\n constructor(\n private _service: SharedService,\n private _confirm: ConfirmService,\n private componentFactoryResolver: ComponentFactoryResolver\n ) { }\n @ViewChild('dynamicComponentContainer', { read: ViewContainerRef }) container: ViewContainerRef;\n isCollapsed = false;\n menuItems: MenuItems[] = [];\n userName: string = null;\n\n logout() {\n this._confirm.confirm(() => {\n localStorage.clear();\n location.reload();\n return Promise.resolve();\n })\n }\n\n loadComponent(component: any) {\n this.container.clear();\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(component);\n this.container.createComponent(componentFactory);\n }\n\n tokenInfo(token): TokenInfo {\n var base64Url = token.split('.')[1];\n var base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n var jsonPayload = decodeURIComponent(window.atob(base64).split('').map(function (c) {\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\n }).join(''));\n return JSON.parse(jsonPayload);\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n // this.loadComponent(this._ac.);\n }, 500)\n }\n\n ngOnInit(): void {\n this.menuItems = this._service.menuItems;\n if (localStorage.getItem('userInfo')) {\n this.userName = this.tokenInfo(JSON.parse(localStorage.getItem('userInfo')).access_token).username;\n }\n }\n}\n","<nz-layout class=\"app-layout\">\n <nz-sider class=\"menu-sidebar bg-white\" nzCollapsible nzWidth=\"256px\" nzBreakpoint=\"md\" [(nzCollapsed)]=\"isCollapsed\" [nzTrigger]=\"null\">\n <div class=\"py-2 px-4 border-b border-b-slate-200 h-16 flex items-center gap-4\">\n <div class=\"size-10 rounded-full bg-slate-200\"></div>\n <div>\n <h5 class=\"text-sm text-slate-800 font-semibold\">{{userName}}</h5>\n <span class=\"text-sm text-slate-600\">به پنل مدیریت خوش آمدید 👋</span>\n </div>\n <!-- <div class=\"flex justify-center items-center border-b !border-b-slate-200 pb-4\"></div> -->\n </div>\n <ul nz-menu nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\" class=\"h-[calc(100%-64px)] overflow-y-auto overflow-x-hidden\">\n @for (item of menuItems; track item.title) { @if(item.children){\n <li nz-submenu [nzTitle]=\"item.title\" [nzIcon]=\"item.icon\">\n <ul nz-menu-group>\n @for (subitem of item.children; track subitem.title) {\n <li nz-menu-item [routerLink]=\"subitem.path\">{{ subitem.title }}</li>\n }\n </ul>\n </li>\n } @else{\n <li nz-menu-item [routerLink]=\"item.path\">\n <span nz-icon [nzType]=\"item.icon\"></span>\n <span>{{ item.title }}</span>\n </li>\n } }\n </ul>\n </nz-sider>\n <nz-layout>\n <nz-header>\n <div class=\"app-header p-4 flex justify-between items-center\">\n <div class=\"flex items-center gap-1\">\n <button nz-button nzType=\"text\" (click)=\"isCollapsed = !isCollapsed\">\n <span class=\"text-2xl\" nz-icon nzType=\"menu\"></span>\n </button>\n <img width=\"86\" src=\"assets/images/logo.svg\" alt=\"\" />\n </div>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon nzType=\"global\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon nzType=\"user\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon nzType=\"bell\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\" (click)=\"logout()\"><span nz-icon nzType=\"poweroff\"></span></button>\n </div>\n </div>\n </nz-header>\n <nz-content>\n <!-- <nz-tabset nzType=\"editable-card\">\n <nz-tab nzClosable nzTitle=\"درخت سرویس\">\n <div class=\"inner-content rounded-md overflow-auto\">\n <div #dynamicComponentContainer></div>\n </div>\n </nz-tab>\n </nz-tabset> -->\n <div class=\"inner-content rounded-xl overflow-auto p-0 border border-slate-200\">\n <router-outlet></router-outlet>\n </div>\n </nz-content>\n </nz-layout>\n</nz-layout>\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n templateUrl: './blank.layout.html',\n})\nexport class BlankLayout implements OnInit {\n constructor() { }\n\n ngOnInit(): void { }\n}\n","<div class=\"w-full h-full\">\n <router-outlet></router-outlet>\n</div>","/* Imports */\nimport * as am5 from \"@amcharts/amcharts5\";\nimport * as am5percent from \"@amcharts/amcharts5/percent\";\nimport am5themes_Animated from \"@amcharts/amcharts5/themes/Animated\";\nimport { Component, Input, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-pie-chart',\n template: '<div id=\"chartdiv\" dir=\"ltr\" style=\"width: 100%; height: 180px;\"></div>',\n})\nexport class PieChart implements OnInit {\n private root!: am5.Root;\n\n @Input()\n items: { category: string, value: number }[] = [];\n\n @Input()\n label: string = '';\n\n ngAfterViewInit(): void {\n // Root\n this.root = am5.Root.new('chartdiv');\n this.root._logo.dispose();\n // Theme\n this.root.setThemes([am5themes_Animated.new(this.root)]);\n\n this.root.container.set('layout', this.root.verticalLayout);\n\n // Container for charts\n let chartContainer = this.root.container.children.push(\n am5.Container.new(this.root, {\n layout: this.root.verticalLayout,\n width: 250,\n height: 180,\n })\n );\n\n // First chart\n let chart = chartContainer.children.push(\n am5percent.PieChart.new(this.root, {\n width: 180,\n height: 180,\n radius: am5.percent(90),\n centerY: am5.percent(50),\n y: am5.percent(50),\n x: am5.percent(100),\n innerRadius: am5.percent(60)\n })\n );\n\n let series = chart.series.push(\n am5percent.PieSeries.new(this.root, {\n valueField: 'value',\n categoryField: 'category',\n alignLabels: false,\n })\n );\n series.children.push(am5.Label.new(this.root, {\n centerX: am5.percent(50),\n centerY: am5.percent(50),\n text: \"{valueSum} \" + this.label,\n populateText: true,\n fontSize: \"1.5em\",\n fontFamily: 'yekanBakh',\n fontWeight: '600',\n direction: 'rtl'\n }));\n series.get(\"colors\").setAll({\n step: 2\n });\n series.labels.template.setAll({ visible: false, fontFamily: 'yekanBakh' });\n series.ticks.template.set(\"visible\", false);\n series.slices.template.setAll({\n cornerRadius: 8,\n strokeWidth: 5,\n stroke: am5.color(0xffffff),\n });\n series.labels.template.setAll({ textType: 'aligned', fontFamily: 'yekanBakh' });\n\n // Data\n series.data.setAll(this.items);\n\n // Legend\n let legend = this.root.container.children.push(\n am5.Legend.new(this.root, {\n y: am5.percent(50),\n centerY: am5.percent(50),\n layout: this.root.verticalLayout,\n })\n );\n legend.markerRectangles.template.setAll({\n x: 200,\n });\n legend.labels.template.setAll({ fontFamily: 'yekanBakh', textAlign: 'right' });\n legend.valueLabels.template.setAll({ textAlign: \"right\", fontFamily: 'yekanBakh' });\n legend.labels.template.setAll({\n maxWidth: 100,\n width: 100,\n oversizedBehavior: \"wrap\"\n });\n legend.data.setAll(series.dataItems);\n\n series.appear(1000, 100);\n }\n\n getSlice(dataItem: am5.DataItem<any>, series: am5percent.PieSeries) {\n let otherSlice: any;\n am5.array.each(series.dataItems, (di) => {\n if (di.get('category') === dataItem.get('category')) {\n otherSlice = di.get('slice');\n }\n });\n return otherSlice;\n }\n\n ngOnDestroy(): void {\n if (this.root) {\n this.root.dispose();\n }\n }\n\n ngOnInit(): void {\n\n }\n}","import { AgGridModule } from '@ag-grid-community/angular';\nimport { ClientSideRowModelModule } from '@ag-grid-community/client-side-row-model';\nimport { ModuleRegistry } from '@ag-grid-community/core';\nimport { AdvancedFilterModule } from '@ag-grid-enterprise/advanced-filter';\nimport { LicenseManager } from '@ag-grid-enterprise/core';\nimport { MasterDetailModule } from '@ag-grid-enterprise/master-detail';\nimport { MultiFilterModule } from '@ag-grid-enterprise/multi-filter';\nimport { RowGroupingModule } from '@ag-grid-enterprise/row-grouping';\nimport { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';\nimport { SetFilterModule } from '@ag-grid-enterprise/set-filter';\nimport { CdkMenuModule } from '@angular/cdk/menu';\nimport { CommonModule } from '@angular/common';\nimport { HttpClient, HttpClientModule } from '@angular/common/http';\nimport { APP_INITIALIZER, CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateLoader, TranslateModule } from '@ngx-translate/core';\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\nimport { NzButtonModule } from 'ng-zorro-antd/button';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzLayoutModule } from 'ng-zorro-antd/layout';\nimport { NzMenuModule } from 'ng-zorro-antd/menu';\nimport { NzMessageModule } from 'ng-zorro-antd/message';\nimport { NzModalModule } from 'ng-zorro-antd/modal';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTabsModule } from 'ng-zorro-antd/tabs';\nimport { NzToolTipModule } from 'ng-zorro-antd/tooltip';\nimport { NzTreeViewModule } from 'ng-zorro-antd/tree-view';\nimport { NzUploadModule } from 'ng-zorro-antd/upload';\nimport { ImageCropperComponent } from 'ngx-image-cropper';\nimport { JDatePipe } from '../public-api';\nimport { DateFilter, TimeFilter } from './components/grid/filter/index.api';\nimport { ActionsCellRenderer, CaptchaComponent, GridComponent, MapComponent, SpinnerComponent, UploaderComponent, UploadFileComponent } from './components/index.api';\nimport { CharInputDirective, EnglishNumberInputDirective, ImageLoaderDirective, MaskDirective, VideoLoaderDirective } from './directive/index.api';\nimport { AuthGuard } from './guard/index.api';\nimport { BlankLayout, MasterLayout } from './layouts/index.api';\nimport { ImageCropperPopover } from './popover/image-cropper/image-cropper.popover';\nimport { ConfirmService } from './services/index.api';\nimport { NzCollapseModule } from 'ng-zorro-antd/collapse';\nimport { PieChart } from './charts/index.api';\nimport { NzPopoverModule } from 'ng-zorro-antd/popover';\nimport { NzSelectModule } from 'ng-zorro-antd/select';\nimport { NzTreeSelectModule } from 'ng-zorro-antd/tree-select';\nimport { QeydarDatePickerModule } from '@qeydar/datepicker';\nexport function HttpLoaderFactory(http: HttpClient) {\n return new TranslateHttpLoader(http, './assets/i18n/', '.json?v=' + Date.now());\n}\n\nLicenseManager.prototype.isDisplayWatermark = () => {\n return false;\n}\nLicenseManager.prototype.validateLicense = () => {\n\n}\n\nModuleRegistry.registerModules([\n ClientSideRowModelModule,\n SetFilterModule,\n MultiFilterModule,\n MasterDetailModule,\n AdvancedFilterModule,\n ServerSideRowModelModule,\n RowGroupingModule\n]);\n\nexport function initializeApp(): Promise<any> {\n return new Promise((resolve, reject) => {\n if (typeof window !== 'undefined') {\n resolve(true);\n } else {\n reject();\n }\n });\n}\n\nconst Layouts = [\n MasterLayout,\n BlankLayout\n];\n\nconst Components = [\n GridComponent,\n ActionsCellRenderer,\n CaptchaComponent,\n MapComponent,\n SpinnerComponent,\n UploaderComponent,\n UploadFileComponent,\n DateFilter,\n TimeFilter\n];\n\nconst Popover: any[] = [\n ImageCropperPopover\n];\n\nconst Directive = [\n EnglishNumberInputDirective,\n CharInputDirective,\n MaskDirective,\n ImageLoaderDirective,\n VideoLoaderDirective\n];\n\nconst Pipes = [\n JDatePipe\n]\n\nconst Guard = [\n AuthGuard\n];\n\nconst Services = [\n ConfirmService\n];\n\nconst Chart = [\n PieChart\n]\n\nconst Modules = [\n HttpClientModule,\n CommonModule,\n AgGridModule,\n HttpClientModule,\n CdkMenuModule,\n NzLayoutModule,\n NzMenuModule,\n NzIconModule,\n NzButtonModule,\n NzModalModule,\n NzMessageModule,\n NzToolTipModule,\n NzTabsModule,\n NzTreeViewModule,\n NzSpinModule,\n FormsModule,\n NzInputModule,\n NzFormModule,\n NzSelectModule,\n NzUploadModule,\n NzCollapseModule,\n NzTreeSelectModule,\n ImageCropperComponent,\n NzPopoverModule,\n QeydarDatePickerModule,\n TranslateModule.forRoot({\n defaultLanguage: 'fa',\n useDefaultLang: true,\n loader: {\n provide: TranslateLoader,\n useFactory: HttpLoaderFactory,\n deps: [HttpClient]\n }\n })\n];\n\n@NgModule({\n declarations: [\n ...Layouts,\n ...Components,\n ...Popover,\n ...Directive,\n ...Pipes,\n ...Chart\n ],\n imports: [\n RouterModule,\n ...Modules\n ],\n exports: [\n ...Layouts,\n ...Components,\n ...Popover,\n ...Directive,\n ...Pipes,\n ...Chart\n ],\n schemas: [\n CUSTOM_ELEMENTS_SCHEMA\n ],\n providers: [\n ...Guard,\n ...Services,\n { provide: APP_INITIALIZER, useFactory: initializeApp, multi: true }\n ]\n})\nexport class SharedModule { }\n","import { Pipe, PipeTransform } from \"@angular/core\";\n\n@Pipe({\n name: 'timer',\n})\nexport class TimerPipe implements PipeTransform {\n transform(value: number): string {\n const hours: number = Math.floor(value / 3600);\n const minutes: number = Math.floor((value % 3600) / 60);\n const seconds: number = value % 60;\n\n if (value >= 3601) {\n return (\n ('00' + hours).slice(-2) +\n ':' +\n ('00' + minutes).slice(-2) +\n ':' +\n ('00' + seconds).slice(-2)\n );\n }\n\n else {\n return (\n ('00' + minutes).slice(-2) +\n ':' +\n ('00' + seconds).slice(-2)\n );\n }\n }\n}\n\n","/*\n * Public API Surface of shared\n */\n\nexport * from './lib/services/index.api';\nexport * from './lib/shared.module';\nexport * from './lib/layouts/index.api';\nexport * from './lib/components/index.api';\nexport * from './lib/models/index.api';\nexport * from './lib/class/index.api';\nexport * from './lib/guard/index.api';\nexport * from './lib/pipes/index.api';\nexport * from './lib/directive/index.api';\nexport * from './lib/components/grid/filter/index.api';\nexport * from './lib/popover/index.api';\nexport * from './lib/charts/index.api';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","Directive","moment","i2","i8.MaskDirective","i2.ToastService","i3","i4","i5","i6","i7","i8","i9","i10","i11","i12","i13","i1.ToastService","i3.SharedService","i3.DialogService","i1.SharedService","i2.ConfirmService"],"mappings":"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"}
|