From 5ffc6d866cd7938d1fd22041f85fb594a4e7ee15 Mon Sep 17 00:00:00 2001 From: Duhan BALCI Date: Tue, 7 Apr 2026 01:56:40 +0300 Subject: [PATCH] format --- frontend/src/App.vue | 206 ++- .../src/components/common/DexprEditor.vue | 43 +- .../src/components/editor/EditorCanvas.vue | 61 +- .../src/components/editor/ElementHandle.vue | 7 +- .../src/components/editor/ElementToolbar.vue | 1109 +++++++++++++++-- .../components/editor/InteractionOverlay.vue | 217 +++- .../src/components/editor/LayoutRenderer.vue | 105 +- frontend/src/components/editor/RulerBar.vue | 24 +- .../src/components/panels/PropertiesPanel.vue | 106 +- .../src/components/panels/SchemaTreeNode.vue | 27 +- .../src/components/panels/ToolboxPanel.vue | 22 +- .../properties/BarcodeProperties.vue | 94 +- .../properties/CalculatedTextProperties.vue | 46 +- .../components/properties/ChartProperties.vue | 228 +++- .../properties/CheckboxProperties.vue | 29 +- .../properties/ContainerProperties.vue | 101 +- .../properties/CurrentDateProperties.vue | 30 +- .../components/properties/ImageProperties.vue | 50 +- .../components/properties/LineProperties.vue | 22 +- .../src/components/properties/PaddingBox.vue | 73 +- .../properties/PageNumberProperties.vue | 30 +- .../properties/PositioningProperties.vue | 36 +- .../properties/RepeatingTableProperties.vue | 449 +++++-- .../properties/RichTextProperties.vue | 73 +- .../components/properties/ShapeProperties.vue | 48 +- .../components/properties/SizeProperties.vue | 99 +- .../components/properties/TextProperties.vue | 37 +- frontend/src/composables/useLayoutEngine.ts | 25 +- frontend/src/composables/useSnapGuides.ts | 17 +- frontend/src/composables/useUndoRedo.ts | 2 +- .../src/core/__tests__/schema-parser.test.ts | 31 +- frontend/src/core/mock-data-generator.ts | 9 +- frontend/src/core/schema-parser.ts | 31 +- frontend/src/core/types.ts | 34 +- frontend/src/directives/tip.ts | 48 +- frontend/src/lib/DreportEditor.vue | 105 +- frontend/src/render-test/RenderTestPage.vue | 18 +- .../src/stores/__tests__/improvements.test.ts | 24 +- .../src/stores/__tests__/template.test.ts | 4 +- frontend/src/stores/template.ts | 26 +- frontend/src/styles/editor.css | 3 +- frontend/src/workers/layout.worker.ts | 27 +- 42 files changed, 2996 insertions(+), 780 deletions(-) diff --git a/frontend/src/App.vue b/frontend/src/App.vue index d53fe92..71ae692 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -94,9 +94,13 @@ if (savedSchema) { currentSchema.value = savedSchema } -watch(currentSchema, (val) => { - localStorage.setItem(SCHEMA_STORAGE_KEY, JSON.stringify(val)) -}, { deep: true }) +watch( + currentSchema, + (val) => { + localStorage.setItem(SCHEMA_STORAGE_KEY, JSON.stringify(val)) + }, + { deep: true }, +) // --- Sample Invoice Data --- @@ -125,10 +129,38 @@ const sampleData: Record = { telefon: '+90 216 444 0018', }, kalemler: [ - { siraNo: 1, adi: 'Web Uygulama Gelistirme', miktar: 1, birim: 'Adet', birimFiyat: 45000, tutar: 45000 }, - { siraNo: 2, adi: 'Mobil Uygulama Gelistirme', miktar: 1, birim: 'Adet', birimFiyat: 35000, tutar: 35000 }, - { siraNo: 3, adi: 'UI/UX Tasarim Hizmeti', miktar: 40, birim: 'Saat', birimFiyat: 750, tutar: 30000 }, - { siraNo: 4, adi: 'Sunucu Bakim Sozlesmesi (Yillik)', miktar: 1, birim: 'Adet', birimFiyat: 12000, tutar: 12000 }, + { + siraNo: 1, + adi: 'Web Uygulama Gelistirme', + miktar: 1, + birim: 'Adet', + birimFiyat: 45000, + tutar: 45000, + }, + { + siraNo: 2, + adi: 'Mobil Uygulama Gelistirme', + miktar: 1, + birim: 'Adet', + birimFiyat: 35000, + tutar: 35000, + }, + { + siraNo: 3, + adi: 'UI/UX Tasarim Hizmeti', + miktar: 40, + birim: 'Saat', + birimFiyat: 750, + tutar: 30000, + }, + { + siraNo: 4, + adi: 'Sunucu Bakim Sozlesmesi (Yillik)', + miktar: 1, + birim: 'Adet', + birimFiyat: 12000, + tutar: 12000, + }, { siraNo: 5, adi: 'SSL Sertifikasi', miktar: 3, birim: 'Adet', birimFiyat: 500, tutar: 1500 }, ], toplamlar: { @@ -370,10 +402,30 @@ const defaultInvoiceTemplate: Template = { columns: [ { id: 'col_sira', field: 'siraNo', title: '#', width: sz.fixed(10), align: 'center' }, { id: 'col_adi', field: 'adi', title: 'Urun / Hizmet', width: sz.fr(), align: 'left' }, - { id: 'col_miktar', field: 'miktar', title: 'Miktar', width: sz.fixed(18), align: 'right' }, + { + id: 'col_miktar', + field: 'miktar', + title: 'Miktar', + width: sz.fixed(18), + align: 'right', + }, { id: 'col_birim', field: 'birim', title: 'Birim', width: sz.fixed(18), align: 'center' }, - { id: 'col_fiyat', field: 'birimFiyat', title: 'Birim Fiyat', width: sz.fixed(28), align: 'right', format: 'currency' as const }, - { id: 'col_tutar', field: 'tutar', title: 'Tutar', width: sz.fixed(28), align: 'right', format: 'currency' as const }, + { + id: 'col_fiyat', + field: 'birimFiyat', + title: 'Birim Fiyat', + width: sz.fixed(28), + align: 'right', + format: 'currency' as const, + }, + { + id: 'col_tutar', + field: 'tutar', + title: 'Tutar', + width: sz.fixed(28), + align: 'right', + format: 'currency' as const, + }, ], style: { fontSize: 9, @@ -486,12 +538,16 @@ function loadFromLocalStorage(): Template | null { const template = ref diff --git a/frontend/src/components/properties/TextProperties.vue b/frontend/src/components/properties/TextProperties.vue index 7f7dc2f..f4a5542 100644 --- a/frontend/src/components/properties/TextProperties.vue +++ b/frontend/src/components/properties/TextProperties.vue @@ -25,37 +25,54 @@ function updateStyle(key: string, value: unknown) {
- + @input="(e) => update({ content: (e.target as HTMLInputElement).value } as any)" + />
- + @input=" + (e) => updateStyle('fontSize', parseFloat((e.target as HTMLInputElement).value) || 11) + " + />
-
- + @input="(e) => updateStyle('color', (e.target as HTMLInputElement).value)" + />
-