nira-falcon 0.1.26 → 0.1.28
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.
- package/esm2022/lib/core-table/core-table/core-table.component.mjs +9 -3
- package/esm2022/lib/core-table/core-table-card-manager/core-table-card-manager.component.mjs +15 -14
- package/esm2022/lib/core-table/core-table-color-column/core-table-color-column.component.mjs +48 -0
- package/esm2022/lib/core-table/core-table-column-manager/core-table-column-manager.component.mjs +23 -15
- package/esm2022/lib/core-table/core-table-number-column/core-table-number-column.component.mjs +55 -0
- package/esm2022/lib/core-table/core-table-selector-column/core-table-selector-column.component.mjs +73 -0
- package/esm2022/lib/core-table/core-table-status-active-column/core-table-status-active-column.component.mjs +33 -5
- package/esm2022/lib/core-table/core-table-status-column/core-table-status-column.component.mjs +34 -4
- package/esm2022/lib/core-table/core-table-text-column/core-table-text-column.component.mjs +55 -0
- package/esm2022/lib/falcon-lib.module.mjs +16 -1
- package/esm2022/svg-icon/check-icon/check-icon.component.mjs +11 -0
- package/esm2022/utils/constants.mjs +2 -1
- package/fesm2022/nira-falcon.mjs +292 -14
- package/fesm2022/nira-falcon.mjs.map +1 -1
- package/lib/core-table/core-table/core-table.component.d.ts +3 -1
- package/lib/core-table/core-table-color-column/core-table-color-column.component.d.ts +17 -0
- package/lib/core-table/core-table-column-manager/core-table-column-manager.component.d.ts +3 -1
- package/lib/core-table/core-table-number-column/core-table-number-column.component.d.ts +16 -0
- package/lib/core-table/core-table-selector-column/core-table-selector-column.component.d.ts +18 -0
- package/lib/core-table/core-table-status-active-column/core-table-status-active-column.component.d.ts +12 -2
- package/lib/core-table/core-table-status-column/core-table-status-column.component.d.ts +12 -1
- package/lib/core-table/core-table-text-column/core-table-text-column.component.d.ts +16 -0
- package/lib/falcon-lib.module.d.ts +63 -58
- package/package.json +1 -1
- package/svg-icon/check-icon/check-icon.component.d.ts +5 -0
- package/utils/constants.d.ts +1 -0
- package/styles.css +0 -1
package/esm2022/lib/core-table/core-table-column-manager/core-table-column-manager.component.mjs
CHANGED
|
@@ -3,17 +3,19 @@ import { COLUMNS_TYPES } from '../../../utils/constants';
|
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "nira-snack-bar";
|
|
5
5
|
import * as i2 from "@angular/common";
|
|
6
|
-
import * as i3 from "../core-table-
|
|
7
|
-
import * as i4 from "../core-table-action-column/core-table-action-column.component";
|
|
8
|
-
import * as i5 from "../core-table-
|
|
9
|
-
import * as i6 from "../core-table-
|
|
10
|
-
import * as i7 from "../core-table-
|
|
11
|
-
import * as i8 from "
|
|
12
|
-
import * as i9 from "
|
|
13
|
-
import * as i10 from "../core-table-
|
|
14
|
-
import * as i11 from "../core-
|
|
15
|
-
import * as i12 from "
|
|
16
|
-
import * as i13 from "
|
|
6
|
+
import * as i3 from "../core-table-color-column/core-table-color-column.component";
|
|
7
|
+
import * as i4 from "../core-table-action-buttons-column/core-table-action-buttons-column.component";
|
|
8
|
+
import * as i5 from "../core-table-action-column/core-table-action-column.component";
|
|
9
|
+
import * as i6 from "../core-table-text-column/core-table-text-column.component";
|
|
10
|
+
import * as i7 from "../core-table-number-column/core-table-number-column.component";
|
|
11
|
+
import * as i8 from "../core-table-selector-column/core-table-selector-column.component";
|
|
12
|
+
import * as i9 from "../core-table-row-selector-column/core-table-row-selector-column.component";
|
|
13
|
+
import * as i10 from "../core-table-shamsi-date/core-table-shamsi-date.component";
|
|
14
|
+
import * as i11 from "../core-table-status-column/core-table-status-column.component";
|
|
15
|
+
import * as i12 from "../../../utils/directives/table-detail-viewer-manager.directive";
|
|
16
|
+
import * as i13 from "../core-table-status-active-column/core-table-status-active-column.component";
|
|
17
|
+
import * as i14 from "../core-row-pelak/core-row-pelak.component";
|
|
18
|
+
import * as i15 from "../core-table-detail-viewer-for-report/core-table-detail-viewer-for-report.component";
|
|
17
19
|
export class CoreTableColumnManagerComponent {
|
|
18
20
|
get columnsTypes() {
|
|
19
21
|
return COLUMNS_TYPES;
|
|
@@ -22,6 +24,7 @@ export class CoreTableColumnManagerComponent {
|
|
|
22
24
|
this.niraSnackBar = niraSnackBar;
|
|
23
25
|
this.rowSelector = undefined;
|
|
24
26
|
this.onColumnClicked = new EventEmitter();
|
|
27
|
+
this.onColumnValueChanged = new EventEmitter();
|
|
25
28
|
}
|
|
26
29
|
getSelectorData(data, key) {
|
|
27
30
|
if (!key) {
|
|
@@ -40,7 +43,7 @@ export class CoreTableColumnManagerComponent {
|
|
|
40
43
|
}
|
|
41
44
|
}
|
|
42
45
|
onTextColumnClicked(column, data) {
|
|
43
|
-
if (!column.
|
|
46
|
+
if (!column.copyToClipboard)
|
|
44
47
|
return;
|
|
45
48
|
navigator.clipboard
|
|
46
49
|
.writeText(data)
|
|
@@ -55,6 +58,9 @@ export class CoreTableColumnManagerComponent {
|
|
|
55
58
|
clicked(val) {
|
|
56
59
|
this.onColumnClicked.emit(val);
|
|
57
60
|
}
|
|
61
|
+
columnValueChanged(val) {
|
|
62
|
+
this.onColumnValueChanged.emit(val);
|
|
63
|
+
}
|
|
58
64
|
combinedData(detailViewer, data) {
|
|
59
65
|
return {
|
|
60
66
|
detailViewer: detailViewer,
|
|
@@ -62,11 +68,11 @@ export class CoreTableColumnManagerComponent {
|
|
|
62
68
|
};
|
|
63
69
|
}
|
|
64
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableColumnManagerComponent, deps: [{ token: i1.NiraSnackBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
65
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableColumnManagerComponent, selector: "app-core-table-column-manager", inputs: { data: "data", column: "column", allTableData: "allTableData", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked" }, ngImport: i0, template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n <
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableColumnManagerComponent, selector: "app-core-table-column-manager", inputs: { data: "data", column: "column", allTableData: "allTableData", rowSelector: "rowSelector" }, outputs: { onColumnClicked: "onColumnClicked", onColumnValueChanged: "onColumnValueChanged" }, ngImport: i0, template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n ></app-core-table-status-active-column>\r\n\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n\r\n <core-table-color-column\r\n *ngSwitchCase=\"columnsTypes.COLOR\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-color-column>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n\r\n <core-table-text-column\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >\r\n </core-table-text-column>\r\n\r\n <core-table-number-column\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >\r\n </core-table-number-column>\r\n\r\n <core-table-selector-column\r\n *ngSwitchCase=\"columnsTypes.SELECTOR\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >\r\n </core-table-selector-column>\r\n</container-element>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i3.CoreTableColorColumnComponent, selector: "core-table-color-column", inputs: ["data", "column"], outputs: ["onColumnValueChanged"] }, { kind: "component", type: i4.CoreTableActionButtonsColumnComponent, selector: "app-core-table-action-buttons-column", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i5.CoreTableActionColumnComponent, selector: "app-core-table-action-column", inputs: ["data", "column"] }, { kind: "component", type: i6.CoreTableTextColumnComponent, selector: "core-table-text-column", inputs: ["data", "column"], outputs: ["onColumnValueChanged"] }, { kind: "component", type: i7.CoreTableNumberColumnComponent, selector: "core-table-number-column", inputs: ["data", "column"], outputs: ["onColumnValueChanged"] }, { kind: "component", type: i8.CoreTableSelectorColumnComponent, selector: "core-table-selector-column", inputs: ["data", "column"], outputs: ["onColumnValueChanged"] }, { kind: "component", type: i9.CoreTableRowSelectorColumnComponent, selector: "app-core-table-row-selector-column", inputs: ["data", "column", "allTableData", "rowSelector"] }, { kind: "component", type: i10.CoreTableShamsiDateComponent, selector: "app-core-table-shamsi-date", inputs: ["data", "column"], outputs: ["onClick"] }, { kind: "component", type: i11.CoreTableStatusColumnComponent, selector: "app-core-table-status-column", inputs: ["data", "column"], outputs: ["onColumnValueChanged"] }, { kind: "directive", type: i12.TableDetailViewerManagerDirective, selector: "[tableDetailViewerManager]", inputs: ["detailViewerData"] }, { kind: "component", type: i13.CoreTableStatusActiveColumnComponent, selector: "app-core-table-status-active-column", inputs: ["data", "column"], outputs: ["onColumnValueChanged"] }, { kind: "component", type: i14.CoreRowPelakComponent, selector: "app-core-row-pelak", inputs: ["data", "column"] }, { kind: "component", type: i15.CoreTableDetailViewerForReportComponent, selector: "core-table-detail-viewer-for-report", inputs: ["data", "column"] }] }); }
|
|
66
72
|
}
|
|
67
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableColumnManagerComponent, decorators: [{
|
|
68
74
|
type: Component,
|
|
69
|
-
args: [{ selector: 'app-core-table-column-manager', template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-active-column>\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n <
|
|
75
|
+
args: [{ selector: 'app-core-table-column-manager', template: "<container-element [ngSwitch]=\"column.type\">\r\n <ng-content></ng-content>\r\n\r\n <app-core-table-row-selector-column\r\n *ngSwitchCase=\"columnsTypes.ROW_SELECTOR\"\r\n [rowSelector]=\"rowSelector\"\r\n [data]=\"data\"\r\n [allTableData]=\"allTableData\"\r\n [column]=\"column\"\r\n ></app-core-table-row-selector-column>\r\n <app-core-table-status-active-column\r\n *ngSwitchCase=\"columnsTypes.STATUS_ACTIVE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n ></app-core-table-status-active-column>\r\n\r\n <app-core-table-status-column\r\n *ngSwitchCase=\"columnsTypes.STATUS\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-status-column>\r\n <app-core-table-action-column\r\n *ngSwitchCase=\"columnsTypes.ACTION\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-column>\r\n <app-core-table-action-buttons-column\r\n *ngSwitchCase=\"columnsTypes.ACTION_BUTTONS\"\r\n (onClick)=\"clicked($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-table-action-buttons-column>\r\n <app-core-table-shamsi-date\r\n *ngSwitchCase=\"columnsTypes.SHAMSI_DATE\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n >\r\n </app-core-table-shamsi-date>\r\n\r\n <core-table-color-column\r\n *ngSwitchCase=\"columnsTypes.COLOR\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-color-column>\r\n <app-core-row-pelak\r\n *ngSwitchCase=\"columnsTypes.PELAK\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></app-core-row-pelak>\r\n <core-table-detail-viewer-for-report\r\n *ngSwitchCase=\"columnsTypes.DETAIL_VIEWER_FOR_REPORT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n ></core-table-detail-viewer-for-report>\r\n\r\n <core-table-text-column\r\n *ngSwitchCase=\"columnsTypes.TEXT\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >\r\n </core-table-text-column>\r\n\r\n <core-table-number-column\r\n *ngSwitchCase=\"columnsTypes.NUMBER\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(column.detailViewer, data[column.detailViewer?.key])\r\n \"\r\n >\r\n </core-table-number-column>\r\n\r\n <core-table-selector-column\r\n *ngSwitchCase=\"columnsTypes.SELECTOR\"\r\n [data]=\"data\"\r\n [column]=\"column\"\r\n (onColumnValueChanged)=\"columnValueChanged($event)\"\r\n tableDetailViewerManager\r\n [detailViewerData]=\"\r\n combinedData(\r\n column.detailViewer,\r\n getSelectorData(\r\n data[column.key.split('.')[0]],\r\n column.detailViewer?.key\r\n )\r\n )\r\n \"\r\n >\r\n </core-table-selector-column>\r\n</container-element>\r\n" }]
|
|
70
76
|
}], ctorParameters: function () { return [{ type: i1.NiraSnackBarService }]; }, propDecorators: { data: [{
|
|
71
77
|
type: Input,
|
|
72
78
|
args: [{ required: true }]
|
|
@@ -81,5 +87,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
81
87
|
args: [{ required: false }]
|
|
82
88
|
}], onColumnClicked: [{
|
|
83
89
|
type: Output
|
|
90
|
+
}], onColumnValueChanged: [{
|
|
91
|
+
type: Output
|
|
84
92
|
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS10YWJsZS9jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyL2NvcmUtdGFibGUtY29sdW1uLW1hbmFnZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1jb2x1bW4tbWFuYWdlci9jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztBQVF6RCxNQUFNLE9BQU8sK0JBQStCO0lBUzFDLElBQUksWUFBWTtRQUNkLE9BQU8sYUFBYSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFSekIsZ0JBQVcsR0FDckMsU0FBUyxDQUFDO1FBQ0Ysb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUtmLENBQUM7SUFDekQsZUFBZSxDQUFDLElBQVMsRUFBRSxHQUFXO1FBQ3BDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDUixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBQ0QsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xCO2FBQU07WUFDTCxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDbkIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN2QixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVCLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxPQUFPLENBQUM7U0FDaEI7SUFDSCxDQUFDO0lBQ0QsbUJBQW1CLENBQUMsTUFBVyxFQUFFLElBQVk7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxlQUFlO1lBQUUsT0FBTztRQUNwQyxTQUFTLENBQUMsU0FBUzthQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDO2FBQ2YsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDekMsV0FBVyxFQUFFLFNBQVM7Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJO2FBQ2YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDO2FBQ0QsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFRO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELGtCQUFrQixDQUFDLEdBQVE7UUFDekIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBQ0QsWUFBWSxDQUFDLFlBQWlCLEVBQUUsSUFBUztRQUN2QyxPQUFPO1lBQ0wsWUFBWSxFQUFFLFlBQVk7WUFDMUIsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDO0lBQ0osQ0FBQzsrR0FwRFUsK0JBQStCO21HQUEvQiwrQkFBK0IsMFFDVjVDLDJxR0FvR0E7OzRGRDFGYSwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0UsK0JBQStCOzBHQUtkLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLE1BQU07c0JBQWhDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFlBQVk7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNHLFdBQVc7c0JBQXRDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFO2dCQUVoQixlQUFlO3NCQUF4QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5pcmFTbmFja0JhclNlcnZpY2UgfSBmcm9tICduaXJhLXNuYWNrLWJhcic7XHJcbmltcG9ydCB7IENPTFVNTlNfVFlQRVMgfSBmcm9tICcuLi8uLi8uLi91dGlscy9jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLWNvcmUtdGFibGUtY29sdW1uLW1hbmFnZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXRhYmxlLWNvbHVtbi1tYW5hZ2VyLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlVGFibGVDb2x1bW5NYW5hZ2VyQ29tcG9uZW50IHtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhITogYW55O1xyXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbHVtbiE6IGFueTtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBhbGxUYWJsZURhdGEhOiBhbnk7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IGZhbHNlIH0pIHJvd1NlbGVjdG9yOiBCZWhhdmlvclN1YmplY3Q8YW55PiB8IHVuZGVmaW5lZCA9XHJcbiAgICB1bmRlZmluZWQ7XHJcbiAgQE91dHB1dCgpIG9uQ29sdW1uQ2xpY2tlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIG9uQ29sdW1uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgZ2V0IGNvbHVtbnNUeXBlcygpIHtcclxuICAgIHJldHVybiBDT0xVTU5TX1RZUEVTO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5pcmFTbmFja0JhcjogTmlyYVNuYWNrQmFyU2VydmljZSkge31cclxuICBnZXRTZWxlY3RvckRhdGEoZGF0YTogYW55LCBrZXk6IHN0cmluZykge1xyXG4gICAgaWYgKCFrZXkpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc3BsaXQgPSBrZXkuc3BsaXQoJy4nKTtcclxuICAgIGlmIChzcGxpdC5sZW5ndGggPT09IDEpIHtcclxuICAgICAgcmV0dXJuIGRhdGFba2V5XTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBuZXdEYXRhID0gZGF0YTtcclxuICAgICAgc3BsaXQuZm9yRWFjaCgobmV3S2V5KSA9PiB7XHJcbiAgICAgICAgbmV3RGF0YSA9IG5ld0RhdGFbbmV3S2V5XTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICByZXR1cm4gbmV3RGF0YTtcclxuICAgIH1cclxuICB9XHJcbiAgb25UZXh0Q29sdW1uQ2xpY2tlZChjb2x1bW46IGFueSwgZGF0YTogc3RyaW5nKSB7XHJcbiAgICBpZiAoIWNvbHVtbi5jb3B5VG9DbGlwYm9hcmQpIHJldHVybjtcclxuICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcclxuICAgICAgLndyaXRlVGV4dChkYXRhKVxyXG4gICAgICAudGhlbigoZSkgPT4ge1xyXG4gICAgICAgIHRoaXMubmlyYVNuYWNrQmFyLnNob3coJ9io2Kcg2YXZiNmB2YLbjNiqINqp2b7bjCDYtNivJywge1xyXG4gICAgICAgICAgc3RhdHVzQ2xhc3M6ICdzdWNjZXNzJyxcclxuICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xyXG4gIH1cclxuICBjbGlja2VkKHZhbDogYW55KSB7XHJcbiAgICB0aGlzLm9uQ29sdW1uQ2xpY2tlZC5lbWl0KHZhbCk7XHJcbiAgfVxyXG4gIGNvbHVtblZhbHVlQ2hhbmdlZCh2YWw6IGFueSkge1xyXG4gICAgdGhpcy5vbkNvbHVtblZhbHVlQ2hhbmdlZC5lbWl0KHZhbCk7XHJcbiAgfVxyXG4gIGNvbWJpbmVkRGF0YShkZXRhaWxWaWV3ZXI6IGFueSwgZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBkZXRhaWxWaWV3ZXI6IGRldGFpbFZpZXdlcixcclxuICAgICAgZGF0YTogZGF0YSxcclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiIsIjxjb250YWluZXItZWxlbWVudCBbbmdTd2l0Y2hdPVwiY29sdW1uLnR5cGVcIj5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblxyXG4gIDxhcHAtY29yZS10YWJsZS1yb3ctc2VsZWN0b3ItY29sdW1uXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlJPV19TRUxFQ1RPUlwiXHJcbiAgICBbcm93U2VsZWN0b3JdPVwicm93U2VsZWN0b3JcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbYWxsVGFibGVEYXRhXT1cImFsbFRhYmxlRGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtcm93LXNlbGVjdG9yLWNvbHVtbj5cclxuICA8YXBwLWNvcmUtdGFibGUtc3RhdHVzLWFjdGl2ZS1jb2x1bW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuU1RBVFVTX0FDVElWRVwiXHJcbiAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICAgIChvbkNvbHVtblZhbHVlQ2hhbmdlZCk9XCJjb2x1bW5WYWx1ZUNoYW5nZWQoJGV2ZW50KVwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtc3RhdHVzLWFjdGl2ZS1jb2x1bW4+XHJcblxyXG4gIDxhcHAtY29yZS10YWJsZS1zdGF0dXMtY29sdW1uXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlNUQVRVU1wiXHJcbiAgICAob25Db2x1bW5WYWx1ZUNoYW5nZWQpPVwiY29sdW1uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtc3RhdHVzLWNvbHVtbj5cclxuICA8YXBwLWNvcmUtdGFibGUtYWN0aW9uLWNvbHVtblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5BQ1RJT05cIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtdGFibGUtYWN0aW9uLWNvbHVtbj5cclxuICA8YXBwLWNvcmUtdGFibGUtYWN0aW9uLWJ1dHRvbnMtY29sdW1uXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLkFDVElPTl9CVVRUT05TXCJcclxuICAgIChvbkNsaWNrKT1cImNsaWNrZWQoJGV2ZW50KVwiXHJcbiAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgIFtjb2x1bW5dPVwiY29sdW1uXCJcclxuICA+PC9hcHAtY29yZS10YWJsZS1hY3Rpb24tYnV0dG9ucy1jb2x1bW4+XHJcbiAgPGFwcC1jb3JlLXRhYmxlLXNoYW1zaS1kYXRlXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlNIQU1TSV9EQVRFXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID5cclxuICA8L2FwcC1jb3JlLXRhYmxlLXNoYW1zaS1kYXRlPlxyXG5cclxuICA8Y29yZS10YWJsZS1jb2xvci1jb2x1bW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuQ09MT1JcIlxyXG4gICAgKG9uQ29sdW1uVmFsdWVDaGFuZ2VkKT1cImNvbHVtblZhbHVlQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgIFtkYXRhXT1cImRhdGFcIlxyXG4gICAgW2NvbHVtbl09XCJjb2x1bW5cIlxyXG4gID48L2NvcmUtdGFibGUtY29sb3ItY29sdW1uPlxyXG4gIDxhcHAtY29yZS1yb3ctcGVsYWtcclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuUEVMQUtcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvYXBwLWNvcmUtcm93LXBlbGFrPlxyXG4gIDxjb3JlLXRhYmxlLWRldGFpbC12aWV3ZXItZm9yLXJlcG9ydFxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5ERVRBSUxfVklFV0VSX0ZPUl9SRVBPUlRcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgPjwvY29yZS10YWJsZS1kZXRhaWwtdmlld2VyLWZvci1yZXBvcnQ+XHJcblxyXG4gIDxjb3JlLXRhYmxlLXRleHQtY29sdW1uXHJcbiAgICAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uc1R5cGVzLlRFWFRcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgICAob25Db2x1bW5WYWx1ZUNoYW5nZWQpPVwiY29sdW1uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgdGFibGVEZXRhaWxWaWV3ZXJNYW5hZ2VyXHJcbiAgICBbZGV0YWlsVmlld2VyRGF0YV09XCJcclxuICAgICAgY29tYmluZWREYXRhKGNvbHVtbi5kZXRhaWxWaWV3ZXIsIGRhdGFbY29sdW1uLmRldGFpbFZpZXdlcj8ua2V5XSlcclxuICAgIFwiXHJcbiAgPlxyXG4gIDwvY29yZS10YWJsZS10ZXh0LWNvbHVtbj5cclxuXHJcbiAgPGNvcmUtdGFibGUtbnVtYmVyLWNvbHVtblxyXG4gICAgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbnNUeXBlcy5OVU1CRVJcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgICAob25Db2x1bW5WYWx1ZUNoYW5nZWQpPVwiY29sdW1uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgdGFibGVEZXRhaWxWaWV3ZXJNYW5hZ2VyXHJcbiAgICBbZGV0YWlsVmlld2VyRGF0YV09XCJcclxuICAgICAgY29tYmluZWREYXRhKGNvbHVtbi5kZXRhaWxWaWV3ZXIsIGRhdGFbY29sdW1uLmRldGFpbFZpZXdlcj8ua2V5XSlcclxuICAgIFwiXHJcbiAgPlxyXG4gIDwvY29yZS10YWJsZS1udW1iZXItY29sdW1uPlxyXG5cclxuICA8Y29yZS10YWJsZS1zZWxlY3Rvci1jb2x1bW5cclxuICAgICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5zVHlwZXMuU0VMRUNUT1JcIlxyXG4gICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICBbY29sdW1uXT1cImNvbHVtblwiXHJcbiAgICAob25Db2x1bW5WYWx1ZUNoYW5nZWQpPVwiY29sdW1uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgdGFibGVEZXRhaWxWaWV3ZXJNYW5hZ2VyXHJcbiAgICBbZGV0YWlsVmlld2VyRGF0YV09XCJcclxuICAgICAgY29tYmluZWREYXRhKFxyXG4gICAgICAgIGNvbHVtbi5kZXRhaWxWaWV3ZXIsXHJcbiAgICAgICAgZ2V0U2VsZWN0b3JEYXRhKFxyXG4gICAgICAgICAgZGF0YVtjb2x1bW4ua2V5LnNwbGl0KCcuJylbMF1dLFxyXG4gICAgICAgICAgY29sdW1uLmRldGFpbFZpZXdlcj8ua2V5XHJcbiAgICAgICAgKVxyXG4gICAgICApXHJcbiAgICBcIlxyXG4gID5cclxuICA8L2NvcmUtdGFibGUtc2VsZWN0b3ItY29sdW1uPlxyXG48L2NvbnRhaW5lci1lbGVtZW50PlxyXG4iXX0=
|
package/esm2022/lib/core-table/core-table-number-column/core-table-number-column.component.mjs
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { cloneDeep } from 'lodash';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "nira-snack-bar";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "../../core-number/core-number.component";
|
|
8
|
+
import * as i5 from "../../../svg-icon/check-icon/check-icon.component";
|
|
9
|
+
import * as i6 from "../../../svg-icon/close-icon/close-icon.component";
|
|
10
|
+
export class CoreTableNumberColumnComponent {
|
|
11
|
+
constructor(niraSnackBar) {
|
|
12
|
+
this.niraSnackBar = niraSnackBar;
|
|
13
|
+
this.onColumnValueChanged = new EventEmitter();
|
|
14
|
+
this.canEdit = false;
|
|
15
|
+
this.value = '';
|
|
16
|
+
}
|
|
17
|
+
setValue() {
|
|
18
|
+
const newData = cloneDeep(this.data);
|
|
19
|
+
newData[this.column.key] = this.value;
|
|
20
|
+
this.onColumnValueChanged.emit(newData);
|
|
21
|
+
this.canEdit = false;
|
|
22
|
+
}
|
|
23
|
+
onTextColumnClicked(column, data, event) {
|
|
24
|
+
if (event.ctrlKey && column.editable) {
|
|
25
|
+
this.value = data;
|
|
26
|
+
this.canEdit = true;
|
|
27
|
+
}
|
|
28
|
+
else if (column.copyToClipboard) {
|
|
29
|
+
navigator.clipboard
|
|
30
|
+
.writeText(data)
|
|
31
|
+
.then((e) => {
|
|
32
|
+
this.niraSnackBar.show('با موفقیت کپی شد', {
|
|
33
|
+
statusClass: 'success',
|
|
34
|
+
duration: 3000,
|
|
35
|
+
});
|
|
36
|
+
})
|
|
37
|
+
.catch((e) => console.error(e));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableNumberColumnComponent, deps: [{ token: i1.NiraSnackBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableNumberColumnComponent, selector: "core-table-number-column", inputs: { data: "data", column: "column" }, outputs: { onColumnValueChanged: "onColumnValueChanged" }, ngImport: i0, template: "<span\n *ngIf=\"!canEdit\"\n [ngClass]=\"{\n 'cursor-pointer': column.copyToClipboard,\n green: data[column.key] > 0 && column.canColorfulNumber,\n red: data[column.key] < 0 && column.canColorfulNumber\n }\"\n (click)=\"onTextColumnClicked(column, data[column.key], $event)\"\n>\n <app-core-number\n [number]=\"data[column.key]\"\n [type]=\"'number'\"\n [canSplitNumbers]=\"true\"\n [canShowWordInToolTip]=\"true\"\n >\n </app-core-number>\n</span>\n<div class=\"flex\" *ngIf=\"canEdit\">\n <input\n [(ngModel)]=\"value\"\n class=\"rounded-sm h-7 px-2 border-slate-700\"\n type=\"text\"\n />\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.CoreNumberComponent, selector: "app-core-number", inputs: ["number", "type", "canSplitNumbers", "canShowWordInToolTip", "canShowIRR"] }, { kind: "component", type: i5.CheckIconComponent, selector: "check-icon" }, { kind: "component", type: i6.CloseIconComponent, selector: "close-icon" }] }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableNumberColumnComponent, decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{ selector: 'core-table-number-column', template: "<span\n *ngIf=\"!canEdit\"\n [ngClass]=\"{\n 'cursor-pointer': column.copyToClipboard,\n green: data[column.key] > 0 && column.canColorfulNumber,\n red: data[column.key] < 0 && column.canColorfulNumber\n }\"\n (click)=\"onTextColumnClicked(column, data[column.key], $event)\"\n>\n <app-core-number\n [number]=\"data[column.key]\"\n [type]=\"'number'\"\n [canSplitNumbers]=\"true\"\n [canShowWordInToolTip]=\"true\"\n >\n </app-core-number>\n</span>\n<div class=\"flex\" *ngIf=\"canEdit\">\n <input\n [(ngModel)]=\"value\"\n class=\"rounded-sm h-7 px-2 border-slate-700\"\n type=\"text\"\n />\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n" }]
|
|
46
|
+
}], ctorParameters: function () { return [{ type: i1.NiraSnackBarService }]; }, propDecorators: { data: [{
|
|
47
|
+
type: Input,
|
|
48
|
+
args: [{ required: true }]
|
|
49
|
+
}], column: [{
|
|
50
|
+
type: Input,
|
|
51
|
+
args: [{ required: true }]
|
|
52
|
+
}], onColumnValueChanged: [{
|
|
53
|
+
type: Output
|
|
54
|
+
}] } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1udW1iZXItY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXRhYmxlL2NvcmUtdGFibGUtbnVtYmVyLWNvbHVtbi9jb3JlLXRhYmxlLW51bWJlci1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1udW1iZXItY29sdW1uL2NvcmUtdGFibGUtbnVtYmVyLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7O0FBUW5DLE1BQU0sT0FBTyw4QkFBOEI7SUFRekMsWUFBb0IsWUFBaUM7UUFBakMsaUJBQVksR0FBWixZQUFZLENBQXFCO1FBTDNDLHlCQUFvQixHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXZFLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsVUFBSyxHQUFHLEVBQUUsQ0FBQztJQUU2QyxDQUFDO0lBRXpELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBVyxFQUFFLElBQVksRUFBRSxLQUFpQjtRQUM5RCxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNyQjthQUFNLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRTtZQUNqQyxTQUFTLENBQUMsU0FBUztpQkFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQztpQkFDZixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDekMsV0FBVyxFQUFFLFNBQVM7b0JBQ3RCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7K0dBaENVLDhCQUE4QjttR0FBOUIsOEJBQThCLHVLQ1QzQywrMkJBZ0NBOzs0RkR2QmEsOEJBQThCO2tCQUwxQyxTQUFTOytCQUNFLDBCQUEwQjswR0FLVCxJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDZixvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE5pcmFTbmFja0JhclNlcnZpY2UgfSBmcm9tICduaXJhLXNuYWNrLWJhcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvcmUtdGFibGUtbnVtYmVyLWNvbHVtbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb3JlLXRhYmxlLW51bWJlci1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXRhYmxlLW51bWJlci1jb2x1bW4uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlVGFibGVOdW1iZXJDb2x1bW5Db21wb25lbnQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhITogYW55O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW4hOiBhbnk7XG4gIEBPdXRwdXQoKSBvbkNvbHVtblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY2FuRWRpdCA9IGZhbHNlO1xuICB2YWx1ZSA9ICcnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbmlyYVNuYWNrQmFyOiBOaXJhU25hY2tCYXJTZXJ2aWNlKSB7fVxuXG4gIHNldFZhbHVlKCkge1xuICAgIGNvbnN0IG5ld0RhdGEgPSBjbG9uZURlZXAodGhpcy5kYXRhKTtcbiAgICBuZXdEYXRhW3RoaXMuY29sdW1uLmtleV0gPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMub25Db2x1bW5WYWx1ZUNoYW5nZWQuZW1pdChuZXdEYXRhKTtcbiAgICB0aGlzLmNhbkVkaXQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uVGV4dENvbHVtbkNsaWNrZWQoY29sdW1uOiBhbnksIGRhdGE6IHN0cmluZywgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiBjb2x1bW4uZWRpdGFibGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRhO1xuICAgICAgdGhpcy5jYW5FZGl0ID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNvbHVtbi5jb3B5VG9DbGlwYm9hcmQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcbiAgICAgICAgLndyaXRlVGV4dChkYXRhKVxuICAgICAgICAudGhlbigoZSkgPT4ge1xuICAgICAgICAgIHRoaXMubmlyYVNuYWNrQmFyLnNob3coJ9io2Kcg2YXZiNmB2YLbjNiqINqp2b7bjCDYtNivJywge1xuICAgICAgICAgICAgc3RhdHVzQ2xhc3M6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xuICAgIH1cbiAgfVxufVxuIiwiPHNwYW5cbiAgKm5nSWY9XCIhY2FuRWRpdFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnY3Vyc29yLXBvaW50ZXInOiBjb2x1bW4uY29weVRvQ2xpcGJvYXJkLFxuICAgIGdyZWVuOiBkYXRhW2NvbHVtbi5rZXldID4gMCAmJiBjb2x1bW4uY2FuQ29sb3JmdWxOdW1iZXIsXG4gICAgcmVkOiBkYXRhW2NvbHVtbi5rZXldIDwgMCAmJiBjb2x1bW4uY2FuQ29sb3JmdWxOdW1iZXJcbiAgfVwiXG4gIChjbGljayk9XCJvblRleHRDb2x1bW5DbGlja2VkKGNvbHVtbiwgZGF0YVtjb2x1bW4ua2V5XSwgJGV2ZW50KVwiXG4+XG4gIDxhcHAtY29yZS1udW1iZXJcbiAgICBbbnVtYmVyXT1cImRhdGFbY29sdW1uLmtleV1cIlxuICAgIFt0eXBlXT1cIidudW1iZXInXCJcbiAgICBbY2FuU3BsaXROdW1iZXJzXT1cInRydWVcIlxuICAgIFtjYW5TaG93V29yZEluVG9vbFRpcF09XCJ0cnVlXCJcbiAgPlxuICA8L2FwcC1jb3JlLW51bWJlcj5cbjwvc3Bhbj5cbjxkaXYgY2xhc3M9XCJmbGV4XCIgKm5nSWY9XCJjYW5FZGl0XCI+XG4gIDxpbnB1dFxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIGNsYXNzPVwicm91bmRlZC1zbSBoLTcgcHgtMiBib3JkZXItc2xhdGUtNzAwXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gIC8+XG4gIDxjaGVjay1pY29uXG4gICAgKGNsaWNrKT1cInNldFZhbHVlKClcIlxuICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgaW5saW5lLWJsb2NrIHctNSBoLTUgbS0xXCJcbiAgPjwvY2hlY2staWNvbj5cbiAgPGNsb3NlLWljb25cbiAgICAoY2xpY2spPVwiY2FuRWRpdCA9IGZhbHNlXCJcbiAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGlubGluZS1ibG9jayB3LTUgaC01IG0tMVwiXG4gID48L2Nsb3NlLWljb24+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/lib/core-table/core-table-selector-column/core-table-selector-column.component.mjs
ADDED
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { cloneDeep } from 'lodash';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "nira-snack-bar";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "../../core-select/core-select.component";
|
|
7
|
+
import * as i4 from "../../../svg-icon/check-icon/check-icon.component";
|
|
8
|
+
import * as i5 from "../../../svg-icon/close-icon/close-icon.component";
|
|
9
|
+
import * as i6 from "../../pipes/persian-digits.pipe";
|
|
10
|
+
export class CoreTableSelectorColumnComponent {
|
|
11
|
+
constructor(niraSnackBar) {
|
|
12
|
+
this.niraSnackBar = niraSnackBar;
|
|
13
|
+
this.onColumnValueChanged = new EventEmitter();
|
|
14
|
+
this.canEdit = false;
|
|
15
|
+
}
|
|
16
|
+
onChange(event) {
|
|
17
|
+
this.value = event;
|
|
18
|
+
}
|
|
19
|
+
setValue() {
|
|
20
|
+
const newData = cloneDeep(this.data);
|
|
21
|
+
newData[this.column.key] = this.value;
|
|
22
|
+
this.onColumnValueChanged.emit(newData);
|
|
23
|
+
this.canEdit = false;
|
|
24
|
+
}
|
|
25
|
+
onTextColumnClicked(column, data, event) {
|
|
26
|
+
if (event.ctrlKey && column.editable) {
|
|
27
|
+
this.value = data;
|
|
28
|
+
this.canEdit = true;
|
|
29
|
+
}
|
|
30
|
+
else if (column.copyToClipboard) {
|
|
31
|
+
navigator.clipboard
|
|
32
|
+
.writeText(data)
|
|
33
|
+
.then((e) => {
|
|
34
|
+
this.niraSnackBar.show('با موفقیت کپی شد', {
|
|
35
|
+
statusClass: 'success',
|
|
36
|
+
duration: 3000,
|
|
37
|
+
});
|
|
38
|
+
})
|
|
39
|
+
.catch((e) => console.error(e));
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
getSelectorData(data, key) {
|
|
43
|
+
if (!key) {
|
|
44
|
+
return '';
|
|
45
|
+
}
|
|
46
|
+
const split = key.split('.');
|
|
47
|
+
if (split.length === 1) {
|
|
48
|
+
return data[key];
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
let newData = data;
|
|
52
|
+
split.forEach((newKey) => {
|
|
53
|
+
newData = newData[newKey];
|
|
54
|
+
});
|
|
55
|
+
return newData;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableSelectorColumnComponent, deps: [{ token: i1.NiraSnackBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableSelectorColumnComponent, selector: "core-table-selector-column", inputs: { data: "data", column: "column" }, outputs: { onColumnValueChanged: "onColumnValueChanged" }, ngImport: i0, template: "<span\n *ngIf=\"!canEdit && data[column.key.split('.')[0]]\"\n (click)=\"onTextColumnClicked(column, data[column.key], $event)\"\n >{{\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\n | persianDigits\n }}</span\n>\n\n<div class=\"flex\" *ngIf=\"canEdit\">\n <core-select\n class=\"block mx-4 w-80\"\n [titleKey]=\"column.data.key\"\n [valueKey]=\"column.data.value\"\n [items]=\"column.data.editableData | async\"\n (onItemSelected)=\"onChange($event)\"\n ></core-select>\n\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CoreSelectComponent, selector: "core-select", inputs: ["titleKey", "valueKey", "size", "canHighlightBackground", "items", "defaultValue", "label", "disabled", "inputFormControl"], outputs: ["onItemSelected"] }, { kind: "component", type: i4.CheckIconComponent, selector: "check-icon" }, { kind: "component", type: i5.CloseIconComponent, selector: "close-icon" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i6.PersianDigitsPipe, name: "persianDigits" }] }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableSelectorColumnComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'core-table-selector-column', template: "<span\n *ngIf=\"!canEdit && data[column.key.split('.')[0]]\"\n (click)=\"onTextColumnClicked(column, data[column.key], $event)\"\n >{{\n getSelectorData(data[column.key.split(\".\")[0]], column.data.key)\n | persianDigits\n }}</span\n>\n\n<div class=\"flex\" *ngIf=\"canEdit\">\n <core-select\n class=\"block mx-4 w-80\"\n [titleKey]=\"column.data.key\"\n [valueKey]=\"column.data.value\"\n [items]=\"column.data.editableData | async\"\n (onItemSelected)=\"onChange($event)\"\n ></core-select>\n\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n" }]
|
|
64
|
+
}], ctorParameters: function () { return [{ type: i1.NiraSnackBarService }]; }, propDecorators: { data: [{
|
|
65
|
+
type: Input,
|
|
66
|
+
args: [{ required: true }]
|
|
67
|
+
}], column: [{
|
|
68
|
+
type: Input,
|
|
69
|
+
args: [{ required: true }]
|
|
70
|
+
}], onColumnValueChanged: [{
|
|
71
|
+
type: Output
|
|
72
|
+
}] } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1zZWxlY3Rvci1jb2x1bW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1zZWxlY3Rvci1jb2x1bW4vY29yZS10YWJsZS1zZWxlY3Rvci1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1zZWxlY3Rvci1jb2x1bW4vY29yZS10YWJsZS1zZWxlY3Rvci1jb2x1bW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQVFuQyxNQUFNLE9BQU8sZ0NBQWdDO0lBUTNDLFlBQW9CLFlBQWlDO1FBQWpDLGlCQUFZLEdBQVosWUFBWSxDQUFxQjtRQUwzQyx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RSxZQUFPLEdBQUcsS0FBSyxDQUFDO0lBR3dDLENBQUM7SUFFekQsUUFBUSxDQUFDLEtBQVU7UUFDakIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsbUJBQW1CLENBQUMsTUFBVyxFQUFFLElBQVksRUFBRSxLQUFpQjtRQUM5RCxJQUFJLEtBQUssQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLFFBQVEsRUFBRTtZQUNwQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztTQUNyQjthQUFNLElBQUksTUFBTSxDQUFDLGVBQWUsRUFBRTtZQUNqQyxTQUFTLENBQUMsU0FBUztpQkFDaEIsU0FBUyxDQUFDLElBQUksQ0FBQztpQkFDZixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDVixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtvQkFDekMsV0FBVyxFQUFFLFNBQVM7b0JBQ3RCLFFBQVEsRUFBRSxJQUFJO2lCQUNmLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztpQkFDRCxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNuQztJQUNILENBQUM7SUFFRCxlQUFlLENBQUMsSUFBUyxFQUFFLEdBQVc7UUFDcEMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUNSLE9BQU8sRUFBRSxDQUFDO1NBQ1g7UUFDRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDbEI7YUFBTTtZQUNMLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQztZQUNuQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZCLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDNUIsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLE9BQU8sQ0FBQztTQUNoQjtJQUNILENBQUM7K0dBckRVLGdDQUFnQzttR0FBaEMsZ0NBQWdDLHlLQ1Q3Qyxxd0JBMkJBOzs0RkRsQmEsZ0NBQWdDO2tCQUw1QyxTQUFTOytCQUNFLDRCQUE0QjswR0FLWCxJQUFJO3NCQUE5QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDZixvQkFBb0I7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE5pcmFTbmFja0JhclNlcnZpY2UgfSBmcm9tICduaXJhLXNuYWNrLWJhcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NvcmUtdGFibGUtc2VsZWN0b3ItY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtdGFibGUtc2VsZWN0b3ItY29sdW1uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS10YWJsZS1zZWxlY3Rvci1jb2x1bW4uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlVGFibGVTZWxlY3RvckNvbHVtbkNvbXBvbmVudCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGEhOiBhbnk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbHVtbiE6IGFueTtcbiAgQE91dHB1dCgpIG9uQ29sdW1uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjYW5FZGl0ID0gZmFsc2U7XG4gIHZhbHVlOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuaXJhU25hY2tCYXI6IE5pcmFTbmFja0JhclNlcnZpY2UpIHt9XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMudmFsdWUgPSBldmVudDtcbiAgfVxuXG4gIHNldFZhbHVlKCkge1xuICAgIGNvbnN0IG5ld0RhdGEgPSBjbG9uZURlZXAodGhpcy5kYXRhKTtcbiAgICBuZXdEYXRhW3RoaXMuY29sdW1uLmtleV0gPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMub25Db2x1bW5WYWx1ZUNoYW5nZWQuZW1pdChuZXdEYXRhKTtcbiAgICB0aGlzLmNhbkVkaXQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uVGV4dENvbHVtbkNsaWNrZWQoY29sdW1uOiBhbnksIGRhdGE6IHN0cmluZywgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiBjb2x1bW4uZWRpdGFibGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRhO1xuICAgICAgdGhpcy5jYW5FZGl0ID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGNvbHVtbi5jb3B5VG9DbGlwYm9hcmQpIHtcbiAgICAgIG5hdmlnYXRvci5jbGlwYm9hcmRcbiAgICAgICAgLndyaXRlVGV4dChkYXRhKVxuICAgICAgICAudGhlbigoZSkgPT4ge1xuICAgICAgICAgIHRoaXMubmlyYVNuYWNrQmFyLnNob3coJ9io2Kcg2YXZiNmB2YLbjNiqINqp2b7bjCDYtNivJywge1xuICAgICAgICAgICAgc3RhdHVzQ2xhc3M6ICdzdWNjZXNzJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAzMDAwLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGUpID0+IGNvbnNvbGUuZXJyb3IoZSkpO1xuICAgIH1cbiAgfVxuXG4gIGdldFNlbGVjdG9yRGF0YShkYXRhOiBhbnksIGtleTogc3RyaW5nKSB7XG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3Qgc3BsaXQgPSBrZXkuc3BsaXQoJy4nKTtcbiAgICBpZiAoc3BsaXQubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gZGF0YVtrZXldO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgbmV3RGF0YSA9IGRhdGE7XG4gICAgICBzcGxpdC5mb3JFYWNoKChuZXdLZXkpID0+IHtcbiAgICAgICAgbmV3RGF0YSA9IG5ld0RhdGFbbmV3S2V5XTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gbmV3RGF0YTtcbiAgICB9XG4gIH1cbn1cbiIsIjxzcGFuXG4gICpuZ0lmPVwiIWNhbkVkaXQgJiYgZGF0YVtjb2x1bW4ua2V5LnNwbGl0KCcuJylbMF1dXCJcbiAgKGNsaWNrKT1cIm9uVGV4dENvbHVtbkNsaWNrZWQoY29sdW1uLCBkYXRhW2NvbHVtbi5rZXldLCAkZXZlbnQpXCJcbiAgPnt7XG4gICAgZ2V0U2VsZWN0b3JEYXRhKGRhdGFbY29sdW1uLmtleS5zcGxpdChcIi5cIilbMF1dLCBjb2x1bW4uZGF0YS5rZXkpXG4gICAgICB8IHBlcnNpYW5EaWdpdHNcbiAgfX08L3NwYW5cbj5cblxuPGRpdiBjbGFzcz1cImZsZXhcIiAqbmdJZj1cImNhbkVkaXRcIj5cbiAgPGNvcmUtc2VsZWN0XG4gICAgY2xhc3M9XCJibG9jayBteC00IHctODBcIlxuICAgIFt0aXRsZUtleV09XCJjb2x1bW4uZGF0YS5rZXlcIlxuICAgIFt2YWx1ZUtleV09XCJjb2x1bW4uZGF0YS52YWx1ZVwiXG4gICAgW2l0ZW1zXT1cImNvbHVtbi5kYXRhLmVkaXRhYmxlRGF0YSB8IGFzeW5jXCJcbiAgICAob25JdGVtU2VsZWN0ZWQpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gID48L2NvcmUtc2VsZWN0PlxuXG4gIDxjaGVjay1pY29uXG4gICAgKGNsaWNrKT1cInNldFZhbHVlKClcIlxuICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgaW5saW5lLWJsb2NrIHctNSBoLTUgbS0xXCJcbiAgPjwvY2hlY2staWNvbj5cbiAgPGNsb3NlLWljb25cbiAgICAoY2xpY2spPVwiY2FuRWRpdCA9IGZhbHNlXCJcbiAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGlubGluZS1ibG9jayB3LTUgaC01IG0tMVwiXG4gID48L2Nsb3NlLWljb24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -1,20 +1,48 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { cloneDeep } from 'lodash';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../../core-radio-buttons/core-radio-buttons.component";
|
|
6
|
+
import * as i3 from "../../../svg-icon/check-icon/check-icon.component";
|
|
7
|
+
import * as i4 from "../../../svg-icon/close-icon/close-icon.component";
|
|
4
8
|
export class CoreTableStatusActiveColumnComponent {
|
|
5
|
-
|
|
9
|
+
constructor() {
|
|
10
|
+
this.onColumnValueChanged = new EventEmitter();
|
|
11
|
+
this.canEdit = false;
|
|
12
|
+
this.value = false;
|
|
13
|
+
this.radioButtonData = [
|
|
14
|
+
{ value: true, title: 'بلی' },
|
|
15
|
+
{ value: false, title: 'خیر' },
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
onChange(event) {
|
|
19
|
+
this.value = event === 'true' ? true : false;
|
|
20
|
+
}
|
|
21
|
+
setValue() {
|
|
22
|
+
const newData = cloneDeep(this.data);
|
|
23
|
+
newData[this.column.key] = this.value;
|
|
24
|
+
this.onColumnValueChanged.emit(newData);
|
|
25
|
+
this.canEdit = false;
|
|
26
|
+
}
|
|
27
|
+
onColumnClicked(column, data, event) {
|
|
28
|
+
if (event.ctrlKey && column.editable) {
|
|
29
|
+
this.value = data;
|
|
30
|
+
this.canEdit = true;
|
|
31
|
+
}
|
|
6
32
|
}
|
|
7
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableStatusActiveColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableStatusActiveColumnComponent, selector: "app-core-table-status-active-column", inputs: { data: "data", column: "column" }, ngImport: i0, template: "<b [ngClass]=\"data[column.key] ? 'active' : 'deActive'\">\r\n {{ data[column.key] ? \"\u0628\u0644\u06CC\" : \"\u062E\u06CC\u0631\" }}\r\n</b>\r\n", styles: [".active{background:#d9f8eb;color:#00894f;border-radius:16px;padding:2px 12px;font-size:smaller}.deActive{color:#ac5a2b;background:#fde6d8;border-radius:16px;padding:2px 12px;font-size:smaller}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableStatusActiveColumnComponent, selector: "app-core-table-status-active-column", inputs: { data: "data", column: "column" }, outputs: { onColumnValueChanged: "onColumnValueChanged" }, ngImport: i0, template: "<b\r\n *ngIf=\"!canEdit\"\r\n (click)=\"onColumnClicked(column, data[column.key], $event)\"\r\n [ngClass]=\"data[column.key] ? 'active' : 'deActive'\"\r\n>\r\n {{ data[column.key] ? \"\u0628\u0644\u06CC\" : \"\u062E\u06CC\u0631\" }}\r\n</b>\r\n<div class=\"flex\" *ngIf=\"canEdit\">\r\n <core-radio-buttons\r\n class=\"flex-1\"\r\n [titleKey]=\"'title'\"\r\n [valueKey]=\"'value'\"\r\n [layout]=\"'row'\"\r\n [name]=\"'r1'\"\r\n [defaultValue]=\"data[column.key]\"\r\n [items]=\"radioButtonData\"\r\n (onChange)=\"onChange($event)\"\r\n >\r\n </core-radio-buttons>\r\n <check-icon\r\n (click)=\"setValue()\"\r\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\r\n ></check-icon>\r\n <close-icon\r\n (click)=\"canEdit = false\"\r\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\r\n ></close-icon>\r\n</div>\r\n", styles: [".active{background:#d9f8eb;color:#00894f;border-radius:16px;padding:2px 12px;font-size:smaller}.deActive{color:#ac5a2b;background:#fde6d8;border-radius:16px;padding:2px 12px;font-size:smaller}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CoreRadioButtonsComponent, selector: "core-radio-buttons", inputs: ["items", "defaultValue", "titleKey", "valueKey", "layout", "name"], outputs: ["onChange"] }, { kind: "component", type: i3.CheckIconComponent, selector: "check-icon" }, { kind: "component", type: i4.CloseIconComponent, selector: "close-icon" }] }); }
|
|
9
35
|
}
|
|
10
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableStatusActiveColumnComponent, decorators: [{
|
|
11
37
|
type: Component,
|
|
12
|
-
args: [{ selector: 'app-core-table-status-active-column', template: "<b [ngClass]=\"data[column.key] ? 'active' : 'deActive'\">\r\n {{ data[column.key] ? \"\u0628\u0644\u06CC\" : \"\u062E\u06CC\u0631\" }}\r\n</b>\r\n", styles: [".active{background:#d9f8eb;color:#00894f;border-radius:16px;padding:2px 12px;font-size:smaller}.deActive{color:#ac5a2b;background:#fde6d8;border-radius:16px;padding:2px 12px;font-size:smaller}\n"] }]
|
|
38
|
+
args: [{ selector: 'app-core-table-status-active-column', template: "<b\r\n *ngIf=\"!canEdit\"\r\n (click)=\"onColumnClicked(column, data[column.key], $event)\"\r\n [ngClass]=\"data[column.key] ? 'active' : 'deActive'\"\r\n>\r\n {{ data[column.key] ? \"\u0628\u0644\u06CC\" : \"\u062E\u06CC\u0631\" }}\r\n</b>\r\n<div class=\"flex\" *ngIf=\"canEdit\">\r\n <core-radio-buttons\r\n class=\"flex-1\"\r\n [titleKey]=\"'title'\"\r\n [valueKey]=\"'value'\"\r\n [layout]=\"'row'\"\r\n [name]=\"'r1'\"\r\n [defaultValue]=\"data[column.key]\"\r\n [items]=\"radioButtonData\"\r\n (onChange)=\"onChange($event)\"\r\n >\r\n </core-radio-buttons>\r\n <check-icon\r\n (click)=\"setValue()\"\r\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\r\n ></check-icon>\r\n <close-icon\r\n (click)=\"canEdit = false\"\r\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\r\n ></close-icon>\r\n</div>\r\n", styles: [".active{background:#d9f8eb;color:#00894f;border-radius:16px;padding:2px 12px;font-size:smaller}.deActive{color:#ac5a2b;background:#fde6d8;border-radius:16px;padding:2px 12px;font-size:smaller}\n"] }]
|
|
13
39
|
}], propDecorators: { data: [{
|
|
14
40
|
type: Input,
|
|
15
41
|
args: [{ required: true }]
|
|
16
42
|
}], column: [{
|
|
17
43
|
type: Input,
|
|
18
44
|
args: [{ required: true }]
|
|
45
|
+
}], onColumnValueChanged: [{
|
|
46
|
+
type: Output
|
|
19
47
|
}] } });
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1zdGF0dXMtYWN0aXZlLWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS10YWJsZS9jb3JlLXRhYmxlLXN0YXR1cy1hY3RpdmUtY29sdW1uL2NvcmUtdGFibGUtc3RhdHVzLWFjdGl2ZS1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1zdGF0dXMtYWN0aXZlLWNvbHVtbi9jb3JlLXRhYmxlLXN0YXR1cy1hY3RpdmUtY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7O0FBT25DLE1BQU0sT0FBTyxvQ0FBb0M7SUFMakQ7UUFRWSx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV2RSxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLFVBQUssR0FBWSxLQUFLLENBQUM7UUFDdkIsb0JBQWUsR0FBRztZQUNoQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtZQUM3QixFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtTQUMvQixDQUFDO0tBa0JIO0lBaEJDLFFBQVEsQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQUNELFFBQVE7UUFDTixNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVcsRUFBRSxJQUFhLEVBQUUsS0FBaUI7UUFDM0QsSUFBSSxLQUFLLENBQUMsT0FBTyxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUU7WUFDcEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDckI7SUFDSCxDQUFDOytHQTNCVSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyxrTENSakQsZzJCQTRCQTs7NEZEcEJhLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxxQ0FBcUM7OEJBS3BCLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLE1BQU07c0JBQWhDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNmLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jb3JlLXRhYmxlLXN0YXR1cy1hY3RpdmUtY29sdW1uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29yZS10YWJsZS1zdGF0dXMtYWN0aXZlLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29yZS10YWJsZS1zdGF0dXMtYWN0aXZlLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29yZVRhYmxlU3RhdHVzQWN0aXZlQ29sdW1uQ29tcG9uZW50IHtcclxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhOiBhbnk7XHJcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY29sdW1uITogYW55O1xyXG4gIEBPdXRwdXQoKSBvbkNvbHVtblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNhbkVkaXQgPSBmYWxzZTtcclxuICB2YWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJhZGlvQnV0dG9uRGF0YSA9IFtcclxuICAgIHsgdmFsdWU6IHRydWUsIHRpdGxlOiAn2KjZhNuMJyB9LFxyXG4gICAgeyB2YWx1ZTogZmFsc2UsIHRpdGxlOiAn2K7bjNixJyB9LFxyXG4gIF07XHJcblxyXG4gIG9uQ2hhbmdlKGV2ZW50OiBzdHJpbmcpIHtcclxuICAgIHRoaXMudmFsdWUgPSBldmVudCA9PT0gJ3RydWUnID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuICBzZXRWYWx1ZSgpIHtcclxuICAgIGNvbnN0IG5ld0RhdGEgPSBjbG9uZURlZXAodGhpcy5kYXRhKTtcclxuICAgIG5ld0RhdGFbdGhpcy5jb2x1bW4ua2V5XSA9IHRoaXMudmFsdWU7XHJcbiAgICB0aGlzLm9uQ29sdW1uVmFsdWVDaGFuZ2VkLmVtaXQobmV3RGF0YSk7XHJcbiAgICB0aGlzLmNhbkVkaXQgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uQ29sdW1uQ2xpY2tlZChjb2x1bW46IGFueSwgZGF0YTogYm9vbGVhbiwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGNvbHVtbi5lZGl0YWJsZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gZGF0YTtcclxuICAgICAgdGhpcy5jYW5FZGl0ID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGJcclxuICAqbmdJZj1cIiFjYW5FZGl0XCJcclxuICAoY2xpY2spPVwib25Db2x1bW5DbGlja2VkKGNvbHVtbiwgZGF0YVtjb2x1bW4ua2V5XSwgJGV2ZW50KVwiXHJcbiAgW25nQ2xhc3NdPVwiZGF0YVtjb2x1bW4ua2V5XSA/ICdhY3RpdmUnIDogJ2RlQWN0aXZlJ1wiXHJcbj5cclxuICB7eyBkYXRhW2NvbHVtbi5rZXldID8gXCLYqNmE24xcIiA6IFwi2K7bjNixXCIgfX1cclxuPC9iPlxyXG48ZGl2IGNsYXNzPVwiZmxleFwiICpuZ0lmPVwiY2FuRWRpdFwiPlxyXG4gIDxjb3JlLXJhZGlvLWJ1dHRvbnNcclxuICAgIGNsYXNzPVwiZmxleC0xXCJcclxuICAgIFt0aXRsZUtleV09XCIndGl0bGUnXCJcclxuICAgIFt2YWx1ZUtleV09XCIndmFsdWUnXCJcclxuICAgIFtsYXlvdXRdPVwiJ3JvdydcIlxyXG4gICAgW25hbWVdPVwiJ3IxJ1wiXHJcbiAgICBbZGVmYXVsdFZhbHVlXT1cImRhdGFbY29sdW1uLmtleV1cIlxyXG4gICAgW2l0ZW1zXT1cInJhZGlvQnV0dG9uRGF0YVwiXHJcbiAgICAob25DaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXHJcbiAgPlxyXG4gIDwvY29yZS1yYWRpby1idXR0b25zPlxyXG4gIDxjaGVjay1pY29uXHJcbiAgICAoY2xpY2spPVwic2V0VmFsdWUoKVwiXHJcbiAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGlubGluZS1ibG9jayB3LTUgaC01IG0tMVwiXHJcbiAgPjwvY2hlY2staWNvbj5cclxuICA8Y2xvc2UtaWNvblxyXG4gICAgKGNsaWNrKT1cImNhbkVkaXQgPSBmYWxzZVwiXHJcbiAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGlubGluZS1ibG9jayB3LTUgaC01IG0tMVwiXHJcbiAgPjwvY2xvc2UtaWNvbj5cclxuPC9kaXY+XHJcbiJdfQ==
|
package/esm2022/lib/core-table/core-table-status-column/core-table-status-column.component.mjs
CHANGED
|
@@ -1,18 +1,48 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { cloneDeep } from 'lodash';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "../../core-radio-buttons/core-radio-buttons.component";
|
|
6
|
+
import * as i3 from "../../../svg-icon/check-icon/check-icon.component";
|
|
7
|
+
import * as i4 from "../../../svg-icon/close-icon/close-icon.component";
|
|
4
8
|
export class CoreTableStatusColumnComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.onColumnValueChanged = new EventEmitter();
|
|
11
|
+
this.canEdit = false;
|
|
12
|
+
this.value = false;
|
|
13
|
+
this.radioButtonData = [
|
|
14
|
+
{ value: true, title: 'فعال' },
|
|
15
|
+
{ value: false, title: 'غیر فعال' },
|
|
16
|
+
];
|
|
17
|
+
}
|
|
18
|
+
onChange(event) {
|
|
19
|
+
this.value = event === 'true' ? true : false;
|
|
20
|
+
}
|
|
21
|
+
setValue() {
|
|
22
|
+
const newData = cloneDeep(this.data);
|
|
23
|
+
newData[this.column.key] = this.value;
|
|
24
|
+
this.onColumnValueChanged.emit(newData);
|
|
25
|
+
this.canEdit = false;
|
|
26
|
+
}
|
|
27
|
+
onColumnClicked(column, data, event) {
|
|
28
|
+
if (event.ctrlKey && column.editable) {
|
|
29
|
+
this.value = data;
|
|
30
|
+
this.canEdit = true;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
5
33
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableStatusColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
6
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableStatusColumnComponent, selector: "app-core-table-status-column", inputs: { data: "data", column: "column" }, ngImport: i0, template: "<b
|
|
34
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableStatusColumnComponent, selector: "app-core-table-status-column", inputs: { data: "data", column: "column" }, outputs: { onColumnValueChanged: "onColumnValueChanged" }, ngImport: i0, template: "<b\n [ngClass]=\"data[column.key] ? 'active' : 'deActive'\"\n *ngIf=\"!canEdit\"\n (click)=\"onColumnClicked(column, data[column.key], $event)\"\n>\n {{ data[column.key] ? \"\u0641\u0639\u0627\u0644\" : \"\u063A\u06CC\u0631 \u0641\u0639\u0627\u0644\" }}\n</b>\n\n<div class=\"flex\" *ngIf=\"canEdit\">\n <core-radio-buttons\n class=\"flex-1 min-width-radio\"\n [titleKey]=\"'title'\"\n [valueKey]=\"'value'\"\n [layout]=\"'row'\"\n [name]=\"'r1'\"\n [defaultValue]=\"data[column.key]\"\n [items]=\"radioButtonData\"\n (onChange)=\"onChange($event)\"\n >\n </core-radio-buttons>\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n", styles: [".active{background:var(--default-table-status-column-active-background-color);color:var(--default-table-status-column-active-text-color);border-radius:16px;padding:2px 12px;font-size:smaller}.deActive{color:var(--default-table-status-column-deActive-text-color);background:var(--default-table-status-column-deActive-background-color);border-radius:16px;padding:2px 12px;font-size:smaller}.min-width-radio{min-width:132px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.CoreRadioButtonsComponent, selector: "core-radio-buttons", inputs: ["items", "defaultValue", "titleKey", "valueKey", "layout", "name"], outputs: ["onChange"] }, { kind: "component", type: i3.CheckIconComponent, selector: "check-icon" }, { kind: "component", type: i4.CloseIconComponent, selector: "close-icon" }] }); }
|
|
7
35
|
}
|
|
8
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableStatusColumnComponent, decorators: [{
|
|
9
37
|
type: Component,
|
|
10
|
-
args: [{ selector: 'app-core-table-status-column', template: "<b
|
|
38
|
+
args: [{ selector: 'app-core-table-status-column', template: "<b\n [ngClass]=\"data[column.key] ? 'active' : 'deActive'\"\n *ngIf=\"!canEdit\"\n (click)=\"onColumnClicked(column, data[column.key], $event)\"\n>\n {{ data[column.key] ? \"\u0641\u0639\u0627\u0644\" : \"\u063A\u06CC\u0631 \u0641\u0639\u0627\u0644\" }}\n</b>\n\n<div class=\"flex\" *ngIf=\"canEdit\">\n <core-radio-buttons\n class=\"flex-1 min-width-radio\"\n [titleKey]=\"'title'\"\n [valueKey]=\"'value'\"\n [layout]=\"'row'\"\n [name]=\"'r1'\"\n [defaultValue]=\"data[column.key]\"\n [items]=\"radioButtonData\"\n (onChange)=\"onChange($event)\"\n >\n </core-radio-buttons>\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n", styles: [".active{background:var(--default-table-status-column-active-background-color);color:var(--default-table-status-column-active-text-color);border-radius:16px;padding:2px 12px;font-size:smaller}.deActive{color:var(--default-table-status-column-deActive-text-color);background:var(--default-table-status-column-deActive-background-color);border-radius:16px;padding:2px 12px;font-size:smaller}.min-width-radio{min-width:132px}\n"] }]
|
|
11
39
|
}], propDecorators: { data: [{
|
|
12
40
|
type: Input,
|
|
13
41
|
args: [{ required: true }]
|
|
14
42
|
}], column: [{
|
|
15
43
|
type: Input,
|
|
16
44
|
args: [{ required: true }]
|
|
45
|
+
}], onColumnValueChanged: [{
|
|
46
|
+
type: Output
|
|
17
47
|
}] } });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS1zdGF0dXMtY29sdW1uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2ZhbGNvbi1saWIvc3JjL2xpYi9jb3JlLXRhYmxlL2NvcmUtdGFibGUtc3RhdHVzLWNvbHVtbi9jb3JlLXRhYmxlLXN0YXR1cy1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS1zdGF0dXMtY29sdW1uL2NvcmUtdGFibGUtc3RhdHVzLWNvbHVtbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7OztBQU9uQyxNQUFNLE9BQU8sOEJBQThCO0lBTDNDO1FBUVkseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixVQUFLLEdBQVksS0FBSyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUc7WUFDaEIsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7WUFDOUIsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7U0FDcEMsQ0FBQztLQWtCSDtJQWhCQyxRQUFRLENBQUMsS0FBYTtRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQy9DLENBQUM7SUFDRCxRQUFRO1FBQ04sTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELGVBQWUsQ0FBQyxNQUFXLEVBQUUsSUFBYSxFQUFFLEtBQWlCO1FBQzNELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO0lBQ0gsQ0FBQzsrR0EzQlUsOEJBQThCO21HQUE5Qiw4QkFBOEIsMktDUjNDLHkxQkE2QkE7OzRGRHJCYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsOEJBQThCOzhCQUtiLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNFLE1BQU07c0JBQWhDLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNmLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtY29yZS10YWJsZS1zdGF0dXMtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtdGFibGUtc3RhdHVzLWNvbHVtbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvcmUtdGFibGUtc3RhdHVzLWNvbHVtbi5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb3JlVGFibGVTdGF0dXNDb2x1bW5Db21wb25lbnQge1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBkYXRhITogYW55O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBjb2x1bW4hOiBhbnk7XG4gIEBPdXRwdXQoKSBvbkNvbHVtblZhbHVlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY2FuRWRpdCA9IGZhbHNlO1xuICB2YWx1ZTogYm9vbGVhbiA9IGZhbHNlO1xuICByYWRpb0J1dHRvbkRhdGEgPSBbXG4gICAgeyB2YWx1ZTogdHJ1ZSwgdGl0bGU6ICfZgdi52KfZhCcgfSxcbiAgICB7IHZhbHVlOiBmYWxzZSwgdGl0bGU6ICfYutuM2LEg2YHYudin2YQnIH0sXG4gIF07XG5cbiAgb25DaGFuZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMudmFsdWUgPSBldmVudCA9PT0gJ3RydWUnID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG4gIHNldFZhbHVlKCkge1xuICAgIGNvbnN0IG5ld0RhdGEgPSBjbG9uZURlZXAodGhpcy5kYXRhKTtcbiAgICBuZXdEYXRhW3RoaXMuY29sdW1uLmtleV0gPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMub25Db2x1bW5WYWx1ZUNoYW5nZWQuZW1pdChuZXdEYXRhKTtcbiAgICB0aGlzLmNhbkVkaXQgPSBmYWxzZTtcbiAgfVxuXG4gIG9uQ29sdW1uQ2xpY2tlZChjb2x1bW46IGFueSwgZGF0YTogYm9vbGVhbiwgZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAoZXZlbnQuY3RybEtleSAmJiBjb2x1bW4uZWRpdGFibGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBkYXRhO1xuICAgICAgdGhpcy5jYW5FZGl0ID0gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cbiIsIjxiXG4gIFtuZ0NsYXNzXT1cImRhdGFbY29sdW1uLmtleV0gPyAnYWN0aXZlJyA6ICdkZUFjdGl2ZSdcIlxuICAqbmdJZj1cIiFjYW5FZGl0XCJcbiAgKGNsaWNrKT1cIm9uQ29sdW1uQ2xpY2tlZChjb2x1bW4sIGRhdGFbY29sdW1uLmtleV0sICRldmVudClcIlxuPlxuICB7eyBkYXRhW2NvbHVtbi5rZXldID8gXCLZgdi52KfZhFwiIDogXCLYutuM2LEg2YHYudin2YRcIiB9fVxuPC9iPlxuXG48ZGl2IGNsYXNzPVwiZmxleFwiICpuZ0lmPVwiY2FuRWRpdFwiPlxuICA8Y29yZS1yYWRpby1idXR0b25zXG4gICAgY2xhc3M9XCJmbGV4LTEgbWluLXdpZHRoLXJhZGlvXCJcbiAgICBbdGl0bGVLZXldPVwiJ3RpdGxlJ1wiXG4gICAgW3ZhbHVlS2V5XT1cIid2YWx1ZSdcIlxuICAgIFtsYXlvdXRdPVwiJ3JvdydcIlxuICAgIFtuYW1lXT1cIidyMSdcIlxuICAgIFtkZWZhdWx0VmFsdWVdPVwiZGF0YVtjb2x1bW4ua2V5XVwiXG4gICAgW2l0ZW1zXT1cInJhZGlvQnV0dG9uRGF0YVwiXG4gICAgKG9uQ2hhbmdlKT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICA+XG4gIDwvY29yZS1yYWRpby1idXR0b25zPlxuICA8Y2hlY2staWNvblxuICAgIChjbGljayk9XCJzZXRWYWx1ZSgpXCJcbiAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGlubGluZS1ibG9jayB3LTUgaC01IG0tMVwiXG4gID48L2NoZWNrLWljb24+XG4gIDxjbG9zZS1pY29uXG4gICAgKGNsaWNrKT1cImNhbkVkaXQgPSBmYWxzZVwiXG4gICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBpbmxpbmUtYmxvY2sgdy01IGgtNSBtLTFcIlxuICA+PC9jbG9zZS1pY29uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { cloneDeep } from 'lodash';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "nira-snack-bar";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/forms";
|
|
7
|
+
import * as i4 from "../../../svg-icon/check-icon/check-icon.component";
|
|
8
|
+
import * as i5 from "../../../svg-icon/close-icon/close-icon.component";
|
|
9
|
+
import * as i6 from "../../pipes/persian-digits.pipe";
|
|
10
|
+
export class CoreTableTextColumnComponent {
|
|
11
|
+
constructor(niraSnackBar) {
|
|
12
|
+
this.niraSnackBar = niraSnackBar;
|
|
13
|
+
this.onColumnValueChanged = new EventEmitter();
|
|
14
|
+
this.canEdit = false;
|
|
15
|
+
this.value = '';
|
|
16
|
+
}
|
|
17
|
+
setValue() {
|
|
18
|
+
const newData = cloneDeep(this.data);
|
|
19
|
+
newData[this.column.key] = this.value;
|
|
20
|
+
this.onColumnValueChanged.emit(newData);
|
|
21
|
+
this.canEdit = false;
|
|
22
|
+
}
|
|
23
|
+
onTextColumnClicked(column, data, event) {
|
|
24
|
+
if (event.ctrlKey && column.editable) {
|
|
25
|
+
this.value = data;
|
|
26
|
+
this.canEdit = true;
|
|
27
|
+
}
|
|
28
|
+
else if (column.copyToClipboard) {
|
|
29
|
+
navigator.clipboard
|
|
30
|
+
.writeText(data)
|
|
31
|
+
.then((e) => {
|
|
32
|
+
this.niraSnackBar.show('با موفقیت کپی شد', {
|
|
33
|
+
statusClass: 'success',
|
|
34
|
+
duration: 3000,
|
|
35
|
+
});
|
|
36
|
+
})
|
|
37
|
+
.catch((e) => console.error(e));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableTextColumnComponent, deps: [{ token: i1.NiraSnackBarService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
41
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CoreTableTextColumnComponent, selector: "core-table-text-column", inputs: { data: "data", column: "column" }, outputs: { onColumnValueChanged: "onColumnValueChanged" }, ngImport: i0, template: "<span\n *ngIf=\"!canEdit\"\n [ngClass]=\"{ 'cursor-pointer': column.copyToClipboard }\"\n (click)=\"onTextColumnClicked(column, data[column.key], $event)\"\n >{{ data[column.key] | persianDigits }}</span\n>\n<div class=\"flex\" *ngIf=\"canEdit\">\n <input\n [(ngModel)]=\"value\"\n class=\"rounded-sm h-7 px-2 border-slate-700\"\n type=\"text\"\n />\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.CheckIconComponent, selector: "check-icon" }, { kind: "component", type: i5.CloseIconComponent, selector: "close-icon" }, { kind: "pipe", type: i6.PersianDigitsPipe, name: "persianDigits" }] }); }
|
|
42
|
+
}
|
|
43
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CoreTableTextColumnComponent, decorators: [{
|
|
44
|
+
type: Component,
|
|
45
|
+
args: [{ selector: 'core-table-text-column', template: "<span\n *ngIf=\"!canEdit\"\n [ngClass]=\"{ 'cursor-pointer': column.copyToClipboard }\"\n (click)=\"onTextColumnClicked(column, data[column.key], $event)\"\n >{{ data[column.key] | persianDigits }}</span\n>\n<div class=\"flex\" *ngIf=\"canEdit\">\n <input\n [(ngModel)]=\"value\"\n class=\"rounded-sm h-7 px-2 border-slate-700\"\n type=\"text\"\n />\n <check-icon\n (click)=\"setValue()\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></check-icon>\n <close-icon\n (click)=\"canEdit = false\"\n class=\"cursor-pointer inline-block w-5 h-5 m-1\"\n ></close-icon>\n</div>\n" }]
|
|
46
|
+
}], ctorParameters: function () { return [{ type: i1.NiraSnackBarService }]; }, propDecorators: { data: [{
|
|
47
|
+
type: Input,
|
|
48
|
+
args: [{ required: true }]
|
|
49
|
+
}], column: [{
|
|
50
|
+
type: Input,
|
|
51
|
+
args: [{ required: true }]
|
|
52
|
+
}], onColumnValueChanged: [{
|
|
53
|
+
type: Output
|
|
54
|
+
}] } });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS10YWJsZS10ZXh0LWNvbHVtbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9mYWxjb24tbGliL3NyYy9saWIvY29yZS10YWJsZS9jb3JlLXRhYmxlLXRleHQtY29sdW1uL2NvcmUtdGFibGUtdGV4dC1jb2x1bW4uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZmFsY29uLWxpYi9zcmMvbGliL2NvcmUtdGFibGUvY29yZS10YWJsZS10ZXh0LWNvbHVtbi9jb3JlLXRhYmxlLXRleHQtY29sdW1uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7QUFRbkMsTUFBTSxPQUFPLDRCQUE0QjtJQVF2QyxZQUFvQixZQUFpQztRQUFqQyxpQkFBWSxHQUFaLFlBQVksQ0FBcUI7UUFMM0MseUJBQW9CLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFdkUsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixVQUFLLEdBQUcsRUFBRSxDQUFDO0lBRTZDLENBQUM7SUFFekQsUUFBUTtRQUNOLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN0QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxNQUFXLEVBQUUsSUFBWSxFQUFFLEtBQWlCO1FBQzlELElBQUksS0FBSyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsUUFBUSxFQUFFO1lBQ3BDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxNQUFNLENBQUMsZUFBZSxFQUFFO1lBQ2pDLFNBQVMsQ0FBQyxTQUFTO2lCQUNoQixTQUFTLENBQUMsSUFBSSxDQUFDO2lCQUNmLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO29CQUN6QyxXQUFXLEVBQUUsU0FBUztvQkFDdEIsUUFBUSxFQUFFLElBQUk7aUJBQ2YsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzsrR0FoQ1UsNEJBQTRCO21HQUE1Qiw0QkFBNEIscUtDVHpDLHFtQkFxQkE7OzRGRFphLDRCQUE0QjtrQkFMeEMsU0FBUzsrQkFDRSx3QkFBd0I7MEdBS1AsSUFBSTtzQkFBOUIsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2Ysb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBOaXJhU25hY2tCYXJTZXJ2aWNlIH0gZnJvbSAnbmlyYS1zbmFjay1iYXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjb3JlLXRhYmxlLXRleHQtY29sdW1uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvcmUtdGFibGUtdGV4dC1jb2x1bW4uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb3JlLXRhYmxlLXRleHQtY29sdW1uLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ29yZVRhYmxlVGV4dENvbHVtbkNvbXBvbmVudCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGRhdGEhOiBhbnk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNvbHVtbiE6IGFueTtcbiAgQE91dHB1dCgpIG9uQ29sdW1uVmFsdWVDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBjYW5FZGl0ID0gZmFsc2U7XG4gIHZhbHVlID0gJyc7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBuaXJhU25hY2tCYXI6IE5pcmFTbmFja0JhclNlcnZpY2UpIHt9XG5cbiAgc2V0VmFsdWUoKSB7XG4gICAgY29uc3QgbmV3RGF0YSA9IGNsb25lRGVlcCh0aGlzLmRhdGEpO1xuICAgIG5ld0RhdGFbdGhpcy5jb2x1bW4ua2V5XSA9IHRoaXMudmFsdWU7XG4gICAgdGhpcy5vbkNvbHVtblZhbHVlQ2hhbmdlZC5lbWl0KG5ld0RhdGEpO1xuICAgIHRoaXMuY2FuRWRpdCA9IGZhbHNlO1xuICB9XG5cbiAgb25UZXh0Q29sdW1uQ2xpY2tlZChjb2x1bW46IGFueSwgZGF0YTogc3RyaW5nLCBldmVudDogTW91c2VFdmVudCkge1xuICAgIGlmIChldmVudC5jdHJsS2V5ICYmIGNvbHVtbi5lZGl0YWJsZSkge1xuICAgICAgdGhpcy52YWx1ZSA9IGRhdGE7XG4gICAgICB0aGlzLmNhbkVkaXQgPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoY29sdW1uLmNvcHlUb0NsaXBib2FyZCkge1xuICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZFxuICAgICAgICAud3JpdGVUZXh0KGRhdGEpXG4gICAgICAgIC50aGVuKChlKSA9PiB7XG4gICAgICAgICAgdGhpcy5uaXJhU25hY2tCYXIuc2hvdygn2KjYpyDZhdmI2YHZgtuM2Kog2qnZvtuMINi02K8nLCB7XG4gICAgICAgICAgICBzdGF0dXNDbGFzczogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgZHVyYXRpb246IDMwMDAsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaCgoZSkgPT4gY29uc29sZS5lcnJvcihlKSk7XG4gICAgfVxuICB9XG59XG4iLCI8c3BhblxuICAqbmdJZj1cIiFjYW5FZGl0XCJcbiAgW25nQ2xhc3NdPVwieyAnY3Vyc29yLXBvaW50ZXInOiBjb2x1bW4uY29weVRvQ2xpcGJvYXJkIH1cIlxuICAoY2xpY2spPVwib25UZXh0Q29sdW1uQ2xpY2tlZChjb2x1bW4sIGRhdGFbY29sdW1uLmtleV0sICRldmVudClcIlxuICA+e3sgZGF0YVtjb2x1bW4ua2V5XSB8IHBlcnNpYW5EaWdpdHMgfX08L3NwYW5cbj5cbjxkaXYgY2xhc3M9XCJmbGV4XCIgKm5nSWY9XCJjYW5FZGl0XCI+XG4gIDxpbnB1dFxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgIGNsYXNzPVwicm91bmRlZC1zbSBoLTcgcHgtMiBib3JkZXItc2xhdGUtNzAwXCJcbiAgICB0eXBlPVwidGV4dFwiXG4gIC8+XG4gIDxjaGVjay1pY29uXG4gICAgKGNsaWNrKT1cInNldFZhbHVlKClcIlxuICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgaW5saW5lLWJsb2NrIHctNSBoLTUgbS0xXCJcbiAgPjwvY2hlY2staWNvbj5cbiAgPGNsb3NlLWljb25cbiAgICAoY2xpY2spPVwiY2FuRWRpdCA9IGZhbHNlXCJcbiAgICBjbGFzcz1cImN1cnNvci1wb2ludGVyIGlubGluZS1ibG9jayB3LTUgaC01IG0tMVwiXG4gID48L2Nsb3NlLWljb24+XG48L2Rpdj5cbiJdfQ==
|