limitng 0.23.9 → 0.23.11

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.
@@ -21,13 +21,13 @@ class AltBuyukKartComponent {
21
21
  ...(ngDevMode ? [{ debugName: "solAlt" }] : /* istanbul ignore next */ []));
22
22
  }
23
23
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AltBuyukKartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
24
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: AltBuyukKartComponent, isStandalone: true, selector: "alt-buyuk-kart", inputs: { baslik: { classPropertyName: "baslik", publicName: "baslik", isSignal: true, isRequired: true, transformFunction: null }, baslikRenk: { classPropertyName: "baslikRenk", publicName: "baslikRenk", isSignal: true, isRequired: true, transformFunction: null }, genislik: { classPropertyName: "genislik", publicName: "genislik", isSignal: true, isRequired: false, transformFunction: null }, yukseklik: { classPropertyName: "yukseklik", publicName: "yukseklik", isSignal: true, isRequired: false, transformFunction: null }, baslikYukseklik: { classPropertyName: "baslikYukseklik", publicName: "baslikYukseklik", isSignal: true, isRequired: false, transformFunction: null }, baslikFontSize: { classPropertyName: "baslikFontSize", publicName: "baslikFontSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.width": "genislik()" } }, queries: [{ propertyName: "sagAlt", first: true, predicate: ["sagAlt"], descendants: true, isSignal: true }, { propertyName: "solAlt", first: true, predicate: ["solAlt"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"wrapper\" [style.height.rem]=\"yukseklik()\">\r\n <div class=\"alt-baslik\" [style.backgroundColor]=\"baslikRenk()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.top.rem]=\"baslikUst()\">\r\n </div>\r\n\r\n <div class=\"baslik-yazi\" [style.font-size.rem]=\"baslikFontSize()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.color]=\"baslikRenk()\" [style.top.rem]=\"baslikUst()\">\r\n <b> {{ baslik() }} </b>\r\n </div>\r\n\r\n @if (sagAlt()) {\r\n <div class=\"sag-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"sagAlt(); context: {$implicit: sagIcerik}\">\r\n {{ sagIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n @if (solAlt()) {\r\n <div class=\"sol-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"solAlt(); context: {$implicit: solIcerik}\">\r\n {{ solIcerik() }}\r\n </ng-container>\r\n </div>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [":host{float:left;margin:.5em 0 0 .5em;background-color:transparent;border:transparent}:host .wrapper{background:var(--p-form-field-background);position:relative;border-radius:.35em;box-shadow:inset 0 0 .35em .15em #0003}:host .alt-baslik{position:absolute;opacity:.2;width:100%}:host .baslik-yazi{position:absolute;width:100%;display:flex;justify-content:center;align-items:center;padding-right:.4rem;padding-left:.4rem;line-height:1.5}:host .sag-alt{position:absolute;padding:.4em;width:50%;text-align:right;left:50%;z-index:1000}:host .sol-alt{position:absolute;padding:.4em;width:50%;text-align:left;z-index:1000}\n/*!_variable.scss*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
24
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.4", type: AltBuyukKartComponent, isStandalone: true, selector: "alt-buyuk-kart", inputs: { baslik: { classPropertyName: "baslik", publicName: "baslik", isSignal: true, isRequired: true, transformFunction: null }, baslikRenk: { classPropertyName: "baslikRenk", publicName: "baslikRenk", isSignal: true, isRequired: true, transformFunction: null }, genislik: { classPropertyName: "genislik", publicName: "genislik", isSignal: true, isRequired: false, transformFunction: null }, yukseklik: { classPropertyName: "yukseklik", publicName: "yukseklik", isSignal: true, isRequired: false, transformFunction: null }, baslikYukseklik: { classPropertyName: "baslikYukseklik", publicName: "baslikYukseklik", isSignal: true, isRequired: false, transformFunction: null }, baslikFontSize: { classPropertyName: "baslikFontSize", publicName: "baslikFontSize", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.width": "genislik()" } }, queries: [{ propertyName: "sagAlt", first: true, predicate: ["sagAlt"], descendants: true, isSignal: true }, { propertyName: "solAlt", first: true, predicate: ["solAlt"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"wrapper\" [style.height.rem]=\"yukseklik()\">\r\n <div class=\"alt-baslik\" [style.backgroundColor]=\"baslikRenk()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.top.rem]=\"baslikUst()\">\r\n </div>\r\n\r\n <div class=\"baslik-yazi\" [style.font-size.rem]=\"baslikFontSize()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.color]=\"baslikRenk()\" [style.top.rem]=\"baslikUst()\">\r\n <b> {{ baslik() }} </b>\r\n </div>\r\n\r\n @if (sagAlt()) {\r\n <div class=\"sag-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"sagAlt(); context: {$implicit: sagIcerik}\">\r\n {{ sagIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n @if (solAlt()) {\r\n <div class=\"sol-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"solAlt(); context: {$implicit: solIcerik}\">\r\n {{ solIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [":host{float:left;margin:.5em 0 0 .5em;background-color:transparent;border:transparent}:host .wrapper{background:var(--p-form-field-background);position:relative;border-radius:.35em;box-shadow:inset 0 0 .35em .15em #0003}:host .alt-baslik{position:absolute;opacity:.2;width:100%}:host .baslik-yazi{position:absolute;width:100%;display:flex;justify-content:center;align-items:center;padding-right:.4rem;padding-left:.4rem;line-height:1.5}:host .sag-alt{position:absolute;padding:.4em;width:50%;text-align:right;left:50%;z-index:1000}:host .sol-alt{position:absolute;padding:.4em;width:50%;text-align:left;z-index:1000}\n/*!_variable.scss*/\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
25
25
  }
26
26
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.4", ngImport: i0, type: AltBuyukKartComponent, decorators: [{
27
27
  type: Component,
28
28
  args: [{ selector: 'alt-buyuk-kart', imports: [NgTemplateOutlet], host: {
29
29
  '[style.width]': 'genislik()'
30
- }, template: "<div class=\"wrapper\" [style.height.rem]=\"yukseklik()\">\r\n <div class=\"alt-baslik\" [style.backgroundColor]=\"baslikRenk()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.top.rem]=\"baslikUst()\">\r\n </div>\r\n\r\n <div class=\"baslik-yazi\" [style.font-size.rem]=\"baslikFontSize()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.color]=\"baslikRenk()\" [style.top.rem]=\"baslikUst()\">\r\n <b> {{ baslik() }} </b>\r\n </div>\r\n\r\n @if (sagAlt()) {\r\n <div class=\"sag-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"sagAlt(); context: {$implicit: sagIcerik}\">\r\n {{ sagIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n @if (solAlt()) {\r\n <div class=\"sol-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"solAlt(); context: {$implicit: solIcerik}\">\r\n {{ solIcerik() }}\r\n </ng-container>\r\n </div>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [":host{float:left;margin:.5em 0 0 .5em;background-color:transparent;border:transparent}:host .wrapper{background:var(--p-form-field-background);position:relative;border-radius:.35em;box-shadow:inset 0 0 .35em .15em #0003}:host .alt-baslik{position:absolute;opacity:.2;width:100%}:host .baslik-yazi{position:absolute;width:100%;display:flex;justify-content:center;align-items:center;padding-right:.4rem;padding-left:.4rem;line-height:1.5}:host .sag-alt{position:absolute;padding:.4em;width:50%;text-align:right;left:50%;z-index:1000}:host .sol-alt{position:absolute;padding:.4em;width:50%;text-align:left;z-index:1000}\n/*!_variable.scss*/\n"] }]
30
+ }, template: "<div class=\"wrapper\" [style.height.rem]=\"yukseklik()\">\r\n <div class=\"alt-baslik\" [style.backgroundColor]=\"baslikRenk()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.top.rem]=\"baslikUst()\">\r\n </div>\r\n\r\n <div class=\"baslik-yazi\" [style.font-size.rem]=\"baslikFontSize()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.color]=\"baslikRenk()\" [style.top.rem]=\"baslikUst()\">\r\n <b> {{ baslik() }} </b>\r\n </div>\r\n\r\n @if (sagAlt()) {\r\n <div class=\"sag-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"sagAlt(); context: {$implicit: sagIcerik}\">\r\n {{ sagIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n @if (solAlt()) {\r\n <div class=\"sol-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"solAlt(); context: {$implicit: solIcerik}\">\r\n {{ solIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n <ng-content />\r\n</div>\r\n", styles: [":host{float:left;margin:.5em 0 0 .5em;background-color:transparent;border:transparent}:host .wrapper{background:var(--p-form-field-background);position:relative;border-radius:.35em;box-shadow:inset 0 0 .35em .15em #0003}:host .alt-baslik{position:absolute;opacity:.2;width:100%}:host .baslik-yazi{position:absolute;width:100%;display:flex;justify-content:center;align-items:center;padding-right:.4rem;padding-left:.4rem;line-height:1.5}:host .sag-alt{position:absolute;padding:.4em;width:50%;text-align:right;left:50%;z-index:1000}:host .sol-alt{position:absolute;padding:.4em;width:50%;text-align:left;z-index:1000}\n/*!_variable.scss*/\n"] }]
31
31
  }], propDecorators: { baslik: [{ type: i0.Input, args: [{ isSignal: true, alias: "baslik", required: true }] }], baslikRenk: [{ type: i0.Input, args: [{ isSignal: true, alias: "baslikRenk", required: true }] }], genislik: [{ type: i0.Input, args: [{ isSignal: true, alias: "genislik", required: false }] }], yukseklik: [{ type: i0.Input, args: [{ isSignal: true, alias: "yukseklik", required: false }] }], baslikYukseklik: [{ type: i0.Input, args: [{ isSignal: true, alias: "baslikYukseklik", required: false }] }], baslikFontSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "baslikFontSize", required: false }] }], sagAlt: [{ type: i0.ContentChild, args: ['sagAlt', { isSignal: true }] }], solAlt: [{ type: i0.ContentChild, args: ['solAlt', { isSignal: true }] }] } });
32
32
 
33
33
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"limitng-alt-buyuk-kart.mjs","sources":["../../src/app/components/alt-buyuk-kart/alt-buyuk-kart.component.ts","../../src/app/components/alt-buyuk-kart/alt-buyuk-kart.component.html","../../src/app/components/alt-buyuk-kart/limitng-alt-buyuk-kart.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, computed, contentChild, input, numberAttribute, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'alt-buyuk-kart',\r\n imports: [NgTemplateOutlet],\r\n templateUrl: 'alt-buyuk-kart.component.html',\r\n styleUrl: 'alt-buyuk-kart.component.scss',\r\n host: {\r\n '[style.width]': 'genislik()'\r\n }\r\n})\r\n\r\nexport class AltBuyukKartComponent {\r\n readonly baslik = input.required<string>();\r\n readonly baslikRenk = input.required<string>();\r\n\r\n readonly genislik = input<string>('40.5em');\r\n readonly yukseklik = input(21, { transform: numberAttribute });\r\n\r\n readonly baslikYukseklik = input(3, { transform: numberAttribute });\r\n readonly baslikFontSize = input(1, { transform: numberAttribute });\r\n\r\n readonly baslikUst = computed(() => this.yukseklik() - this.baslikYukseklik());\r\n\r\n sagIcerik: any;\r\n solIcerik: any;\r\n\r\n readonly sagAlt = contentChild<TemplateRef<any>>('sagAlt');\r\n readonly solAlt = contentChild<TemplateRef<any>>('solAlt');\r\n\r\n}\r\n","<div class=\"wrapper\" [style.height.rem]=\"yukseklik()\">\r\n <div class=\"alt-baslik\" [style.backgroundColor]=\"baslikRenk()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.top.rem]=\"baslikUst()\">\r\n </div>\r\n\r\n <div class=\"baslik-yazi\" [style.font-size.rem]=\"baslikFontSize()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.color]=\"baslikRenk()\" [style.top.rem]=\"baslikUst()\">\r\n <b> {{ baslik() }} </b>\r\n </div>\r\n\r\n @if (sagAlt()) {\r\n <div class=\"sag-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"sagAlt(); context: {$implicit: sagIcerik}\">\r\n {{ sagIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n @if (solAlt()) {\r\n <div class=\"sol-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"solAlt(); context: {$implicit: solIcerik}\">\r\n {{ solIcerik() }}\r\n </ng-container>\r\n </div>\r\n }\r\n <ng-content />\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limitng-alt-buyuk-kart.mjs","sources":["../../src/app/components/alt-buyuk-kart/alt-buyuk-kart.component.ts","../../src/app/components/alt-buyuk-kart/alt-buyuk-kart.component.html","../../src/app/components/alt-buyuk-kart/limitng-alt-buyuk-kart.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\r\nimport { Component, computed, contentChild, input, numberAttribute, TemplateRef } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'alt-buyuk-kart',\r\n imports: [NgTemplateOutlet],\r\n templateUrl: 'alt-buyuk-kart.component.html',\r\n styleUrl: 'alt-buyuk-kart.component.scss',\r\n host: {\r\n '[style.width]': 'genislik()'\r\n }\r\n})\r\n\r\nexport class AltBuyukKartComponent {\r\n readonly baslik = input.required<string>();\r\n readonly baslikRenk = input.required<string>();\r\n\r\n readonly genislik = input<string>('40.5em');\r\n readonly yukseklik = input(21, { transform: numberAttribute });\r\n\r\n readonly baslikYukseklik = input(3, { transform: numberAttribute });\r\n readonly baslikFontSize = input(1, { transform: numberAttribute });\r\n\r\n readonly baslikUst = computed(() => this.yukseklik() - this.baslikYukseklik());\r\n\r\n sagIcerik: any;\r\n solIcerik: any;\r\n\r\n readonly sagAlt = contentChild<TemplateRef<any>>('sagAlt');\r\n readonly solAlt = contentChild<TemplateRef<any>>('solAlt');\r\n\r\n}\r\n","<div class=\"wrapper\" [style.height.rem]=\"yukseklik()\">\r\n <div class=\"alt-baslik\" [style.backgroundColor]=\"baslikRenk()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.top.rem]=\"baslikUst()\">\r\n </div>\r\n\r\n <div class=\"baslik-yazi\" [style.font-size.rem]=\"baslikFontSize()\" [style.height.rem]=\"baslikYukseklik()\"\r\n [style.color]=\"baslikRenk()\" [style.top.rem]=\"baslikUst()\">\r\n <b> {{ baslik() }} </b>\r\n </div>\r\n\r\n @if (sagAlt()) {\r\n <div class=\"sag-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"sagAlt(); context: {$implicit: sagIcerik}\">\r\n {{ sagIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n @if (solAlt()) {\r\n <div class=\"sol-alt\" [style.height.rem]=\"baslikYukseklik()\" [style.top.rem]=\"baslikUst()\">\r\n <ng-container *ngTemplateOutlet=\"solAlt(); context: {$implicit: solIcerik}\">\r\n {{ solIcerik }}\r\n </ng-container>\r\n </div>\r\n }\r\n <ng-content />\r\n</div>\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
@@ -29,6 +29,140 @@ class ExcelRaporuSonuc {
29
29
  }
30
30
  }
31
31
 
32
+ const TOKEN_DESENI = /\s*(\d+(?:\.\d+)?|[A-Za-z_]+|[()+\-*/,])/gy;
33
+ class ToplamFormuluHesaplayici {
34
+ constructor(formul) {
35
+ this.konum = 0;
36
+ this.tokenlar = ToplamFormuluHesaplayici.tokenlaraAyir(formul);
37
+ }
38
+ static hesapla(formul) {
39
+ try {
40
+ const hesaplayici = new ToplamFormuluHesaplayici(formul);
41
+ const sonuc = hesaplayici.ifade();
42
+ return hesaplayici.konum === hesaplayici.tokenlar.length && Number.isFinite(sonuc) ? sonuc : undefined;
43
+ }
44
+ catch {
45
+ return undefined;
46
+ }
47
+ }
48
+ static tokenlaraAyir(formul) {
49
+ const tokenlar = [];
50
+ TOKEN_DESENI.lastIndex = 0;
51
+ let eslesme = TOKEN_DESENI.exec(formul);
52
+ let okunan = 0;
53
+ while (eslesme) {
54
+ const deger = eslesme[1];
55
+ okunan = TOKEN_DESENI.lastIndex;
56
+ if (/^\d/.test(deger)) {
57
+ tokenlar.push({ deger, tur: 'sayi' });
58
+ }
59
+ else if (/^[A-Za-z_]/.test(deger)) {
60
+ tokenlar.push({ deger: deger.toUpperCase(), tur: 'ad' });
61
+ }
62
+ else {
63
+ tokenlar.push({ deger, tur: 'op' });
64
+ }
65
+ eslesme = TOKEN_DESENI.exec(formul);
66
+ }
67
+ if (formul.slice(okunan).trim()) {
68
+ throw new Error('Geçersiz formül');
69
+ }
70
+ return tokenlar;
71
+ }
72
+ ifade() {
73
+ let sonuc = this.terim();
74
+ while (this.sonrakiOperatorMu('+', '-')) {
75
+ const islem = this.tokenlar[this.konum++].deger;
76
+ const sag = this.terim();
77
+ sonuc = islem === '+' ? sonuc + sag : sonuc - sag;
78
+ }
79
+ return sonuc;
80
+ }
81
+ terim() {
82
+ let sonuc = this.birim();
83
+ while (this.sonrakiOperatorMu('*', '/')) {
84
+ const islem = this.tokenlar[this.konum++].deger;
85
+ const sag = this.birim();
86
+ if (islem === '/' && sag === 0) {
87
+ throw new Error('Sıfıra bölme');
88
+ }
89
+ sonuc = islem === '*' ? sonuc * sag : sonuc / sag;
90
+ }
91
+ return sonuc;
92
+ }
93
+ birim() {
94
+ const token = this.tokenlar[this.konum++];
95
+ if (!token) {
96
+ throw new Error('Beklenmeyen son');
97
+ }
98
+ if (token.tur === 'sayi') {
99
+ return Number(token.deger);
100
+ }
101
+ if (token.tur === 'op' && token.deger === '-') {
102
+ return -this.birim();
103
+ }
104
+ if (token.tur === 'op' && token.deger === '(') {
105
+ const sonuc = this.ifade();
106
+ this.operatorBekle(')');
107
+ return sonuc;
108
+ }
109
+ if (token.tur === 'ad') {
110
+ return this.fonksiyon(token.deger);
111
+ }
112
+ throw new Error('Geçersiz token');
113
+ }
114
+ fonksiyon(ad) {
115
+ this.operatorBekle('(');
116
+ if (ad === 'ABS') {
117
+ const sonuc = Math.abs(this.ifade());
118
+ this.operatorBekle(')');
119
+ return sonuc;
120
+ }
121
+ if (ad === 'IFERROR') {
122
+ const baslangic = this.konum;
123
+ let sonuc;
124
+ try {
125
+ sonuc = this.ifade();
126
+ }
127
+ catch {
128
+ this.konum = baslangic;
129
+ this.virguleKadarAtla();
130
+ }
131
+ this.operatorBekle(',');
132
+ const yedek = this.ifade();
133
+ this.operatorBekle(')');
134
+ return sonuc ?? yedek;
135
+ }
136
+ throw new Error(`Desteklenmeyen fonksiyon: ${ad}`);
137
+ }
138
+ virguleKadarAtla() {
139
+ let derinlik = 0;
140
+ while (this.konum < this.tokenlar.length) {
141
+ const { deger, tur } = this.tokenlar[this.konum];
142
+ if (tur === 'op' && deger === '(') {
143
+ derinlik++;
144
+ }
145
+ else if (tur === 'op' && deger === ')') {
146
+ derinlik--;
147
+ }
148
+ else if (tur === 'op' && deger === ',' && derinlik === 0) {
149
+ return;
150
+ }
151
+ this.konum++;
152
+ }
153
+ }
154
+ sonrakiOperatorMu(...operatorler) {
155
+ const token = this.tokenlar[this.konum];
156
+ return token?.tur === 'op' && operatorler.includes(token.deger);
157
+ }
158
+ operatorBekle(operator) {
159
+ const token = this.tokenlar[this.konum++];
160
+ if (token?.tur !== 'op' || token.deger !== operator) {
161
+ throw new Error(`Beklenen: ${operator}`);
162
+ }
163
+ }
164
+ }
165
+
32
166
  class JsonToExcelTableBuilder {
33
167
  constructor(table) {
34
168
  this.table = table;
@@ -69,7 +203,6 @@ class JsonToExcelSheetBuilder {
69
203
  ...(options.footer && { footer: options.footer }),
70
204
  ...(options.header && { header: options.header }),
71
205
  ...(options.sol !== undefined && { sol: options.sol }),
72
- ...(options.toplamDegerleri && { toplamDegerleri: options.toplamDegerleri }),
73
206
  ...(options.toplamEtiketi !== undefined && { toplamEtiketi: options.toplamEtiketi }),
74
207
  ...(options.toplamSatiri !== undefined && { toplamSatiri: options.toplamSatiri }),
75
208
  ...(options.ust !== undefined && { ust: options.ust })
@@ -147,11 +280,11 @@ class JsonToExcelParser {
147
280
  for (const worksheet of workbook.worksheets) {
148
281
  for (const tablo of worksheet.getTables()) {
149
282
  const formuller = new Map();
150
- tablo.table.columns.forEach((kolon, index) => {
283
+ for (const [index, kolon] of tablo.table.columns.entries()) {
151
284
  if (kolon.totalsRowFunction === 'custom' && kolon.totalsRowFormula) {
152
285
  formuller.set(index + 1, kolon.totalsRowFormula);
153
286
  }
154
- });
287
+ }
155
288
  if (formuller.size) {
156
289
  tabloFormulleri.set(tablo.table.name, formuller);
157
290
  }
@@ -160,24 +293,32 @@ class JsonToExcelParser {
160
293
  if (!tabloFormulleri.size) {
161
294
  return buffer;
162
295
  }
296
+ // Ekr: JSZip, sadece atılan excelde custom toplam formülü varsa(Fark % ağırlıklı oran hesaplaması gibi) çalışır.
163
297
  const zip = await JSZip.loadAsync(buffer);
164
- for (const dosyaAdi of Object.keys(zip.files).filter(ad => /^xl\/tables\/table\d+\.xml$/.test(ad))) {
298
+ const tabloDosyalari = Object.keys(zip.files).filter(ad => /^xl\/tables\/table\d+\.xml$/.test(ad));
299
+ await Promise.all(tabloDosyalari.map(async (dosyaAdi) => {
165
300
  const xml = await zip.file(dosyaAdi).async('string');
166
301
  const tabloAdi = /<table [^>]*?\bname="([^"]*)"/.exec(xml)?.[1];
167
302
  const formuller = tabloAdi ? tabloFormulleri.get(tabloAdi) : undefined;
168
303
  if (!formuller) {
169
- continue;
304
+ return;
170
305
  }
171
306
  const yeniXml = xml.replaceAll(/<tableColumn id="(\d+)"([^>]*?) totalsRowFunction="custom"([^>]*?)\/>/g, (eslesme, id, once, sonra) => {
172
307
  const formul = formuller.get(Number(id));
173
308
  return formul
174
- ? `<tableColumn id="${id}"${once} totalsRowFunction="custom"${sonra}><totalsRowFormula>${formul}</totalsRowFormula></tableColumn>`
309
+ ? `<tableColumn id="${id}"${once} totalsRowFunction="custom"${sonra}><totalsRowFormula>${this.xmlKacis(formul)}</totalsRowFormula></tableColumn>`
175
310
  : eslesme;
176
311
  });
177
312
  zip.file(dosyaAdi, yeniXml);
178
- }
313
+ }));
179
314
  return zip.generateAsync({ type: 'arraybuffer' });
180
315
  }
316
+ static xmlKacis(metin) {
317
+ return metin
318
+ .replaceAll('&', '&amp;')
319
+ .replaceAll('<', '&lt;')
320
+ .replaceAll('>', '&gt;');
321
+ }
181
322
  static standartPageSetupOlustur() {
182
323
  return {
183
324
  bottomMargin: 1,
@@ -453,6 +594,7 @@ class JsonToExcelParser {
453
594
  const headerTitlelari = table.columns.map(column => this.baslikMetniniHazirla(column.header.title || ''));
454
595
  const gorunenBaslikMetinleri = headerTitlelari.map(title => title.replaceAll('\n', ' '));
455
596
  const tabloKolonAdlari = this.benzersizKolonAdlariOlustur(gorunenBaslikMetinleri);
597
+ const tabloAdi = this.tabloAdiOlustur(worksheet.name, startRow, startCol);
456
598
  const headerFont = table.header?.font;
457
599
  const uygulanacakHeaderFont = headerFont?.color ? headerFont : {
458
600
  ...headerFont,
@@ -479,7 +621,7 @@ class JsonToExcelParser {
479
621
  const bosSatirEklendi = satirlar.length === 0;
480
622
  const tabloSatirlari = bosSatirEklendi ? [table.columns.map(() => '')] : satirlar;
481
623
  worksheet.addTable({
482
- name: this.tabloAdiOlustur(worksheet.name, startRow, startCol),
624
+ name: tabloAdi,
483
625
  ref: worksheet.getCell(startRow, startCol).address,
484
626
  headerRow: true,
485
627
  totalsRow: toplamSatiriVar,
@@ -487,7 +629,9 @@ class JsonToExcelParser {
487
629
  columns: tabloKolonAdlari.map((ad, index) => ({
488
630
  name: ad,
489
631
  filterButton: true,
490
- ...(toplamSatiriVar && this.toplamSatiriEtiketiVer(toplamHucreleri[index]?.deger, index, this.sayisalKolonMu(table.columns[index]?.arrayType), this.toplamDegeriVerilmisMi(table, index)))
632
+ ...(toplamSatiriVar && this.toplamSatiriKolonuVer(toplamHucreleri[index]?.deger, index, this.toplamFonksiyonuVer(table.columns[index]), table.columns[index].toplamFormulu
633
+ ? this.toplamFormuluExcelMetniVer(table, table.columns[index].toplamFormulu, tabloAdi, tabloKolonAdlari)
634
+ : undefined))
491
635
  })),
492
636
  rows: tabloSatirlari
493
637
  });
@@ -649,44 +793,76 @@ class JsonToExcelParser {
649
793
  if (colIndex === 0) {
650
794
  return { deger: table.toplamEtiketi ?? 'Toplam' };
651
795
  }
652
- if (this.toplamDegeriVerilmisMi(table, colIndex)) {
653
- return { deger: table.toplamDegerleri[column.property] ?? null };
796
+ if (column.toplamFormulu) {
797
+ return { deger: this.toplamFormuluSonucuVer(table, column.toplamFormulu) ?? null };
654
798
  }
655
- if (!this.sayisalKolonMu(column.arrayType)) {
799
+ const fonksiyon = this.toplamFonksiyonuVer(column);
800
+ if (!fonksiyon) {
656
801
  return { deger: null };
657
802
  }
658
- let toplam = 0;
659
- for (const row of table.collection) {
660
- const sayi = Number(row[column.property]);
661
- if (Number.isFinite(sayi)) {
662
- toplam += sayi;
663
- }
803
+ const { adet, toplam } = this.kolonToplaminiVer(table, column.property);
804
+ if (fonksiyon === 'average') {
805
+ return { deger: adet ? toplam / adet : 0 };
664
806
  }
665
807
  return { deger: toplam };
666
808
  });
667
809
  }
668
- static toplamDegeriVerilmisMi(table, kolonIndex) {
669
- const property = table.columns[kolonIndex]?.property;
670
- return kolonIndex > 0 && !!table.toplamDegerleri && property !== undefined && property in table.toplamDegerleri;
810
+ static kolonToplaminiVer(table, property) {
811
+ let toplam = 0;
812
+ let adet = 0;
813
+ for (const row of table.collection) {
814
+ const hamDeger = row[property];
815
+ const sayi = Number(hamDeger);
816
+ if (hamDeger !== null && hamDeger !== undefined && hamDeger !== '' && Number.isFinite(sayi)) {
817
+ toplam += sayi;
818
+ adet++;
819
+ }
820
+ }
821
+ return { adet, toplam };
822
+ }
823
+ static toplamFormulundekiKolonlariVer(table, formul) {
824
+ const properties = [...formul.matchAll(/\{([^{}]+)\}/g)].map(eslesme => eslesme[1]);
825
+ const tumKolonlarVar = properties.every(property => table.columns.some(kolon => kolon.property === property));
826
+ return properties.length && tumKolonlarVar ? properties : undefined;
671
827
  }
672
- static toplamSatiriEtiketiVer(deger, kolonIndex, sayisal, ozelDeger) {
673
- if (kolonIndex === 0) {
674
- const etiket = typeof deger === 'string' || typeof deger === 'number' ? String(deger) : '';
675
- return { totalsRowLabel: etiket };
828
+ static toplamFormuluSonucuVer(table, formul) {
829
+ if (!this.toplamFormulundekiKolonlariVer(table, formul)) {
830
+ return undefined;
676
831
  }
677
- if (ozelDeger) {
678
- if (typeof deger === 'number' && Number.isFinite(deger)) {
679
- return { totalsRowFunction: 'custom', totalsRowFormula: String(deger), totalsRowResult: deger };
680
- }
681
- return typeof deger === 'string' && deger !== '' ? { totalsRowLabel: deger } : undefined;
832
+ const sayisalFormul = formul.replaceAll(/\{([^{}]+)\}/g, (_eslesme, property) => {
833
+ const { toplam } = this.kolonToplaminiVer(table, property);
834
+ return toplam < 0 ? `(${toplam})` : String(toplam);
835
+ });
836
+ return ToplamFormuluHesaplayici.hesapla(sayisalFormul);
837
+ }
838
+ static toplamFormuluExcelMetniVer(table, formul, tabloAdi, kolonAdlari) {
839
+ if (!this.toplamFormulundekiKolonlariVer(table, formul)) {
840
+ return undefined;
841
+ }
842
+ return formul.replaceAll(/\{([^{}]+)\}/g, (_eslesme, property) => {
843
+ const kolonAdi = kolonAdlari[table.columns.findIndex(kolon => kolon.property === property)];
844
+ const kacisliAd = kolonAdi.replaceAll(/[[\]#']/g, '\'$&');
845
+ return `SUBTOTAL(109,${tabloAdi}[${kacisliAd}])`;
846
+ });
847
+ }
848
+ static toplamFonksiyonuVer(column) {
849
+ if (column.toplamFonksiyonu === 'none' || column.toplamFormulu) {
850
+ return undefined;
682
851
  }
683
- if (sayisal) {
684
- return { totalsRowFunction: 'sum' };
852
+ return column.toplamFonksiyonu ?? (this.sayisalKolonMu(column.arrayType) ? 'sum' : undefined);
853
+ }
854
+ static toplamSatiriKolonuVer(deger, kolonIndex, fonksiyon, excelFormulu) {
855
+ if (kolonIndex === 0) {
856
+ return { totalsRowLabel: typeof deger === 'string' ? deger : '' };
685
857
  }
686
- if (typeof deger === 'string' && deger !== '') {
687
- return { totalsRowLabel: deger };
858
+ if (excelFormulu) {
859
+ return {
860
+ totalsRowFormula: excelFormulu,
861
+ totalsRowFunction: 'custom',
862
+ ...(typeof deger === 'number' && { totalsRowResult: deger })
863
+ };
688
864
  }
689
- return undefined;
865
+ return fonksiyon ? { totalsRowFunction: fonksiyon } : undefined;
690
866
  }
691
867
  static toplamSatiriniYaz(worksheet, sonuc, table, toplamHucreleri, satirNo, startCol) {
692
868
  const wsRow = worksheet.getRow(satirNo);
@@ -1 +1 @@
1
- {"version":3,"file":"limitng-blob-response-handler.mjs","sources":["../../src/app/components/blob-response-handler/models/excelRaporuSonuc.ts","../../src/app/components/blob-response-handler/models/jsonToExcelParser.ts","../../src/app/components/blob-response-handler/blob-response-handler.service.ts","../../src/app/components/blob-response-handler/limitng-blob-response-handler.ts"],"sourcesContent":["import { VariableType } from 'limitng/api/models/fourDConstants';\r\nimport { XLHAlign, XLVAlign } from 'limitng/api/models/xl/xlConstants';\r\n\r\nexport type ExcelHucreDegeri = boolean | Date | number | string | null | undefined;\r\n\r\nexport class ExcelRaporuSonuc {\r\n book: IExcelRaporuBook = {\r\n author: 'MedPlan',\r\n activeSheetNo: 1\r\n };\r\n\r\n logo?: IExcelRaporuLogo;\r\n\r\n defaultFont: IExcelRaporuDefaultFont = {\r\n name: 'Calibri',\r\n size: 11\r\n };\r\n\r\n currentTableStyle = '';\r\n currentTable?: number;\r\n dosyaAdi?: string;\r\n sifirlariBasmaSayi = false;\r\n sifirlariBasmaTarih = false;\r\n\r\n // Eski format: üst bilgiler, notlar ve tablolar üst seviyede gelir\r\n ustBilgiler?: IExcelRaporuUstBilgiSatiri[];\r\n ustBilgi?: IExcelRaporuUstBilgiAyari;\r\n not?: IExcelRaporuNotAyari;\r\n notlar?: string[];\r\n tables?: IExcelRaporuTable[];\r\n\r\n // Yeni format: her sheet kendi tablolarını, üst bilgilerini ve notlarını taşır\r\n sheets: IExcelRaporuSheet[] = [];\r\n\r\n window: IExcelRaporuWindow = {\r\n displayGridLines: false\r\n };\r\n}\r\n\r\ninterface IExcelRaporuFont {\r\n name?: string;\r\n size?: number;\r\n color?: string;\r\n style?: number;\r\n}\r\n\r\ninterface IExcelRaporuDefaultFont {\r\n name: string;\r\n size: number;\r\n}\r\n\r\ninterface IExcelRaporuLogo {\r\n genislik?: number;\r\n yukseklik?: number;\r\n ustMarjin?: number;\r\n solMarjin?: number;\r\n ebatPixelmi?: boolean;\r\n ebat?: string;\r\n konum?: string;\r\n}\r\n\r\ninterface IExcelRaporuBook {\r\n author: string;\r\n activeSheetNo: number;\r\n subject?: string;\r\n comments?: string;\r\n}\r\n\r\ninterface IExcelRaporuWindow {\r\n displayGridLines: boolean;\r\n}\r\n\r\ninterface IExcelRaporuUstBilgiSatiri {\r\n rowNo?: number;\r\n ustBilgi: string;\r\n font?: IExcelRaporuFont;\r\n}\r\n\r\ninterface IExcelRaporuUstBilgiAyari {\r\n font?: IExcelRaporuFont;\r\n columnFontColors?: string[];\r\n columnFontStyles?: string[];\r\n}\r\n\r\ninterface IExcelRaporuNotAyari {\r\n font?: IExcelRaporuFont;\r\n}\r\n\r\ninterface IExcelRaporuBorder {\r\n type: string;\r\n lineStyle: string;\r\n weight: string;\r\n color: string;\r\n}\r\n\r\ninterface IExcelRaporuInterior {\r\n color: string;\r\n}\r\n\r\ninterface IExcelRaporuTableBand {\r\n basilacak?: boolean;\r\n satirSayisi?: number;\r\n ustBosluk?: number;\r\n font?: IExcelRaporuFont;\r\n interior?: IExcelRaporuInterior;\r\n border?: IExcelRaporuBorder;\r\n}\r\n\r\ninterface IExcelRaporuTableData {\r\n font?: IExcelRaporuFont;\r\n interior?: IExcelRaporuInterior;\r\n border?: IExcelRaporuBorder;\r\n}\r\n\r\ninterface IExcelRaporuColumnGroup {\r\n groupEnd: string;\r\n groupName: string;\r\n groupStart: string;\r\n}\r\n\r\ninterface IExcelRaporuTableColumnHeader {\r\n title: string;\r\n horizontalAlignment?: XLHAlign;\r\n verticalAlignment?: XLVAlign;\r\n}\r\n\r\ninterface IExcelRaporuTableColumnFooter {\r\n isFunction?: boolean;\r\n function?: number;\r\n title?: string;\r\n horizontalAlignment?: XLHAlign;\r\n verticalAlignment?: XLVAlign;\r\n}\r\n\r\nexport interface IExcelRaporuTableColumn {\r\n property: string;\r\n arrayType?: VariableType;\r\n header: IExcelRaporuTableColumnHeader;\r\n footer?: IExcelRaporuTableColumnFooter;\r\n horizontalAlignment?: XLHAlign;\r\n verticalAlignment?: XLVAlign;\r\n format?: number;\r\n width?: number;\r\n columnNo?: number;\r\n htmlKoduGelebilir?: boolean;\r\n farkRenkli?: boolean;\r\n}\r\n\r\ninterface IExcelRaporuSatirRenkBilgisi {\r\n color: string;\r\n rowNo: number;\r\n}\r\n\r\ninterface IExcelRaporuSatirYuksekligi {\r\n height: number;\r\n rowNo: number;\r\n}\r\n\r\ninterface IExcelRaporuKolonRenkBilgisi {\r\n color: string;\r\n columnNo: number;\r\n}\r\n\r\ninterface IExcelRaporuTable {\r\n columns: IExcelRaporuTableColumn[];\r\n columnGroup?: IExcelRaporuColumnGroup[];\r\n header?: IExcelRaporuTableBand;\r\n data?: IExcelRaporuTableData;\r\n footer?: IExcelRaporuTableBand;\r\n tableNo?: number;\r\n collection: Record<string, ExcelHucreDegeri>[];\r\n sol?: number;\r\n ust?: number;\r\n veriKaynagi?: string;\r\n sheetName?: string;\r\n hiddenRows?: number[];\r\n sort?: number[];\r\n rows?: string[];\r\n autoFit?: boolean;\r\n toplamSatiri?: boolean;\r\n toplamEtiketi?: string;\r\n toplamDegerleri?: Record<string, ExcelHucreDegeri>;\r\n columnFontNames?: string[];\r\n columnFontSizes?: number[];\r\n columnFontColors?: string[];\r\n columnFontStyles?: number[];\r\n columnInteriorColors?: Array<string | IExcelRaporuKolonRenkBilgisi>;\r\n columnHeaderFontNames?: string[];\r\n columnHeaderFontSizes?: number[];\r\n columnHeaderFontColors?: string[];\r\n columnHeaderFontStyles?: number[];\r\n columnHeaderInteriorColors?: string[];\r\n columnFooterFontNames?: string[];\r\n columnFooterFontSizes?: number[];\r\n columnFooterFontColors?: string[];\r\n columnFooterFontStyles?: number[];\r\n columnFooterInteriorColors?: string[];\r\n rowFontNames?: string[];\r\n rowFontSizes?: number[];\r\n rowFontColors?: IExcelRaporuSatirRenkBilgisi[];\r\n rowFontStyles?: number[];\r\n rowInteriorColors?: IExcelRaporuSatirRenkBilgisi[];\r\n rowHeights?: IExcelRaporuSatirYuksekligi[];\r\n rowFormats?: string[];\r\n rowHorizontalAlignments?: XLHAlign[];\r\n rowVerticalAlignments?: XLVAlign[];\r\n cellFontNames?: string[];\r\n cellFontSizes?: number[];\r\n cellFontColors?: string[];\r\n cellFontStyles?: number[];\r\n cellInteriorColors?: string[];\r\n cellFormats?: string[];\r\n cellHorizontalAlignments?: XLHAlign[];\r\n cellVerticalAlignments?: XLVAlign[];\r\n rangeFontNames?: string[];\r\n rangeFontSizes?: number[];\r\n rangeFontColors?: string[];\r\n rangeFontStyles?: number[];\r\n rangeInteriorColors?: string[];\r\n rangeFormats?: string[];\r\n rangeHorizontalAlignments?: XLHAlign[];\r\n rangeVerticalAlignments?: XLVAlign[];\r\n}\r\n\r\ninterface IExcelRaporuPageSetup {\r\n orientation?: number;\r\n leftMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n rightMargin?: number;\r\n headerMargin?: number;\r\n footerMargin?: number;\r\n centerHorizontally?: boolean;\r\n centerVertically?: boolean;\r\n centerHeader?: string;\r\n leftHeader?: string;\r\n rightHeader?: string;\r\n centerFooter?: string;\r\n leftFooter?: string;\r\n rightFooter?: string;\r\n fitToPagesTall?: number;\r\n fitToPagesWide?: number;\r\n fitToPagesTAut?: boolean;\r\n fitToPagesWAut?: boolean;\r\n zoom?: boolean | number;\r\n printArea?: string;\r\n printAreaVar?: string;\r\n}\r\n\r\ninterface IExcelRaporuSheet {\r\n sheetNo?: number;\r\n sheetName?: string;\r\n zoom?: number;\r\n tables?: IExcelRaporuTable[];\r\n ustBilgi?: IExcelRaporuUstBilgiAyari;\r\n ustBilgiler?: IExcelRaporuUstBilgiSatiri[];\r\n notlar?: string[];\r\n not?: IExcelRaporuNotAyari;\r\n pageSetup?: IExcelRaporuPageSetup;\r\n}\r\n","import ExcelJS from 'exceljs';\r\nimport saveAs from 'file-saver';\r\nimport JSZip from 'jszip';\r\nimport { FontStyle, NumberFormatlar, VariableType } from 'limitng/api/models/fourDConstants';\r\nimport { XLHAlign, XLVAlign } from 'limitng/api/models/xl/xlConstants';\r\nimport { ExcelRaporuSonuc } from './excelRaporuSonuc';\r\n\r\ntype TExcelTable = NonNullable<ExcelRaporuSonuc['tables']>[number];\r\ntype TExcelBook = ExcelRaporuSonuc['book'];\r\ntype TExcelTableColumn = TExcelTable['columns'][number];\r\ntype TExcelTableColumnInput = Omit<TExcelTableColumn, 'arrayType'> & Partial<Pick<TExcelTableColumn, 'arrayType'>>;\r\ntype TExcelTableRow = TExcelTable['collection'][number];\r\ntype TExcelSheet = ExcelRaporuSonuc['sheets'][number];\r\ntype TExcelPageSetup = NonNullable<TExcelSheet['pageSetup']>;\r\ntype TExcelUstBilgi = NonNullable<ExcelRaporuSonuc['ustBilgiler']>[number];\r\ntype TDefaultFont = ExcelRaporuSonuc['defaultFont'];\r\n\r\ninterface IExcelFont {\r\n color?: string;\r\n name?: string;\r\n size?: number;\r\n style?: number;\r\n}\r\n\r\ninterface ISheetGrup {\r\n sheetName: string;\r\n sheetNo?: number;\r\n tables: TExcelTable[];\r\n}\r\n\r\ninterface IHazirHucreDegeri {\r\n deger: ExcelJS.CellValue;\r\n fontColorArgb?: string;\r\n}\r\n\r\nexport interface IJsonToExcelSheetOptions {\r\n pageSetup?: TExcelSheet['pageSetup'];\r\n zoom?: number;\r\n}\r\n\r\nexport interface IJsonToExcelTableOptions {\r\n autoFit?: TExcelTable['autoFit'];\r\n data?: TExcelTable['data'];\r\n footer?: TExcelTable['footer'];\r\n header?: TExcelTable['header'];\r\n sol?: TExcelTable['sol'];\r\n toplamDegerleri?: TExcelTable['toplamDegerleri'];\r\n toplamEtiketi?: TExcelTable['toplamEtiketi'];\r\n toplamSatiri?: TExcelTable['toplamSatiri'];\r\n ust?: TExcelTable['ust'];\r\n}\r\n\r\nexport class JsonToExcelTableBuilder<TRow extends TExcelTableRow = TExcelTableRow> {\r\n constructor(private readonly table: TExcelTable) {}\r\n\r\n addColumn(column: TExcelTableColumnInput): this {\r\n this.table.columns.push({\r\n arrayType: VariableType.text,\r\n ...column\r\n });\r\n return this;\r\n }\r\n\r\n setRows(rows: TRow[]): this {\r\n this.table.collection = rows;\r\n return this;\r\n }\r\n\r\n setStartColumn(sol: number): this {\r\n this.table.sol = sol;\r\n return this;\r\n }\r\n\r\n setStartRow(ust: number): this {\r\n this.table.ust = ust;\r\n return this;\r\n }\r\n\r\n getColumnSayisi(): number {\r\n return this.table.columns.length;\r\n }\r\n}\r\n\r\nexport class JsonToExcelSheetBuilder {\r\n constructor(private readonly sheet: TExcelSheet) {}\r\n\r\n addTable<TRow extends TExcelTableRow = TExcelTableRow>(\r\n rows: TRow[],\r\n options: IJsonToExcelTableOptions = {}\r\n ): JsonToExcelTableBuilder<TRow> {\r\n const table: TExcelTable = {\r\n collection: rows,\r\n columns: [],\r\n ...(options.autoFit !== undefined && { autoFit: options.autoFit }),\r\n ...(options.data && { data: options.data }),\r\n ...(options.footer && { footer: options.footer }),\r\n ...(options.header && { header: options.header }),\r\n ...(options.sol !== undefined && { sol: options.sol }),\r\n ...(options.toplamDegerleri && { toplamDegerleri: options.toplamDegerleri }),\r\n ...(options.toplamEtiketi !== undefined && { toplamEtiketi: options.toplamEtiketi }),\r\n ...(options.toplamSatiri !== undefined && { toplamSatiri: options.toplamSatiri }),\r\n ...(options.ust !== undefined && { ust: options.ust })\r\n };\r\n\r\n this.sheet.tables ??= [];\r\n this.sheet.tables.push(table);\r\n\r\n return new JsonToExcelTableBuilder<TRow>(table);\r\n }\r\n\r\n addUstBilgi(ustBilgi: string, font?: TExcelUstBilgi['font']): this {\r\n this.sheet.ustBilgiler ??= [];\r\n this.sheet.ustBilgiler.push(JsonToExcelParser.ustBilgiEkle(ustBilgi, font));\r\n return this;\r\n }\r\n\r\n getUstBilgiSayisi(): number {\r\n return this.sheet.ustBilgiler?.length ?? 0;\r\n }\r\n\r\n getSheetNo(): number | undefined {\r\n return this.sheet.sheetNo;\r\n }\r\n\r\n setSheetName(sheetName: string): this {\r\n this.sheet.sheetName = sheetName;\r\n return this;\r\n }\r\n\r\n setZoom(zoom: number): this {\r\n this.sheet.zoom = zoom;\r\n return this;\r\n }\r\n}\r\n\r\nexport class JsonToExcelReportBuilder {\r\n private readonly sonuc = new ExcelRaporuSonuc();\r\n\r\n addSheet(sheetName: string, options: IJsonToExcelSheetOptions = {}): JsonToExcelSheetBuilder {\r\n const sheet: TExcelSheet = {\r\n sheetName,\r\n sheetNo: this.sonuc.sheets.length + 1,\r\n ...(options.pageSetup && { pageSetup: options.pageSetup }),\r\n ...(options.zoom !== undefined && { zoom: options.zoom })\r\n };\r\n\r\n this.sonuc.sheets.push(sheet);\r\n\r\n return new JsonToExcelSheetBuilder(sheet);\r\n }\r\n\r\n build(): ExcelRaporuSonuc {\r\n return this.sonuc;\r\n }\r\n\r\n setAuthor(author: string): this {\r\n this.sonuc.book.author = author;\r\n return this;\r\n }\r\n\r\n setCurrentTableStyle(currentTableStyle: string): this {\r\n this.sonuc.currentTableStyle = currentTableStyle;\r\n return this;\r\n }\r\n\r\n setSubject(subject: string): this {\r\n this.sonuc.book.subject = subject;\r\n return this;\r\n }\r\n}\r\n\r\nexport class JsonToExcelParser {\r\n static async indir(sonuc: ExcelRaporuSonuc, dosyaAdi: string): Promise<void> {\r\n const blob = await this.blobOlustur(sonuc);\r\n const normalizeDosyaAdi = this.dosyaAdiDuzenle(dosyaAdi);\r\n saveAs(blob, `${normalizeDosyaAdi}.xlsx`);\r\n }\r\n\r\n static async blobOlustur(sonuc: ExcelRaporuSonuc): Promise<Blob> {\r\n const workbook = this.workbookOlustur(sonuc);\r\n const buffer = await workbook.xlsx.writeBuffer();\r\n const duzeltilmisBuffer = await this.toplamSatiriFormulleriniYaz(workbook, buffer);\r\n\r\n return new Blob([duzeltilmisBuffer], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n });\r\n }\r\n\r\n private static async toplamSatiriFormulleriniYaz(workbook: ExcelJS.Workbook, buffer: ExcelJS.Buffer): Promise<ExcelJS.Buffer> {\r\n const tabloFormulleri = new Map<string, Map<number, string>>();\r\n for (const worksheet of workbook.worksheets) {\r\n for (const tablo of worksheet.getTables() as unknown as Array<{ table: { name: string; columns: Array<{ totalsRowFormula?: string; totalsRowFunction?: string }> } }>) {\r\n const formuller = new Map<number, string>();\r\n tablo.table.columns.forEach((kolon, index) => {\r\n if (kolon.totalsRowFunction === 'custom' && kolon.totalsRowFormula) {\r\n formuller.set(index + 1, kolon.totalsRowFormula);\r\n }\r\n });\r\n if (formuller.size) {\r\n tabloFormulleri.set(tablo.table.name, formuller);\r\n }\r\n }\r\n }\r\n\r\n if (!tabloFormulleri.size) {\r\n return buffer;\r\n }\r\n\r\n const zip = await JSZip.loadAsync(buffer);\r\n for (const dosyaAdi of Object.keys(zip.files).filter(ad => /^xl\\/tables\\/table\\d+\\.xml$/.test(ad))) {\r\n const xml = await zip.file(dosyaAdi)!.async('string');\r\n const tabloAdi = /<table [^>]*?\\bname=\"([^\"]*)\"/.exec(xml)?.[1];\r\n const formuller = tabloAdi ? tabloFormulleri.get(tabloAdi) : undefined;\r\n if (!formuller) {\r\n continue;\r\n }\r\n\r\n const yeniXml = xml.replaceAll(\r\n /<tableColumn id=\"(\\d+)\"([^>]*?) totalsRowFunction=\"custom\"([^>]*?)\\/>/g,\r\n (eslesme, id: string, once: string, sonra: string) => {\r\n const formul = formuller.get(Number(id));\r\n return formul\r\n ? `<tableColumn id=\"${id}\"${once} totalsRowFunction=\"custom\"${sonra}><totalsRowFormula>${formul}</totalsRowFormula></tableColumn>`\r\n : eslesme;\r\n }\r\n );\r\n zip.file(dosyaAdi, yeniXml);\r\n }\r\n\r\n return zip.generateAsync({ type: 'arraybuffer' });\r\n }\r\n\r\n static standartPageSetupOlustur(): TExcelPageSetup {\r\n return {\r\n bottomMargin: 1,\r\n centerHorizontally: true,\r\n centerVertically: true,\r\n fitToPagesTall: 1,\r\n fitToPagesWide: 1,\r\n leftMargin: 1,\r\n orientation: 2,\r\n rightMargin: 1,\r\n topMargin: 1\r\n };\r\n }\r\n\r\n static ustBilgiEkle(ustBilgi: string, font?: TExcelUstBilgi['font']): TExcelUstBilgi {\r\n return font ? { font, ustBilgi } : { ustBilgi };\r\n }\r\n\r\n static raporOlustur(): JsonToExcelReportBuilder {\r\n return new JsonToExcelReportBuilder();\r\n }\r\n\r\n private static workbookOlustur(sonuc: ExcelRaporuSonuc): ExcelJS.Workbook {\r\n const workbook = new ExcelJS.Workbook();\r\n workbook.created = new Date();\r\n workbook.calcProperties.fullCalcOnLoad = true;\r\n\r\n const gridLinesGorunur = sonuc.window.displayGridLines;\r\n\r\n if (this.yeniYapiMi(sonuc)) {\r\n workbook.creator = sonuc.book.author || 'MedPlan';\r\n workbook.subject = '';\r\n workbook.description = '';\r\n this.yeniFormatSheetsYaz(workbook, sonuc, gridLinesGorunur);\r\n } else {\r\n workbook.creator = sonuc.book.author || 'MedPlan';\r\n workbook.subject = this.konuVer(sonuc.book, sonuc.ustBilgiler?.[0]?.ustBilgi);\r\n workbook.description = sonuc.book.comments || '';\r\n this.eskiFormatSheetsYaz(workbook, sonuc, gridLinesGorunur);\r\n }\r\n\r\n this.aktifSayfayiAyarla(workbook, sonuc.book.activeSheetNo, workbook.worksheets.length);\r\n\r\n return workbook;\r\n }\r\n\r\n private static yeniYapiMi(sonuc: ExcelRaporuSonuc): boolean {\r\n const ilkSheet = sonuc.sheets[0] as unknown as { tables?: unknown };\r\n if (Array.isArray(ilkSheet?.tables)) {\r\n return true;\r\n }\r\n\r\n const runtimeSonuc = sonuc as unknown as { tables?: unknown };\r\n\r\n return !Array.isArray(runtimeSonuc.tables);\r\n }\r\n\r\n private static yeniFormatSheetsYaz(workbook: ExcelJS.Workbook, sonuc: ExcelRaporuSonuc, gridLinesGorunur: boolean): void {\r\n for (let index = 0; index < sonuc.sheets.length; index++) {\r\n const sheet = sonuc.sheets[index]!;\r\n const sheetAdi = this.sayfaAdiDuzenle(sheet.sheetName || 'Rapor', index + 1);\r\n const worksheet = workbook.addWorksheet(sheetAdi);\r\n const zoomScale = sheet.zoom && sheet.zoom > 0 ? sheet.zoom : undefined;\r\n worksheet.views = [{ showGridLines: gridLinesGorunur, ...(zoomScale !== undefined && { zoomScale }) }];\r\n this.sayfaDuzeniniBelirle(worksheet, sheet);\r\n\r\n const ustBilgiler = sheet.ustBilgiler ?? [];\r\n this.yeniFormatUstBilgileriYaz(worksheet, ustBilgiler, sonuc.defaultFont);\r\n\r\n let sonSatir = ustBilgiler.length + 1;\r\n for (const table of sheet.tables ?? []) {\r\n sonSatir = Math.max(sonSatir, this.tabloyuYaz(worksheet, sonuc, table));\r\n }\r\n\r\n if (sheet.notlar?.length) {\r\n this.notlariYazList(worksheet, sheet.notlar, sheet.not?.font, sonSatir + 2, sonuc.defaultFont);\r\n }\r\n }\r\n\r\n if (sonuc.sheets.length === 0) {\r\n const worksheet = workbook.addWorksheet('Rapor');\r\n worksheet.views = [{ showGridLines: gridLinesGorunur }];\r\n }\r\n }\r\n\r\n private static eskiFormatSheetsYaz(workbook: ExcelJS.Workbook, sonuc: ExcelRaporuSonuc, gridLinesGorunur: boolean): void {\r\n const tablesBySheet = this.sheetBazliTablolar(sonuc);\r\n const ustBilgiler = sonuc.ustBilgiler ?? [];\r\n const notlar = sonuc.notlar ?? [];\r\n\r\n for (const sheetGrup of tablesBySheet) {\r\n const worksheet = workbook.addWorksheet(sheetGrup.sheetName);\r\n worksheet.views = [{ showGridLines: gridLinesGorunur }];\r\n\r\n this.ustBilgileriYaz(worksheet, ustBilgiler, sonuc.defaultFont);\r\n\r\n let sonSatir = 1;\r\n for (const table of sheetGrup.tables) {\r\n sonSatir = Math.max(sonSatir, this.tabloyuYaz(worksheet, sonuc, table));\r\n }\r\n\r\n this.notlariYazList(worksheet, notlar, sonuc.not?.font, sonSatir + 2, sonuc.defaultFont);\r\n }\r\n\r\n if (tablesBySheet.length === 0) {\r\n const worksheet = workbook.addWorksheet(this.bosRaporSheetAdiniVer(sonuc));\r\n worksheet.views = [{ showGridLines: gridLinesGorunur }];\r\n this.ustBilgileriYaz(worksheet, ustBilgiler, sonuc.defaultFont);\r\n this.notlariYazList(worksheet, notlar, sonuc.not?.font, ustBilgiler.length + 2, sonuc.defaultFont);\r\n }\r\n }\r\n\r\n private static sheetBazliTablolar(sonuc: ExcelRaporuSonuc): ISheetGrup[] {\r\n const grouped = new Map<string, ISheetGrup>();\r\n\r\n for (const table of sonuc.tables ?? []) {\r\n const sheetNo = this.tableSheetNoVer(table);\r\n const sheetKey = this.sheetKeyVer(table, sheetNo, grouped.size + 1);\r\n const existing = grouped.get(sheetKey);\r\n\r\n if (existing) {\r\n existing.tables.push(table);\r\n continue;\r\n }\r\n\r\n grouped.set(sheetKey, {\r\n sheetName: this.sheetAdiniBelirle(sonuc, table, grouped.size + 1, sheetNo),\r\n ...(sheetNo !== undefined && { sheetNo }),\r\n tables: [table]\r\n });\r\n }\r\n\r\n return Array.from(grouped.values()).sort((a, b) => this.sheetGrupSirasiVer(a) - this.sheetGrupSirasiVer(b));\r\n }\r\n\r\n private static tableSheetNoVer(table: TExcelTable): number | undefined {\r\n const runtimeTable = table as TExcelTable & { sheetNo?: number };\r\n\r\n return runtimeTable.sheetNo;\r\n }\r\n\r\n private static sheetKeyVer(table: TExcelTable, sheetNo: number | undefined, index: number): string {\r\n if (sheetNo !== undefined) {\r\n return `sheet-no-${sheetNo}`;\r\n }\r\n\r\n const eskiSheetName = table.sheetName?.trim();\r\n if (eskiSheetName) {\r\n return `sheet-name-${eskiSheetName}`;\r\n }\r\n\r\n return `sheet-index-${index}`;\r\n }\r\n\r\n private static sheetAdiniBelirle(\r\n sonuc: ExcelRaporuSonuc,\r\n table: TExcelTable,\r\n index: number,\r\n sheetNo: number | undefined\r\n ): string {\r\n const jsonSheet = this.jsonSheetBul(sonuc.sheets, sheetNo, index);\r\n if (jsonSheet?.sheetName?.trim()) {\r\n return this.sayfaAdiDuzenle(jsonSheet.sheetName, index);\r\n }\r\n\r\n return this.sayfaAdiDuzenle(table.sheetName || 'Rapor', index);\r\n }\r\n\r\n private static jsonSheetBul(\r\n sheets: TExcelSheet[],\r\n sheetNo: number | undefined,\r\n index: number\r\n ): TExcelSheet | undefined {\r\n if (sheetNo !== undefined) {\r\n return sheets.find(sheet => sheet.sheetNo === sheetNo);\r\n }\r\n\r\n return sheets.find(sheet => sheet.sheetNo === index) ?? sheets[index - 1];\r\n }\r\n\r\n private static konuVer(book: TExcelBook, ilkUstBilgi: string | undefined): string {\r\n return book.subject || ilkUstBilgi || 'Rapor';\r\n }\r\n\r\n private static bosRaporSheetAdiniVer(sonuc: ExcelRaporuSonuc): string {\r\n const ilkSheetAdi = sonuc.sheets[0]?.sheetName;\r\n\r\n return this.sayfaAdiDuzenle(ilkSheetAdi || 'Rapor', 1);\r\n }\r\n\r\n private static aktifSayfayiAyarla(workbook: ExcelJS.Workbook, activeSheetNo: number, toplamSheetSayisi: number) {\r\n const aktifTab = this.aktifTabNoVer(activeSheetNo, toplamSheetSayisi);\r\n if (aktifTab === undefined) {\r\n return;\r\n }\r\n\r\n workbook.views = [{\r\n activeTab: aktifTab,\r\n firstSheet: aktifTab,\r\n height: 20000,\r\n visibility: 'visible',\r\n width: 20000,\r\n x: 0,\r\n y: 0\r\n }];\r\n }\r\n\r\n private static aktifTabNoVer(activeSheetNo: number, toplamSheetSayisi: number): number | undefined {\r\n if (toplamSheetSayisi <= 0) {\r\n return undefined;\r\n }\r\n\r\n const aktifSheetNo = Number.isFinite(activeSheetNo) && activeSheetNo > 0 ? activeSheetNo : 1;\r\n\r\n return Math.min(aktifSheetNo - 1, toplamSheetSayisi - 1);\r\n }\r\n\r\n private static sheetGrupSirasiVer(sheetGrup: ISheetGrup): number {\r\n return sheetGrup.sheetNo ?? Number.MAX_SAFE_INTEGER;\r\n }\r\n\r\n private static yeniFormatUstBilgileriYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n ustBilgiler: TExcelUstBilgi[],\r\n defaultFont: TDefaultFont\r\n ): void {\r\n for (let index = 0; index < ustBilgiler.length; index++) {\r\n const ustBilgi = ustBilgiler[index]!;\r\n const hucre = worksheet.getCell(index + 1, 1);\r\n hucre.value = ustBilgi.ustBilgi;\r\n this.hucreFontunuUygula(hucre, ustBilgi.font, defaultFont);\r\n hucre.alignment = { horizontal: 'left', vertical: 'middle', wrapText: false };\r\n }\r\n }\r\n\r\n private static ustBilgileriYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n ustBilgiler: TExcelUstBilgi[],\r\n defaultFont: TDefaultFont\r\n ): void {\r\n for (const ustBilgi of ustBilgiler) {\r\n const hucre = worksheet.getCell(ustBilgi.rowNo ?? 1, 1);\r\n hucre.value = ustBilgi.ustBilgi;\r\n this.hucreFontunuUygula(hucre, ustBilgi.font, defaultFont);\r\n hucre.alignment = { horizontal: 'left', vertical: 'middle', wrapText: false };\r\n }\r\n }\r\n\r\n private static notlariYazList(\r\n worksheet: ExcelJS.Worksheet,\r\n notlar: string[],\r\n notFont: IExcelFont | undefined,\r\n baslangicSatiri: number,\r\n defaultFont: TDefaultFont\r\n ): void {\r\n let satirNo = baslangicSatiri;\r\n for (const not of notlar) {\r\n const cell = worksheet.getCell(satirNo, 1);\r\n cell.value = not;\r\n this.hucreFontunuUygula(cell, notFont, defaultFont);\r\n cell.alignment = { vertical: 'middle', wrapText: true };\r\n satirNo++;\r\n }\r\n }\r\n\r\n private static sayfaDuzeniniBelirle(worksheet: ExcelJS.Worksheet, sheet: TExcelSheet): void {\r\n const { pageSetup } = sheet;\r\n if (!pageSetup) {\r\n return;\r\n }\r\n\r\n if (pageSetup.orientation === 2) {\r\n worksheet.pageSetup.orientation = 'landscape';\r\n } else if (pageSetup.orientation === 1) {\r\n worksheet.pageSetup.orientation = 'portrait';\r\n }\r\n\r\n const hasMargin =\r\n pageSetup.leftMargin !== undefined ||\r\n pageSetup.rightMargin !== undefined ||\r\n pageSetup.topMargin !== undefined ||\r\n pageSetup.bottomMargin !== undefined ||\r\n pageSetup.headerMargin !== undefined ||\r\n pageSetup.footerMargin !== undefined;\r\n\r\n if (hasMargin) {\r\n worksheet.pageSetup.margins = {\r\n left: pageSetup.leftMargin ?? 0.7,\r\n right: pageSetup.rightMargin ?? 0.7,\r\n top: pageSetup.topMargin ?? 0.75,\r\n bottom: pageSetup.bottomMargin ?? 0.75,\r\n header: pageSetup.headerMargin ?? 0.3,\r\n footer: pageSetup.footerMargin ?? 0.3\r\n };\r\n }\r\n\r\n if (pageSetup.centerHorizontally !== undefined) {\r\n worksheet.pageSetup.horizontalCentered = pageSetup.centerHorizontally;\r\n }\r\n if (pageSetup.centerVertically !== undefined) {\r\n worksheet.pageSetup.verticalCentered = pageSetup.centerVertically;\r\n }\r\n\r\n const fitTall = pageSetup.fitToPagesTall;\r\n const fitWide = pageSetup.fitToPagesWide;\r\n if (fitTall !== undefined || fitWide !== undefined || pageSetup.fitToPagesTAut || pageSetup.fitToPagesWAut) {\r\n worksheet.pageSetup.fitToPage = true;\r\n worksheet.pageSetup.fitToHeight = pageSetup.fitToPagesTAut ? 0 : (fitTall ?? 1);\r\n worksheet.pageSetup.fitToWidth = pageSetup.fitToPagesWAut ? 0 : (fitWide ?? 1);\r\n }\r\n\r\n if (typeof pageSetup.zoom === 'number' && pageSetup.zoom > 0) {\r\n worksheet.pageSetup.scale = pageSetup.zoom;\r\n }\r\n\r\n if (pageSetup.printArea) {\r\n worksheet.pageSetup.printArea = pageSetup.printArea;\r\n }\r\n\r\n const pageHeader = this.baslikAltbilgiMetniOlustur(pageSetup.leftHeader, pageSetup.centerHeader, pageSetup.rightHeader);\r\n const pageFooter = this.baslikAltbilgiMetniOlustur(pageSetup.leftFooter, pageSetup.centerFooter, pageSetup.rightFooter);\r\n if (pageHeader) {\r\n worksheet.headerFooter.oddHeader = pageHeader;\r\n }\r\n if (pageFooter) {\r\n worksheet.headerFooter.oddFooter = pageFooter;\r\n }\r\n }\r\n\r\n private static baslikAltbilgiMetniOlustur(sol?: string, orta?: string, sag?: string): string | undefined {\r\n const parcalar: string[] = [];\r\n if (sol) {\r\n parcalar.push(`&L${sol}`);\r\n }\r\n if (orta) {\r\n parcalar.push(`&C${orta}`);\r\n }\r\n if (sag) {\r\n parcalar.push(`&R${sag}`);\r\n }\r\n return parcalar.length ? parcalar.join('') : undefined;\r\n }\r\n\r\n private static tabloyuYaz(worksheet: ExcelJS.Worksheet, sonuc: ExcelRaporuSonuc, kaynakTable: TExcelTable): number {\r\n const table = kaynakTable;\r\n const toplamSatiriVar = table.toplamSatiri === true && table.collection.length > 0 && table.columns.length > 0;\r\n\r\n if (!table.columns.length) {\r\n return table.ust ?? 1;\r\n }\r\n\r\n const startRow = Math.max(1, table.ust ?? 1);\r\n const startCol = Math.max(1, table.sol ?? 1);\r\n const gecerliTableStyle = this.gecerliTableStyleVer(sonuc.currentTableStyle);\r\n const headerTitlelari = table.columns.map(column => this.baslikMetniniHazirla(column.header.title || ''));\r\n const gorunenBaslikMetinleri = headerTitlelari.map(title => title.replaceAll('\\n', ' '));\r\n const tabloKolonAdlari = this.benzersizKolonAdlariOlustur(gorunenBaslikMetinleri);\r\n\r\n const headerFont = table.header?.font;\r\n const uygulanacakHeaderFont = headerFont?.color ? headerFont : {\r\n ...headerFont,\r\n color: 'FFFFFFFF'\r\n };\r\n const dataFont = table.data?.font;\r\n const hiddenRowSet = new Set(table.hiddenRows ?? []);\r\n\r\n const formulCeller: Array<{\r\n colIndex: number;\r\n column: TExcelTableColumn;\r\n formula: ExcelJS.CellFormulaValue;\r\n rowIndex: number;\r\n }> = [];\r\n const hucreFontRenkleri: Array<Array<string | undefined>> = [];\r\n const satirlar = table.collection.map((rowData, rowIndex) =>\r\n table.columns.map((column, colIndex) => {\r\n const hazirHucre = this.hucreDegeriniHazirla(rowData, column, sonuc.sifirlariBasmaSayi);\r\n hucreFontRenkleri[rowIndex] ??= [];\r\n hucreFontRenkleri[rowIndex]![colIndex] = hazirHucre.fontColorArgb;\r\n\r\n if (hazirHucre.deger !== null && typeof hazirHucre.deger === 'object' && 'formula' in hazirHucre.deger) {\r\n formulCeller.push({ rowIndex, colIndex, column, formula: hazirHucre.deger as ExcelJS.CellFormulaValue });\r\n return '' as ExcelJS.CellValue;\r\n }\r\n return hazirHucre.deger;\r\n })\r\n );\r\n\r\n const toplamHucreleri = toplamSatiriVar ? this.toplamHucreleriniHazirla(table) : [];\r\n\r\n this.kolonGrubuYaz(worksheet, startRow, startCol, table);\r\n\r\n const headerRow = worksheet.getRow(startRow);\r\n const tableStyle = this.tableStyleDonustur(gecerliTableStyle);\r\n const bosSatirEklendi = satirlar.length === 0;\r\n const tabloSatirlari = bosSatirEklendi ? [table.columns.map(() => '')] : satirlar;\r\n\r\n worksheet.addTable({\r\n name: this.tabloAdiOlustur(worksheet.name, startRow, startCol),\r\n ref: worksheet.getCell(startRow, startCol).address,\r\n headerRow: true,\r\n totalsRow: toplamSatiriVar,\r\n ...(tableStyle && { style: tableStyle }),\r\n columns: tabloKolonAdlari.map((ad, index) => ({\r\n name: ad,\r\n filterButton: true,\r\n ...(toplamSatiriVar && this.toplamSatiriEtiketiVer(\r\n toplamHucreleri[index]?.deger,\r\n index,\r\n this.sayisalKolonMu(table.columns[index]?.arrayType),\r\n this.toplamDegeriVerilmisMi(table, index)\r\n ))\r\n })),\r\n rows: tabloSatirlari\r\n });\r\n\r\n if (bosSatirEklendi) {\r\n worksheet.getRow(startRow + 1).hidden = true;\r\n }\r\n\r\n this.kolonGenislikleriniUygula(\r\n worksheet,\r\n startCol,\r\n table.columns,\r\n satirlar,\r\n table.autoFit,\r\n toplamHucreleri.map(hucre => hucre.deger)\r\n );\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = headerRow.getCell(startCol + colIndex);\r\n cell.alignment = {\r\n horizontal: this.yatayHizaDonustur(column.header.horizontalAlignment),\r\n vertical: 'bottom',\r\n wrapText: false\r\n };\r\n this.hucreFontunuUygula(cell, uygulanacakHeaderFont, sonuc.defaultFont);\r\n }\r\n\r\n for (let rowIndex = 0; rowIndex < table.collection.length; rowIndex++) {\r\n const wsRow = worksheet.getRow(startRow + 1 + rowIndex);\r\n const satir1Bazli = rowIndex + 1;\r\n\r\n if (hiddenRowSet.has(satir1Bazli)) {\r\n wsRow.hidden = true;\r\n }\r\n\r\n const rowHeight = table.rowHeights?.find(rh => rh.rowNo === satir1Bazli);\r\n if (rowHeight?.height) {\r\n wsRow.height = rowHeight.height;\r\n }\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = wsRow.getCell(startCol + colIndex);\r\n const hucreDegeri = satirlar[rowIndex]![colIndex]!;\r\n cell.value = hucreDegeri;\r\n this.hucreFontunuUygula(cell, dataFont, sonuc.defaultFont);\r\n const hucreFontRengi = hucreFontRenkleri[rowIndex]?.[colIndex];\r\n if (hucreFontRengi) {\r\n cell.font = { ...(cell.font ?? {}), color: { argb: hucreFontRengi } };\r\n }\r\n const numFmt = this.numberFormatDonustur(this.kolonFormatiniBelirle(column));\r\n if (numFmt) {\r\n cell.numFmt = numFmt;\r\n } else if (hucreDegeri instanceof Date) {\r\n cell.numFmt = this.varsayilanTarihFormatiniVer();\r\n }\r\n const hucreHizasi = this.hucreYatayHizasiniBelirle(column);\r\n cell.alignment = {\r\n ...(hucreHizasi !== undefined && { horizontal: hucreHizasi }),\r\n vertical: this.dikeyHizaDonustur(column.verticalAlignment),\r\n wrapText: false\r\n };\r\n\r\n // Sütun rengi\r\n const colFontColor = table.columnFontColors?.[colIndex];\r\n if (colFontColor) {\r\n const argb = this.argbDonustur(colFontColor);\r\n if (argb) {\r\n cell.font = { ...(cell.font ?? {}), color: { argb } };\r\n }\r\n }\r\n const colIntColor = this.kolonRenginiBul(table.columnInteriorColors, colIndex);\r\n if (colIntColor) {\r\n const argb = this.argbDonustur(colIntColor);\r\n if (argb) {\r\n cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb } };\r\n }\r\n }\r\n\r\n // Satır rengi (sütun rengini ezer)\r\n const rowFontColor = table.rowFontColors?.find(rc => rc.rowNo === satir1Bazli);\r\n if (rowFontColor) {\r\n const argb = this.argbDonustur(rowFontColor.color);\r\n if (argb) {\r\n cell.font = { ...(cell.font ?? {}), color: { argb } };\r\n }\r\n }\r\n const rowIntColor = table.rowInteriorColors?.find(rc => rc.rowNo === satir1Bazli);\r\n if (rowIntColor) {\r\n const argb = this.argbDonustur(rowIntColor.color);\r\n if (argb) {\r\n cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb } };\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const { rowIndex, colIndex, column, formula } of formulCeller) {\r\n const cell = worksheet.getRow(startRow + 1 + rowIndex).getCell(startCol + colIndex);\r\n cell.value = formula;\r\n const formulHizasi = this.hucreYatayHizasiniBelirle(column);\r\n cell.alignment = {\r\n ...(cell.alignment ?? {}),\r\n ...(formulHizasi !== undefined && { horizontal: formulHizasi })\r\n };\r\n }\r\n\r\n let sonSatir = startRow + table.collection.length;\r\n\r\n if (toplamSatiriVar) {\r\n sonSatir++;\r\n this.toplamSatiriniYaz(worksheet, sonuc, table, toplamHucreleri, sonSatir, startCol);\r\n }\r\n\r\n this.farkRenkleriniUygula(worksheet, table, startRow + 1, sonSatir, startCol);\r\n\r\n // Footer satırları\r\n const footer = table.footer;\r\n if (footer?.basilacak) {\r\n const ustBosluk = footer.ustBosluk ?? 0;\r\n const satirSayisi = footer.satirSayisi ?? 1;\r\n const footerBasSatir = sonSatir + 1 + ustBosluk;\r\n\r\n for (let fi = 0; fi < satirSayisi; fi++) {\r\n const footerRow = worksheet.getRow(footerBasSatir + fi);\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = footerRow.getCell(startCol + colIndex);\r\n this.hucreFontunuUygula(cell, footer.font, sonuc.defaultFont);\r\n\r\n const colFooter = column.footer;\r\n if (colFooter?.isFunction) {\r\n const footerFormula = this.footerFormulunuOlustur(column, colIndex, startRow, startCol, table.collection.length);\r\n if (footerFormula) {\r\n cell.value = { formula: footerFormula };\r\n const numFmt = this.numberFormatDonustur(this.kolonFormatiniBelirle(column));\r\n if (numFmt) {\r\n cell.numFmt = numFmt;\r\n }\r\n }\r\n } else if (colFooter?.title) {\r\n cell.value = colFooter.title;\r\n }\r\n const footerHizasi = colFooter?.isFunction\r\n ? this.hucreYatayHizasiniBelirle(column)\r\n : this.yatayHizaDonustur(colFooter?.horizontalAlignment);\r\n cell.alignment = {\r\n ...(footerHizasi !== undefined && { horizontal: footerHizasi }),\r\n vertical: 'middle',\r\n wrapText: false\r\n };\r\n }\r\n }\r\n\r\n sonSatir = footerBasSatir + satirSayisi - 1;\r\n }\r\n\r\n return sonSatir;\r\n }\r\n\r\n private static farkRenkleriniUygula(\r\n worksheet: ExcelJS.Worksheet,\r\n table: TExcelTable,\r\n ilkSatir: number,\r\n sonSatir: number,\r\n startCol: number\r\n ): void {\r\n if (!table.collection.length) {\r\n return;\r\n }\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n if (!table.columns[colIndex]!.farkRenkli) {\r\n continue;\r\n }\r\n\r\n const ilkHucre = worksheet.getCell(ilkSatir, startCol + colIndex).address;\r\n const sonHucre = worksheet.getCell(sonSatir, startCol + colIndex).address;\r\n worksheet.addConditionalFormatting({\r\n ref: `${ilkHucre}:${sonHucre}`,\r\n rules: [\r\n { type: 'cellIs', operator: 'greaterThan', formulae: [0], priority: 1, style: { font: { color: { argb: 'FF16A34A' } } } },\r\n { type: 'cellIs', operator: 'lessThan', formulae: [0], priority: 2, style: { font: { color: { argb: 'FFDC2626' } } } }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n private static toplamHucreleriniHazirla(table: TExcelTable): IHazirHucreDegeri[] {\r\n return table.columns.map((column, colIndex) => {\r\n if (colIndex === 0) {\r\n return { deger: table.toplamEtiketi ?? 'Toplam' };\r\n }\r\n\r\n if (this.toplamDegeriVerilmisMi(table, colIndex)) {\r\n return { deger: table.toplamDegerleri![column.property] ?? null };\r\n }\r\n\r\n if (!this.sayisalKolonMu(column.arrayType)) {\r\n return { deger: null };\r\n }\r\n\r\n let toplam = 0;\r\n for (const row of table.collection) {\r\n const sayi = Number(row[column.property]);\r\n if (Number.isFinite(sayi)) {\r\n toplam += sayi;\r\n }\r\n }\r\n\r\n return { deger: toplam };\r\n });\r\n }\r\n\r\n private static toplamDegeriVerilmisMi(table: TExcelTable, kolonIndex: number): boolean {\r\n const property = table.columns[kolonIndex]?.property;\r\n\r\n return kolonIndex > 0 && !!table.toplamDegerleri && property !== undefined && property in table.toplamDegerleri;\r\n }\r\n\r\n private static toplamSatiriEtiketiVer(\r\n deger: ExcelJS.CellValue | undefined,\r\n kolonIndex: number,\r\n sayisal: boolean,\r\n ozelDeger: boolean\r\n ): { totalsRowFunction: 'custom'; totalsRowFormula: string; totalsRowResult: number } | { totalsRowFunction: 'sum' } | { totalsRowLabel: string } | undefined {\r\n if (kolonIndex === 0) {\r\n const etiket = typeof deger === 'string' || typeof deger === 'number' ? String(deger) : '';\r\n return { totalsRowLabel: etiket };\r\n }\r\n\r\n if (ozelDeger) {\r\n if (typeof deger === 'number' && Number.isFinite(deger)) {\r\n return { totalsRowFunction: 'custom', totalsRowFormula: String(deger), totalsRowResult: deger };\r\n }\r\n\r\n return typeof deger === 'string' && deger !== '' ? { totalsRowLabel: deger } : undefined;\r\n }\r\n\r\n if (sayisal) {\r\n return { totalsRowFunction: 'sum' };\r\n }\r\n\r\n if (typeof deger === 'string' && deger !== '') {\r\n return { totalsRowLabel: deger };\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static toplamSatiriniYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n sonuc: ExcelRaporuSonuc,\r\n table: TExcelTable,\r\n toplamHucreleri: IHazirHucreDegeri[],\r\n satirNo: number,\r\n startCol: number\r\n ): void {\r\n const wsRow = worksheet.getRow(satirNo);\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = wsRow.getCell(startCol + colIndex);\r\n const deger = toplamHucreleri[colIndex]?.deger;\r\n\r\n if (colIndex > 0 && typeof deger === 'number' && typeof cell.value === 'object' && cell.value !== null && 'formula' in cell.value) {\r\n cell.value = { ...cell.value, result: deger };\r\n }\r\n\r\n this.hucreFontunuUygula(cell, table.data?.font, sonuc.defaultFont);\r\n cell.font = { ...(cell.font ?? {}), bold: true };\r\n if (column.farkRenkli && typeof deger === 'number' && deger !== 0) {\r\n cell.font = { ...cell.font, color: { argb: deger > 0 ? 'FF16A34A' : 'FFDC2626' } };\r\n }\r\n cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFDDEBF7' } };\r\n\r\n const numFmt = this.numberFormatDonustur(this.kolonFormatiniBelirle(column));\r\n if (numFmt) {\r\n cell.numFmt = numFmt;\r\n }\r\n\r\n const hucreHizasi = this.hucreYatayHizasiniBelirle(column);\r\n cell.alignment = {\r\n ...(hucreHizasi !== undefined && { horizontal: hucreHizasi }),\r\n vertical: this.dikeyHizaDonustur(column.verticalAlignment),\r\n wrapText: false\r\n };\r\n }\r\n }\r\n\r\n private static kolonGenislikleriniUygula(\r\n worksheet: ExcelJS.Worksheet,\r\n startCol: number,\r\n columns: TExcelTableColumn[],\r\n satirlar: ExcelJS.CellValue[][],\r\n autoFit: boolean | undefined,\r\n ekSatir?: ExcelJS.CellValue[]\r\n ): void {\r\n const filtreButonuBoslukPayi = 1.25;\r\n const veriSagBoslukPayi = 1;\r\n const autoFitAktif = autoFit !== false;\r\n\r\n for (let index = 0; index < columns.length; index++) {\r\n const worksheetColumn = worksheet.getColumn(startCol + index);\r\n const tasarimGenisligi = (columns[index]!.width ?? 0) > 0 ? Math.round(columns[index]!.width! / 7) : 0;\r\n\r\n if (!autoFitAktif) {\r\n worksheetColumn.width = tasarimGenisligi > 0 ? tasarimGenisligi : 10;\r\n continue;\r\n }\r\n\r\n const baslikUzunlugu = this.metinUzunlugu(this.baslikMetniniHazirla(columns[index]!.header.title));\r\n let veriUzunlugu = ekSatir ? this.hucreMetinUzunlugu(ekSatir[index]!) : 0;\r\n for (const satir of satirlar) {\r\n veriUzunlugu = Math.max(veriUzunlugu, this.hucreMetinUzunlugu(satir[index]!));\r\n }\r\n worksheetColumn.width = Math.max(\r\n 10,\r\n tasarimGenisligi,\r\n baslikUzunlugu + 2 + filtreButonuBoslukPayi,\r\n veriUzunlugu + 2 + veriSagBoslukPayi\r\n );\r\n }\r\n }\r\n\r\n private static baslikMetniniHazirla(metin: string): string {\r\n return metin\r\n .replaceAll('\\r\\n', ' ')\r\n .replaceAll('\\r', ' ')\r\n .replaceAll('\\n', ' ')\r\n .trim();\r\n }\r\n\r\n private static hucreMetinUzunlugu(deger: ExcelJS.CellValue): number {\r\n if (deger === null || deger === undefined) {\r\n return 0;\r\n }\r\n\r\n if (typeof deger === 'string') {\r\n return this.metinUzunlugu(deger);\r\n }\r\n\r\n if (typeof deger === 'number' || typeof deger === 'boolean') {\r\n return String(deger).length;\r\n }\r\n\r\n if (deger instanceof Date) {\r\n return '14.05.2026 09:13:29'.length;\r\n }\r\n\r\n if (typeof deger === 'object' && 'formula' in deger) {\r\n return this.metinUzunlugu(String(deger.formula));\r\n }\r\n\r\n return this.metinUzunlugu(String(deger));\r\n }\r\n\r\n private static hucreYatayHizasiniBelirle(column: TExcelTableColumn): ExcelJS.Alignment['horizontal'] | undefined {\r\n if (this.sayisalKolonMu(column.arrayType)) {\r\n return 'right';\r\n }\r\n\r\n if (this.booleanKolonMu(column.arrayType)) {\r\n return 'center';\r\n }\r\n\r\n if (column.horizontalAlignment === undefined) {\r\n return undefined;\r\n }\r\n\r\n return this.yatayHizaDonustur(column.horizontalAlignment);\r\n }\r\n\r\n private static kolonFormatiniBelirle(column: TExcelTableColumn): number | undefined {\r\n if (column.format !== undefined && column.format !== NumberFormatlar.belirsiz) {\r\n return column.format;\r\n }\r\n\r\n switch (column.arrayType) {\r\n case VariableType.integer:\r\n case VariableType.longint:\r\n return NumberFormatlar.long;\r\n\r\n case VariableType.real:\r\n return NumberFormatlar.real;\r\n\r\n case VariableType.date:\r\n return NumberFormatlar.tarih;\r\n\r\n default:\r\n return column.format;\r\n }\r\n }\r\n\r\n private static sayisalKolonMu(arrayType: VariableType | undefined): boolean {\r\n switch (arrayType) {\r\n case VariableType.integer:\r\n case VariableType.longint:\r\n case VariableType.real:\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private static booleanKolonMu(arrayType: VariableType | undefined): boolean {\r\n return arrayType === VariableType.boolean;\r\n }\r\n\r\n private static metinUzunlugu(metin: string): number {\r\n return metin\r\n .replaceAll('\\r', '')\r\n .split('\\n')\r\n .reduce((max, parca) => Math.max(max, parca.trim().length), 0);\r\n }\r\n\r\n private static kolonGrubuYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n startRow: number,\r\n startCol: number,\r\n table: TExcelTable\r\n ): void {\r\n const columnGroups = table.columnGroup;\r\n if (!columnGroups?.length || startRow <= 1) {\r\n return;\r\n }\r\n\r\n const grupSatiri = startRow - 1;\r\n for (const columnGroup of columnGroups) {\r\n const baslangicIndex = table.columns.findIndex(column => column.property === columnGroup.groupStart);\r\n const bitisIndex = table.columns.findIndex(column => column.property === columnGroup.groupEnd);\r\n const baslangicKolonu = baslangicIndex >= 0 ? startCol + baslangicIndex : undefined;\r\n const bitisKolonu = bitisIndex >= 0 ? startCol + bitisIndex : undefined;\r\n if (!baslangicKolonu || !bitisKolonu || bitisKolonu < baslangicKolonu) {\r\n continue;\r\n }\r\n\r\n worksheet.mergeCells(grupSatiri, baslangicKolonu, grupSatiri, bitisKolonu);\r\n\r\n const grupHucre = worksheet.getCell(grupSatiri, baslangicKolonu);\r\n grupHucre.value = columnGroup.groupName;\r\n grupHucre.alignment = { horizontal: 'center', vertical: 'middle' };\r\n grupHucre.font = { bold: true, size: 11, color: { argb: 'FFF79646' } };\r\n grupHucre.fill = {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'FFFFFFFF' }\r\n };\r\n\r\n for (let col = baslangicKolonu; col <= bitisKolonu; col++) {\r\n const hucre = worksheet.getCell(grupSatiri, col);\r\n hucre.border = {\r\n ...hucre.border,\r\n top: { style: 'medium', color: { argb: 'FFF79646' } },\r\n ...(col === baslangicKolonu ? { left: { style: 'medium', color: { argb: 'FFF79646' } } } : (hucre.border?.left ? { left: hucre.border.left } : {})),\r\n ...(col === bitisKolonu ? { right: { style: 'medium', color: { argb: 'FFF79646' } } } : (hucre.border?.right ? { right: hucre.border.right } : {}))\r\n };\r\n }\r\n }\r\n }\r\n\r\n private static hucreDegeriniHazirla(\r\n row: TExcelTableRow,\r\n column: TExcelTableColumn,\r\n sifirlariBasmaSayi: boolean\r\n ): IHazirHucreDegeri {\r\n const value = row[column.property];\r\n\r\n if ((typeof value === 'string') && value.startsWith('=')) {\r\n return { deger: { formula: this.excelFormuluneDonustur(value) } };\r\n }\r\n\r\n const sifirDegerMi =\r\n (typeof value === 'number' && value === 0) ||\r\n (typeof value === 'string' && this.sayisalKolonMu(column.arrayType) && value.trim() !== '' && Number(value) === 0);\r\n\r\n if (sifirDegerMi && sifirlariBasmaSayi) {\r\n return { deger: null };\r\n }\r\n\r\n if (value === null || value === undefined) {\r\n return { deger: '' };\r\n }\r\n\r\n const htmlHucre = (column.htmlKoduGelebilir === true) && typeof value === 'string' ? this.htmlHucreIceriginiHazirla(value) : undefined;\r\n const normallesenDeger = htmlHucre?.deger ?? value;\r\n\r\n if ((typeof normallesenDeger === 'string') && normallesenDeger.startsWith('=')) {\r\n return this.hazirHucreDegeriOlustur(\r\n { formula: this.excelFormuluneDonustur(normallesenDeger) },\r\n htmlHucre?.fontColorArgb\r\n );\r\n }\r\n\r\n if ((typeof value === 'string') && (typeof normallesenDeger === 'string')) {\r\n const tarihMetni = this.tarihStringiniExcelMetnineDonustur(normallesenDeger, column);\r\n if (tarihMetni) {\r\n return this.hazirHucreDegeriOlustur(tarihMetni, htmlHucre?.fontColorArgb);\r\n }\r\n\r\n const tarihDegeri = this.tarihStringiniDateeDonustur(normallesenDeger);\r\n if (tarihDegeri) {\r\n return this.hazirHucreDegeriOlustur(tarihDegeri, htmlHucre?.fontColorArgb);\r\n }\r\n }\r\n\r\n if (normallesenDeger instanceof Date) {\r\n return this.hazirHucreDegeriOlustur(\r\n this.excelIcinTarihiNormalizeEt(normallesenDeger),\r\n htmlHucre?.fontColorArgb\r\n );\r\n }\r\n\r\n if (this.booleanKolonMu(column.arrayType)) {\r\n return this.hazirHucreDegeriOlustur(normallesenDeger === true ? '+' : '', htmlHucre?.fontColorArgb);\r\n }\r\n\r\n if ((typeof normallesenDeger === 'number') || (typeof normallesenDeger === 'string')) {\r\n return this.hazirHucreDegeriOlustur(normallesenDeger, htmlHucre?.fontColorArgb);\r\n }\r\n\r\n return this.hazirHucreDegeriOlustur(String(normallesenDeger), htmlHucre?.fontColorArgb);\r\n }\r\n\r\n private static hazirHucreDegeriOlustur(deger: ExcelJS.CellValue, fontColorArgb?: string): IHazirHucreDegeri {\r\n return {\r\n deger,\r\n ...(fontColorArgb ? { fontColorArgb } : {})\r\n };\r\n }\r\n\r\n private static htmlHucreIceriginiHazirla(value: string): { deger: string; fontColorArgb?: string } | undefined {\r\n if (!/[<>]/.test(value)) {\r\n return undefined;\r\n }\r\n\r\n const deger = value\r\n .replaceAll(/<br\\s*\\/?>/gi, '\\n')\r\n .replaceAll(/<\\/p\\s*>/gi, '\\n')\r\n .replaceAll(/<p\\b[^>]*>/gi, '')\r\n .replaceAll(/<\\/div\\s*>/gi, '\\n')\r\n .replaceAll(/<div\\b[^>]*>/gi, '')\r\n .replaceAll(/<[^>]+>/g, '')\r\n .replaceAll(/&nbsp;/gi, ' ')\r\n .trim();\r\n\r\n const colorValue = this.htmlFontRenginiBul(value);\r\n const fontColorArgb = this.argbDonustur(colorValue);\r\n\r\n if ((deger === value) && !fontColorArgb) {\r\n return undefined;\r\n }\r\n\r\n return { deger, ...(fontColorArgb && { fontColorArgb }) };\r\n }\r\n\r\n private static htmlFontRenginiBul(value: string): string | undefined {\r\n const fontColorMatch = /<font\\b[^>]*\\bcolor\\s*=\\s*[\"']?([^\"' >]+)[\"']?[^>]*>/i.exec(value);\r\n if (fontColorMatch?.[1]) {\r\n return fontColorMatch[1].trim();\r\n }\r\n\r\n const styleColorMatch = /<(?:font|span)\\b[^>]*\\bstyle\\s*=\\s*[\"'][^\"']*\\bcolor\\s*:\\s*([^;\"']+)/i.exec(value);\r\n if (styleColorMatch?.[1]) {\r\n return styleColorMatch[1].trim();\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static tarihStringiniDateeDonustur(value: string): Date | undefined {\r\n const trimmedValue = value.trim();\r\n const isoDateMatch = /^(\\d{4})-(\\d{2})-(\\d{2})(?:$|[T\\s])/.exec(trimmedValue);\r\n\r\n if (!isoDateMatch) {\r\n return undefined;\r\n }\r\n\r\n const year = Number(isoDateMatch[1]);\r\n const month = Number(isoDateMatch[2]);\r\n const day = Number(isoDateMatch[3]);\r\n\r\n if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) {\r\n return undefined;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n if (date.getFullYear() !== year || date.getMonth() !== (month - 1) || date.getDate() !== day) {\r\n return undefined;\r\n }\r\n\r\n return new Date(Date.UTC(year, month - 1, day, 12, 0, 0, 0));\r\n }\r\n\r\n private static tarihStringiniExcelMetnineDonustur(value: string, column: TExcelTableColumn): string | undefined {\r\n if (!this.sadeceTarihKolonuMu(column)) {\r\n return undefined;\r\n }\r\n\r\n const trimmedValue = value.trim();\r\n const isoDateMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(trimmedValue);\r\n if (!isoDateMatch) {\r\n return undefined;\r\n }\r\n\r\n const year = Number(isoDateMatch[1]);\r\n const month = Number(isoDateMatch[2]);\r\n const day = Number(isoDateMatch[3]);\r\n\r\n if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) {\r\n return undefined;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n if (date.getFullYear() !== year || date.getMonth() !== (month - 1) || date.getDate() !== day) {\r\n return undefined;\r\n }\r\n\r\n return `${String(day).padStart(2, '0')}.${String(month).padStart(2, '0')}.${year}`;\r\n }\r\n\r\n private static excelIcinTarihiNormalizeEt(value: Date): Date {\r\n if (value.getHours() !== 0 || value.getMinutes() !== 0 || value.getSeconds() !== 0 || value.getMilliseconds() !== 0) {\r\n return value;\r\n }\r\n\r\n return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), 12, 0, 0, 0));\r\n }\r\n\r\n private static varsayilanTarihFormatiniVer(): string {\r\n return 'dd.mm.yyyy';\r\n }\r\n\r\n private static sadeceTarihKolonuMu(column: TExcelTableColumn): boolean {\r\n return this.kolonFormatiniBelirle(column) === NumberFormatlar.tarih;\r\n }\r\n\r\n private static benzersizKolonAdlariOlustur(adlar: string[]): string[] {\r\n const sayaclar = new Map<string, number>();\r\n return adlar.map(ad => {\r\n const temelAd = ad || ' ';\r\n const sayi = sayaclar.get(temelAd) ?? 0;\r\n sayaclar.set(temelAd, sayi + 1);\r\n return sayi === 0 ? temelAd : `${temelAd}_${sayi}`;\r\n });\r\n }\r\n\r\n private static hucreFontunuUygula(\r\n cell: ExcelJS.Cell,\r\n font: IExcelFont | undefined,\r\n defaultFont?: TDefaultFont\r\n ): void {\r\n const style = font?.style ?? 0;\r\n const excelFont: Partial<ExcelJS.Font> = {};\r\n\r\n const fontName = font?.name || defaultFont?.name;\r\n if (fontName) {\r\n excelFont.name = fontName;\r\n }\r\n\r\n const fontSize = (font?.size && font.size > 0) ? font.size : defaultFont?.size;\r\n if (fontSize && fontSize > 0) {\r\n excelFont.size = fontSize;\r\n }\r\n\r\n if (font?.color) {\r\n const color = this.argbDonustur(font.color);\r\n if (color) {\r\n excelFont.color = { argb: color };\r\n }\r\n }\r\n\r\n excelFont.bold = Boolean(style & FontStyle.bold);\r\n excelFont.italic = Boolean(style & FontStyle.italic);\r\n excelFont.underline = Boolean(style & FontStyle.underline);\r\n\r\n cell.font = excelFont;\r\n }\r\n\r\n private static gecerliTableStyleVer(tableStyle: string | undefined): string | undefined {\r\n if (!tableStyle) {\r\n return undefined;\r\n }\r\n\r\n const style = tableStyle.trim();\r\n if (/^TableStyleLight([1-9]|1\\d|2[0-1])$/.test(style)) {\r\n return style;\r\n }\r\n if (/^TableStyleMedium([1-9]|1\\d|2[0-1])$/.test(style)) {\r\n return style;\r\n }\r\n if (/^TableStyleDark([1-9]|10|11)$/.test(style)) {\r\n return style;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static tableStyleDonustur(theme: string | undefined): ExcelJS.TableStyleProperties | undefined {\r\n if (!theme) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n theme: theme as NonNullable<ExcelJS.TableStyleProperties['theme']>,\r\n showRowStripes: true\r\n };\r\n }\r\n\r\n private static tabloAdiOlustur(sheetName: string, startRow: number, startCol: number): string {\r\n const temizSheetName = sheetName.replaceAll(/[^A-Za-z0-9]/g, '_');\r\n return `T_${temizSheetName}_R${startRow}C${startCol}`;\r\n }\r\n\r\n private static yatayHizaDonustur(value: XLHAlign | undefined): ExcelJS.Alignment['horizontal'] {\r\n switch (value) {\r\n case XLHAlign.xlHAlignCenter: return 'center';\r\n case XLHAlign.xlHAlignCenterAcrossSelection: return 'centerContinuous';\r\n case XLHAlign.xlHAlignDistributed: return 'distributed';\r\n case XLHAlign.xlHAlignFill: return 'fill';\r\n case XLHAlign.xlHAlignGeneral: return 'left';\r\n case XLHAlign.xlHAlignJustify: return 'justify';\r\n case XLHAlign.xlHAlignLeft: return 'left';\r\n case XLHAlign.xlHAlignRight: return 'right';\r\n default: return 'left';\r\n }\r\n }\r\n\r\n private static dikeyHizaDonustur(value: XLVAlign | undefined): ExcelJS.Alignment['vertical'] {\r\n switch (value) {\r\n case XLVAlign.xlVAlignTop: return 'top';\r\n case XLVAlign.xlVAlignBottom: return 'bottom';\r\n case XLVAlign.xlVAlignDistributed: return 'distributed';\r\n case XLVAlign.xlVAlignJustify: return 'justify';\r\n default: return 'middle';\r\n }\r\n }\r\n\r\n private static argbDonustur(color: string | undefined): string | undefined {\r\n if (!color) {\r\n return undefined;\r\n }\r\n\r\n const cssColor = color.trim().toLowerCase();\r\n const rgbMatch = cssColor.match(/^rgb\\s*\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i);\r\n if (rgbMatch) {\r\n const rgbDegerleri = rgbMatch.slice(1).map(value => Number(value));\r\n if (rgbDegerleri.every(value => Number.isInteger(value) && value >= 0 && value <= 255)) {\r\n return `FF${rgbDegerleri.map(value => value.toString(16).padStart(2, '0')).join('').toUpperCase()}`;\r\n }\r\n }\r\n\r\n const namedColors: Record<string, string> = {\r\n black: 'FF000000',\r\n blue: 'FF0000FF',\r\n cyan: 'FF00FFFF',\r\n gray: 'FF808080',\r\n green: 'FF008000',\r\n grey: 'FF808080',\r\n magenta: 'FFFF00FF',\r\n orange: 'FFFFA500',\r\n purple: 'FF800080',\r\n red: 'FFFF0000',\r\n white: 'FFFFFFFF',\r\n yellow: 'FFFFFF00'\r\n };\r\n if (namedColors[cssColor]) {\r\n return namedColors[cssColor];\r\n }\r\n\r\n const hexColor = cssColor.replace('#', '');\r\n if (/^[0-9a-f]{6}$/i.test(hexColor)) {\r\n return `FF${hexColor.toUpperCase()}`;\r\n }\r\n\r\n if (/^[0-9A-Fa-f]{8}$/.test(color)) {\r\n return color.toUpperCase();\r\n }\r\n\r\n const numericColor = Number(color);\r\n if (!Number.isFinite(numericColor)) {\r\n return undefined;\r\n }\r\n\r\n const r = numericColor & 255;\r\n const g = (numericColor >> 8) & 255;\r\n const b = (numericColor >> 16) & 255;\r\n\r\n return `FF${[r, g, b].map(value => value.toString(16).padStart(2, '0')).join('').toUpperCase()}`;\r\n }\r\n\r\n private static kolonRenginiBul(\r\n kolonRenkleri: TExcelTable['columnInteriorColors'] | undefined,\r\n colIndex: number\r\n ): string | undefined {\r\n const kolonRengi = kolonRenkleri?.[colIndex];\r\n if (typeof kolonRengi === 'string') {\r\n return kolonRengi;\r\n }\r\n\r\n const kolonNo = colIndex + 1;\r\n for (const kolon of kolonRenkleri ?? []) {\r\n if (typeof kolon === 'object' && kolon.columnNo === kolonNo) {\r\n return kolon.color;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static excelFormuluneDonustur(formul: string): string {\r\n const ceviriler: Record<string, string> = {\r\n 'TOPLA': 'SUM',\r\n 'EĞER': 'IF',\r\n 'VE': 'AND',\r\n 'VEYA': 'OR',\r\n 'YUVARLA': 'ROUND',\r\n 'EĞERSAY': 'COUNTIF',\r\n 'ETOPLA': 'SUMIF',\r\n 'ORTALAMA': 'AVERAGE',\r\n 'MİN': 'MIN',\r\n 'MAK': 'MAX'\r\n };\r\n\r\n let sonuc = formul.slice(1).replaceAll(';', ',');\r\n\r\n for (const [kaynak, hedef] of Object.entries(ceviriler)) {\r\n const pattern = new RegExp(`\\\\b${kaynak}\\\\b`, 'g');\r\n sonuc = sonuc.replace(pattern, hedef);\r\n }\r\n\r\n return sonuc;\r\n }\r\n\r\n private static footerFormulunuOlustur(\r\n column: TExcelTableColumn,\r\n colIndex: number,\r\n startRow: number,\r\n startCol: number,\r\n veriSatirSayisi: number\r\n ): string | undefined {\r\n if (!veriSatirSayisi) {\r\n return undefined;\r\n }\r\n\r\n const fonksiyon = String(column.footer?.function ?? '').trim().toUpperCase();\r\n if (!fonksiyon) {\r\n return undefined;\r\n }\r\n\r\n const kolonHarf = worksheetColumnName(startCol + colIndex);\r\n const ilkVeriSatiri = startRow + 1;\r\n const sonVeriSatiri = startRow + veriSatirSayisi;\r\n const aralik = `${kolonHarf}${ilkVeriSatiri}:${kolonHarf}${sonVeriSatiri}`;\r\n\r\n if (fonksiyon === 'SUBTOTAL') {\r\n return `SUBTOTAL(9,${aralik})`;\r\n }\r\n\r\n const desteklenenFonksiyonlar = ['SUM', 'AVERAGE', 'COUNT', 'COUNTA', 'MAX', 'MIN'];\r\n if (desteklenenFonksiyonlar.includes(fonksiyon)) {\r\n return `${fonksiyon}(${aralik})`;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static sayfaAdiDuzenle(sheetName: string, index: number): string {\r\n const temizAd = sheetName\r\n .replaceAll(/[\\\\/*?:[\\]]/g, ' ')\r\n .trim()\r\n .slice(0, 31);\r\n\r\n if (temizAd) {\r\n return temizAd;\r\n }\r\n\r\n return `Sheet${index}`;\r\n }\r\n\r\n private static dosyaAdiDuzenle(dosyaAdi: string): string {\r\n const temizAd = dosyaAdi\r\n .replaceAll(/[<>:\"/\\\\|?*]/g, ' ')\r\n .trim()\r\n .replaceAll(/\\s+/g, ' ');\r\n\r\n if (temizAd) {\r\n return temizAd;\r\n }\r\n\r\n return 'Rapor';\r\n }\r\n\r\n private static numberFormatDonustur(format: number | undefined): string | undefined {\r\n switch (format) {\r\n case NumberFormatlar.long:\r\n case 2:\r\n case 5:\r\n case 11:\r\n return '#,##0';\r\n\r\n case NumberFormatlar.real:\r\n case 7:\r\n case 12:\r\n return '#,##0.00';\r\n\r\n case 8:\r\n return 'hh:mm';\r\n\r\n case NumberFormatlar.tarih:\r\n return 'dd.mm.yyyy';\r\n\r\n case NumberFormatlar.tarih_yyyymmdd_tireli:\r\n return 'yyyy-mm-dd';\r\n\r\n case NumberFormatlar.tarih_AAAAYYYY:\r\n return 'mmmm yyyy';\r\n\r\n case NumberFormatlar.tarih_GGAAAAYYYY:\r\n return 'dd mmmm yyyy';\r\n\r\n case NumberFormatlar.tarih_YYYYMMDD:\r\n return 'yyyy/mm/dd';\r\n\r\n case NumberFormatlar.tarih_LongDate:\r\n return 'dd mmmm yyyy dddd';\r\n\r\n case NumberFormatlar.tarih_ga:\r\n return 'd.m;@';\r\n\r\n case NumberFormatlar.tarih_ggaa:\r\n return 'dd.mm';\r\n\r\n case NumberFormatlar.tarih_gaaaa:\r\n return 'd.mmmm';\r\n\r\n case NumberFormatlar.tarih_ggaaa:\r\n return 'dd.mmm';\r\n\r\n case NumberFormatlar.tarih_ggaaaa:\r\n return 'dd.mmmm';\r\n\r\n case NumberFormatlar.yuzde_BirHane:\r\n return '0.0%';\r\n\r\n case NumberFormatlar.genel:\r\n return 'General';\r\n\r\n case NumberFormatlar.metin:\r\n return '@';\r\n\r\n case NumberFormatlar.imp:\r\n return '#,##0 \"imp\"';\r\n\r\n case NumberFormatlar.clicks:\r\n return '#,##0 \"Clicks\"';\r\n\r\n case NumberFormatlar.gun:\r\n return '#,##0 \"Gün\"';\r\n\r\n case NumberFormatlar.view:\r\n return '#,##0 \"View\"';\r\n\r\n case NumberFormatlar.session:\r\n return '#,##0 \"Session\"';\r\n\r\n case NumberFormatlar.kisi:\r\n return '#,##0 \"Kişi\"';\r\n\r\n case NumberFormatlar.okunma:\r\n return '#,##0 \"Okunma\"';\r\n\r\n case NumberFormatlar.dinlenme:\r\n return '#,##0 \"Dinlenme\"';\r\n\r\n case NumberFormatlar.lead:\r\n return '#,##0 \"Lead\"';\r\n\r\n case NumberFormatlar.gizli:\r\n return ';;;';\r\n\r\n case 28:\r\n return '#,##0.00 \"₺\"';\r\n\r\n default:\r\n return undefined;\r\n }\r\n }\r\n}\r\n\r\nfunction worksheetColumnName(columnNumber: number): string {\r\n let kalan = columnNumber;\r\n let sonuc = '';\r\n\r\n while (kalan > 0) {\r\n const mod = (kalan - 1) % 26;\r\n sonuc = String.fromCharCode(65 + mod) + sonuc;\r\n kalan = Math.floor((kalan - 1) / 26);\r\n }\r\n\r\n return sonuc;\r\n}\r\n","import { HttpResponse } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\n\r\nimport saveAs from 'file-saver';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { GlobalFunctions } from 'limitng/api';\r\nimport { ToastMessageOptions } from 'primeng/api';\r\nimport { ExcelRaporuSonuc } from './models/excelRaporuSonuc';\r\nimport { JsonToExcelParser } from './models/jsonToExcelParser';\r\n\r\ninterface JsonExcelResponseOptions<T extends ExcelRaporuSonuc> {\r\n createResult: () => T;\r\n errorLogMessage: string;\r\n fileName?: string;\r\n getFileName?: (result: T) => string;\r\n successDetail?: string;\r\n successDetailKey?: string;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BlobResponseHandlerService {\r\n private readonly translateService = inject(TranslateService);\r\n\r\n handleReportResponse(\r\n response: HttpResponse<Blob>,\r\n successDetailKey: string,\r\n htmlTitle = 'Rapor Sonucu'\r\n ): ToastMessageOptions | null {\r\n const body = response.body;\r\n\r\n if (!body) {\r\n return null;\r\n }\r\n\r\n const contentDisposition = response.headers.get('content-disposition');\r\n const contentType = response.headers.get('Content-Type') ?? body.type;\r\n\r\n if (contentDisposition) {\r\n return this.handleDownload(body, contentDisposition, contentType, successDetailKey);\r\n }\r\n\r\n this.handleViewHtml(body, htmlTitle);\r\n return null;\r\n }\r\n\r\n downloadResponse(response: HttpResponse<Blob | string>): boolean {\r\n const body = response.body;\r\n\r\n if (!body) {\r\n return false;\r\n }\r\n\r\n const contentDisposition = response.headers.get('content-disposition');\r\n\r\n if (!contentDisposition) {\r\n return false;\r\n }\r\n\r\n const contentType = response.headers.get('Content-Type') ?? (body instanceof Blob ? body.type : 'application/octet-stream');\r\n\r\n this.downloadBlob(body, contentDisposition, contentType);\r\n return true;\r\n }\r\n\r\n viewHtmlBody(body: Blob | null, htmlTitle = 'Rapor Sonucu'): void {\r\n if (!body) {\r\n return;\r\n }\r\n\r\n this.handleViewHtml(body, htmlTitle);\r\n }\r\n\r\n async handleJsonExcelResponse<T extends ExcelRaporuSonuc>(\r\n body: Blob | null,\r\n options: JsonExcelResponseOptions<T>\r\n ): Promise<ToastMessageOptions | null> {\r\n if (!body) {\r\n return null;\r\n }\r\n\r\n try {\r\n const jsonStr = await body.text();\r\n const result = Object.assign(options.createResult(), JSON.parse(jsonStr) as T);\r\n const fileName = options.getFileName?.(result) ?? options.fileName;\r\n\r\n if (!fileName) {\r\n return null;\r\n }\r\n\r\n await JsonToExcelParser.indir(result, fileName);\r\n\r\n return {\r\n severity: 'success',\r\n summary: this.translateService.instant('genel.bilgi'),\r\n detail: options.successDetail ?? this.translateService.instant(options.successDetailKey ?? '')\r\n };\r\n } catch (error) {\r\n console.error(options.errorLogMessage, error);\r\n return null;\r\n }\r\n }\r\n\r\n private handleDownload(body: BlobPart, contentDisposition: string, contentType: string, successDetailKey: string): ToastMessageOptions {\r\n this.downloadBlob(body, contentDisposition, contentType);\r\n\r\n return {\r\n severity: 'success',\r\n summary: this.translateService.instant('genel.bilgi'),\r\n detail: this.translateService.instant(successDetailKey)\r\n };\r\n }\r\n\r\n private downloadBlob(body: BlobPart, contentDisposition: string, contentType: string): void {\r\n const decodedContentDisposition = contentDisposition.replaceAll(\r\n /\\\\u([0-9A-Fa-f]{4})/g,\r\n (_, code: string) => String.fromCodePoint(Number.parseInt(code, 16))\r\n );\r\n const filename = GlobalFunctions.getFilenameFromContentDisposition(decodedContentDisposition);\r\n const blob = new Blob([body], { type: contentType });\r\n\r\n saveAs(blob, filename);\r\n }\r\n\r\n private handleViewHtml(body: Blob, htmlTitle: string): void {\r\n body.text().then((html: string) => {\r\n const wnd = window.open('', '_blank');\r\n\r\n if (!wnd) {\r\n return;\r\n }\r\n\r\n wnd.document.title = htmlTitle;\r\n\r\n const iframe = wnd.document.createElement('iframe');\r\n iframe.style.width = '100%';\r\n iframe.style.height = '100%';\r\n iframe.style.border = 'none';\r\n iframe.setAttribute('srcdoc', html);\r\n\r\n wnd.document.body.style.margin = '0';\r\n wnd.document.body.style.padding = '0';\r\n wnd.document.body.appendChild(iframe);\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"limitng-blob-response-handler.mjs","sources":["../../src/app/components/blob-response-handler/models/excelRaporuSonuc.ts","../../src/app/components/blob-response-handler/models/toplamFormuluHesaplayici.ts","../../src/app/components/blob-response-handler/models/jsonToExcelParser.ts","../../src/app/components/blob-response-handler/blob-response-handler.service.ts","../../src/app/components/blob-response-handler/limitng-blob-response-handler.ts"],"sourcesContent":["import { VariableType } from 'limitng/api/models/fourDConstants';\r\nimport { XLHAlign, XLVAlign } from 'limitng/api/models/xl/xlConstants';\r\n\r\nexport type ExcelHucreDegeri = boolean | Date | number | string | null | undefined;\r\n\r\nexport class ExcelRaporuSonuc {\r\n book: IExcelRaporuBook = {\r\n author: 'MedPlan',\r\n activeSheetNo: 1\r\n };\r\n\r\n logo?: IExcelRaporuLogo;\r\n\r\n defaultFont: IExcelRaporuDefaultFont = {\r\n name: 'Calibri',\r\n size: 11\r\n };\r\n\r\n currentTableStyle = '';\r\n currentTable?: number;\r\n dosyaAdi?: string;\r\n sifirlariBasmaSayi = false;\r\n sifirlariBasmaTarih = false;\r\n\r\n // Eski format: üst bilgiler, notlar ve tablolar üst seviyede gelir\r\n ustBilgiler?: IExcelRaporuUstBilgiSatiri[];\r\n ustBilgi?: IExcelRaporuUstBilgiAyari;\r\n not?: IExcelRaporuNotAyari;\r\n notlar?: string[];\r\n tables?: IExcelRaporuTable[];\r\n\r\n // Yeni format: her sheet kendi tablolarını, üst bilgilerini ve notlarını taşır\r\n sheets: IExcelRaporuSheet[] = [];\r\n\r\n window: IExcelRaporuWindow = {\r\n displayGridLines: false\r\n };\r\n}\r\n\r\ninterface IExcelRaporuFont {\r\n name?: string;\r\n size?: number;\r\n color?: string;\r\n style?: number;\r\n}\r\n\r\ninterface IExcelRaporuDefaultFont {\r\n name: string;\r\n size: number;\r\n}\r\n\r\ninterface IExcelRaporuLogo {\r\n genislik?: number;\r\n yukseklik?: number;\r\n ustMarjin?: number;\r\n solMarjin?: number;\r\n ebatPixelmi?: boolean;\r\n ebat?: string;\r\n konum?: string;\r\n}\r\n\r\ninterface IExcelRaporuBook {\r\n author: string;\r\n activeSheetNo: number;\r\n subject?: string;\r\n comments?: string;\r\n}\r\n\r\ninterface IExcelRaporuWindow {\r\n displayGridLines: boolean;\r\n}\r\n\r\ninterface IExcelRaporuUstBilgiSatiri {\r\n rowNo?: number;\r\n ustBilgi: string;\r\n font?: IExcelRaporuFont;\r\n}\r\n\r\ninterface IExcelRaporuUstBilgiAyari {\r\n font?: IExcelRaporuFont;\r\n columnFontColors?: string[];\r\n columnFontStyles?: string[];\r\n}\r\n\r\ninterface IExcelRaporuNotAyari {\r\n font?: IExcelRaporuFont;\r\n}\r\n\r\ninterface IExcelRaporuBorder {\r\n type: string;\r\n lineStyle: string;\r\n weight: string;\r\n color: string;\r\n}\r\n\r\ninterface IExcelRaporuInterior {\r\n color: string;\r\n}\r\n\r\ninterface IExcelRaporuTableBand {\r\n basilacak?: boolean;\r\n satirSayisi?: number;\r\n ustBosluk?: number;\r\n font?: IExcelRaporuFont;\r\n interior?: IExcelRaporuInterior;\r\n border?: IExcelRaporuBorder;\r\n}\r\n\r\ninterface IExcelRaporuTableData {\r\n font?: IExcelRaporuFont;\r\n interior?: IExcelRaporuInterior;\r\n border?: IExcelRaporuBorder;\r\n}\r\n\r\ninterface IExcelRaporuColumnGroup {\r\n groupEnd: string;\r\n groupName: string;\r\n groupStart: string;\r\n}\r\n\r\ninterface IExcelRaporuTableColumnHeader {\r\n title: string;\r\n horizontalAlignment?: XLHAlign;\r\n verticalAlignment?: XLVAlign;\r\n}\r\n\r\ninterface IExcelRaporuTableColumnFooter {\r\n isFunction?: boolean;\r\n function?: number;\r\n title?: string;\r\n horizontalAlignment?: XLHAlign;\r\n verticalAlignment?: XLVAlign;\r\n}\r\n\r\nexport interface IExcelRaporuTableColumn {\r\n property: string;\r\n arrayType?: VariableType;\r\n header: IExcelRaporuTableColumnHeader;\r\n footer?: IExcelRaporuTableColumnFooter;\r\n horizontalAlignment?: XLHAlign;\r\n verticalAlignment?: XLVAlign;\r\n format?: number;\r\n width?: number;\r\n columnNo?: number;\r\n htmlKoduGelebilir?: boolean;\r\n farkRenkli?: boolean;\r\n toplamFonksiyonu?: 'average' | 'none' | 'sum';\r\n toplamFormulu?: string;\r\n}\r\n\r\ninterface IExcelRaporuSatirRenkBilgisi {\r\n color: string;\r\n rowNo: number;\r\n}\r\n\r\ninterface IExcelRaporuSatirYuksekligi {\r\n height: number;\r\n rowNo: number;\r\n}\r\n\r\ninterface IExcelRaporuKolonRenkBilgisi {\r\n color: string;\r\n columnNo: number;\r\n}\r\n\r\ninterface IExcelRaporuTable {\r\n columns: IExcelRaporuTableColumn[];\r\n columnGroup?: IExcelRaporuColumnGroup[];\r\n header?: IExcelRaporuTableBand;\r\n data?: IExcelRaporuTableData;\r\n footer?: IExcelRaporuTableBand;\r\n tableNo?: number;\r\n collection: Record<string, ExcelHucreDegeri>[];\r\n sol?: number;\r\n ust?: number;\r\n veriKaynagi?: string;\r\n sheetName?: string;\r\n hiddenRows?: number[];\r\n sort?: number[];\r\n rows?: string[];\r\n autoFit?: boolean;\r\n toplamSatiri?: boolean;\r\n toplamEtiketi?: string;\r\n columnFontNames?: string[];\r\n columnFontSizes?: number[];\r\n columnFontColors?: string[];\r\n columnFontStyles?: number[];\r\n columnInteriorColors?: Array<string | IExcelRaporuKolonRenkBilgisi>;\r\n columnHeaderFontNames?: string[];\r\n columnHeaderFontSizes?: number[];\r\n columnHeaderFontColors?: string[];\r\n columnHeaderFontStyles?: number[];\r\n columnHeaderInteriorColors?: string[];\r\n columnFooterFontNames?: string[];\r\n columnFooterFontSizes?: number[];\r\n columnFooterFontColors?: string[];\r\n columnFooterFontStyles?: number[];\r\n columnFooterInteriorColors?: string[];\r\n rowFontNames?: string[];\r\n rowFontSizes?: number[];\r\n rowFontColors?: IExcelRaporuSatirRenkBilgisi[];\r\n rowFontStyles?: number[];\r\n rowInteriorColors?: IExcelRaporuSatirRenkBilgisi[];\r\n rowHeights?: IExcelRaporuSatirYuksekligi[];\r\n rowFormats?: string[];\r\n rowHorizontalAlignments?: XLHAlign[];\r\n rowVerticalAlignments?: XLVAlign[];\r\n cellFontNames?: string[];\r\n cellFontSizes?: number[];\r\n cellFontColors?: string[];\r\n cellFontStyles?: number[];\r\n cellInteriorColors?: string[];\r\n cellFormats?: string[];\r\n cellHorizontalAlignments?: XLHAlign[];\r\n cellVerticalAlignments?: XLVAlign[];\r\n rangeFontNames?: string[];\r\n rangeFontSizes?: number[];\r\n rangeFontColors?: string[];\r\n rangeFontStyles?: number[];\r\n rangeInteriorColors?: string[];\r\n rangeFormats?: string[];\r\n rangeHorizontalAlignments?: XLHAlign[];\r\n rangeVerticalAlignments?: XLVAlign[];\r\n}\r\n\r\ninterface IExcelRaporuPageSetup {\r\n orientation?: number;\r\n leftMargin?: number;\r\n topMargin?: number;\r\n bottomMargin?: number;\r\n rightMargin?: number;\r\n headerMargin?: number;\r\n footerMargin?: number;\r\n centerHorizontally?: boolean;\r\n centerVertically?: boolean;\r\n centerHeader?: string;\r\n leftHeader?: string;\r\n rightHeader?: string;\r\n centerFooter?: string;\r\n leftFooter?: string;\r\n rightFooter?: string;\r\n fitToPagesTall?: number;\r\n fitToPagesWide?: number;\r\n fitToPagesTAut?: boolean;\r\n fitToPagesWAut?: boolean;\r\n zoom?: boolean | number;\r\n printArea?: string;\r\n printAreaVar?: string;\r\n}\r\n\r\ninterface IExcelRaporuSheet {\r\n sheetNo?: number;\r\n sheetName?: string;\r\n zoom?: number;\r\n tables?: IExcelRaporuTable[];\r\n ustBilgi?: IExcelRaporuUstBilgiAyari;\r\n ustBilgiler?: IExcelRaporuUstBilgiSatiri[];\r\n notlar?: string[];\r\n not?: IExcelRaporuNotAyari;\r\n pageSetup?: IExcelRaporuPageSetup;\r\n}\r\n","interface IToplamFormuluToken {\n deger: string;\n tur: 'ad' | 'op' | 'sayi';\n}\n\nconst TOKEN_DESENI = /\\s*(\\d+(?:\\.\\d+)?|[A-Za-z_]+|[()+\\-*/,])/gy;\n\nexport class ToplamFormuluHesaplayici {\n private readonly tokenlar: IToplamFormuluToken[];\n private konum = 0;\n\n private constructor(formul: string) {\n this.tokenlar = ToplamFormuluHesaplayici.tokenlaraAyir(formul);\n }\n\n static hesapla(formul: string): number | undefined {\n try {\n const hesaplayici = new ToplamFormuluHesaplayici(formul);\n const sonuc = hesaplayici.ifade();\n return hesaplayici.konum === hesaplayici.tokenlar.length && Number.isFinite(sonuc) ? sonuc : undefined;\n } catch {\n return undefined;\n }\n }\n\n private static tokenlaraAyir(formul: string): IToplamFormuluToken[] {\n const tokenlar: IToplamFormuluToken[] = [];\n TOKEN_DESENI.lastIndex = 0;\n let eslesme = TOKEN_DESENI.exec(formul);\n let okunan = 0;\n\n while (eslesme) {\n const deger = eslesme[1]!;\n okunan = TOKEN_DESENI.lastIndex;\n if (/^\\d/.test(deger)) {\n tokenlar.push({ deger, tur: 'sayi' });\n } else if (/^[A-Za-z_]/.test(deger)) {\n tokenlar.push({ deger: deger.toUpperCase(), tur: 'ad' });\n } else {\n tokenlar.push({ deger, tur: 'op' });\n }\n eslesme = TOKEN_DESENI.exec(formul);\n }\n\n if (formul.slice(okunan).trim()) {\n throw new Error('Geçersiz formül');\n }\n\n return tokenlar;\n }\n\n private ifade(): number {\n let sonuc = this.terim();\n while (this.sonrakiOperatorMu('+', '-')) {\n const islem = this.tokenlar[this.konum++]!.deger;\n const sag = this.terim();\n sonuc = islem === '+' ? sonuc + sag : sonuc - sag;\n }\n\n return sonuc;\n }\n\n private terim(): number {\n let sonuc = this.birim();\n while (this.sonrakiOperatorMu('*', '/')) {\n const islem = this.tokenlar[this.konum++]!.deger;\n const sag = this.birim();\n if (islem === '/' && sag === 0) {\n throw new Error('Sıfıra bölme');\n }\n sonuc = islem === '*' ? sonuc * sag : sonuc / sag;\n }\n\n return sonuc;\n }\n\n private birim(): number {\n const token = this.tokenlar[this.konum++];\n if (!token) {\n throw new Error('Beklenmeyen son');\n }\n\n if (token.tur === 'sayi') {\n return Number(token.deger);\n }\n\n if (token.tur === 'op' && token.deger === '-') {\n return -this.birim();\n }\n\n if (token.tur === 'op' && token.deger === '(') {\n const sonuc = this.ifade();\n this.operatorBekle(')');\n return sonuc;\n }\n\n if (token.tur === 'ad') {\n return this.fonksiyon(token.deger);\n }\n\n throw new Error('Geçersiz token');\n }\n\n private fonksiyon(ad: string): number {\n this.operatorBekle('(');\n if (ad === 'ABS') {\n const sonuc = Math.abs(this.ifade());\n this.operatorBekle(')');\n return sonuc;\n }\n\n if (ad === 'IFERROR') {\n const baslangic = this.konum;\n let sonuc: number | undefined;\n try {\n sonuc = this.ifade();\n } catch {\n this.konum = baslangic;\n this.virguleKadarAtla();\n }\n this.operatorBekle(',');\n const yedek = this.ifade();\n this.operatorBekle(')');\n return sonuc ?? yedek;\n }\n\n throw new Error(`Desteklenmeyen fonksiyon: ${ad}`);\n }\n\n private virguleKadarAtla(): void {\n let derinlik = 0;\n while (this.konum < this.tokenlar.length) {\n const { deger, tur } = this.tokenlar[this.konum]!;\n if (tur === 'op' && deger === '(') {\n derinlik++;\n } else if (tur === 'op' && deger === ')') {\n derinlik--;\n } else if (tur === 'op' && deger === ',' && derinlik === 0) {\n return;\n }\n this.konum++;\n }\n }\n\n private sonrakiOperatorMu(...operatorler: string[]): boolean {\n const token = this.tokenlar[this.konum];\n return token?.tur === 'op' && operatorler.includes(token.deger);\n }\n\n private operatorBekle(operator: string): void {\n const token = this.tokenlar[this.konum++];\n if (token?.tur !== 'op' || token.deger !== operator) {\n throw new Error(`Beklenen: ${operator}`);\n }\n }\n}\n","import ExcelJS from 'exceljs';\r\nimport saveAs from 'file-saver';\r\nimport JSZip from 'jszip';\r\nimport { FontStyle, NumberFormatlar, VariableType } from 'limitng/api/models/fourDConstants';\r\nimport { XLHAlign, XLVAlign } from 'limitng/api/models/xl/xlConstants';\r\nimport { ExcelRaporuSonuc } from './excelRaporuSonuc';\r\nimport { ToplamFormuluHesaplayici } from './toplamFormuluHesaplayici';\r\n\r\ntype TExcelTable = NonNullable<ExcelRaporuSonuc['tables']>[number];\r\ntype TExcelBook = ExcelRaporuSonuc['book'];\r\ntype TExcelTableColumn = TExcelTable['columns'][number];\r\ntype TExcelTableColumnInput = Omit<TExcelTableColumn, 'arrayType'> & Partial<Pick<TExcelTableColumn, 'arrayType'>>;\r\ntype TExcelTableRow = TExcelTable['collection'][number];\r\ntype TExcelSheet = ExcelRaporuSonuc['sheets'][number];\r\ntype TExcelPageSetup = NonNullable<TExcelSheet['pageSetup']>;\r\ntype TExcelUstBilgi = NonNullable<ExcelRaporuSonuc['ustBilgiler']>[number];\r\ntype TDefaultFont = ExcelRaporuSonuc['defaultFont'];\r\n\r\ninterface IExcelFont {\r\n color?: string;\r\n name?: string;\r\n size?: number;\r\n style?: number;\r\n}\r\n\r\ninterface ISheetGrup {\r\n sheetName: string;\r\n sheetNo?: number;\r\n tables: TExcelTable[];\r\n}\r\n\r\ninterface IHazirHucreDegeri {\r\n deger: ExcelJS.CellValue;\r\n fontColorArgb?: string;\r\n}\r\n\r\nexport interface IJsonToExcelSheetOptions {\r\n pageSetup?: TExcelSheet['pageSetup'];\r\n zoom?: number;\r\n}\r\n\r\nexport interface IJsonToExcelTableOptions {\r\n autoFit?: TExcelTable['autoFit'];\r\n data?: TExcelTable['data'];\r\n footer?: TExcelTable['footer'];\r\n header?: TExcelTable['header'];\r\n sol?: TExcelTable['sol'];\r\n toplamEtiketi?: TExcelTable['toplamEtiketi'];\r\n toplamSatiri?: TExcelTable['toplamSatiri'];\r\n ust?: TExcelTable['ust'];\r\n}\r\n\r\nexport class JsonToExcelTableBuilder<TRow extends TExcelTableRow = TExcelTableRow> {\r\n constructor(private readonly table: TExcelTable) {}\r\n\r\n addColumn(column: TExcelTableColumnInput): this {\r\n this.table.columns.push({\r\n arrayType: VariableType.text,\r\n ...column\r\n });\r\n return this;\r\n }\r\n\r\n setRows(rows: TRow[]): this {\r\n this.table.collection = rows;\r\n return this;\r\n }\r\n\r\n setStartColumn(sol: number): this {\r\n this.table.sol = sol;\r\n return this;\r\n }\r\n\r\n setStartRow(ust: number): this {\r\n this.table.ust = ust;\r\n return this;\r\n }\r\n\r\n getColumnSayisi(): number {\r\n return this.table.columns.length;\r\n }\r\n}\r\n\r\nexport class JsonToExcelSheetBuilder {\r\n constructor(private readonly sheet: TExcelSheet) {}\r\n\r\n addTable<TRow extends TExcelTableRow = TExcelTableRow>(\r\n rows: TRow[],\r\n options: IJsonToExcelTableOptions = {}\r\n ): JsonToExcelTableBuilder<TRow> {\r\n const table: TExcelTable = {\r\n collection: rows,\r\n columns: [],\r\n ...(options.autoFit !== undefined && { autoFit: options.autoFit }),\r\n ...(options.data && { data: options.data }),\r\n ...(options.footer && { footer: options.footer }),\r\n ...(options.header && { header: options.header }),\r\n ...(options.sol !== undefined && { sol: options.sol }),\r\n ...(options.toplamEtiketi !== undefined && { toplamEtiketi: options.toplamEtiketi }),\r\n ...(options.toplamSatiri !== undefined && { toplamSatiri: options.toplamSatiri }),\r\n ...(options.ust !== undefined && { ust: options.ust })\r\n };\r\n\r\n this.sheet.tables ??= [];\r\n this.sheet.tables.push(table);\r\n\r\n return new JsonToExcelTableBuilder<TRow>(table);\r\n }\r\n\r\n addUstBilgi(ustBilgi: string, font?: TExcelUstBilgi['font']): this {\r\n this.sheet.ustBilgiler ??= [];\r\n this.sheet.ustBilgiler.push(JsonToExcelParser.ustBilgiEkle(ustBilgi, font));\r\n return this;\r\n }\r\n\r\n getUstBilgiSayisi(): number {\r\n return this.sheet.ustBilgiler?.length ?? 0;\r\n }\r\n\r\n getSheetNo(): number | undefined {\r\n return this.sheet.sheetNo;\r\n }\r\n\r\n setSheetName(sheetName: string): this {\r\n this.sheet.sheetName = sheetName;\r\n return this;\r\n }\r\n\r\n setZoom(zoom: number): this {\r\n this.sheet.zoom = zoom;\r\n return this;\r\n }\r\n}\r\n\r\nexport class JsonToExcelReportBuilder {\r\n private readonly sonuc = new ExcelRaporuSonuc();\r\n\r\n addSheet(sheetName: string, options: IJsonToExcelSheetOptions = {}): JsonToExcelSheetBuilder {\r\n const sheet: TExcelSheet = {\r\n sheetName,\r\n sheetNo: this.sonuc.sheets.length + 1,\r\n ...(options.pageSetup && { pageSetup: options.pageSetup }),\r\n ...(options.zoom !== undefined && { zoom: options.zoom })\r\n };\r\n\r\n this.sonuc.sheets.push(sheet);\r\n\r\n return new JsonToExcelSheetBuilder(sheet);\r\n }\r\n\r\n build(): ExcelRaporuSonuc {\r\n return this.sonuc;\r\n }\r\n\r\n setAuthor(author: string): this {\r\n this.sonuc.book.author = author;\r\n return this;\r\n }\r\n\r\n setCurrentTableStyle(currentTableStyle: string): this {\r\n this.sonuc.currentTableStyle = currentTableStyle;\r\n return this;\r\n }\r\n\r\n setSubject(subject: string): this {\r\n this.sonuc.book.subject = subject;\r\n return this;\r\n }\r\n}\r\n\r\nexport class JsonToExcelParser {\r\n static async indir(sonuc: ExcelRaporuSonuc, dosyaAdi: string): Promise<void> {\r\n const blob = await this.blobOlustur(sonuc);\r\n const normalizeDosyaAdi = this.dosyaAdiDuzenle(dosyaAdi);\r\n saveAs(blob, `${normalizeDosyaAdi}.xlsx`);\r\n }\r\n\r\n static async blobOlustur(sonuc: ExcelRaporuSonuc): Promise<Blob> {\r\n const workbook = this.workbookOlustur(sonuc);\r\n const buffer = await workbook.xlsx.writeBuffer();\r\n const duzeltilmisBuffer = await this.toplamSatiriFormulleriniYaz(workbook, buffer);\r\n\r\n return new Blob([duzeltilmisBuffer], {\r\n type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n });\r\n }\r\n\r\n private static async toplamSatiriFormulleriniYaz(workbook: ExcelJS.Workbook, buffer: ExcelJS.Buffer): Promise<ExcelJS.Buffer> {\r\n const tabloFormulleri = new Map<string, Map<number, string>>();\r\n for (const worksheet of workbook.worksheets) {\r\n for (const tablo of worksheet.getTables() as unknown as Array<{ table: { name: string; columns: Array<{ totalsRowFormula?: string; totalsRowFunction?: string }> } }>) {\r\n const formuller = new Map<number, string>();\r\n for (const [index, kolon] of tablo.table.columns.entries()) {\r\n if (kolon.totalsRowFunction === 'custom' && kolon.totalsRowFormula) {\r\n formuller.set(index + 1, kolon.totalsRowFormula);\r\n }\r\n }\r\n if (formuller.size) {\r\n tabloFormulleri.set(tablo.table.name, formuller);\r\n }\r\n }\r\n }\r\n\r\n if (!tabloFormulleri.size) {\r\n return buffer;\r\n }\r\n\r\n // Ekr: JSZip, sadece atılan excelde custom toplam formülü varsa(Fark % ağırlıklı oran hesaplaması gibi) çalışır.\r\n const zip = await JSZip.loadAsync(buffer);\r\n const tabloDosyalari = Object.keys(zip.files).filter(ad => /^xl\\/tables\\/table\\d+\\.xml$/.test(ad));\r\n await Promise.all(tabloDosyalari.map(async dosyaAdi => {\r\n const xml = await zip.file(dosyaAdi)!.async('string');\r\n const tabloAdi = /<table [^>]*?\\bname=\"([^\"]*)\"/.exec(xml)?.[1];\r\n const formuller = tabloAdi ? tabloFormulleri.get(tabloAdi) : undefined;\r\n if (!formuller) {\r\n return;\r\n }\r\n\r\n const yeniXml = xml.replaceAll(\r\n /<tableColumn id=\"(\\d+)\"([^>]*?) totalsRowFunction=\"custom\"([^>]*?)\\/>/g,\r\n (eslesme, id: string, once: string, sonra: string) => {\r\n const formul = formuller.get(Number(id));\r\n return formul\r\n ? `<tableColumn id=\"${id}\"${once} totalsRowFunction=\"custom\"${sonra}><totalsRowFormula>${this.xmlKacis(formul)}</totalsRowFormula></tableColumn>`\r\n : eslesme;\r\n }\r\n );\r\n zip.file(dosyaAdi, yeniXml);\r\n }));\r\n\r\n return zip.generateAsync({ type: 'arraybuffer' });\r\n }\r\n\r\n private static xmlKacis(metin: string): string {\r\n return metin\r\n .replaceAll('&', '&amp;')\r\n .replaceAll('<', '&lt;')\r\n .replaceAll('>', '&gt;');\r\n }\r\n\r\n static standartPageSetupOlustur(): TExcelPageSetup {\r\n return {\r\n bottomMargin: 1,\r\n centerHorizontally: true,\r\n centerVertically: true,\r\n fitToPagesTall: 1,\r\n fitToPagesWide: 1,\r\n leftMargin: 1,\r\n orientation: 2,\r\n rightMargin: 1,\r\n topMargin: 1\r\n };\r\n }\r\n\r\n static ustBilgiEkle(ustBilgi: string, font?: TExcelUstBilgi['font']): TExcelUstBilgi {\r\n return font ? { font, ustBilgi } : { ustBilgi };\r\n }\r\n\r\n static raporOlustur(): JsonToExcelReportBuilder {\r\n return new JsonToExcelReportBuilder();\r\n }\r\n\r\n private static workbookOlustur(sonuc: ExcelRaporuSonuc): ExcelJS.Workbook {\r\n const workbook = new ExcelJS.Workbook();\r\n workbook.created = new Date();\r\n workbook.calcProperties.fullCalcOnLoad = true;\r\n\r\n const gridLinesGorunur = sonuc.window.displayGridLines;\r\n\r\n if (this.yeniYapiMi(sonuc)) {\r\n workbook.creator = sonuc.book.author || 'MedPlan';\r\n workbook.subject = '';\r\n workbook.description = '';\r\n this.yeniFormatSheetsYaz(workbook, sonuc, gridLinesGorunur);\r\n } else {\r\n workbook.creator = sonuc.book.author || 'MedPlan';\r\n workbook.subject = this.konuVer(sonuc.book, sonuc.ustBilgiler?.[0]?.ustBilgi);\r\n workbook.description = sonuc.book.comments || '';\r\n this.eskiFormatSheetsYaz(workbook, sonuc, gridLinesGorunur);\r\n }\r\n\r\n this.aktifSayfayiAyarla(workbook, sonuc.book.activeSheetNo, workbook.worksheets.length);\r\n\r\n return workbook;\r\n }\r\n\r\n private static yeniYapiMi(sonuc: ExcelRaporuSonuc): boolean {\r\n const ilkSheet = sonuc.sheets[0] as unknown as { tables?: unknown };\r\n if (Array.isArray(ilkSheet?.tables)) {\r\n return true;\r\n }\r\n\r\n const runtimeSonuc = sonuc as unknown as { tables?: unknown };\r\n\r\n return !Array.isArray(runtimeSonuc.tables);\r\n }\r\n\r\n private static yeniFormatSheetsYaz(workbook: ExcelJS.Workbook, sonuc: ExcelRaporuSonuc, gridLinesGorunur: boolean): void {\r\n for (let index = 0; index < sonuc.sheets.length; index++) {\r\n const sheet = sonuc.sheets[index]!;\r\n const sheetAdi = this.sayfaAdiDuzenle(sheet.sheetName || 'Rapor', index + 1);\r\n const worksheet = workbook.addWorksheet(sheetAdi);\r\n const zoomScale = sheet.zoom && sheet.zoom > 0 ? sheet.zoom : undefined;\r\n worksheet.views = [{ showGridLines: gridLinesGorunur, ...(zoomScale !== undefined && { zoomScale }) }];\r\n this.sayfaDuzeniniBelirle(worksheet, sheet);\r\n\r\n const ustBilgiler = sheet.ustBilgiler ?? [];\r\n this.yeniFormatUstBilgileriYaz(worksheet, ustBilgiler, sonuc.defaultFont);\r\n\r\n let sonSatir = ustBilgiler.length + 1;\r\n for (const table of sheet.tables ?? []) {\r\n sonSatir = Math.max(sonSatir, this.tabloyuYaz(worksheet, sonuc, table));\r\n }\r\n\r\n if (sheet.notlar?.length) {\r\n this.notlariYazList(worksheet, sheet.notlar, sheet.not?.font, sonSatir + 2, sonuc.defaultFont);\r\n }\r\n }\r\n\r\n if (sonuc.sheets.length === 0) {\r\n const worksheet = workbook.addWorksheet('Rapor');\r\n worksheet.views = [{ showGridLines: gridLinesGorunur }];\r\n }\r\n }\r\n\r\n private static eskiFormatSheetsYaz(workbook: ExcelJS.Workbook, sonuc: ExcelRaporuSonuc, gridLinesGorunur: boolean): void {\r\n const tablesBySheet = this.sheetBazliTablolar(sonuc);\r\n const ustBilgiler = sonuc.ustBilgiler ?? [];\r\n const notlar = sonuc.notlar ?? [];\r\n\r\n for (const sheetGrup of tablesBySheet) {\r\n const worksheet = workbook.addWorksheet(sheetGrup.sheetName);\r\n worksheet.views = [{ showGridLines: gridLinesGorunur }];\r\n\r\n this.ustBilgileriYaz(worksheet, ustBilgiler, sonuc.defaultFont);\r\n\r\n let sonSatir = 1;\r\n for (const table of sheetGrup.tables) {\r\n sonSatir = Math.max(sonSatir, this.tabloyuYaz(worksheet, sonuc, table));\r\n }\r\n\r\n this.notlariYazList(worksheet, notlar, sonuc.not?.font, sonSatir + 2, sonuc.defaultFont);\r\n }\r\n\r\n if (tablesBySheet.length === 0) {\r\n const worksheet = workbook.addWorksheet(this.bosRaporSheetAdiniVer(sonuc));\r\n worksheet.views = [{ showGridLines: gridLinesGorunur }];\r\n this.ustBilgileriYaz(worksheet, ustBilgiler, sonuc.defaultFont);\r\n this.notlariYazList(worksheet, notlar, sonuc.not?.font, ustBilgiler.length + 2, sonuc.defaultFont);\r\n }\r\n }\r\n\r\n private static sheetBazliTablolar(sonuc: ExcelRaporuSonuc): ISheetGrup[] {\r\n const grouped = new Map<string, ISheetGrup>();\r\n\r\n for (const table of sonuc.tables ?? []) {\r\n const sheetNo = this.tableSheetNoVer(table);\r\n const sheetKey = this.sheetKeyVer(table, sheetNo, grouped.size + 1);\r\n const existing = grouped.get(sheetKey);\r\n\r\n if (existing) {\r\n existing.tables.push(table);\r\n continue;\r\n }\r\n\r\n grouped.set(sheetKey, {\r\n sheetName: this.sheetAdiniBelirle(sonuc, table, grouped.size + 1, sheetNo),\r\n ...(sheetNo !== undefined && { sheetNo }),\r\n tables: [table]\r\n });\r\n }\r\n\r\n return Array.from(grouped.values()).sort((a, b) => this.sheetGrupSirasiVer(a) - this.sheetGrupSirasiVer(b));\r\n }\r\n\r\n private static tableSheetNoVer(table: TExcelTable): number | undefined {\r\n const runtimeTable = table as TExcelTable & { sheetNo?: number };\r\n\r\n return runtimeTable.sheetNo;\r\n }\r\n\r\n private static sheetKeyVer(table: TExcelTable, sheetNo: number | undefined, index: number): string {\r\n if (sheetNo !== undefined) {\r\n return `sheet-no-${sheetNo}`;\r\n }\r\n\r\n const eskiSheetName = table.sheetName?.trim();\r\n if (eskiSheetName) {\r\n return `sheet-name-${eskiSheetName}`;\r\n }\r\n\r\n return `sheet-index-${index}`;\r\n }\r\n\r\n private static sheetAdiniBelirle(\r\n sonuc: ExcelRaporuSonuc,\r\n table: TExcelTable,\r\n index: number,\r\n sheetNo: number | undefined\r\n ): string {\r\n const jsonSheet = this.jsonSheetBul(sonuc.sheets, sheetNo, index);\r\n if (jsonSheet?.sheetName?.trim()) {\r\n return this.sayfaAdiDuzenle(jsonSheet.sheetName, index);\r\n }\r\n\r\n return this.sayfaAdiDuzenle(table.sheetName || 'Rapor', index);\r\n }\r\n\r\n private static jsonSheetBul(\r\n sheets: TExcelSheet[],\r\n sheetNo: number | undefined,\r\n index: number\r\n ): TExcelSheet | undefined {\r\n if (sheetNo !== undefined) {\r\n return sheets.find(sheet => sheet.sheetNo === sheetNo);\r\n }\r\n\r\n return sheets.find(sheet => sheet.sheetNo === index) ?? sheets[index - 1];\r\n }\r\n\r\n private static konuVer(book: TExcelBook, ilkUstBilgi: string | undefined): string {\r\n return book.subject || ilkUstBilgi || 'Rapor';\r\n }\r\n\r\n private static bosRaporSheetAdiniVer(sonuc: ExcelRaporuSonuc): string {\r\n const ilkSheetAdi = sonuc.sheets[0]?.sheetName;\r\n\r\n return this.sayfaAdiDuzenle(ilkSheetAdi || 'Rapor', 1);\r\n }\r\n\r\n private static aktifSayfayiAyarla(workbook: ExcelJS.Workbook, activeSheetNo: number, toplamSheetSayisi: number) {\r\n const aktifTab = this.aktifTabNoVer(activeSheetNo, toplamSheetSayisi);\r\n if (aktifTab === undefined) {\r\n return;\r\n }\r\n\r\n workbook.views = [{\r\n activeTab: aktifTab,\r\n firstSheet: aktifTab,\r\n height: 20000,\r\n visibility: 'visible',\r\n width: 20000,\r\n x: 0,\r\n y: 0\r\n }];\r\n }\r\n\r\n private static aktifTabNoVer(activeSheetNo: number, toplamSheetSayisi: number): number | undefined {\r\n if (toplamSheetSayisi <= 0) {\r\n return undefined;\r\n }\r\n\r\n const aktifSheetNo = Number.isFinite(activeSheetNo) && activeSheetNo > 0 ? activeSheetNo : 1;\r\n\r\n return Math.min(aktifSheetNo - 1, toplamSheetSayisi - 1);\r\n }\r\n\r\n private static sheetGrupSirasiVer(sheetGrup: ISheetGrup): number {\r\n return sheetGrup.sheetNo ?? Number.MAX_SAFE_INTEGER;\r\n }\r\n\r\n private static yeniFormatUstBilgileriYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n ustBilgiler: TExcelUstBilgi[],\r\n defaultFont: TDefaultFont\r\n ): void {\r\n for (let index = 0; index < ustBilgiler.length; index++) {\r\n const ustBilgi = ustBilgiler[index]!;\r\n const hucre = worksheet.getCell(index + 1, 1);\r\n hucre.value = ustBilgi.ustBilgi;\r\n this.hucreFontunuUygula(hucre, ustBilgi.font, defaultFont);\r\n hucre.alignment = { horizontal: 'left', vertical: 'middle', wrapText: false };\r\n }\r\n }\r\n\r\n private static ustBilgileriYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n ustBilgiler: TExcelUstBilgi[],\r\n defaultFont: TDefaultFont\r\n ): void {\r\n for (const ustBilgi of ustBilgiler) {\r\n const hucre = worksheet.getCell(ustBilgi.rowNo ?? 1, 1);\r\n hucre.value = ustBilgi.ustBilgi;\r\n this.hucreFontunuUygula(hucre, ustBilgi.font, defaultFont);\r\n hucre.alignment = { horizontal: 'left', vertical: 'middle', wrapText: false };\r\n }\r\n }\r\n\r\n private static notlariYazList(\r\n worksheet: ExcelJS.Worksheet,\r\n notlar: string[],\r\n notFont: IExcelFont | undefined,\r\n baslangicSatiri: number,\r\n defaultFont: TDefaultFont\r\n ): void {\r\n let satirNo = baslangicSatiri;\r\n for (const not of notlar) {\r\n const cell = worksheet.getCell(satirNo, 1);\r\n cell.value = not;\r\n this.hucreFontunuUygula(cell, notFont, defaultFont);\r\n cell.alignment = { vertical: 'middle', wrapText: true };\r\n satirNo++;\r\n }\r\n }\r\n\r\n private static sayfaDuzeniniBelirle(worksheet: ExcelJS.Worksheet, sheet: TExcelSheet): void {\r\n const { pageSetup } = sheet;\r\n if (!pageSetup) {\r\n return;\r\n }\r\n\r\n if (pageSetup.orientation === 2) {\r\n worksheet.pageSetup.orientation = 'landscape';\r\n } else if (pageSetup.orientation === 1) {\r\n worksheet.pageSetup.orientation = 'portrait';\r\n }\r\n\r\n const hasMargin =\r\n pageSetup.leftMargin !== undefined ||\r\n pageSetup.rightMargin !== undefined ||\r\n pageSetup.topMargin !== undefined ||\r\n pageSetup.bottomMargin !== undefined ||\r\n pageSetup.headerMargin !== undefined ||\r\n pageSetup.footerMargin !== undefined;\r\n\r\n if (hasMargin) {\r\n worksheet.pageSetup.margins = {\r\n left: pageSetup.leftMargin ?? 0.7,\r\n right: pageSetup.rightMargin ?? 0.7,\r\n top: pageSetup.topMargin ?? 0.75,\r\n bottom: pageSetup.bottomMargin ?? 0.75,\r\n header: pageSetup.headerMargin ?? 0.3,\r\n footer: pageSetup.footerMargin ?? 0.3\r\n };\r\n }\r\n\r\n if (pageSetup.centerHorizontally !== undefined) {\r\n worksheet.pageSetup.horizontalCentered = pageSetup.centerHorizontally;\r\n }\r\n if (pageSetup.centerVertically !== undefined) {\r\n worksheet.pageSetup.verticalCentered = pageSetup.centerVertically;\r\n }\r\n\r\n const fitTall = pageSetup.fitToPagesTall;\r\n const fitWide = pageSetup.fitToPagesWide;\r\n if (fitTall !== undefined || fitWide !== undefined || pageSetup.fitToPagesTAut || pageSetup.fitToPagesWAut) {\r\n worksheet.pageSetup.fitToPage = true;\r\n worksheet.pageSetup.fitToHeight = pageSetup.fitToPagesTAut ? 0 : (fitTall ?? 1);\r\n worksheet.pageSetup.fitToWidth = pageSetup.fitToPagesWAut ? 0 : (fitWide ?? 1);\r\n }\r\n\r\n if (typeof pageSetup.zoom === 'number' && pageSetup.zoom > 0) {\r\n worksheet.pageSetup.scale = pageSetup.zoom;\r\n }\r\n\r\n if (pageSetup.printArea) {\r\n worksheet.pageSetup.printArea = pageSetup.printArea;\r\n }\r\n\r\n const pageHeader = this.baslikAltbilgiMetniOlustur(pageSetup.leftHeader, pageSetup.centerHeader, pageSetup.rightHeader);\r\n const pageFooter = this.baslikAltbilgiMetniOlustur(pageSetup.leftFooter, pageSetup.centerFooter, pageSetup.rightFooter);\r\n if (pageHeader) {\r\n worksheet.headerFooter.oddHeader = pageHeader;\r\n }\r\n if (pageFooter) {\r\n worksheet.headerFooter.oddFooter = pageFooter;\r\n }\r\n }\r\n\r\n private static baslikAltbilgiMetniOlustur(sol?: string, orta?: string, sag?: string): string | undefined {\r\n const parcalar: string[] = [];\r\n if (sol) {\r\n parcalar.push(`&L${sol}`);\r\n }\r\n if (orta) {\r\n parcalar.push(`&C${orta}`);\r\n }\r\n if (sag) {\r\n parcalar.push(`&R${sag}`);\r\n }\r\n return parcalar.length ? parcalar.join('') : undefined;\r\n }\r\n\r\n private static tabloyuYaz(worksheet: ExcelJS.Worksheet, sonuc: ExcelRaporuSonuc, kaynakTable: TExcelTable): number {\r\n const table = kaynakTable;\r\n const toplamSatiriVar = table.toplamSatiri === true && table.collection.length > 0 && table.columns.length > 0;\r\n\r\n if (!table.columns.length) {\r\n return table.ust ?? 1;\r\n }\r\n\r\n const startRow = Math.max(1, table.ust ?? 1);\r\n const startCol = Math.max(1, table.sol ?? 1);\r\n const gecerliTableStyle = this.gecerliTableStyleVer(sonuc.currentTableStyle);\r\n const headerTitlelari = table.columns.map(column => this.baslikMetniniHazirla(column.header.title || ''));\r\n const gorunenBaslikMetinleri = headerTitlelari.map(title => title.replaceAll('\\n', ' '));\r\n const tabloKolonAdlari = this.benzersizKolonAdlariOlustur(gorunenBaslikMetinleri);\r\n const tabloAdi = this.tabloAdiOlustur(worksheet.name, startRow, startCol);\r\n\r\n const headerFont = table.header?.font;\r\n const uygulanacakHeaderFont = headerFont?.color ? headerFont : {\r\n ...headerFont,\r\n color: 'FFFFFFFF'\r\n };\r\n const dataFont = table.data?.font;\r\n const hiddenRowSet = new Set(table.hiddenRows ?? []);\r\n\r\n const formulCeller: Array<{\r\n colIndex: number;\r\n column: TExcelTableColumn;\r\n formula: ExcelJS.CellFormulaValue;\r\n rowIndex: number;\r\n }> = [];\r\n const hucreFontRenkleri: Array<Array<string | undefined>> = [];\r\n const satirlar = table.collection.map((rowData, rowIndex) =>\r\n table.columns.map((column, colIndex) => {\r\n const hazirHucre = this.hucreDegeriniHazirla(rowData, column, sonuc.sifirlariBasmaSayi);\r\n hucreFontRenkleri[rowIndex] ??= [];\r\n hucreFontRenkleri[rowIndex]![colIndex] = hazirHucre.fontColorArgb;\r\n\r\n if (hazirHucre.deger !== null && typeof hazirHucre.deger === 'object' && 'formula' in hazirHucre.deger) {\r\n formulCeller.push({ rowIndex, colIndex, column, formula: hazirHucre.deger as ExcelJS.CellFormulaValue });\r\n return '' as ExcelJS.CellValue;\r\n }\r\n return hazirHucre.deger;\r\n })\r\n );\r\n\r\n const toplamHucreleri = toplamSatiriVar ? this.toplamHucreleriniHazirla(table) : [];\r\n\r\n this.kolonGrubuYaz(worksheet, startRow, startCol, table);\r\n\r\n const headerRow = worksheet.getRow(startRow);\r\n const tableStyle = this.tableStyleDonustur(gecerliTableStyle);\r\n const bosSatirEklendi = satirlar.length === 0;\r\n const tabloSatirlari = bosSatirEklendi ? [table.columns.map(() => '')] : satirlar;\r\n\r\n worksheet.addTable({\r\n name: tabloAdi,\r\n ref: worksheet.getCell(startRow, startCol).address,\r\n headerRow: true,\r\n totalsRow: toplamSatiriVar,\r\n ...(tableStyle && { style: tableStyle }),\r\n columns: tabloKolonAdlari.map((ad, index) => ({\r\n name: ad,\r\n filterButton: true,\r\n ...(toplamSatiriVar && this.toplamSatiriKolonuVer(\r\n toplamHucreleri[index]?.deger,\r\n index,\r\n this.toplamFonksiyonuVer(table.columns[index]!),\r\n table.columns[index]!.toplamFormulu\r\n ? this.toplamFormuluExcelMetniVer(table, table.columns[index]!.toplamFormulu!, tabloAdi, tabloKolonAdlari)\r\n : undefined\r\n ))\r\n })),\r\n rows: tabloSatirlari\r\n });\r\n\r\n if (bosSatirEklendi) {\r\n worksheet.getRow(startRow + 1).hidden = true;\r\n }\r\n\r\n this.kolonGenislikleriniUygula(\r\n worksheet,\r\n startCol,\r\n table.columns,\r\n satirlar,\r\n table.autoFit,\r\n toplamHucreleri.map(hucre => hucre.deger)\r\n );\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = headerRow.getCell(startCol + colIndex);\r\n cell.alignment = {\r\n horizontal: this.yatayHizaDonustur(column.header.horizontalAlignment),\r\n vertical: 'bottom',\r\n wrapText: false\r\n };\r\n this.hucreFontunuUygula(cell, uygulanacakHeaderFont, sonuc.defaultFont);\r\n }\r\n\r\n for (let rowIndex = 0; rowIndex < table.collection.length; rowIndex++) {\r\n const wsRow = worksheet.getRow(startRow + 1 + rowIndex);\r\n const satir1Bazli = rowIndex + 1;\r\n\r\n if (hiddenRowSet.has(satir1Bazli)) {\r\n wsRow.hidden = true;\r\n }\r\n\r\n const rowHeight = table.rowHeights?.find(rh => rh.rowNo === satir1Bazli);\r\n if (rowHeight?.height) {\r\n wsRow.height = rowHeight.height;\r\n }\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = wsRow.getCell(startCol + colIndex);\r\n const hucreDegeri = satirlar[rowIndex]![colIndex]!;\r\n cell.value = hucreDegeri;\r\n this.hucreFontunuUygula(cell, dataFont, sonuc.defaultFont);\r\n const hucreFontRengi = hucreFontRenkleri[rowIndex]?.[colIndex];\r\n if (hucreFontRengi) {\r\n cell.font = { ...(cell.font ?? {}), color: { argb: hucreFontRengi } };\r\n }\r\n const numFmt = this.numberFormatDonustur(this.kolonFormatiniBelirle(column));\r\n if (numFmt) {\r\n cell.numFmt = numFmt;\r\n } else if (hucreDegeri instanceof Date) {\r\n cell.numFmt = this.varsayilanTarihFormatiniVer();\r\n }\r\n const hucreHizasi = this.hucreYatayHizasiniBelirle(column);\r\n cell.alignment = {\r\n ...(hucreHizasi !== undefined && { horizontal: hucreHizasi }),\r\n vertical: this.dikeyHizaDonustur(column.verticalAlignment),\r\n wrapText: false\r\n };\r\n\r\n // Sütun rengi\r\n const colFontColor = table.columnFontColors?.[colIndex];\r\n if (colFontColor) {\r\n const argb = this.argbDonustur(colFontColor);\r\n if (argb) {\r\n cell.font = { ...(cell.font ?? {}), color: { argb } };\r\n }\r\n }\r\n const colIntColor = this.kolonRenginiBul(table.columnInteriorColors, colIndex);\r\n if (colIntColor) {\r\n const argb = this.argbDonustur(colIntColor);\r\n if (argb) {\r\n cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb } };\r\n }\r\n }\r\n\r\n // Satır rengi (sütun rengini ezer)\r\n const rowFontColor = table.rowFontColors?.find(rc => rc.rowNo === satir1Bazli);\r\n if (rowFontColor) {\r\n const argb = this.argbDonustur(rowFontColor.color);\r\n if (argb) {\r\n cell.font = { ...(cell.font ?? {}), color: { argb } };\r\n }\r\n }\r\n const rowIntColor = table.rowInteriorColors?.find(rc => rc.rowNo === satir1Bazli);\r\n if (rowIntColor) {\r\n const argb = this.argbDonustur(rowIntColor.color);\r\n if (argb) {\r\n cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb } };\r\n }\r\n }\r\n }\r\n }\r\n\r\n for (const { rowIndex, colIndex, column, formula } of formulCeller) {\r\n const cell = worksheet.getRow(startRow + 1 + rowIndex).getCell(startCol + colIndex);\r\n cell.value = formula;\r\n const formulHizasi = this.hucreYatayHizasiniBelirle(column);\r\n cell.alignment = {\r\n ...(cell.alignment ?? {}),\r\n ...(formulHizasi !== undefined && { horizontal: formulHizasi })\r\n };\r\n }\r\n\r\n let sonSatir = startRow + table.collection.length;\r\n\r\n if (toplamSatiriVar) {\r\n sonSatir++;\r\n this.toplamSatiriniYaz(worksheet, sonuc, table, toplamHucreleri, sonSatir, startCol);\r\n }\r\n\r\n this.farkRenkleriniUygula(worksheet, table, startRow + 1, sonSatir, startCol);\r\n\r\n // Footer satırları\r\n const footer = table.footer;\r\n if (footer?.basilacak) {\r\n const ustBosluk = footer.ustBosluk ?? 0;\r\n const satirSayisi = footer.satirSayisi ?? 1;\r\n const footerBasSatir = sonSatir + 1 + ustBosluk;\r\n\r\n for (let fi = 0; fi < satirSayisi; fi++) {\r\n const footerRow = worksheet.getRow(footerBasSatir + fi);\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = footerRow.getCell(startCol + colIndex);\r\n this.hucreFontunuUygula(cell, footer.font, sonuc.defaultFont);\r\n\r\n const colFooter = column.footer;\r\n if (colFooter?.isFunction) {\r\n const footerFormula = this.footerFormulunuOlustur(column, colIndex, startRow, startCol, table.collection.length);\r\n if (footerFormula) {\r\n cell.value = { formula: footerFormula };\r\n const numFmt = this.numberFormatDonustur(this.kolonFormatiniBelirle(column));\r\n if (numFmt) {\r\n cell.numFmt = numFmt;\r\n }\r\n }\r\n } else if (colFooter?.title) {\r\n cell.value = colFooter.title;\r\n }\r\n const footerHizasi = colFooter?.isFunction\r\n ? this.hucreYatayHizasiniBelirle(column)\r\n : this.yatayHizaDonustur(colFooter?.horizontalAlignment);\r\n cell.alignment = {\r\n ...(footerHizasi !== undefined && { horizontal: footerHizasi }),\r\n vertical: 'middle',\r\n wrapText: false\r\n };\r\n }\r\n }\r\n\r\n sonSatir = footerBasSatir + satirSayisi - 1;\r\n }\r\n\r\n return sonSatir;\r\n }\r\n\r\n private static farkRenkleriniUygula(\r\n worksheet: ExcelJS.Worksheet,\r\n table: TExcelTable,\r\n ilkSatir: number,\r\n sonSatir: number,\r\n startCol: number\r\n ): void {\r\n if (!table.collection.length) {\r\n return;\r\n }\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n if (!table.columns[colIndex]!.farkRenkli) {\r\n continue;\r\n }\r\n\r\n const ilkHucre = worksheet.getCell(ilkSatir, startCol + colIndex).address;\r\n const sonHucre = worksheet.getCell(sonSatir, startCol + colIndex).address;\r\n worksheet.addConditionalFormatting({\r\n ref: `${ilkHucre}:${sonHucre}`,\r\n rules: [\r\n { type: 'cellIs', operator: 'greaterThan', formulae: [0], priority: 1, style: { font: { color: { argb: 'FF16A34A' } } } },\r\n { type: 'cellIs', operator: 'lessThan', formulae: [0], priority: 2, style: { font: { color: { argb: 'FFDC2626' } } } }\r\n ]\r\n });\r\n }\r\n }\r\n\r\n private static toplamHucreleriniHazirla(table: TExcelTable): IHazirHucreDegeri[] {\r\n return table.columns.map((column, colIndex) => {\r\n if (colIndex === 0) {\r\n return { deger: table.toplamEtiketi ?? 'Toplam' };\r\n }\r\n\r\n if (column.toplamFormulu) {\r\n return { deger: this.toplamFormuluSonucuVer(table, column.toplamFormulu) ?? null };\r\n }\r\n\r\n const fonksiyon = this.toplamFonksiyonuVer(column);\r\n if (!fonksiyon) {\r\n return { deger: null };\r\n }\r\n\r\n const { adet, toplam } = this.kolonToplaminiVer(table, column.property);\r\n if (fonksiyon === 'average') {\r\n return { deger: adet ? toplam / adet : 0 };\r\n }\r\n\r\n return { deger: toplam };\r\n });\r\n }\r\n\r\n private static kolonToplaminiVer(table: TExcelTable, property: string): { adet: number; toplam: number } {\r\n let toplam = 0;\r\n let adet = 0;\r\n for (const row of table.collection) {\r\n const hamDeger = row[property];\r\n const sayi = Number(hamDeger);\r\n if (hamDeger !== null && hamDeger !== undefined && hamDeger !== '' && Number.isFinite(sayi)) {\r\n toplam += sayi;\r\n adet++;\r\n }\r\n }\r\n\r\n return { adet, toplam };\r\n }\r\n\r\n private static toplamFormulundekiKolonlariVer(table: TExcelTable, formul: string): string[] | undefined {\r\n const properties = [...formul.matchAll(/\\{([^{}]+)\\}/g)].map(eslesme => eslesme[1]!);\r\n const tumKolonlarVar = properties.every(property => table.columns.some(kolon => kolon.property === property));\r\n\r\n return properties.length && tumKolonlarVar ? properties : undefined;\r\n }\r\n\r\n private static toplamFormuluSonucuVer(table: TExcelTable, formul: string): number | undefined {\r\n if (!this.toplamFormulundekiKolonlariVer(table, formul)) {\r\n return undefined;\r\n }\r\n\r\n const sayisalFormul = formul.replaceAll(/\\{([^{}]+)\\}/g, (_eslesme, property: string) => {\r\n const { toplam } = this.kolonToplaminiVer(table, property);\r\n return toplam < 0 ? `(${toplam})` : String(toplam);\r\n });\r\n\r\n return ToplamFormuluHesaplayici.hesapla(sayisalFormul);\r\n }\r\n\r\n private static toplamFormuluExcelMetniVer(\r\n table: TExcelTable,\r\n formul: string,\r\n tabloAdi: string,\r\n kolonAdlari: string[]\r\n ): string | undefined {\r\n if (!this.toplamFormulundekiKolonlariVer(table, formul)) {\r\n return undefined;\r\n }\r\n\r\n return formul.replaceAll(/\\{([^{}]+)\\}/g, (_eslesme, property: string) => {\r\n const kolonAdi = kolonAdlari[table.columns.findIndex(kolon => kolon.property === property)]!;\r\n const kacisliAd = kolonAdi.replaceAll(/[[\\]#']/g, '\\'$&');\r\n return `SUBTOTAL(109,${tabloAdi}[${kacisliAd}])`;\r\n });\r\n }\r\n\r\n private static toplamFonksiyonuVer(column: TExcelTableColumn): 'average' | 'sum' | undefined {\r\n if (column.toplamFonksiyonu === 'none' || column.toplamFormulu) {\r\n return undefined;\r\n }\r\n\r\n return column.toplamFonksiyonu ?? (this.sayisalKolonMu(column.arrayType) ? 'sum' : undefined);\r\n }\r\n\r\n private static toplamSatiriKolonuVer(\r\n deger: ExcelJS.CellValue | undefined,\r\n kolonIndex: number,\r\n fonksiyon: 'average' | 'sum' | undefined,\r\n excelFormulu?: string\r\n ): { totalsRowFunction: 'average' | 'sum' } | { totalsRowFormula: string; totalsRowFunction: 'custom'; totalsRowResult?: number } | { totalsRowLabel: string } | undefined {\r\n if (kolonIndex === 0) {\r\n return { totalsRowLabel: typeof deger === 'string' ? deger : '' };\r\n }\r\n\r\n if (excelFormulu) {\r\n return {\r\n totalsRowFormula: excelFormulu,\r\n totalsRowFunction: 'custom',\r\n ...(typeof deger === 'number' && { totalsRowResult: deger })\r\n };\r\n }\r\n\r\n return fonksiyon ? { totalsRowFunction: fonksiyon } : undefined;\r\n }\r\n\r\n private static toplamSatiriniYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n sonuc: ExcelRaporuSonuc,\r\n table: TExcelTable,\r\n toplamHucreleri: IHazirHucreDegeri[],\r\n satirNo: number,\r\n startCol: number\r\n ): void {\r\n const wsRow = worksheet.getRow(satirNo);\r\n\r\n for (let colIndex = 0; colIndex < table.columns.length; colIndex++) {\r\n const column = table.columns[colIndex]!;\r\n const cell = wsRow.getCell(startCol + colIndex);\r\n const deger = toplamHucreleri[colIndex]?.deger;\r\n\r\n if (colIndex > 0 && typeof deger === 'number' && typeof cell.value === 'object' && cell.value !== null && 'formula' in cell.value) {\r\n cell.value = { ...cell.value, result: deger };\r\n }\r\n\r\n this.hucreFontunuUygula(cell, table.data?.font, sonuc.defaultFont);\r\n cell.font = { ...(cell.font ?? {}), bold: true };\r\n if (column.farkRenkli && typeof deger === 'number' && deger !== 0) {\r\n cell.font = { ...cell.font, color: { argb: deger > 0 ? 'FF16A34A' : 'FFDC2626' } };\r\n }\r\n cell.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFDDEBF7' } };\r\n\r\n const numFmt = this.numberFormatDonustur(this.kolonFormatiniBelirle(column));\r\n if (numFmt) {\r\n cell.numFmt = numFmt;\r\n }\r\n\r\n const hucreHizasi = this.hucreYatayHizasiniBelirle(column);\r\n cell.alignment = {\r\n ...(hucreHizasi !== undefined && { horizontal: hucreHizasi }),\r\n vertical: this.dikeyHizaDonustur(column.verticalAlignment),\r\n wrapText: false\r\n };\r\n }\r\n }\r\n\r\n private static kolonGenislikleriniUygula(\r\n worksheet: ExcelJS.Worksheet,\r\n startCol: number,\r\n columns: TExcelTableColumn[],\r\n satirlar: ExcelJS.CellValue[][],\r\n autoFit: boolean | undefined,\r\n ekSatir?: ExcelJS.CellValue[]\r\n ): void {\r\n const filtreButonuBoslukPayi = 1.25;\r\n const veriSagBoslukPayi = 1;\r\n const autoFitAktif = autoFit !== false;\r\n\r\n for (let index = 0; index < columns.length; index++) {\r\n const worksheetColumn = worksheet.getColumn(startCol + index);\r\n const tasarimGenisligi = (columns[index]!.width ?? 0) > 0 ? Math.round(columns[index]!.width! / 7) : 0;\r\n\r\n if (!autoFitAktif) {\r\n worksheetColumn.width = tasarimGenisligi > 0 ? tasarimGenisligi : 10;\r\n continue;\r\n }\r\n\r\n const baslikUzunlugu = this.metinUzunlugu(this.baslikMetniniHazirla(columns[index]!.header.title));\r\n let veriUzunlugu = ekSatir ? this.hucreMetinUzunlugu(ekSatir[index]!) : 0;\r\n for (const satir of satirlar) {\r\n veriUzunlugu = Math.max(veriUzunlugu, this.hucreMetinUzunlugu(satir[index]!));\r\n }\r\n worksheetColumn.width = Math.max(\r\n 10,\r\n tasarimGenisligi,\r\n baslikUzunlugu + 2 + filtreButonuBoslukPayi,\r\n veriUzunlugu + 2 + veriSagBoslukPayi\r\n );\r\n }\r\n }\r\n\r\n private static baslikMetniniHazirla(metin: string): string {\r\n return metin\r\n .replaceAll('\\r\\n', ' ')\r\n .replaceAll('\\r', ' ')\r\n .replaceAll('\\n', ' ')\r\n .trim();\r\n }\r\n\r\n private static hucreMetinUzunlugu(deger: ExcelJS.CellValue): number {\r\n if (deger === null || deger === undefined) {\r\n return 0;\r\n }\r\n\r\n if (typeof deger === 'string') {\r\n return this.metinUzunlugu(deger);\r\n }\r\n\r\n if (typeof deger === 'number' || typeof deger === 'boolean') {\r\n return String(deger).length;\r\n }\r\n\r\n if (deger instanceof Date) {\r\n return '14.05.2026 09:13:29'.length;\r\n }\r\n\r\n if (typeof deger === 'object' && 'formula' in deger) {\r\n return this.metinUzunlugu(String(deger.formula));\r\n }\r\n\r\n return this.metinUzunlugu(String(deger));\r\n }\r\n\r\n private static hucreYatayHizasiniBelirle(column: TExcelTableColumn): ExcelJS.Alignment['horizontal'] | undefined {\r\n if (this.sayisalKolonMu(column.arrayType)) {\r\n return 'right';\r\n }\r\n\r\n if (this.booleanKolonMu(column.arrayType)) {\r\n return 'center';\r\n }\r\n\r\n if (column.horizontalAlignment === undefined) {\r\n return undefined;\r\n }\r\n\r\n return this.yatayHizaDonustur(column.horizontalAlignment);\r\n }\r\n\r\n private static kolonFormatiniBelirle(column: TExcelTableColumn): number | undefined {\r\n if (column.format !== undefined && column.format !== NumberFormatlar.belirsiz) {\r\n return column.format;\r\n }\r\n\r\n switch (column.arrayType) {\r\n case VariableType.integer:\r\n case VariableType.longint:\r\n return NumberFormatlar.long;\r\n\r\n case VariableType.real:\r\n return NumberFormatlar.real;\r\n\r\n case VariableType.date:\r\n return NumberFormatlar.tarih;\r\n\r\n default:\r\n return column.format;\r\n }\r\n }\r\n\r\n private static sayisalKolonMu(arrayType: VariableType | undefined): boolean {\r\n switch (arrayType) {\r\n case VariableType.integer:\r\n case VariableType.longint:\r\n case VariableType.real:\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private static booleanKolonMu(arrayType: VariableType | undefined): boolean {\r\n return arrayType === VariableType.boolean;\r\n }\r\n\r\n private static metinUzunlugu(metin: string): number {\r\n return metin\r\n .replaceAll('\\r', '')\r\n .split('\\n')\r\n .reduce((max, parca) => Math.max(max, parca.trim().length), 0);\r\n }\r\n\r\n private static kolonGrubuYaz(\r\n worksheet: ExcelJS.Worksheet,\r\n startRow: number,\r\n startCol: number,\r\n table: TExcelTable\r\n ): void {\r\n const columnGroups = table.columnGroup;\r\n if (!columnGroups?.length || startRow <= 1) {\r\n return;\r\n }\r\n\r\n const grupSatiri = startRow - 1;\r\n for (const columnGroup of columnGroups) {\r\n const baslangicIndex = table.columns.findIndex(column => column.property === columnGroup.groupStart);\r\n const bitisIndex = table.columns.findIndex(column => column.property === columnGroup.groupEnd);\r\n const baslangicKolonu = baslangicIndex >= 0 ? startCol + baslangicIndex : undefined;\r\n const bitisKolonu = bitisIndex >= 0 ? startCol + bitisIndex : undefined;\r\n if (!baslangicKolonu || !bitisKolonu || bitisKolonu < baslangicKolonu) {\r\n continue;\r\n }\r\n\r\n worksheet.mergeCells(grupSatiri, baslangicKolonu, grupSatiri, bitisKolonu);\r\n\r\n const grupHucre = worksheet.getCell(grupSatiri, baslangicKolonu);\r\n grupHucre.value = columnGroup.groupName;\r\n grupHucre.alignment = { horizontal: 'center', vertical: 'middle' };\r\n grupHucre.font = { bold: true, size: 11, color: { argb: 'FFF79646' } };\r\n grupHucre.fill = {\r\n type: 'pattern',\r\n pattern: 'solid',\r\n fgColor: { argb: 'FFFFFFFF' }\r\n };\r\n\r\n for (let col = baslangicKolonu; col <= bitisKolonu; col++) {\r\n const hucre = worksheet.getCell(grupSatiri, col);\r\n hucre.border = {\r\n ...hucre.border,\r\n top: { style: 'medium', color: { argb: 'FFF79646' } },\r\n ...(col === baslangicKolonu ? { left: { style: 'medium', color: { argb: 'FFF79646' } } } : (hucre.border?.left ? { left: hucre.border.left } : {})),\r\n ...(col === bitisKolonu ? { right: { style: 'medium', color: { argb: 'FFF79646' } } } : (hucre.border?.right ? { right: hucre.border.right } : {}))\r\n };\r\n }\r\n }\r\n }\r\n\r\n private static hucreDegeriniHazirla(\r\n row: TExcelTableRow,\r\n column: TExcelTableColumn,\r\n sifirlariBasmaSayi: boolean\r\n ): IHazirHucreDegeri {\r\n const value = row[column.property];\r\n\r\n if ((typeof value === 'string') && value.startsWith('=')) {\r\n return { deger: { formula: this.excelFormuluneDonustur(value) } };\r\n }\r\n\r\n const sifirDegerMi =\r\n (typeof value === 'number' && value === 0) ||\r\n (typeof value === 'string' && this.sayisalKolonMu(column.arrayType) && value.trim() !== '' && Number(value) === 0);\r\n\r\n if (sifirDegerMi && sifirlariBasmaSayi) {\r\n return { deger: null };\r\n }\r\n\r\n if (value === null || value === undefined) {\r\n return { deger: '' };\r\n }\r\n\r\n const htmlHucre = (column.htmlKoduGelebilir === true) && typeof value === 'string' ? this.htmlHucreIceriginiHazirla(value) : undefined;\r\n const normallesenDeger = htmlHucre?.deger ?? value;\r\n\r\n if ((typeof normallesenDeger === 'string') && normallesenDeger.startsWith('=')) {\r\n return this.hazirHucreDegeriOlustur(\r\n { formula: this.excelFormuluneDonustur(normallesenDeger) },\r\n htmlHucre?.fontColorArgb\r\n );\r\n }\r\n\r\n if ((typeof value === 'string') && (typeof normallesenDeger === 'string')) {\r\n const tarihMetni = this.tarihStringiniExcelMetnineDonustur(normallesenDeger, column);\r\n if (tarihMetni) {\r\n return this.hazirHucreDegeriOlustur(tarihMetni, htmlHucre?.fontColorArgb);\r\n }\r\n\r\n const tarihDegeri = this.tarihStringiniDateeDonustur(normallesenDeger);\r\n if (tarihDegeri) {\r\n return this.hazirHucreDegeriOlustur(tarihDegeri, htmlHucre?.fontColorArgb);\r\n }\r\n }\r\n\r\n if (normallesenDeger instanceof Date) {\r\n return this.hazirHucreDegeriOlustur(\r\n this.excelIcinTarihiNormalizeEt(normallesenDeger),\r\n htmlHucre?.fontColorArgb\r\n );\r\n }\r\n\r\n if (this.booleanKolonMu(column.arrayType)) {\r\n return this.hazirHucreDegeriOlustur(normallesenDeger === true ? '+' : '', htmlHucre?.fontColorArgb);\r\n }\r\n\r\n if ((typeof normallesenDeger === 'number') || (typeof normallesenDeger === 'string')) {\r\n return this.hazirHucreDegeriOlustur(normallesenDeger, htmlHucre?.fontColorArgb);\r\n }\r\n\r\n return this.hazirHucreDegeriOlustur(String(normallesenDeger), htmlHucre?.fontColorArgb);\r\n }\r\n\r\n private static hazirHucreDegeriOlustur(deger: ExcelJS.CellValue, fontColorArgb?: string): IHazirHucreDegeri {\r\n return {\r\n deger,\r\n ...(fontColorArgb ? { fontColorArgb } : {})\r\n };\r\n }\r\n\r\n private static htmlHucreIceriginiHazirla(value: string): { deger: string; fontColorArgb?: string } | undefined {\r\n if (!/[<>]/.test(value)) {\r\n return undefined;\r\n }\r\n\r\n const deger = value\r\n .replaceAll(/<br\\s*\\/?>/gi, '\\n')\r\n .replaceAll(/<\\/p\\s*>/gi, '\\n')\r\n .replaceAll(/<p\\b[^>]*>/gi, '')\r\n .replaceAll(/<\\/div\\s*>/gi, '\\n')\r\n .replaceAll(/<div\\b[^>]*>/gi, '')\r\n .replaceAll(/<[^>]+>/g, '')\r\n .replaceAll(/&nbsp;/gi, ' ')\r\n .trim();\r\n\r\n const colorValue = this.htmlFontRenginiBul(value);\r\n const fontColorArgb = this.argbDonustur(colorValue);\r\n\r\n if ((deger === value) && !fontColorArgb) {\r\n return undefined;\r\n }\r\n\r\n return { deger, ...(fontColorArgb && { fontColorArgb }) };\r\n }\r\n\r\n private static htmlFontRenginiBul(value: string): string | undefined {\r\n const fontColorMatch = /<font\\b[^>]*\\bcolor\\s*=\\s*[\"']?([^\"' >]+)[\"']?[^>]*>/i.exec(value);\r\n if (fontColorMatch?.[1]) {\r\n return fontColorMatch[1].trim();\r\n }\r\n\r\n const styleColorMatch = /<(?:font|span)\\b[^>]*\\bstyle\\s*=\\s*[\"'][^\"']*\\bcolor\\s*:\\s*([^;\"']+)/i.exec(value);\r\n if (styleColorMatch?.[1]) {\r\n return styleColorMatch[1].trim();\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static tarihStringiniDateeDonustur(value: string): Date | undefined {\r\n const trimmedValue = value.trim();\r\n const isoDateMatch = /^(\\d{4})-(\\d{2})-(\\d{2})(?:$|[T\\s])/.exec(trimmedValue);\r\n\r\n if (!isoDateMatch) {\r\n return undefined;\r\n }\r\n\r\n const year = Number(isoDateMatch[1]);\r\n const month = Number(isoDateMatch[2]);\r\n const day = Number(isoDateMatch[3]);\r\n\r\n if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) {\r\n return undefined;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n if (date.getFullYear() !== year || date.getMonth() !== (month - 1) || date.getDate() !== day) {\r\n return undefined;\r\n }\r\n\r\n return new Date(Date.UTC(year, month - 1, day, 12, 0, 0, 0));\r\n }\r\n\r\n private static tarihStringiniExcelMetnineDonustur(value: string, column: TExcelTableColumn): string | undefined {\r\n if (!this.sadeceTarihKolonuMu(column)) {\r\n return undefined;\r\n }\r\n\r\n const trimmedValue = value.trim();\r\n const isoDateMatch = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(trimmedValue);\r\n if (!isoDateMatch) {\r\n return undefined;\r\n }\r\n\r\n const year = Number(isoDateMatch[1]);\r\n const month = Number(isoDateMatch[2]);\r\n const day = Number(isoDateMatch[3]);\r\n\r\n if (!Number.isInteger(year) || !Number.isInteger(month) || !Number.isInteger(day)) {\r\n return undefined;\r\n }\r\n\r\n const date = new Date(year, month - 1, day);\r\n if (date.getFullYear() !== year || date.getMonth() !== (month - 1) || date.getDate() !== day) {\r\n return undefined;\r\n }\r\n\r\n return `${String(day).padStart(2, '0')}.${String(month).padStart(2, '0')}.${year}`;\r\n }\r\n\r\n private static excelIcinTarihiNormalizeEt(value: Date): Date {\r\n if (value.getHours() !== 0 || value.getMinutes() !== 0 || value.getSeconds() !== 0 || value.getMilliseconds() !== 0) {\r\n return value;\r\n }\r\n\r\n return new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate(), 12, 0, 0, 0));\r\n }\r\n\r\n private static varsayilanTarihFormatiniVer(): string {\r\n return 'dd.mm.yyyy';\r\n }\r\n\r\n private static sadeceTarihKolonuMu(column: TExcelTableColumn): boolean {\r\n return this.kolonFormatiniBelirle(column) === NumberFormatlar.tarih;\r\n }\r\n\r\n private static benzersizKolonAdlariOlustur(adlar: string[]): string[] {\r\n const sayaclar = new Map<string, number>();\r\n return adlar.map(ad => {\r\n const temelAd = ad || ' ';\r\n const sayi = sayaclar.get(temelAd) ?? 0;\r\n sayaclar.set(temelAd, sayi + 1);\r\n return sayi === 0 ? temelAd : `${temelAd}_${sayi}`;\r\n });\r\n }\r\n\r\n private static hucreFontunuUygula(\r\n cell: ExcelJS.Cell,\r\n font: IExcelFont | undefined,\r\n defaultFont?: TDefaultFont\r\n ): void {\r\n const style = font?.style ?? 0;\r\n const excelFont: Partial<ExcelJS.Font> = {};\r\n\r\n const fontName = font?.name || defaultFont?.name;\r\n if (fontName) {\r\n excelFont.name = fontName;\r\n }\r\n\r\n const fontSize = (font?.size && font.size > 0) ? font.size : defaultFont?.size;\r\n if (fontSize && fontSize > 0) {\r\n excelFont.size = fontSize;\r\n }\r\n\r\n if (font?.color) {\r\n const color = this.argbDonustur(font.color);\r\n if (color) {\r\n excelFont.color = { argb: color };\r\n }\r\n }\r\n\r\n excelFont.bold = Boolean(style & FontStyle.bold);\r\n excelFont.italic = Boolean(style & FontStyle.italic);\r\n excelFont.underline = Boolean(style & FontStyle.underline);\r\n\r\n cell.font = excelFont;\r\n }\r\n\r\n private static gecerliTableStyleVer(tableStyle: string | undefined): string | undefined {\r\n if (!tableStyle) {\r\n return undefined;\r\n }\r\n\r\n const style = tableStyle.trim();\r\n if (/^TableStyleLight([1-9]|1\\d|2[0-1])$/.test(style)) {\r\n return style;\r\n }\r\n if (/^TableStyleMedium([1-9]|1\\d|2[0-1])$/.test(style)) {\r\n return style;\r\n }\r\n if (/^TableStyleDark([1-9]|10|11)$/.test(style)) {\r\n return style;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static tableStyleDonustur(theme: string | undefined): ExcelJS.TableStyleProperties | undefined {\r\n if (!theme) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n theme: theme as NonNullable<ExcelJS.TableStyleProperties['theme']>,\r\n showRowStripes: true\r\n };\r\n }\r\n\r\n private static tabloAdiOlustur(sheetName: string, startRow: number, startCol: number): string {\r\n const temizSheetName = sheetName.replaceAll(/[^A-Za-z0-9]/g, '_');\r\n return `T_${temizSheetName}_R${startRow}C${startCol}`;\r\n }\r\n\r\n private static yatayHizaDonustur(value: XLHAlign | undefined): ExcelJS.Alignment['horizontal'] {\r\n switch (value) {\r\n case XLHAlign.xlHAlignCenter: return 'center';\r\n case XLHAlign.xlHAlignCenterAcrossSelection: return 'centerContinuous';\r\n case XLHAlign.xlHAlignDistributed: return 'distributed';\r\n case XLHAlign.xlHAlignFill: return 'fill';\r\n case XLHAlign.xlHAlignGeneral: return 'left';\r\n case XLHAlign.xlHAlignJustify: return 'justify';\r\n case XLHAlign.xlHAlignLeft: return 'left';\r\n case XLHAlign.xlHAlignRight: return 'right';\r\n default: return 'left';\r\n }\r\n }\r\n\r\n private static dikeyHizaDonustur(value: XLVAlign | undefined): ExcelJS.Alignment['vertical'] {\r\n switch (value) {\r\n case XLVAlign.xlVAlignTop: return 'top';\r\n case XLVAlign.xlVAlignBottom: return 'bottom';\r\n case XLVAlign.xlVAlignDistributed: return 'distributed';\r\n case XLVAlign.xlVAlignJustify: return 'justify';\r\n default: return 'middle';\r\n }\r\n }\r\n\r\n private static argbDonustur(color: string | undefined): string | undefined {\r\n if (!color) {\r\n return undefined;\r\n }\r\n\r\n const cssColor = color.trim().toLowerCase();\r\n const rgbMatch = cssColor.match(/^rgb\\s*\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i);\r\n if (rgbMatch) {\r\n const rgbDegerleri = rgbMatch.slice(1).map(value => Number(value));\r\n if (rgbDegerleri.every(value => Number.isInteger(value) && value >= 0 && value <= 255)) {\r\n return `FF${rgbDegerleri.map(value => value.toString(16).padStart(2, '0')).join('').toUpperCase()}`;\r\n }\r\n }\r\n\r\n const namedColors: Record<string, string> = {\r\n black: 'FF000000',\r\n blue: 'FF0000FF',\r\n cyan: 'FF00FFFF',\r\n gray: 'FF808080',\r\n green: 'FF008000',\r\n grey: 'FF808080',\r\n magenta: 'FFFF00FF',\r\n orange: 'FFFFA500',\r\n purple: 'FF800080',\r\n red: 'FFFF0000',\r\n white: 'FFFFFFFF',\r\n yellow: 'FFFFFF00'\r\n };\r\n if (namedColors[cssColor]) {\r\n return namedColors[cssColor];\r\n }\r\n\r\n const hexColor = cssColor.replace('#', '');\r\n if (/^[0-9a-f]{6}$/i.test(hexColor)) {\r\n return `FF${hexColor.toUpperCase()}`;\r\n }\r\n\r\n if (/^[0-9A-Fa-f]{8}$/.test(color)) {\r\n return color.toUpperCase();\r\n }\r\n\r\n const numericColor = Number(color);\r\n if (!Number.isFinite(numericColor)) {\r\n return undefined;\r\n }\r\n\r\n const r = numericColor & 255;\r\n const g = (numericColor >> 8) & 255;\r\n const b = (numericColor >> 16) & 255;\r\n\r\n return `FF${[r, g, b].map(value => value.toString(16).padStart(2, '0')).join('').toUpperCase()}`;\r\n }\r\n\r\n private static kolonRenginiBul(\r\n kolonRenkleri: TExcelTable['columnInteriorColors'] | undefined,\r\n colIndex: number\r\n ): string | undefined {\r\n const kolonRengi = kolonRenkleri?.[colIndex];\r\n if (typeof kolonRengi === 'string') {\r\n return kolonRengi;\r\n }\r\n\r\n const kolonNo = colIndex + 1;\r\n for (const kolon of kolonRenkleri ?? []) {\r\n if (typeof kolon === 'object' && kolon.columnNo === kolonNo) {\r\n return kolon.color;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static excelFormuluneDonustur(formul: string): string {\r\n const ceviriler: Record<string, string> = {\r\n 'TOPLA': 'SUM',\r\n 'EĞER': 'IF',\r\n 'VE': 'AND',\r\n 'VEYA': 'OR',\r\n 'YUVARLA': 'ROUND',\r\n 'EĞERSAY': 'COUNTIF',\r\n 'ETOPLA': 'SUMIF',\r\n 'ORTALAMA': 'AVERAGE',\r\n 'MİN': 'MIN',\r\n 'MAK': 'MAX'\r\n };\r\n\r\n let sonuc = formul.slice(1).replaceAll(';', ',');\r\n\r\n for (const [kaynak, hedef] of Object.entries(ceviriler)) {\r\n const pattern = new RegExp(`\\\\b${kaynak}\\\\b`, 'g');\r\n sonuc = sonuc.replace(pattern, hedef);\r\n }\r\n\r\n return sonuc;\r\n }\r\n\r\n private static footerFormulunuOlustur(\r\n column: TExcelTableColumn,\r\n colIndex: number,\r\n startRow: number,\r\n startCol: number,\r\n veriSatirSayisi: number\r\n ): string | undefined {\r\n if (!veriSatirSayisi) {\r\n return undefined;\r\n }\r\n\r\n const fonksiyon = String(column.footer?.function ?? '').trim().toUpperCase();\r\n if (!fonksiyon) {\r\n return undefined;\r\n }\r\n\r\n const kolonHarf = worksheetColumnName(startCol + colIndex);\r\n const ilkVeriSatiri = startRow + 1;\r\n const sonVeriSatiri = startRow + veriSatirSayisi;\r\n const aralik = `${kolonHarf}${ilkVeriSatiri}:${kolonHarf}${sonVeriSatiri}`;\r\n\r\n if (fonksiyon === 'SUBTOTAL') {\r\n return `SUBTOTAL(9,${aralik})`;\r\n }\r\n\r\n const desteklenenFonksiyonlar = ['SUM', 'AVERAGE', 'COUNT', 'COUNTA', 'MAX', 'MIN'];\r\n if (desteklenenFonksiyonlar.includes(fonksiyon)) {\r\n return `${fonksiyon}(${aralik})`;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private static sayfaAdiDuzenle(sheetName: string, index: number): string {\r\n const temizAd = sheetName\r\n .replaceAll(/[\\\\/*?:[\\]]/g, ' ')\r\n .trim()\r\n .slice(0, 31);\r\n\r\n if (temizAd) {\r\n return temizAd;\r\n }\r\n\r\n return `Sheet${index}`;\r\n }\r\n\r\n private static dosyaAdiDuzenle(dosyaAdi: string): string {\r\n const temizAd = dosyaAdi\r\n .replaceAll(/[<>:\"/\\\\|?*]/g, ' ')\r\n .trim()\r\n .replaceAll(/\\s+/g, ' ');\r\n\r\n if (temizAd) {\r\n return temizAd;\r\n }\r\n\r\n return 'Rapor';\r\n }\r\n\r\n private static numberFormatDonustur(format: number | undefined): string | undefined {\r\n switch (format) {\r\n case NumberFormatlar.long:\r\n case 2:\r\n case 5:\r\n case 11:\r\n return '#,##0';\r\n\r\n case NumberFormatlar.real:\r\n case 7:\r\n case 12:\r\n return '#,##0.00';\r\n\r\n case 8:\r\n return 'hh:mm';\r\n\r\n case NumberFormatlar.tarih:\r\n return 'dd.mm.yyyy';\r\n\r\n case NumberFormatlar.tarih_yyyymmdd_tireli:\r\n return 'yyyy-mm-dd';\r\n\r\n case NumberFormatlar.tarih_AAAAYYYY:\r\n return 'mmmm yyyy';\r\n\r\n case NumberFormatlar.tarih_GGAAAAYYYY:\r\n return 'dd mmmm yyyy';\r\n\r\n case NumberFormatlar.tarih_YYYYMMDD:\r\n return 'yyyy/mm/dd';\r\n\r\n case NumberFormatlar.tarih_LongDate:\r\n return 'dd mmmm yyyy dddd';\r\n\r\n case NumberFormatlar.tarih_ga:\r\n return 'd.m;@';\r\n\r\n case NumberFormatlar.tarih_ggaa:\r\n return 'dd.mm';\r\n\r\n case NumberFormatlar.tarih_gaaaa:\r\n return 'd.mmmm';\r\n\r\n case NumberFormatlar.tarih_ggaaa:\r\n return 'dd.mmm';\r\n\r\n case NumberFormatlar.tarih_ggaaaa:\r\n return 'dd.mmmm';\r\n\r\n case NumberFormatlar.yuzde_BirHane:\r\n return '0.0%';\r\n\r\n case NumberFormatlar.genel:\r\n return 'General';\r\n\r\n case NumberFormatlar.metin:\r\n return '@';\r\n\r\n case NumberFormatlar.imp:\r\n return '#,##0 \"imp\"';\r\n\r\n case NumberFormatlar.clicks:\r\n return '#,##0 \"Clicks\"';\r\n\r\n case NumberFormatlar.gun:\r\n return '#,##0 \"Gün\"';\r\n\r\n case NumberFormatlar.view:\r\n return '#,##0 \"View\"';\r\n\r\n case NumberFormatlar.session:\r\n return '#,##0 \"Session\"';\r\n\r\n case NumberFormatlar.kisi:\r\n return '#,##0 \"Kişi\"';\r\n\r\n case NumberFormatlar.okunma:\r\n return '#,##0 \"Okunma\"';\r\n\r\n case NumberFormatlar.dinlenme:\r\n return '#,##0 \"Dinlenme\"';\r\n\r\n case NumberFormatlar.lead:\r\n return '#,##0 \"Lead\"';\r\n\r\n case NumberFormatlar.gizli:\r\n return ';;;';\r\n\r\n case 28:\r\n return '#,##0.00 \"₺\"';\r\n\r\n default:\r\n return undefined;\r\n }\r\n }\r\n}\r\n\r\nfunction worksheetColumnName(columnNumber: number): string {\r\n let kalan = columnNumber;\r\n let sonuc = '';\r\n\r\n while (kalan > 0) {\r\n const mod = (kalan - 1) % 26;\r\n sonuc = String.fromCharCode(65 + mod) + sonuc;\r\n kalan = Math.floor((kalan - 1) / 26);\r\n }\r\n\r\n return sonuc;\r\n}\r\n","import { HttpResponse } from '@angular/common/http';\r\nimport { inject, Injectable } from '@angular/core';\r\n\r\nimport saveAs from 'file-saver';\r\n\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { GlobalFunctions } from 'limitng/api';\r\nimport { ToastMessageOptions } from 'primeng/api';\r\nimport { ExcelRaporuSonuc } from './models/excelRaporuSonuc';\r\nimport { JsonToExcelParser } from './models/jsonToExcelParser';\r\n\r\ninterface JsonExcelResponseOptions<T extends ExcelRaporuSonuc> {\r\n createResult: () => T;\r\n errorLogMessage: string;\r\n fileName?: string;\r\n getFileName?: (result: T) => string;\r\n successDetail?: string;\r\n successDetailKey?: string;\r\n}\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class BlobResponseHandlerService {\r\n private readonly translateService = inject(TranslateService);\r\n\r\n handleReportResponse(\r\n response: HttpResponse<Blob>,\r\n successDetailKey: string,\r\n htmlTitle = 'Rapor Sonucu'\r\n ): ToastMessageOptions | null {\r\n const body = response.body;\r\n\r\n if (!body) {\r\n return null;\r\n }\r\n\r\n const contentDisposition = response.headers.get('content-disposition');\r\n const contentType = response.headers.get('Content-Type') ?? body.type;\r\n\r\n if (contentDisposition) {\r\n return this.handleDownload(body, contentDisposition, contentType, successDetailKey);\r\n }\r\n\r\n this.handleViewHtml(body, htmlTitle);\r\n return null;\r\n }\r\n\r\n downloadResponse(response: HttpResponse<Blob | string>): boolean {\r\n const body = response.body;\r\n\r\n if (!body) {\r\n return false;\r\n }\r\n\r\n const contentDisposition = response.headers.get('content-disposition');\r\n\r\n if (!contentDisposition) {\r\n return false;\r\n }\r\n\r\n const contentType = response.headers.get('Content-Type') ?? (body instanceof Blob ? body.type : 'application/octet-stream');\r\n\r\n this.downloadBlob(body, contentDisposition, contentType);\r\n return true;\r\n }\r\n\r\n viewHtmlBody(body: Blob | null, htmlTitle = 'Rapor Sonucu'): void {\r\n if (!body) {\r\n return;\r\n }\r\n\r\n this.handleViewHtml(body, htmlTitle);\r\n }\r\n\r\n async handleJsonExcelResponse<T extends ExcelRaporuSonuc>(\r\n body: Blob | null,\r\n options: JsonExcelResponseOptions<T>\r\n ): Promise<ToastMessageOptions | null> {\r\n if (!body) {\r\n return null;\r\n }\r\n\r\n try {\r\n const jsonStr = await body.text();\r\n const result = Object.assign(options.createResult(), JSON.parse(jsonStr) as T);\r\n const fileName = options.getFileName?.(result) ?? options.fileName;\r\n\r\n if (!fileName) {\r\n return null;\r\n }\r\n\r\n await JsonToExcelParser.indir(result, fileName);\r\n\r\n return {\r\n severity: 'success',\r\n summary: this.translateService.instant('genel.bilgi'),\r\n detail: options.successDetail ?? this.translateService.instant(options.successDetailKey ?? '')\r\n };\r\n } catch (error) {\r\n console.error(options.errorLogMessage, error);\r\n return null;\r\n }\r\n }\r\n\r\n private handleDownload(body: BlobPart, contentDisposition: string, contentType: string, successDetailKey: string): ToastMessageOptions {\r\n this.downloadBlob(body, contentDisposition, contentType);\r\n\r\n return {\r\n severity: 'success',\r\n summary: this.translateService.instant('genel.bilgi'),\r\n detail: this.translateService.instant(successDetailKey)\r\n };\r\n }\r\n\r\n private downloadBlob(body: BlobPart, contentDisposition: string, contentType: string): void {\r\n const decodedContentDisposition = contentDisposition.replaceAll(\r\n /\\\\u([0-9A-Fa-f]{4})/g,\r\n (_, code: string) => String.fromCodePoint(Number.parseInt(code, 16))\r\n );\r\n const filename = GlobalFunctions.getFilenameFromContentDisposition(decodedContentDisposition);\r\n const blob = new Blob([body], { type: contentType });\r\n\r\n saveAs(blob, filename);\r\n }\r\n\r\n private handleViewHtml(body: Blob, htmlTitle: string): void {\r\n body.text().then((html: string) => {\r\n const wnd = window.open('', '_blank');\r\n\r\n if (!wnd) {\r\n return;\r\n }\r\n\r\n wnd.document.title = htmlTitle;\r\n\r\n const iframe = wnd.document.createElement('iframe');\r\n iframe.style.width = '100%';\r\n iframe.style.height = '100%';\r\n iframe.style.border = 'none';\r\n iframe.setAttribute('srcdoc', html);\r\n\r\n wnd.document.body.style.margin = '0';\r\n wnd.document.body.style.padding = '0';\r\n wnd.document.body.appendChild(iframe);\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "limitng",
3
- "version": "0.23.9",
3
+ "version": "0.23.11",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "http://limitdestek.com:3000/Limit/LimitNG"
@@ -114,6 +114,8 @@ interface IExcelRaporuTableColumn {
114
114
  columnNo?: number;
115
115
  htmlKoduGelebilir?: boolean;
116
116
  farkRenkli?: boolean;
117
+ toplamFonksiyonu?: 'average' | 'none' | 'sum';
118
+ toplamFormulu?: string;
117
119
  }
118
120
  interface IExcelRaporuSatirRenkBilgisi {
119
121
  color: string;
@@ -145,7 +147,6 @@ interface IExcelRaporuTable {
145
147
  autoFit?: boolean;
146
148
  toplamSatiri?: boolean;
147
149
  toplamEtiketi?: string;
148
- toplamDegerleri?: Record<string, ExcelHucreDegeri>;
149
150
  columnFontNames?: string[];
150
151
  columnFontSizes?: number[];
151
152
  columnFontColors?: string[];
@@ -261,7 +262,6 @@ interface IJsonToExcelTableOptions {
261
262
  footer?: TExcelTable['footer'];
262
263
  header?: TExcelTable['header'];
263
264
  sol?: TExcelTable['sol'];
264
- toplamDegerleri?: TExcelTable['toplamDegerleri'];
265
265
  toplamEtiketi?: TExcelTable['toplamEtiketi'];
266
266
  toplamSatiri?: TExcelTable['toplamSatiri'];
267
267
  ust?: TExcelTable['ust'];
@@ -297,6 +297,7 @@ declare class JsonToExcelParser {
297
297
  static indir(sonuc: ExcelRaporuSonuc, dosyaAdi: string): Promise<void>;
298
298
  static blobOlustur(sonuc: ExcelRaporuSonuc): Promise<Blob>;
299
299
  private static toplamSatiriFormulleriniYaz;
300
+ private static xmlKacis;
300
301
  static standartPageSetupOlustur(): TExcelPageSetup;
301
302
  static ustBilgiEkle(ustBilgi: string, font?: TExcelUstBilgi['font']): TExcelUstBilgi;
302
303
  static raporOlustur(): JsonToExcelReportBuilder;
@@ -322,8 +323,12 @@ declare class JsonToExcelParser {
322
323
  private static tabloyuYaz;
323
324
  private static farkRenkleriniUygula;
324
325
  private static toplamHucreleriniHazirla;
325
- private static toplamDegeriVerilmisMi;
326
- private static toplamSatiriEtiketiVer;
326
+ private static kolonToplaminiVer;
327
+ private static toplamFormulundekiKolonlariVer;
328
+ private static toplamFormuluSonucuVer;
329
+ private static toplamFormuluExcelMetniVer;
330
+ private static toplamFonksiyonuVer;
331
+ private static toplamSatiriKolonuVer;
327
332
  private static toplamSatiriniYaz;
328
333
  private static kolonGenislikleriniUygula;
329
334
  private static baslikMetniniHazirla;
@@ -1 +1 @@
1
- {"version":3,"file":"limitng-blob-response-handler.d.ts","sources":["../../src/app/components/blob-response-handler/models/excelRaporuSonuc.ts","../../src/app/components/blob-response-handler/blob-response-handler.service.ts","../../src/app/components/blob-response-handler/models/jsonToExcelParser.ts"],"mappings":"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","names":[]}
1
+ {"version":3,"file":"limitng-blob-response-handler.d.ts","sources":["../../src/app/components/blob-response-handler/models/excelRaporuSonuc.ts","../../src/app/components/blob-response-handler/blob-response-handler.service.ts","../../src/app/components/blob-response-handler/models/jsonToExcelParser.ts"],"mappings":"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","names":[]}