fixa-admin 0.0.13 → 0.0.14

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,5 +1,5 @@
1
1
  import { HttpRequest, HttpResponse } from '@angular/common/http';
2
- import { Component, Inject, Input } from '@angular/core';
2
+ import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
3
3
  import { Observable } from 'rxjs';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../../services/toast.service";
@@ -15,6 +15,8 @@ export class UploaderComponent {
15
15
  this._sharedService = _sharedService;
16
16
  this.loading = false;
17
17
  this.env = null;
18
+ this._avatarUid = null;
19
+ this.change = new EventEmitter();
18
20
  this.customRequest = (item) => {
19
21
  const formData = new FormData();
20
22
  formData.append('file', item.file);
@@ -53,6 +55,7 @@ export class UploaderComponent {
53
55
  }
54
56
  set avatar(v) {
55
57
  if (v) {
58
+ this._avatarUid = v;
56
59
  this.loading = true;
57
60
  this._sharedService.getFile(v).then((res) => {
58
61
  this.avatarUrl = res;
@@ -75,6 +78,7 @@ export class UploaderComponent {
75
78
  this.getBase64(info.file.originFileObj, (img) => {
76
79
  this.loading = false;
77
80
  this.avatarUrl = img;
81
+ this.change.emit(info.response);
78
82
  });
79
83
  break;
80
84
  case 'error':
@@ -84,7 +88,7 @@ export class UploaderComponent {
84
88
  }
85
89
  ngOnInit() { }
86
90
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UploaderComponent, deps: [{ token: 'environment' }, { token: i1.ToastService }, { token: i2.HttpClient }, { token: i3.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
87
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: UploaderComponent, selector: "app-uploader", inputs: { avatar: "avatar" }, ngImport: i0, template: "<nz-upload class=\"w-[128px] h-[128px]\" 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\" style=\"width: 100%\" />\n }\n</nz-upload>", dependencies: [{ kind: "directive", type: i4.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i5.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i6.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }] }); }
91
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: UploaderComponent, selector: "app-uploader", inputs: { avatar: "avatar" }, outputs: { change: "change" }, ngImport: i0, template: "<nz-upload class=\"w-[128px] h-[128px]\" 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\" style=\"width: 100%\" />\n }\n</nz-upload>", dependencies: [{ kind: "directive", type: i4.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i5.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i6.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }] }); }
88
92
  }
89
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UploaderComponent, decorators: [{
90
94
  type: Component,
@@ -94,5 +98,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
94
98
  args: ['environment']
95
99
  }] }, { type: i1.ToastService }, { type: i2.HttpClient }, { type: i3.SharedService }], propDecorators: { avatar: [{
96
100
  type: Input
101
+ }], change: [{
102
+ type: Output
97
103
  }] } });
98
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWRlci91cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZGVyL3VwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7O0FBTzVDLE1BQU0sT0FBTyxpQkFBaUI7SUFDMUIsWUFDMkIsV0FBVyxFQUMxQixNQUFvQixFQUNwQixLQUFpQixFQUNqQixjQUE2QjtRQUY3QixXQUFNLEdBQU4sTUFBTSxDQUFjO1FBQ3BCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsbUJBQWMsR0FBZCxjQUFjLENBQWU7UUFJekMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixRQUFHLEdBQUcsSUFBSSxDQUFDO1FBbUJYLGtCQUFhLEdBQUcsQ0FBQyxJQUFTLEVBQUUsRUFBRTtZQUMxQixNQUFNLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxJQUFXLENBQUMsQ0FBQztZQUMxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sT0FBTyxFQUFFLFFBQVEsRUFBRTtnQkFDckUsY0FBYyxFQUFFLElBQUk7Z0JBQ3BC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Q3BCLE1BQU07WUFDVixLQUFLLE1BQU07Z0JBQ1AsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSyxDQUFDLGFBQWMsRUFBRSxDQUFDLEdBQVcsRUFBRSxFQUFFO29CQUN0RCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxHQUFHLENBQUM7Z0JBQ3pCLENBQUMsQ0FBQyxDQUFDO2dCQUNILE1BQU07WUFDVixLQUFLLE9BQU87Z0JBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLE1BQU07UUFDZCxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVEsS0FBVyxDQUFDOytHQXpGWCxpQkFBaUIsa0JBRWQsYUFBYTttR0FGaEIsaUJBQWlCLGtGQ1g5Qix3Z0JBU1k7OzRGREVDLGlCQUFpQjtrQkFKN0IsU0FBUzsrQkFDSSxjQUFjOzswQkFLbkIsTUFBTTsyQkFBQyxhQUFhO3lIQWFkLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnpVcGxvYWRGaWxlIH0gZnJvbSAnbmctem9ycm8tYW50ZC91cGxvYWQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RvYXN0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2luZGV4LmFwaSc7XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FwcC11cGxvYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZGVyLmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIGVudmlyb25tZW50LFxuICAgICAgICBwcml2YXRlIF90b2FzdDogVG9hc3RTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIF9zaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZW52ID0gZW52aXJvbm1lbnQ7XG4gICAgfVxuICAgIGxvYWRpbmcgPSBmYWxzZTtcbiAgICBlbnYgPSBudWxsO1xuICAgIGF2YXRhclVybD86IHN0cmluZztcblxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGF2YXRhcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXZhdGFyVXJsO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGF2YXRhcih2OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9zaGFyZWRTZXJ2aWNlLmdldEZpbGUodikudGhlbigocmVzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdmF0YXJVcmwgPSByZXM7XG4gICAgICAgICAgICB9KS5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjdXN0b21SZXF1ZXN0ID0gKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ2ZpbGUnLCBpdGVtLmZpbGUgYXMgYW55KTtcbiAgICAgICAgY29uc3QgcmVxID0gbmV3IEh0dHBSZXF1ZXN0KCdQT1NUJywgYCR7dGhpcy5lbnYuYXBpVXJsfS9maWxlYCwgZm9ybURhdGEsIHtcbiAgICAgICAgICAgIHJlcG9ydFByb2dyZXNzOiB0cnVlLFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgJ2pzb24nLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2h0dHAucmVxdWVzdChyZXEpLnN1YnNjcmliZShcbiAgICAgICAgICAgIChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgSHR0cFJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0ub25TdWNjZXNzKGV2ZW50LmJvZHksIGl0ZW0uZmlsZSwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5vbkVycm9yKGVyciwgaXRlbS5maWxlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgKTtcbiAgICB9O1xuXG4gICAgYmVmb3JlVXBsb2FkID0gKGZpbGU6IE56VXBsb2FkRmlsZSwgX2ZpbGVMaXN0OiBOelVwbG9hZEZpbGVbXSk6IE9ic2VydmFibGU8Ym9vbGVhbj4gPT5cbiAgICAgICAgbmV3IE9ic2VydmFibGUoKG9ic2VydmVyOiBPYnNlcnZlcjxib29sZWFuPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaXNKcGdPclBuZyA9IGZpbGUudHlwZSA9PT0gJ2ltYWdlL2pwZWcnIHx8IGZpbGUudHlwZSA9PT0gJ2ltYWdlL3BuZyc7XG4gICAgICAgICAgICBpZiAoIWlzSnBnT3JQbmcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b2FzdC5zaG93KCdZb3UgY2FuIG9ubHkgdXBsb2FkIEpQRyBmaWxlIScsICdlcnJvcicpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgaXNMdDJNID0gZmlsZS5zaXplISAvIDEwMjQgLyAxMDI0IDwgMjtcbiAgICAgICAgICAgIGlmICghaXNMdDJNKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdG9hc3Quc2hvdygnSW1hZ2UgbXVzdCBzbWFsbGVyIHRoYW4gMk1CIScsICdlcnJvcicpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JzZXJ2ZXIubmV4dChpc0pwZ09yUG5nICYmIGlzTHQyTSk7XG4gICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICB9KTtcblxuICAgIHByaXZhdGUgZ2V0QmFzZTY0KGltZzogRmlsZSwgY2FsbGJhY2s6IChpbWc6IHN0cmluZykgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IGNhbGxiYWNrKHJlYWRlci5yZXN1bHQhLnRvU3RyaW5nKCkpKTtcbiAgICAgICAgcmVhZGVyLnJlYWRBc0RhdGFVUkwoaW1nKTtcbiAgICB9XG5cbiAgICBoYW5kbGVDaGFuZ2UoaW5mbzogYW55KTogdm9pZCB7XG4gICAgICAgIHN3aXRjaCAoaW5mby5maWxlLnN0YXR1cykge1xuICAgICAgICAgICAgY2FzZSAndXBsb2FkaW5nJzpcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZG9uZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5nZXRCYXNlNjQoaW5mby5maWxlIS5vcmlnaW5GaWxlT2JqISwgKGltZzogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmF2YXRhclVybCA9IGltZztcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG59XG4iLCI8bnotdXBsb2FkIGNsYXNzPVwidy1bMTI4cHhdIGgtWzEyOHB4XVwiIG56QWN0aW9uPVwie3tlbnYuYXBpVXJsfX0vZmlsZVwiIG56TmFtZT1cImZpbGVcIlxuICAgIG56TGlzdFR5cGU9XCJwaWN0dXJlLWNhcmRcIiBbbnpTaG93VXBsb2FkTGlzdF09XCJmYWxzZVwiIFtuekJlZm9yZVVwbG9hZF09XCJiZWZvcmVVcGxvYWRcIlxuICAgIChuekNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiIFtuekN1c3RvbVJlcXVlc3RdPVwiY3VzdG9tUmVxdWVzdFwiPlxuICAgIEBpZiAoIWF2YXRhclVybCkge1xuICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWljb25cIiBuei1pY29uIFtuelR5cGVdPVwibG9hZGluZyA/ICdsb2FkaW5nJyA6ICdwbHVzJ1wiPjwvc3Bhbj5cbiAgICA8ZGl2IGNsYXNzPVwiYW50LXVwbG9hZC10ZXh0XCI+VXBsb2FkPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgPGltZyBbc3JjXT1cImF2YXRhclVybFwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIiAvPlxuICAgIH1cbjwvbnotdXBsb2FkPiJdfQ==
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2hhcmVkL3NyYy9saWIvY29tcG9uZW50cy91cGxvYWRlci91cGxvYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWQvc3JjL2xpYi9jb21wb25lbnRzL3VwbG9hZGVyL3VwbG9hZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLFVBQVUsRUFBWSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFPNUMsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQixZQUMyQixXQUFXLEVBQzFCLE1BQW9CLEVBQ3BCLEtBQWlCLEVBQ2pCLGNBQTZCO1FBRjdCLFdBQU0sR0FBTixNQUFNLENBQWM7UUFDcEIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBZTtRQUl6QyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFFBQUcsR0FBRyxJQUFJLENBQUM7UUFFWCxlQUFVLEdBQVcsSUFBSSxDQUFDO1FBb0IxQixXQUFNLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEQsa0JBQWEsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFO1lBQzFCLE1BQU0sUUFBUSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7WUFDaEMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQVcsQ0FBQyxDQUFDO1lBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxPQUFPLEVBQUUsUUFBUSxFQUFFO2dCQUNyRSxjQUFjLEVBQUUsSUFBSTtnQkFDcEIsWUFBWSxFQUFFLE1BQWdCO2FBQ2pDLENBQUMsQ0FBQztZQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUNwQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNYLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRSxDQUFDO29CQUNoQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDakQsQ0FBQztZQUNMLENBQUMsRUFDRCxDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNqQyxDQUFDLENBQ0osQ0FBQztRQUNOLENBQUMsQ0FBQztRQUVGLGlCQUFZLEdBQUcsQ0FBQyxJQUFrQixFQUFFLFNBQXlCLEVBQXVCLEVBQUUsQ0FDbEYsSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUEyQixFQUFFLEVBQUU7WUFDM0MsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxXQUFXLENBQUM7WUFDM0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNkLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLCtCQUErQixFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUMzRCxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ3BCLE9BQU87WUFDWCxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUssR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQzFELFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDcEIsT0FBTztZQUNYLENBQUM7WUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsQ0FBQztZQUNwQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUE5REgsSUFBSSxDQUFDLEdBQUcsR0FBRyxXQUFXLENBQUM7SUFDM0IsQ0FBQztJQU9ELElBQ1csTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBUztRQUN2QixJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ0osSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3hDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQTBDTyxTQUFTLENBQUMsR0FBUyxFQUFFLFFBQStCO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7UUFDaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDM0UsTUFBTSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVM7UUFDbEIsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3ZCLEtBQUssV0FBVztnQkFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztnQkFDcEIsTUFBTTtZQUNWLEtBQUssTUFBTTtnQkFDUCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFLLENBQUMsYUFBYyxFQUFFLENBQUMsR0FBVyxFQUFFLEVBQUU7b0JBQ3RELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUNwQyxDQUFDLENBQUMsQ0FBQztnQkFDSCxNQUFNO1lBQ1YsS0FBSyxPQUFPO2dCQUNSLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNyQixNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLEtBQVcsQ0FBQzsrR0EvRlgsaUJBQWlCLGtCQUVkLGFBQWE7bUdBRmhCLGlCQUFpQixpSENYOUIsd2dCQVNZOzs0RkRFQyxpQkFBaUI7a0JBSjdCLFNBQVM7K0JBQ0ksY0FBYzs7MEJBS25CLE1BQU07MkJBQUMsYUFBYTt5SEFjZCxNQUFNO3NCQURoQixLQUFLO2dCQWlCTixNQUFNO3NCQURMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBSZXF1ZXN0LCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE56VXBsb2FkRmlsZSB9IGZyb20gJ25nLXpvcnJvLWFudGQvdXBsb2FkJztcbmltcG9ydCB7IE9ic2VydmFibGUsIE9ic2VydmVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90b2FzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbmRleC5hcGknO1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhcHAtdXBsb2FkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRlci5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFVwbG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBlbnZpcm9ubWVudCxcbiAgICAgICAgcHJpdmF0ZSBfdG9hc3Q6IFRvYXN0U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBfc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxuICAgICkge1xuICAgICAgICB0aGlzLmVudiA9IGVudmlyb25tZW50O1xuICAgIH1cbiAgICBsb2FkaW5nID0gZmFsc2U7XG4gICAgZW52ID0gbnVsbDtcbiAgICBhdmF0YXJVcmw/OiBzdHJpbmc7XG4gICAgX2F2YXRhclVpZDogc3RyaW5nID0gbnVsbDtcblxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGF2YXRhcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXZhdGFyVXJsO1xuICAgIH1cbiAgICBwdWJsaWMgc2V0IGF2YXRhcih2OiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHYpIHtcbiAgICAgICAgICAgIHRoaXMuX2F2YXRhclVpZCA9IHY7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgICAgICAgdGhpcy5fc2hhcmVkU2VydmljZS5nZXRGaWxlKHYpLnRoZW4oKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuYXZhdGFyVXJsID0gcmVzO1xuICAgICAgICAgICAgfSkuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQE91dHB1dCgpXG4gICAgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIGN1c3RvbVJlcXVlc3QgPSAoaXRlbTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGl0ZW0uZmlsZSBhcyBhbnkpO1xuICAgICAgICBjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCBgJHt0aGlzLmVudi5hcGlVcmx9L2ZpbGVgLCBmb3JtRGF0YSwge1xuICAgICAgICAgICAgcmVwb3J0UHJvZ3Jlc3M6IHRydWUsXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6ICd0ZXh0JyBhcyAnanNvbicsXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5faHR0cC5yZXF1ZXN0KHJlcSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5vblN1Y2Nlc3MoZXZlbnQuYm9keSwgaXRlbS5maWxlLCBldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIChlcnIpID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLm9uRXJyb3IoZXJyLCBpdGVtLmZpbGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH07XG5cbiAgICBiZWZvcmVVcGxvYWQgPSAoZmlsZTogTnpVcGxvYWRGaWxlLCBfZmlsZUxpc3Q6IE56VXBsb2FkRmlsZVtdKTogT2JzZXJ2YWJsZTxib29sZWFuPiA9PlxuICAgICAgICBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPGJvb2xlYW4+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc0pwZ09yUG5nID0gZmlsZS50eXBlID09PSAnaW1hZ2UvanBlZycgfHwgZmlsZS50eXBlID09PSAnaW1hZ2UvcG5nJztcbiAgICAgICAgICAgIGlmICghaXNKcGdPclBuZykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3RvYXN0LnNob3coJ1lvdSBjYW4gb25seSB1cGxvYWQgSlBHIGZpbGUhJywgJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBpc0x0Mk0gPSBmaWxlLnNpemUhIC8gMTAyNCAvIDEwMjQgPCAyO1xuICAgICAgICAgICAgaWYgKCFpc0x0Mk0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b2FzdC5zaG93KCdJbWFnZSBtdXN0IHNtYWxsZXIgdGhhbiAyTUIhJywgJ2Vycm9yJyk7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBvYnNlcnZlci5uZXh0KGlzSnBnT3JQbmcgJiYgaXNMdDJNKTtcbiAgICAgICAgICAgIG9ic2VydmVyLmNvbXBsZXRlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgcHJpdmF0ZSBnZXRCYXNlNjQoaW1nOiBGaWxlLCBjYWxsYmFjazogKGltZzogc3RyaW5nKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgKCkgPT4gY2FsbGJhY2socmVhZGVyLnJlc3VsdCEudG9TdHJpbmcoKSkpO1xuICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChpbWcpO1xuICAgIH1cblxuICAgIGhhbmRsZUNoYW5nZShpbmZvOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoIChpbmZvLmZpbGUuc3RhdHVzKSB7XG4gICAgICAgICAgICBjYXNlICd1cGxvYWRpbmcnOlxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdkb25lJzpcbiAgICAgICAgICAgICAgICB0aGlzLmdldEJhc2U2NChpbmZvLmZpbGUhLm9yaWdpbkZpbGVPYmohLCAoaW1nOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXZhdGFyVXJsID0gaW1nO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KGluZm8ucmVzcG9uc2UpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cbn1cbiIsIjxuei11cGxvYWQgY2xhc3M9XCJ3LVsxMjhweF0gaC1bMTI4cHhdXCIgbnpBY3Rpb249XCJ7e2Vudi5hcGlVcmx9fS9maWxlXCIgbnpOYW1lPVwiZmlsZVwiXG4gICAgbnpMaXN0VHlwZT1cInBpY3R1cmUtY2FyZFwiIFtuelNob3dVcGxvYWRMaXN0XT1cImZhbHNlXCIgW256QmVmb3JlVXBsb2FkXT1cImJlZm9yZVVwbG9hZFwiXG4gICAgKG56Q2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCIgW256Q3VzdG9tUmVxdWVzdF09XCJjdXN0b21SZXF1ZXN0XCI+XG4gICAgQGlmICghYXZhdGFyVXJsKSB7XG4gICAgPHNwYW4gY2xhc3M9XCJ1cGxvYWQtaWNvblwiIG56LWljb24gW256VHlwZV09XCJsb2FkaW5nID8gJ2xvYWRpbmcnIDogJ3BsdXMnXCI+PC9zcGFuPlxuICAgIDxkaXYgY2xhc3M9XCJhbnQtdXBsb2FkLXRleHRcIj5VcGxvYWQ8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICA8aW1nIFtzcmNdPVwiYXZhdGFyVXJsXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiIC8+XG4gICAgfVxuPC9uei11cGxvYWQ+Il19
@@ -1238,6 +1238,8 @@ class UploaderComponent {
1238
1238
  this._sharedService = _sharedService;
1239
1239
  this.loading = false;
1240
1240
  this.env = null;
1241
+ this._avatarUid = null;
1242
+ this.change = new EventEmitter();
1241
1243
  this.customRequest = (item) => {
1242
1244
  const formData = new FormData();
1243
1245
  formData.append('file', item.file);
@@ -1276,6 +1278,7 @@ class UploaderComponent {
1276
1278
  }
1277
1279
  set avatar(v) {
1278
1280
  if (v) {
1281
+ this._avatarUid = v;
1279
1282
  this.loading = true;
1280
1283
  this._sharedService.getFile(v).then((res) => {
1281
1284
  this.avatarUrl = res;
@@ -1298,6 +1301,7 @@ class UploaderComponent {
1298
1301
  this.getBase64(info.file.originFileObj, (img) => {
1299
1302
  this.loading = false;
1300
1303
  this.avatarUrl = img;
1304
+ this.change.emit(info.response);
1301
1305
  });
1302
1306
  break;
1303
1307
  case 'error':
@@ -1307,7 +1311,7 @@ class UploaderComponent {
1307
1311
  }
1308
1312
  ngOnInit() { }
1309
1313
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UploaderComponent, deps: [{ token: 'environment' }, { token: ToastService }, { token: i1.HttpClient }, { token: SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
1310
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: UploaderComponent, selector: "app-uploader", inputs: { avatar: "avatar" }, ngImport: i0, template: "<nz-upload class=\"w-[128px] h-[128px]\" 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\" style=\"width: 100%\" />\n }\n</nz-upload>", dependencies: [{ kind: "directive", type: i4.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i2.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i6$1.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }] }); }
1314
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: UploaderComponent, selector: "app-uploader", inputs: { avatar: "avatar" }, outputs: { change: "change" }, ngImport: i0, template: "<nz-upload class=\"w-[128px] h-[128px]\" 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\" style=\"width: 100%\" />\n }\n</nz-upload>", dependencies: [{ kind: "directive", type: i4.NzIconDirective, selector: "[nz-icon]", inputs: ["nzSpin", "nzRotate", "nzType", "nzTheme", "nzTwotoneColor", "nzIconfont"], exportAs: ["nzIcon"] }, { kind: "directive", type: i2.ɵNzTransitionPatchDirective, selector: "[nz-button], nz-button-group, [nz-icon], [nz-menu-item], [nz-submenu], nz-select-top-control, nz-select-placeholder, nz-input-group", inputs: ["hidden"] }, { kind: "component", type: i6$1.NzUploadComponent, selector: "nz-upload", inputs: ["nzType", "nzLimit", "nzSize", "nzFileType", "nzAccept", "nzAction", "nzDirectory", "nzOpenFileDialogOnClick", "nzBeforeUpload", "nzCustomRequest", "nzData", "nzFilter", "nzFileList", "nzDisabled", "nzHeaders", "nzListType", "nzMultiple", "nzName", "nzShowUploadList", "nzShowButton", "nzWithCredentials", "nzRemove", "nzPreview", "nzPreviewFile", "nzPreviewIsImage", "nzTransformFile", "nzDownload", "nzIconRender", "nzFileListRender"], outputs: ["nzChange", "nzFileListChange"], exportAs: ["nzUpload"] }] }); }
1311
1315
  }
1312
1316
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: UploaderComponent, decorators: [{
1313
1317
  type: Component,
@@ -1317,6 +1321,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
1317
1321
  args: ['environment']
1318
1322
  }] }, { type: ToastService }, { type: i1.HttpClient }, { type: SharedService }], propDecorators: { avatar: [{
1319
1323
  type: Input
1324
+ }], change: [{
1325
+ type: Output
1320
1326
  }] } });
1321
1327
 
1322
1328
  class AuthGuard {
@@ -1 +1 @@
1
- {"version":3,"file":"fixa-admin.mjs","sources":["../../../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/models/shared.model.ts","../../../projects/shared/src/lib/pipes/date.pipe.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/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/components/uploader/uploader.component.ts","../../../projects/shared/src/lib/components/uploader/uploader.component.html","../../../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/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/shared.module.ts","../../../projects/shared/src/lib/class/popover.ts","../../../projects/shared/src/lib/pipes/timer.pipe.ts","../../../projects/shared/src/public-api.ts","../../../projects/shared/src/fixa-admin.ts"],"sourcesContent":["import { Inject, Injectable } from '@angular/core';\nimport { 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): Promise<string> {\n return new Promise((resolve, reject) => {\n this._http.get(url, {\n responseType: 'arraybuffer'\n }).subscribe({\n next: (value) => {\n const blob = new Blob([value], { type: 'image/jpeg' });\n const url = URL.createObjectURL(blob);\n resolve(url);\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\n const modal: NzModalRef = this._modal.create({\n nzTitle: body.title,\n nzWidth: size,\n nzClassName: className,\n nzStyle: body.size == 'full' ? {\n height: height,\n top: '20px'\n } : null,\n nzData: body.data,\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}","import { NzButtonType } from \"ng-zorro-antd/button\";\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 field: string;\n label: string;\n filter?: boolean;\n sortable?: boolean;\n editable?: boolean;\n editItems?: void;\n filterItems?: any;\n minWidth?: number;\n searchField?: string;\n type?: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image';\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}\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: {\n field: string;\n dir: string;\n }[],\n data: any;\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 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}","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): string {\n if (value != null) {\n if (!time) {\n return moment.from(value, 'YYYY/MM/DD').locale('fa').format('YYYY/MM/DD');\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}","\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 return this.dateFrom != null && this.dateFrom !== '';\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\n return passed;\n }\n\n getModel() {\n if (!this.isFilterActive()) {\n return null;\n }\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 } else {\n dateTo = moment.from(new Date().toString(), '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.dateFrom == null ? null : model.dateFrom;\n this.dateTo = 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 { CellDoubleClickedEvent, ColDef, GridApi, GridOptions, IDateFilterParams, IRowNode, IServerSideDatasource, IServerSideGetRowsParams, RowModelType, SetFilterValuesFuncParams, SizeColumnsToContentStrategy, SizeColumnsToFitGridStrategy, SizeColumnsToFitProvidedWidthStrategy } from '@ag-grid-community/core';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActionItems, ColumnItems, DatasourceOutputModel, FilterGridItemsModel, FilterOperator, GridActionOutput, GridInputModel, GridRequestParam, ToolbarItems } from '../../models/shared.model';\nimport { ActionsCellRenderer } from '../index.api';\nimport { JDatePipe } from '../../pipes/date.pipe';\nimport { DateFilter } from './filter/index.api';\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 ) {\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 datasource: IServerSideDatasource;\n themeClass: string = \"ag-theme-quartz\";\n columnDefs: ColDef[] = [];\n _column: ColumnItems[] = [];\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 };\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\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 @Input()\n label: string = null;\n\n @Input()\n rowModelType: RowModelType = 'serverSide';\n\n @Input()\n isToolbar: boolean = true;\n\n @Input()\n rtl: boolean = true;\n\n @Input()\n paginationPageSize = 15;\n\n @Input()\n paginationPageSizeSelector: number[] | boolean = [10, 15, 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 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 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 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 (el.filter != undefined && !el.filter) {\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 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 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 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 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 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 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 == 'date-time') {\n this.columnDefs.push({\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 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 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 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 field: el.field,\n headerName: el.label,\n minWidth: 80,\n width: 80,\n filter: false,\n sortable: false,\n editable: false,\n filterParams,\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 field: el.field,\n headerName: el.label,\n filter,\n sortable,\n editable: el.editable,\n filterParams,\n minWidth: el.minWidth ? el.minWidth : null\n })\n }\n } else {\n this.autoGroupColumnDef.field = el.field;\n }\n });\n if (this.actionItems.length > 0) {\n this.columnDefs.push({\n filter: false,\n headerName: '',\n minWidth: 100,\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 }\n\n cellDoubleClicked(e: CellDoubleClickedEvent) {\n this.onClicked.emit(e.data);\n }\n\n handleClick(item: ToolbarItems) {\n this.onToolbar.emit(item);\n }\n\n public refresh(purge = false) {\n this.gridApi.refreshServerSide({ purge })\n }\n\n onGridReady(params: any) {\n this.gridApi = params.api;\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 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 createServerSideDatasource(): IServerSideDatasource {\n return {\n getRows: (params: IServerSideGetRowsParams) => {\n let filter: FilterGridItemsModel = null;\n if (Object.keys(params.request.filterModel).length > 0) {\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 for (const key in params.request.filterModel) {\n if (params.request.filterModel[key].filterType == 'custom-date') {\n filter.filters.push({\n disable: false,\n field: key == 'ag-Grid-AutoColumn' ? this._treeGroupColumn : key,\n logic: 'AND',\n filters: null,\n ignoreCase: false,\n operator: FilterOperator.between,\n truncateDate: true,\n value: [params.request.filterModel[key].dateFrom, params.request.filterModel[key].dateTo]\n });\n } else {\n const operation = FilterOperator[params.request.filterModel[key].type];\n let ignoreCase = true;\n const findEl = this._column.find((el) => el.field == key);\n let field = null;\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 (findEl && findEl.type == 'enum') {\n ignoreCase = false;\n }\n filter.filters.push({\n disable: false,\n field,\n logic: 'AND',\n filters: null,\n ignoreCase,\n operator: operation ? operation : FilterOperator.equals,\n truncateDate: true,\n value: params.request.filterModel[key].filter ? params.request.filterModel[key].filter : params.request.filterModel[key].type\n })\n }\n }\n }\n const gridFilter: GridInputModel = {\n take: params.api.paginationGetPageSize(),\n data: null,\n filter,\n skip: params.api.paginationGetCurrentPage() * params.api.paginationGetPageSize(),\n sorts: params.request.sortModel.length > 0 ? [{ dir: params.request.sortModel[0].sort, field: params.request.sortModel[0].colId }] : []\n };\n const requestParams: GridRequestParam = {\n parentNode: params.parentNode.data\n };\n this.fetchData(gridFilter, requestParams).then(data => {\n params.success({\n rowData: data.items,\n rowCount: data.totalCount\n });\n }).catch(() => {\n params.fail();\n });\n }\n };\n }\n\n ngOnInit(): void { }\n}","<!-- <button (click)=\"enableAdvancedFilter=!enableAdvancedFilter\">advanced</button> -->\n<div class=\"flex justify-between items-center mb-4 pb-4 border-b border-b-slate-200\" *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)\"\n [nzType]=\"item.type\">\n <span nz-icon [nzType]=\"item.icon\"></span>\n {{item.text}}\n </button>\n }\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<ag-grid-angular style=\"width: 100%;\" [style]=\"(isToolbar) ? 'height: calc(100% - 1rem - 48px);':'height: 100%;'\"\n [columnDefs]=\"columnDefs\" [pagination]=\"true\" [paginationPageSize]=\"paginationPageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\" [class]=\"themeClass\" [defaultColDef]=\"defaultColDef\"\n [enableAdvancedFilter]=\"enableAdvancedFilter\" [enableRtl]=\"rtl\" [treeData]=\"treeModel\"\n [autoGroupColumnDef]=\"autoGroupColumnDef\" [isServerSideGroup]=\"isServerSideGroup\"\n [getServerSideGroupKey]=\"getServerSideGroupKey\" [rowModelType]=\"rowModelType\" [serverSideDatasource]=\"datasource\"\n (gridReady)=\"onGridReady($event)\" [cacheBlockSize]=\"paginationPageSize\" [maxBlocksInCache]=\"2\"\n [context]=\"{actionItems: actionItems}\" (cellDoubleClicked)=\"cellDoubleClicked($event)\"\n [autoSizeStrategy]=\"_autoColumnSize\" #grid />","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\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\">\n <nz-spin nzSimple nzSize=\"large\" nzSimple></nz-spin>\n</div>","\nimport { HttpClient, HttpRequest, HttpResponse } from '@angular/common/http';\nimport { Component, Inject, Input, OnInit } from '@angular/core';\nimport { NzUploadFile } from 'ng-zorro-antd/upload';\nimport { Observable, Observer } from 'rxjs';\nimport { ToastService } from '../../services/toast.service';\nimport { SharedService } from '../../services/index.api';\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 ) {\n this.env = environment;\n }\n loading = false;\n env = null;\n avatarUrl?: string;\n\n\n @Input()\n public get avatar() {\n return this.avatarUrl;\n }\n public set avatar(v: string) {\n if (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 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 const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\n if (!isJpgOrPng) {\n this._toast.show('You can only upload JPG file!', 'error');\n observer.complete();\n return;\n }\n const isLt2M = file.size! / 1024 / 1024 < 2;\n if (!isLt2M) {\n this._toast.show('Image must smaller than 2MB!', 'error');\n observer.complete();\n return;\n }\n observer.next(isJpgOrPng && isLt2M);\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(info.file!.originFileObj!, (img: string) => {\n this.loading = false;\n this.avatarUrl = img;\n });\n break;\n case 'error':\n this.loading = false;\n break;\n }\n }\n\n ngOnInit(): void { }\n}\n","<nz-upload class=\"w-[128px] h-[128px]\" 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\" style=\"width: 100%\" />\n }\n</nz-upload>","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';\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\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 ngAfterViewInit(): void {\n setTimeout(() => {\n // this.loadComponent(this._ac.);\n }, 500)\n }\n\n ngOnInit(): void {\n this.menuItems = this._service.menuItems;\n }\n}\n","<nz-layout class=\"app-layout\">\n <nz-sider class=\"menu-sidebar bg-white\" nzCollapsible nzWidth=\"256px\" nzBreakpoint=\"md\"\n [(nzCollapsed)]=\"isCollapsed\" [nzTrigger]=\"null\">\n <div class=\"p-4\">\n <div class=\"flex justify-center items-center border-b !border-b-slate-200 pb-4\">\n <img width=\"100\" src=\"assets/images/logo.svg\" alt=\"\">\n </div>\n </div>\n <ul nz-menu nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\n @for (item of menuItems; track item.title) {\n @if(item.children){\n <li nz-submenu [nzOpen]=\"true\" [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 }\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>\n <button nz-button nzType=\"text\" (click)=\"isCollapsed = !isCollapsed\">\n <span class=\"text-2xl\" nz-icon nzType=\"menu\"></span>\n </button>\n </div>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon\n nzType=\"global\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon\n nzType=\"user\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon\n nzType=\"bell\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\" (click)=\"logout()\"><span nz-icon\n 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-md\">\n <router-outlet></router-outlet>\n </div>\n </nz-content>\n </nz-layout>\n</nz-layout>","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>","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 debugger\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 { 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 { 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 { NzIconModule } from 'ng-zorro-antd/icon';\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 { JDatePipe } from '../public-api';\nimport { ActionsCellRenderer, CaptchaComponent, GridComponent, MapComponent, SpinnerComponent, UploaderComponent } from './components/index.api';\nimport { AuthGuard } from './guard/index.api';\nimport { BlankLayout, MasterLayout } from './layouts/index.api';\nimport { ConfirmService } from './services/index.api';\nimport { CharInputDirective, EnglishNumberInputDirective, ImageLoaderDirective, MaskDirective } from './directive/index.api';\nimport { DateFilter } from './components/grid/filter/index.api';\nimport { FormsModule } from '@angular/forms';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzUploadFile, NzUploadModule } from 'ng-zorro-antd/upload';\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 DateFilter\n];\n\nconst Popover: any[] = [\n];\n\nconst Directive = [\n EnglishNumberInputDirective,\n CharInputDirective,\n MaskDirective,\n ImageLoaderDirective\n];\n\nconst Pipes = [\n JDatePipe\n]\n\nconst Guard = [\n AuthGuard\n];\n\nconst Services = [\n ConfirmService\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 NzUploadModule,\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 ],\n imports: [\n RouterModule,\n ...Modules\n ],\n exports: [\n ...Layouts,\n ...Components,\n ...Popover,\n ...Directive,\n ...Pipes\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 { 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 = inject(NZ_MODAL_DATA);\n dialogRef: NzModalRef = inject(NzModalRef);\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 { 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';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","Directive","moment","i4","i8.MaskDirective","i2","i3","i5","i6","i7","i1.ToastService","i3.SharedService","i1.SharedService","i2.ConfirmService","i8"],"mappings":"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"}
1
+ {"version":3,"file":"fixa-admin.mjs","sources":["../../../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/models/shared.model.ts","../../../projects/shared/src/lib/pipes/date.pipe.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/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/components/uploader/uploader.component.ts","../../../projects/shared/src/lib/components/uploader/uploader.component.html","../../../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/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/shared.module.ts","../../../projects/shared/src/lib/class/popover.ts","../../../projects/shared/src/lib/pipes/timer.pipe.ts","../../../projects/shared/src/public-api.ts","../../../projects/shared/src/fixa-admin.ts"],"sourcesContent":["import { Inject, Injectable } from '@angular/core';\nimport { 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): Promise<string> {\n return new Promise((resolve, reject) => {\n this._http.get(url, {\n responseType: 'arraybuffer'\n }).subscribe({\n next: (value) => {\n const blob = new Blob([value], { type: 'image/jpeg' });\n const url = URL.createObjectURL(blob);\n resolve(url);\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\n const modal: NzModalRef = this._modal.create({\n nzTitle: body.title,\n nzWidth: size,\n nzClassName: className,\n nzStyle: body.size == 'full' ? {\n height: height,\n top: '20px'\n } : null,\n nzData: body.data,\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}","import { NzButtonType } from \"ng-zorro-antd/button\";\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 field: string;\n label: string;\n filter?: boolean;\n sortable?: boolean;\n editable?: boolean;\n editItems?: void;\n filterItems?: any;\n minWidth?: number;\n searchField?: string;\n type?: 'boolean' | 'enum' | 'string' | 'number' | 'select' | 'date' | 'date-time' | 'price' | 'image';\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}\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: {\n field: string;\n dir: string;\n }[],\n data: any;\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 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}","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): string {\n if (value != null) {\n if (!time) {\n return moment.from(value, 'YYYY/MM/DD').locale('fa').format('YYYY/MM/DD');\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}","\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 return this.dateFrom != null && this.dateFrom !== '';\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\n return passed;\n }\n\n getModel() {\n if (!this.isFilterActive()) {\n return null;\n }\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 } else {\n dateTo = moment.from(new Date().toString(), '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.dateFrom == null ? null : model.dateFrom;\n this.dateTo = 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 { CellDoubleClickedEvent, ColDef, GridApi, GridOptions, IDateFilterParams, IRowNode, IServerSideDatasource, IServerSideGetRowsParams, RowModelType, SetFilterValuesFuncParams, SizeColumnsToContentStrategy, SizeColumnsToFitGridStrategy, SizeColumnsToFitProvidedWidthStrategy } from '@ag-grid-community/core';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { ActionItems, ColumnItems, DatasourceOutputModel, FilterGridItemsModel, FilterOperator, GridActionOutput, GridInputModel, GridRequestParam, ToolbarItems } from '../../models/shared.model';\nimport { ActionsCellRenderer } from '../index.api';\nimport { JDatePipe } from '../../pipes/date.pipe';\nimport { DateFilter } from './filter/index.api';\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 ) {\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 datasource: IServerSideDatasource;\n themeClass: string = \"ag-theme-quartz\";\n columnDefs: ColDef[] = [];\n _column: ColumnItems[] = [];\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 };\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\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 @Input()\n label: string = null;\n\n @Input()\n rowModelType: RowModelType = 'serverSide';\n\n @Input()\n isToolbar: boolean = true;\n\n @Input()\n rtl: boolean = true;\n\n @Input()\n paginationPageSize = 15;\n\n @Input()\n paginationPageSizeSelector: number[] | boolean = [10, 15, 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 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 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 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 (el.filter != undefined && !el.filter) {\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 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 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 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 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 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 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 == 'date-time') {\n this.columnDefs.push({\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 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 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 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 field: el.field,\n headerName: el.label,\n minWidth: 80,\n width: 80,\n filter: false,\n sortable: false,\n editable: false,\n filterParams,\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 field: el.field,\n headerName: el.label,\n filter,\n sortable,\n editable: el.editable,\n filterParams,\n minWidth: el.minWidth ? el.minWidth : null\n })\n }\n } else {\n this.autoGroupColumnDef.field = el.field;\n }\n });\n if (this.actionItems.length > 0) {\n this.columnDefs.push({\n filter: false,\n headerName: '',\n minWidth: 100,\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 }\n\n cellDoubleClicked(e: CellDoubleClickedEvent) {\n this.onClicked.emit(e.data);\n }\n\n handleClick(item: ToolbarItems) {\n this.onToolbar.emit(item);\n }\n\n public refresh(purge = false) {\n this.gridApi.refreshServerSide({ purge })\n }\n\n onGridReady(params: any) {\n this.gridApi = params.api;\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 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 createServerSideDatasource(): IServerSideDatasource {\n return {\n getRows: (params: IServerSideGetRowsParams) => {\n let filter: FilterGridItemsModel = null;\n if (Object.keys(params.request.filterModel).length > 0) {\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 for (const key in params.request.filterModel) {\n if (params.request.filterModel[key].filterType == 'custom-date') {\n filter.filters.push({\n disable: false,\n field: key == 'ag-Grid-AutoColumn' ? this._treeGroupColumn : key,\n logic: 'AND',\n filters: null,\n ignoreCase: false,\n operator: FilterOperator.between,\n truncateDate: true,\n value: [params.request.filterModel[key].dateFrom, params.request.filterModel[key].dateTo]\n });\n } else {\n const operation = FilterOperator[params.request.filterModel[key].type];\n let ignoreCase = true;\n const findEl = this._column.find((el) => el.field == key);\n let field = null;\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 (findEl && findEl.type == 'enum') {\n ignoreCase = false;\n }\n filter.filters.push({\n disable: false,\n field,\n logic: 'AND',\n filters: null,\n ignoreCase,\n operator: operation ? operation : FilterOperator.equals,\n truncateDate: true,\n value: params.request.filterModel[key].filter ? params.request.filterModel[key].filter : params.request.filterModel[key].type\n })\n }\n }\n }\n const gridFilter: GridInputModel = {\n take: params.api.paginationGetPageSize(),\n data: null,\n filter,\n skip: params.api.paginationGetCurrentPage() * params.api.paginationGetPageSize(),\n sorts: params.request.sortModel.length > 0 ? [{ dir: params.request.sortModel[0].sort, field: params.request.sortModel[0].colId }] : []\n };\n const requestParams: GridRequestParam = {\n parentNode: params.parentNode.data\n };\n this.fetchData(gridFilter, requestParams).then(data => {\n params.success({\n rowData: data.items,\n rowCount: data.totalCount\n });\n }).catch(() => {\n params.fail();\n });\n }\n };\n }\n\n ngOnInit(): void { }\n}","<!-- <button (click)=\"enableAdvancedFilter=!enableAdvancedFilter\">advanced</button> -->\n<div class=\"flex justify-between items-center mb-4 pb-4 border-b border-b-slate-200\" *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)\"\n [nzType]=\"item.type\">\n <span nz-icon [nzType]=\"item.icon\"></span>\n {{item.text}}\n </button>\n }\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<ag-grid-angular style=\"width: 100%;\" [style]=\"(isToolbar) ? 'height: calc(100% - 1rem - 48px);':'height: 100%;'\"\n [columnDefs]=\"columnDefs\" [pagination]=\"true\" [paginationPageSize]=\"paginationPageSize\"\n [paginationPageSizeSelector]=\"paginationPageSizeSelector\" [class]=\"themeClass\" [defaultColDef]=\"defaultColDef\"\n [enableAdvancedFilter]=\"enableAdvancedFilter\" [enableRtl]=\"rtl\" [treeData]=\"treeModel\"\n [autoGroupColumnDef]=\"autoGroupColumnDef\" [isServerSideGroup]=\"isServerSideGroup\"\n [getServerSideGroupKey]=\"getServerSideGroupKey\" [rowModelType]=\"rowModelType\" [serverSideDatasource]=\"datasource\"\n (gridReady)=\"onGridReady($event)\" [cacheBlockSize]=\"paginationPageSize\" [maxBlocksInCache]=\"2\"\n [context]=\"{actionItems: actionItems}\" (cellDoubleClicked)=\"cellDoubleClicked($event)\"\n [autoSizeStrategy]=\"_autoColumnSize\" #grid />","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\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\">\n <nz-spin nzSimple nzSize=\"large\" nzSimple></nz-spin>\n</div>","\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';\nimport { SharedService } from '../../services/index.api';\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 ) {\n this.env = environment;\n }\n loading = false;\n env = null;\n avatarUrl?: string;\n _avatarUid: string = null;\n\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 change: EventEmitter<string> = new EventEmitter();\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 const isJpgOrPng = file.type === 'image/jpeg' || file.type === 'image/png';\n if (!isJpgOrPng) {\n this._toast.show('You can only upload JPG file!', 'error');\n observer.complete();\n return;\n }\n const isLt2M = file.size! / 1024 / 1024 < 2;\n if (!isLt2M) {\n this._toast.show('Image must smaller than 2MB!', 'error');\n observer.complete();\n return;\n }\n observer.next(isJpgOrPng && isLt2M);\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(info.file!.originFileObj!, (img: string) => {\n this.loading = false;\n this.avatarUrl = img;\n this.change.emit(info.response);\n });\n break;\n case 'error':\n this.loading = false;\n break;\n }\n }\n\n ngOnInit(): void { }\n}\n","<nz-upload class=\"w-[128px] h-[128px]\" 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\" style=\"width: 100%\" />\n }\n</nz-upload>","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';\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\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 ngAfterViewInit(): void {\n setTimeout(() => {\n // this.loadComponent(this._ac.);\n }, 500)\n }\n\n ngOnInit(): void {\n this.menuItems = this._service.menuItems;\n }\n}\n","<nz-layout class=\"app-layout\">\n <nz-sider class=\"menu-sidebar bg-white\" nzCollapsible nzWidth=\"256px\" nzBreakpoint=\"md\"\n [(nzCollapsed)]=\"isCollapsed\" [nzTrigger]=\"null\">\n <div class=\"p-4\">\n <div class=\"flex justify-center items-center border-b !border-b-slate-200 pb-4\">\n <img width=\"100\" src=\"assets/images/logo.svg\" alt=\"\">\n </div>\n </div>\n <ul nz-menu nzMode=\"inline\" [nzInlineCollapsed]=\"isCollapsed\">\n @for (item of menuItems; track item.title) {\n @if(item.children){\n <li nz-submenu [nzOpen]=\"true\" [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 }\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>\n <button nz-button nzType=\"text\" (click)=\"isCollapsed = !isCollapsed\">\n <span class=\"text-2xl\" nz-icon nzType=\"menu\"></span>\n </button>\n </div>\n <div class=\"flex gap-2\">\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon\n nzType=\"global\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon\n nzType=\"user\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\"><span nz-icon\n nzType=\"bell\"></span></button>\n <button nz-button nzType=\"text\" nzSize=\"large\" nzShape=\"circle\" (click)=\"logout()\"><span nz-icon\n 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-md\">\n <router-outlet></router-outlet>\n </div>\n </nz-content>\n </nz-layout>\n</nz-layout>","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>","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 debugger\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 { 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 { 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 { NzIconModule } from 'ng-zorro-antd/icon';\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 { JDatePipe } from '../public-api';\nimport { ActionsCellRenderer, CaptchaComponent, GridComponent, MapComponent, SpinnerComponent, UploaderComponent } from './components/index.api';\nimport { AuthGuard } from './guard/index.api';\nimport { BlankLayout, MasterLayout } from './layouts/index.api';\nimport { ConfirmService } from './services/index.api';\nimport { CharInputDirective, EnglishNumberInputDirective, ImageLoaderDirective, MaskDirective } from './directive/index.api';\nimport { DateFilter } from './components/grid/filter/index.api';\nimport { FormsModule } from '@angular/forms';\nimport { NzInputModule } from 'ng-zorro-antd/input';\nimport { NzFormModule } from 'ng-zorro-antd/form';\nimport { NzUploadFile, NzUploadModule } from 'ng-zorro-antd/upload';\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 DateFilter\n];\n\nconst Popover: any[] = [\n];\n\nconst Directive = [\n EnglishNumberInputDirective,\n CharInputDirective,\n MaskDirective,\n ImageLoaderDirective\n];\n\nconst Pipes = [\n JDatePipe\n]\n\nconst Guard = [\n AuthGuard\n];\n\nconst Services = [\n ConfirmService\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 NzUploadModule,\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 ],\n imports: [\n RouterModule,\n ...Modules\n ],\n exports: [\n ...Layouts,\n ...Components,\n ...Popover,\n ...Directive,\n ...Pipes\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 { 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 = inject(NZ_MODAL_DATA);\n dialogRef: NzModalRef = inject(NzModalRef);\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 { 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';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","Directive","moment","i4","i8.MaskDirective","i2","i3","i5","i6","i7","i1.ToastService","i3.SharedService","i1.SharedService","i2.ConfirmService","i8"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HttpClient } from '@angular/common/http';
2
- import { OnInit } from '@angular/core';
2
+ import { EventEmitter, OnInit } from '@angular/core';
3
3
  import { NzUploadFile } from 'ng-zorro-antd/upload';
4
4
  import { Observable } from 'rxjs';
5
5
  import { ToastService } from '../../services/toast.service';
@@ -13,13 +13,15 @@ export declare class UploaderComponent implements OnInit {
13
13
  loading: boolean;
14
14
  env: any;
15
15
  avatarUrl?: string;
16
+ _avatarUid: string;
16
17
  get avatar(): string;
17
18
  set avatar(v: string);
19
+ change: EventEmitter<string>;
18
20
  customRequest: (item: any) => import("rxjs").Subscription;
19
21
  beforeUpload: (file: NzUploadFile, _fileList: NzUploadFile[]) => Observable<boolean>;
20
22
  private getBase64;
21
23
  handleChange(info: any): void;
22
24
  ngOnInit(): void;
23
25
  static ɵfac: i0.ɵɵFactoryDeclaration<UploaderComponent, never>;
24
- static ɵcmp: i0.ɵɵComponentDeclaration<UploaderComponent, "app-uploader", never, { "avatar": { "alias": "avatar"; "required": false; }; }, {}, never, never, false, never>;
26
+ static ɵcmp: i0.ɵɵComponentDeclaration<UploaderComponent, "app-uploader", never, { "avatar": { "alias": "avatar"; "required": false; }; }, { "change": "change"; }, never, never, false, never>;
25
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fixa-admin",
3
- "version": "0.0.13",
3
+ "version": "0.0.14",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0",