persian-data-grid 0.6.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/{ERPTableGroupRow-PSAPAHGL.js → ERPTableGroupRow-E5Q6FYDS.js} +4 -4
- package/dist/{ERPTableGroupRow-PSAPAHGL.js.map → ERPTableGroupRow-E5Q6FYDS.js.map} +1 -1
- package/dist/{ERPTableGroupRow-J5Z2LRC5.cjs → ERPTableGroupRow-F2IPDYL5.cjs} +9 -9
- package/dist/{ERPTableGroupRow-J5Z2LRC5.cjs.map → ERPTableGroupRow-F2IPDYL5.cjs.map} +1 -1
- package/dist/{GridPlugin-CJCaYnlw.d.ts → GridPlugin-Bewn0X51.d.ts} +1 -1
- package/dist/{GridPlugin-oxhq8AsM.d.cts → GridPlugin-DewWufGZ.d.cts} +1 -1
- package/dist/{GridSession-Bc7UIawO.d.ts → GridSession-CeIfVFck.d.ts} +142 -9
- package/dist/{GridSession-B-9lLcoB.d.cts → GridSession-CmQn2RnL.d.cts} +142 -9
- package/dist/GridSyncService-3JQLEY65.cjs +12 -0
- package/dist/{GridSyncService-TAPAHABV.cjs.map → GridSyncService-3JQLEY65.cjs.map} +1 -1
- package/dist/GridSyncService-GECXGEKL.js +3 -0
- package/dist/{GridSyncService-KTLB4KP3.js.map → GridSyncService-GECXGEKL.js.map} +1 -1
- package/dist/{PdfRenderer-CBg7hWNS.d.cts → PdfRenderer-B9FJaCo_.d.cts} +1 -1
- package/dist/{PdfRenderer-1HFh6UeR.d.ts → PdfRenderer-bN7ca_Aj.d.ts} +1 -1
- package/dist/{UITableController-DU8RopUM.d.ts → UITableController-C71LXBiX.d.ts} +48 -2
- package/dist/{UITableController-Cuwq481K.d.cts → UITableController-CIwnHIw8.d.cts} +48 -2
- package/dist/{VazirmatnPdfRenderer-BCMpC1zy.d.cts → VazirmatnPdfRenderer-CpCqA-Wh.d.cts} +2 -2
- package/dist/{VazirmatnPdfRenderer-Dz_G-m3c.d.ts → VazirmatnPdfRenderer-D46smncn.d.ts} +2 -2
- package/dist/adapters/arian-erp.cjs +16 -4
- package/dist/adapters/arian-erp.cjs.map +1 -1
- package/dist/adapters/arian-erp.d.cts +3 -1
- package/dist/adapters/arian-erp.d.ts +3 -1
- package/dist/adapters/arian-erp.js +11 -3
- package/dist/adapters/arian-erp.js.map +1 -1
- package/dist/{applyImportedRows-BO6yxoAN.d.cts → applyImportedRows-C2fWYoPy.d.cts} +3 -3
- package/dist/{applyImportedRows-D4zVY8uD.d.ts → applyImportedRows-Cqh_N_0k.d.ts} +3 -3
- package/dist/{applyRowVisibilityHandler-LXCOGESZ.cjs → applyRowVisibilityHandler-Q64ZFC7A.cjs} +7 -6
- package/dist/applyRowVisibilityHandler-Q64ZFC7A.cjs.map +1 -0
- package/dist/{applyRowVisibilityHandler-KS6TMCBN.js → applyRowVisibilityHandler-ZLZXQEGY.js} +6 -5
- package/dist/applyRowVisibilityHandler-ZLZXQEGY.js.map +1 -0
- package/dist/callbackRemoteApi-BYLjmSI6.d.ts +51 -0
- package/dist/callbackRemoteApi-Cv26MmSD.d.cts +51 -0
- package/dist/{cellRenderContext-DB7V_mlu.d.ts → cellRenderContext-BaNh4qn_.d.ts} +2 -2
- package/dist/{cellRenderContext-DG5BOlxK.d.cts → cellRenderContext-DvngkptV.d.cts} +2 -2
- package/dist/{chunk-HTNJT2QU.js → chunk-27ALJSZP.js} +617 -104
- package/dist/chunk-27ALJSZP.js.map +1 -0
- package/dist/{chunk-KUBVDIF7.cjs → chunk-3HP3HQCW.cjs} +52 -17
- package/dist/chunk-3HP3HQCW.cjs.map +1 -0
- package/dist/{chunk-DXRCYW42.cjs → chunk-52LFOPXD.cjs} +43 -23
- package/dist/chunk-52LFOPXD.cjs.map +1 -0
- package/dist/{chunk-VVGYRZ7S.cjs → chunk-72IVAOTK.cjs} +4 -4
- package/dist/{chunk-VVGYRZ7S.cjs.map → chunk-72IVAOTK.cjs.map} +1 -1
- package/dist/{chunk-LJ7LMEXO.js → chunk-7GWV5HGO.js} +3 -3
- package/dist/{chunk-LJ7LMEXO.js.map → chunk-7GWV5HGO.js.map} +1 -1
- package/dist/{chunk-RM6ZWNT3.js → chunk-7T6AWRPU.js} +43 -23
- package/dist/chunk-7T6AWRPU.js.map +1 -0
- package/dist/{chunk-PXCHPZTP.cjs → chunk-CMQ4VLCW.cjs} +8 -7
- package/dist/{chunk-EHHHC5JV.js.map → chunk-CMQ4VLCW.cjs.map} +1 -1
- package/dist/chunk-E2J533UH.cjs +53 -0
- package/dist/chunk-E2J533UH.cjs.map +1 -0
- package/dist/chunk-F6EMC75A.cjs +34 -0
- package/dist/chunk-F6EMC75A.cjs.map +1 -0
- package/dist/chunk-GKE33FOJ.js +32 -0
- package/dist/chunk-GKE33FOJ.js.map +1 -0
- package/dist/{chunk-QQMU44KJ.js → chunk-HLOHWFOA.js} +52 -19
- package/dist/chunk-HLOHWFOA.js.map +1 -0
- package/dist/{chunk-633KP74Z.js → chunk-KCNTKYUY.js} +19 -2
- package/dist/chunk-KCNTKYUY.js.map +1 -0
- package/dist/{chunk-BLYVOV3G.cjs → chunk-LY27YAXE.cjs} +19 -2
- package/dist/chunk-LY27YAXE.cjs.map +1 -0
- package/dist/{chunk-EHHHC5JV.js → chunk-NB5GCGHL.js} +5 -4
- package/dist/chunk-NB5GCGHL.js.map +1 -0
- package/dist/{chunk-6XBXZPBW.js → chunk-NQUVAJQA.js} +3 -3
- package/dist/{chunk-6XBXZPBW.js.map → chunk-NQUVAJQA.js.map} +1 -1
- package/dist/chunk-SVO62ZV2.js +50 -0
- package/dist/chunk-SVO62ZV2.js.map +1 -0
- package/dist/{chunk-MU3RY46O.js → chunk-VBAZ77Q4.js} +3 -3
- package/dist/{chunk-MU3RY46O.js.map → chunk-VBAZ77Q4.js.map} +1 -1
- package/dist/{chunk-H2LESGMX.cjs → chunk-VSAFQTW5.cjs} +4 -4
- package/dist/{chunk-H2LESGMX.cjs.map → chunk-VSAFQTW5.cjs.map} +1 -1
- package/dist/{chunk-2BJCRYOS.cjs → chunk-VYJQ2HTA.cjs} +5 -5
- package/dist/{chunk-2BJCRYOS.cjs.map → chunk-VYJQ2HTA.cjs.map} +1 -1
- package/dist/{chunk-IIISFUW4.cjs → chunk-WTHTVKVI.cjs} +621 -108
- package/dist/chunk-WTHTVKVI.cjs.map +1 -0
- package/dist/{createEngineGridQuery-Mt1hc33m.d.ts → createEngineGridQuery-BBkud5oE.d.ts} +61 -6
- package/dist/{createEngineGridQuery-Dmq3i5v3.d.cts → createEngineGridQuery-D-fgO_jg.d.cts} +61 -6
- package/dist/date-picker-jalali.cjs +17 -17
- package/dist/date-picker-jalali.d.cts +3 -3
- package/dist/date-picker-jalali.d.ts +3 -3
- package/dist/date-picker-jalali.js +1 -1
- package/dist/headless.cjs +102 -102
- package/dist/headless.d.cts +13 -9
- package/dist/headless.d.ts +13 -9
- package/dist/headless.js +4 -4
- package/dist/index.cjs +440 -382
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +34 -14
- package/dist/index.d.ts +34 -14
- package/dist/index.js +200 -143
- package/dist/index.js.map +1 -1
- package/dist/plugins/csv.cjs +3 -3
- package/dist/plugins/csv.d.cts +2 -2
- package/dist/plugins/csv.d.ts +2 -2
- package/dist/plugins/csv.js +2 -2
- package/dist/plugins/excel.cjs +11 -11
- package/dist/plugins/excel.d.cts +4 -4
- package/dist/plugins/excel.d.ts +4 -4
- package/dist/plugins/excel.js +3 -3
- package/dist/plugins/pdf/fonts/vazirmatn.cjs +6 -6
- package/dist/plugins/pdf/fonts/vazirmatn.d.cts +4 -4
- package/dist/plugins/pdf/fonts/vazirmatn.d.ts +4 -4
- package/dist/plugins/pdf/fonts/vazirmatn.js +3 -3
- package/dist/plugins/pdf.cjs +5 -5
- package/dist/plugins/pdf.d.cts +5 -5
- package/dist/plugins/pdf.d.ts +5 -5
- package/dist/plugins/pdf.js +2 -2
- package/dist/presence.d.cts +3 -3
- package/dist/presence.d.ts +3 -3
- package/dist/sync.cjs +2 -2
- package/dist/sync.d.cts +3 -3
- package/dist/sync.d.ts +3 -3
- package/dist/sync.js +1 -1
- package/package.json +3 -3
- package/dist/GridSyncService-KTLB4KP3.js +0 -3
- package/dist/GridSyncService-TAPAHABV.cjs +0 -12
- package/dist/applyRowVisibilityHandler-KS6TMCBN.js.map +0 -1
- package/dist/applyRowVisibilityHandler-LXCOGESZ.cjs.map +0 -1
- package/dist/callbackRemoteApi-BlXO5NJz.d.ts +0 -30
- package/dist/callbackRemoteApi-DgnXH-i0.d.cts +0 -30
- package/dist/chunk-633KP74Z.js.map +0 -1
- package/dist/chunk-ASPTRYRD.cjs +0 -21
- package/dist/chunk-ASPTRYRD.cjs.map +0 -1
- package/dist/chunk-BHDRUZH5.cjs +0 -33
- package/dist/chunk-BHDRUZH5.cjs.map +0 -1
- package/dist/chunk-BLYVOV3G.cjs.map +0 -1
- package/dist/chunk-DXRCYW42.cjs.map +0 -1
- package/dist/chunk-HTNJT2QU.js.map +0 -1
- package/dist/chunk-IIISFUW4.cjs.map +0 -1
- package/dist/chunk-KUBVDIF7.cjs.map +0 -1
- package/dist/chunk-KYAOSBQN.js +0 -31
- package/dist/chunk-KYAOSBQN.js.map +0 -1
- package/dist/chunk-PXCHPZTP.cjs.map +0 -1
- package/dist/chunk-QQMU44KJ.js.map +0 -1
- package/dist/chunk-RM6ZWNT3.js.map +0 -1
- package/dist/chunk-Y6W5V2CI.js +0 -19
- package/dist/chunk-Y6W5V2CI.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/*! Vazirmatn: Copyright 2015 The Vazirmatn Project Authors (https://github.com/rastikerdar/vazirmatn). Licensed under the SIL Open Font License, Version 1.1. Full license: OFL.txt */
|
|
2
|
-
import { VazirmatnPdfRenderer, PdfExportPlugin } from '../../../chunk-
|
|
3
|
-
export { PdfExportPlugin, VazirmatnPdfRenderer } from '../../../chunk-
|
|
2
|
+
import { VazirmatnPdfRenderer, PdfExportPlugin } from '../../../chunk-VBAZ77Q4.js';
|
|
3
|
+
export { PdfExportPlugin, VazirmatnPdfRenderer } from '../../../chunk-VBAZ77Q4.js';
|
|
4
4
|
import '../../../chunk-PQY54EL5.js';
|
|
5
|
-
import '../../../chunk-
|
|
5
|
+
import '../../../chunk-GKE33FOJ.js';
|
|
6
6
|
import { inflateSync } from 'fflate';
|
|
7
7
|
|
|
8
8
|
var DEFLATED_B64 = "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";
|
package/dist/plugins/pdf.cjs
CHANGED
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
4
|
require('../chunk-N7SJTINL.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkVYJQ2HTA_cjs = require('../chunk-VYJQ2HTA.cjs');
|
|
6
6
|
require('../chunk-IMPCRWYP.cjs');
|
|
7
|
-
require('../chunk-
|
|
7
|
+
require('../chunk-F6EMC75A.cjs');
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
Object.defineProperty(exports, "PdfExportPlugin", {
|
|
12
12
|
enumerable: true,
|
|
13
|
-
get: function () { return
|
|
13
|
+
get: function () { return chunkVYJQ2HTA_cjs.PdfExportPlugin; }
|
|
14
14
|
});
|
|
15
15
|
Object.defineProperty(exports, "TextPdfRenderer", {
|
|
16
16
|
enumerable: true,
|
|
17
|
-
get: function () { return
|
|
17
|
+
get: function () { return chunkVYJQ2HTA_cjs.TextPdfRenderer; }
|
|
18
18
|
});
|
|
19
19
|
Object.defineProperty(exports, "VazirmatnPdfRenderer", {
|
|
20
20
|
enumerable: true,
|
|
21
|
-
get: function () { return
|
|
21
|
+
get: function () { return chunkVYJQ2HTA_cjs.VazirmatnPdfRenderer; }
|
|
22
22
|
});
|
|
23
23
|
//# sourceMappingURL=pdf.cjs.map
|
|
24
24
|
//# sourceMappingURL=pdf.cjs.map
|
package/dist/plugins/pdf.d.cts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { D as DocumentPdfFooter, b as DocumentPdfHeader, c as DocumentPdfLogo, d as DocumentPdfPageTotals, e as DocumentPdfSignature, f as DocumentPdfStamp, g as DocumentPdfTemplate, a as PdfExportPlugin, P as PdfExportPluginOptions, V as VazirmatnPdfRenderer } from '../VazirmatnPdfRenderer-
|
|
2
|
-
import { E as ExportSource } from '../GridPlugin-
|
|
3
|
-
import { P as PdfRenderer } from '../PdfRenderer-
|
|
4
|
-
export { a as PdfRenderOptions } from '../PdfRenderer-
|
|
5
|
-
import '../GridSession-
|
|
1
|
+
export { D as DocumentPdfFooter, b as DocumentPdfHeader, c as DocumentPdfLogo, d as DocumentPdfPageTotals, e as DocumentPdfSignature, f as DocumentPdfStamp, g as DocumentPdfTemplate, a as PdfExportPlugin, P as PdfExportPluginOptions, V as VazirmatnPdfRenderer } from '../VazirmatnPdfRenderer-CpCqA-Wh.cjs';
|
|
2
|
+
import { E as ExportSource } from '../GridPlugin-DewWufGZ.cjs';
|
|
3
|
+
import { P as PdfRenderer } from '../PdfRenderer-B9FJaCo_.cjs';
|
|
4
|
+
export { a as PdfRenderOptions } from '../PdfRenderer-B9FJaCo_.cjs';
|
|
5
|
+
import '../GridSession-CmQn2RnL.cjs';
|
|
6
6
|
import '../RemoteApi-CCQxiSf1.cjs';
|
|
7
7
|
import 'react';
|
|
8
8
|
|
package/dist/plugins/pdf.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { D as DocumentPdfFooter, b as DocumentPdfHeader, c as DocumentPdfLogo, d as DocumentPdfPageTotals, e as DocumentPdfSignature, f as DocumentPdfStamp, g as DocumentPdfTemplate, a as PdfExportPlugin, P as PdfExportPluginOptions, V as VazirmatnPdfRenderer } from '../VazirmatnPdfRenderer-
|
|
2
|
-
import { E as ExportSource } from '../GridPlugin-
|
|
3
|
-
import { P as PdfRenderer } from '../PdfRenderer-
|
|
4
|
-
export { a as PdfRenderOptions } from '../PdfRenderer-
|
|
5
|
-
import '../GridSession-
|
|
1
|
+
export { D as DocumentPdfFooter, b as DocumentPdfHeader, c as DocumentPdfLogo, d as DocumentPdfPageTotals, e as DocumentPdfSignature, f as DocumentPdfStamp, g as DocumentPdfTemplate, a as PdfExportPlugin, P as PdfExportPluginOptions, V as VazirmatnPdfRenderer } from '../VazirmatnPdfRenderer-D46smncn.js';
|
|
2
|
+
import { E as ExportSource } from '../GridPlugin-Bewn0X51.js';
|
|
3
|
+
import { P as PdfRenderer } from '../PdfRenderer-bN7ca_Aj.js';
|
|
4
|
+
export { a as PdfRenderOptions } from '../PdfRenderer-bN7ca_Aj.js';
|
|
5
|
+
import '../GridSession-CeIfVFck.js';
|
|
6
6
|
import '../RemoteApi-CCQxiSf1.js';
|
|
7
7
|
import 'react';
|
|
8
8
|
|
package/dist/plugins/pdf.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*! Vazirmatn: Copyright 2015 The Vazirmatn Project Authors (https://github.com/rastikerdar/vazirmatn). Licensed under the SIL Open Font License, Version 1.1. Full license: OFL.txt */
|
|
2
2
|
import '../chunk-3Y3KKGEC.js';
|
|
3
|
-
export { PdfExportPlugin, TextPdfRenderer, VazirmatnPdfRenderer } from '../chunk-
|
|
3
|
+
export { PdfExportPlugin, TextPdfRenderer, VazirmatnPdfRenderer } from '../chunk-VBAZ77Q4.js';
|
|
4
4
|
import '../chunk-PQY54EL5.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-GKE33FOJ.js';
|
|
6
6
|
//# sourceMappingURL=pdf.js.map
|
|
7
7
|
//# sourceMappingURL=pdf.js.map
|
package/dist/presence.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { U as UITableController } from './UITableController-
|
|
3
|
-
export { P as PresenceLocalState, a as PresenceMessage, b as PresencePeer, c as PresencePort, d as PresenceTransport } from './UITableController-
|
|
4
|
-
import './GridSession-
|
|
2
|
+
import { U as UITableController } from './UITableController-CIwnHIw8.cjs';
|
|
3
|
+
export { P as PresenceLocalState, a as PresenceMessage, b as PresencePeer, c as PresencePort, d as PresenceTransport } from './UITableController-CIwnHIw8.cjs';
|
|
4
|
+
import './GridSession-CmQn2RnL.cjs';
|
|
5
5
|
import './RemoteApi-CCQxiSf1.cjs';
|
|
6
6
|
|
|
7
7
|
type GridPresencePanelProps = {
|
package/dist/presence.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { U as UITableController } from './UITableController-
|
|
3
|
-
export { P as PresenceLocalState, a as PresenceMessage, b as PresencePeer, c as PresencePort, d as PresenceTransport } from './UITableController-
|
|
4
|
-
import './GridSession-
|
|
2
|
+
import { U as UITableController } from './UITableController-C71LXBiX.js';
|
|
3
|
+
export { P as PresenceLocalState, a as PresenceMessage, b as PresencePeer, c as PresencePort, d as PresenceTransport } from './UITableController-C71LXBiX.js';
|
|
4
|
+
import './GridSession-CeIfVFck.js';
|
|
5
5
|
import './RemoteApi-CCQxiSf1.js';
|
|
6
6
|
|
|
7
7
|
type GridPresencePanelProps = {
|
package/dist/sync.cjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunk3HP3HQCW_cjs = require('./chunk-3HP3HQCW.cjs');
|
|
4
4
|
require('./chunk-CILNIWYW.cjs');
|
|
5
5
|
require('./chunk-SX4VQXAA.cjs');
|
|
6
6
|
require('./chunk-QZN7R2WP.cjs');
|
|
@@ -17,7 +17,7 @@ var POLICIES = [
|
|
|
17
17
|
"manual"
|
|
18
18
|
];
|
|
19
19
|
function GridSyncPanel({ controller, className }) {
|
|
20
|
-
const t =
|
|
20
|
+
const t = chunk3HP3HQCW_cjs.useTranslations();
|
|
21
21
|
const [policy, setPolicy] = react.useState(
|
|
22
22
|
() => controller.getSyncPolicy()
|
|
23
23
|
);
|
package/dist/sync.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { U as UITableController } from './UITableController-
|
|
3
|
-
export { M as ManualResolution, S as SyncConflict, e as SyncConflictPolicy, f as SyncConflictSide, g as SyncPort, h as SyncResult, i as SyncTransport } from './UITableController-
|
|
4
|
-
import './GridSession-
|
|
2
|
+
import { U as UITableController } from './UITableController-CIwnHIw8.cjs';
|
|
3
|
+
export { M as ManualResolution, S as SyncConflict, e as SyncConflictPolicy, f as SyncConflictSide, g as SyncPort, h as SyncResult, i as SyncTransport } from './UITableController-CIwnHIw8.cjs';
|
|
4
|
+
import './GridSession-CmQn2RnL.cjs';
|
|
5
5
|
import './RemoteApi-CCQxiSf1.cjs';
|
|
6
6
|
|
|
7
7
|
type GridSyncPanelProps = {
|
package/dist/sync.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
|
-
import { U as UITableController } from './UITableController-
|
|
3
|
-
export { M as ManualResolution, S as SyncConflict, e as SyncConflictPolicy, f as SyncConflictSide, g as SyncPort, h as SyncResult, i as SyncTransport } from './UITableController-
|
|
4
|
-
import './GridSession-
|
|
2
|
+
import { U as UITableController } from './UITableController-C71LXBiX.js';
|
|
3
|
+
export { M as ManualResolution, S as SyncConflict, e as SyncConflictPolicy, f as SyncConflictSide, g as SyncPort, h as SyncResult, i as SyncTransport } from './UITableController-C71LXBiX.js';
|
|
4
|
+
import './GridSession-CeIfVFck.js';
|
|
5
5
|
import './RemoteApi-CCQxiSf1.js';
|
|
6
6
|
|
|
7
7
|
type GridSyncPanelProps = {
|
package/dist/sync.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "persian-data-grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -207,7 +207,7 @@
|
|
|
207
207
|
"peerDependencies": {
|
|
208
208
|
"react": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
209
209
|
"react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0",
|
|
210
|
-
"react-persian-range-picker": "^1.1.
|
|
210
|
+
"react-persian-range-picker": "^1.1.2"
|
|
211
211
|
},
|
|
212
212
|
"peerDependenciesMeta": {
|
|
213
213
|
"react": {
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
"jsdom": "^30.0.1",
|
|
236
236
|
"react": "^19.0.0",
|
|
237
237
|
"react-dom": "^19.2.8",
|
|
238
|
-
"react-persian-range-picker": "^1.1.
|
|
238
|
+
"react-persian-range-picker": "^1.1.2",
|
|
239
239
|
"size-limit": "^13.0.3",
|
|
240
240
|
"tsup": "^8.5.0",
|
|
241
241
|
"typedoc": "^0.28.20",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var chunkBLYVOV3G_cjs = require('./chunk-BLYVOV3G.cjs');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "GridSyncService", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: function () { return chunkBLYVOV3G_cjs.GridSyncService; }
|
|
10
|
-
});
|
|
11
|
-
//# sourceMappingURL=GridSyncService-TAPAHABV.cjs.map
|
|
12
|
-
//# sourceMappingURL=GridSyncService-TAPAHABV.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../application/handlers/applyRowVisibilityHandler.ts"],"names":[],"mappings":"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","file":"applyRowVisibilityHandler-KS6TMCBN.js","sourcesContent":["// application/handlers/applyRowVisibilityHandler.ts — lazy module (loaded the\r\n// first time a row with `resolveOn` columns becomes active).\r\nimport { ColumnSchema } from '../../bootstrap/type';\r\nimport { DomainError } from '../../domain/errors/DomainError';\r\nimport { Actor, PermissionPolicy } from '../../domain/policies';\r\nimport { ColumnId, RowId } from '../../domain/value-objects';\r\nimport { ApplyRowVisibilityCommand } from '../commands';\r\nimport { TableEvent } from '../events';\r\nimport { AuditLogger } from '../ports/AuditLogger';\r\nimport { TableRepository } from '../ports/TableRepository';\r\nimport {\r\n applyRemoteVisibilityRules,\r\n DynamicConfig,\r\n logError,\r\n} from './cellCommandsHandler';\r\n\r\n/* ======================================================\r\n ApplyRowVisibilityHandler\r\n ====================================================== */\r\n\r\n/**\r\n * هنگام فعالشدن (active) شدن یک سطر اجرا میشود:\r\n * برای هر ستون دارای resolveOn که سلولش مقدار دارد، applyRemoteVisibilityRules\r\n * را (بدون پاککردن سلولهای وابسته) صدا میزند تا visibilityCondition سطر فعال\r\n * از سرویس ریموت بهروز شود. مقدار RowState سطر را تغییر نمیدهد.\r\n */\r\nexport class ApplyRowVisibilityHandler {\r\n /**\r\n * Dedupe guard: آخرین امضای (row + کالکشن + مقادیر ستونهای resolveOn) که\r\n * برایش سر ریموت صدا زده شد. بدون این، دو مسیر مستقل (کلیک سطر →\r\n * setActiveRow و کلیک سلول → setActiveCell) و رفرشهای متوالی، همان API را\r\n * چند بار صدا میزدند. وقتی مقادیر عوض شود امضای جدید است و API دوباره\r\n * صدا زده میشود.\r\n */\r\n private lastSignature: string | null = null;\r\n\r\n constructor(\r\n private readonly repo: TableRepository,\r\n private readonly audit: AuditLogger,\r\n private readonly permissionPolicy: PermissionPolicy,\r\n private readonly dynamic?: DynamicConfig,\r\n ) { }\r\n\r\n async execute(\r\n command: ApplyRowVisibilityCommand,\r\n actor: Actor,\r\n ): Promise<TableEvent[]> {\r\n const { store, tableKey, rowId } = command;\r\n const table = await this.repo.getById(store, tableKey);\r\n\r\n try {\r\n if (!this.dynamic) return [];\r\n\r\n const row = table.getRow(rowId);\r\n if (!row) {\r\n throw new DomainError('ROW_NOT_FOUND', `Row ${rowId} not found`, { rowId });\r\n }\r\n\r\n const previousVisibility = { ...(row.getVisibilityCondition() ?? {}) };\r\n const activeCollection = table.getActiveCollectionName() ?? 'default';\r\n\r\n // گارد کالکشن: هر کالکشن فقط resolveOnِ خودش را اجرا کند. بدون این،\r\n // دوقلوهای RpWayId سایر کالکشنها هم حلقه را طی میکردند و API به ازای\r\n // هر کالکشن (۴ بار) صدا زده میشد.\r\n const resolveOnColumns = Array.from(this.dynamic.columnMeta.values())\r\n .filter(\r\n (colCfg): colCfg is ColumnSchema & { resolveOn: NonNullable<ColumnSchema['resolveOn']> } =>\r\n colCfg.resolveOn != null,\r\n )\r\n .filter(\r\n colCfg => (colCfg.fieldCollection ?? 'default') === activeCollection,\r\n );\r\n\r\n if (resolveOnColumns.length === 0) return [];\r\n\r\n // امضای dedupe: مقادیر فعلی سلولهای resolveOn این سطر.\r\n const signatureParts = resolveOnColumns.map(colCfg =>\r\n String(row.getCell(colCfg.resolveOn.fieldName)?.getValue() ?? ''),\r\n );\r\n const signature =\r\n `${store}:${tableKey}:${rowId}:${activeCollection}:${signatureParts.join('|')}`;\r\n if (signature === this.lastSignature) {\r\n // همان سطر با همان مقادیر — فلگها عوض نشدهاند؛ API و save لازم نیست.\r\n return [];\r\n }\r\n\r\n // ثبت امضا «قبل» از فراخوانی ریموت: دو مسیر dispatch (کلیک سطر و\r\n // کلیک سلول) تقریباً همزمان اجرا میشوند و اگر امضا بعد از await ثبت\r\n // میشد، هر دو از فیلتر رد میشدند و API دوبار صدا زده میشد.\r\n this.lastSignature = signature;\r\n\r\n for (const colCfg of resolveOnColumns) {\r\n const cell = row.getCell(colCfg.resolveOn.fieldName);\r\n if (!cell) continue;\r\n const value = cell.getValue();\r\n if (value == null || value === '') continue;\r\n\r\n await this.applyRemoteVisibilityRules({\r\n table,\r\n rowId: new RowId(rowId),\r\n changedColumnId: new ColumnId(colCfg.resolveOn.fieldName),\r\n newValue: value,\r\n clearDependents: false,\r\n });\r\n }\r\n\r\n await this.repo.save(store, table);\r\n\r\n const out: TableEvent = {\r\n type: 'CELL_CHANGED',\r\n tableId: tableKey,\r\n rowId,\r\n columnId: 'visibilityCondition',\r\n previousValue: previousVisibility,\r\n newValue: row.getVisibilityCondition(),\r\n };\r\n this.audit.log({ type: 'INFORMATION', message: 'ROW_VISIBILITY_APPLIED', payload: out });\r\n return [out];\r\n\r\n } catch (e) {\r\n logError(this.audit, e, `ApplyRowVisibilityHandler[${tableKey}:${rowId}]`);\r\n return [];\r\n }\r\n }\r\n\r\n /* ── identical to ChangeCellValueHandler helper ───────────────────── */\r\n\r\n private applyRemoteVisibilityRules(input: Parameters<typeof applyRemoteVisibilityRules>[1]): Promise<void> {\r\n return applyRemoteVisibilityRules(this.dynamic, input);\r\n }\r\n}"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../application/handlers/applyRowVisibilityHandler.ts"],"names":["DomainError","RowId","ColumnId","logError","applyRemoteVisibilityRules"],"mappings":";;;;;;;AA0BO,IAAM,4BAAN,MAAgC;AAAA,EAUrC,WAAA,CACmB,IAAA,EACA,KAAA,EACA,gBAAA,EACA,OAAA,EACjB;AAJiB,IAAA,IAAA,CAAA,IAAA,GAAA,IAAA;AACA,IAAA,IAAA,CAAA,KAAA,GAAA,KAAA;AACA,IAAA,IAAA,CAAA,gBAAA,GAAA,gBAAA;AACA,IAAA,IAAA,CAAA,OAAA,GAAA,OAAA;AANnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,IAAA,CAAQ,aAAA,GAA+B,IAAA;AAAA,EAOnC;AAAA,EAEJ,MAAM,OAAA,CACJ,OAAA,EACA,KAAA,EACuB;AACvB,IAAA,MAAM,EAAE,KAAA,EAAO,QAAA,EAAU,KAAA,EAAM,GAAI,OAAA;AACnC,IAAA,MAAM,QAAQ,MAAM,IAAA,CAAK,IAAA,CAAK,OAAA,CAAQ,OAAO,QAAQ,CAAA;AAErD,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,IAAA,CAAK,OAAA,EAAS,OAAO,EAAC;AAE3B,MAAA,MAAM,GAAA,GAAM,KAAA,CAAM,MAAA,CAAO,KAAK,CAAA;AAC9B,MAAA,IAAI,CAAC,GAAA,EAAK;AACR,QAAA,MAAM,IAAIA,8BAAY,eAAA,EAAiB,CAAA,IAAA,EAAO,KAAK,CAAA,UAAA,CAAA,EAAc,EAAE,OAAO,CAAA;AAAA,MAC5E;AAEA,MAAA,MAAM,qBAAqB,EAAE,GAAI,IAAI,sBAAA,EAAuB,IAAK,EAAC,EAAG;AACrE,MAAA,MAAM,gBAAA,GAAmB,KAAA,CAAM,uBAAA,EAAwB,IAAK,SAAA;AAK5D,MAAA,MAAM,gBAAA,GAAmB,MAAM,IAAA,CAAK,IAAA,CAAK,QAAQ,UAAA,CAAW,MAAA,EAAQ,CAAA,CACjE,MAAA;AAAA,QACC,CAAC,MAAA,KACC,MAAA,CAAO,SAAA,IAAa;AAAA,OACxB,CACC,MAAA;AAAA,QACC,CAAA,MAAA,KAAA,CAAW,MAAA,CAAO,eAAA,IAAmB,SAAA,MAAe;AAAA,OACtD;AAEF,MAAA,IAAI,gBAAA,CAAiB,MAAA,KAAW,CAAA,EAAG,OAAO,EAAC;AAG3C,MAAA,MAAM,iBAAiB,gBAAA,CAAiB,GAAA;AAAA,QAAI,CAAA,MAAA,KAC1C,MAAA,CAAO,GAAA,CAAI,OAAA,CAAQ,MAAA,CAAO,UAAU,SAAS,CAAA,EAAG,QAAA,EAAS,IAAK,EAAE;AAAA,OAClE;AACA,MAAA,MAAM,SAAA,GACJ,CAAA,EAAG,KAAK,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAA,EAAI,cAAA,CAAe,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAC/E,MAAA,IAAI,SAAA,KAAc,KAAK,aAAA,EAAe;AAEpC,QAAA,OAAO,EAAC;AAAA,MACV;AAKA,MAAA,IAAA,CAAK,aAAA,GAAgB,SAAA;AAErB,MAAA,KAAA,MAAW,UAAU,gBAAA,EAAkB;AACrC,QAAA,MAAM,IAAA,GAAO,GAAA,CAAI,OAAA,CAAQ,MAAA,CAAO,UAAU,SAAS,CAAA;AACnD,QAAA,IAAI,CAAC,IAAA,EAAM;AACX,QAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,EAAS;AAC5B,QAAA,IAAI,KAAA,IAAS,IAAA,IAAQ,KAAA,KAAU,EAAA,EAAI;AAEnC,QAAA,MAAM,KAAK,0BAAA,CAA2B;AAAA,UACpC,KAAA;AAAA,UACA,KAAA,EAAO,IAAIC,uBAAA,CAAM,KAAK,CAAA;AAAA,UACtB,eAAA,EAAiB,IAAIC,0BAAA,CAAS,MAAA,CAAO,UAAU,SAAS,CAAA;AAAA,UACxD,QAAA,EAAU,KAAA;AAAA,UACV,eAAA,EAAiB;AAAA,SAClB,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,IAAA,CAAK,IAAA,CAAK,IAAA,CAAK,KAAA,EAAO,KAAK,CAAA;AAEjC,MAAA,MAAM,GAAA,GAAkB;AAAA,QACtB,IAAA,EAAM,cAAA;AAAA,QACN,OAAA,EAAS,QAAA;AAAA,QACT,KAAA;AAAA,QACA,QAAA,EAAU,qBAAA;AAAA,QACV,aAAA,EAAe,kBAAA;AAAA,QACf,QAAA,EAAU,IAAI,sBAAA;AAAuB,OACvC;AACA,MAAA,IAAA,CAAK,KAAA,CAAM,IAAI,EAAE,IAAA,EAAM,eAAe,OAAA,EAAS,wBAAA,EAA0B,OAAA,EAAS,GAAA,EAAK,CAAA;AACvF,MAAA,OAAO,CAAC,GAAG,CAAA;AAAA,IAEb,SAAS,CAAA,EAAG;AACV,MAAAC,0BAAA,CAAS,KAAK,KAAA,EAAO,CAAA,EAAG,6BAA6B,QAAQ,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,CAAG,CAAA;AACzE,MAAA,OAAO,EAAC;AAAA,IACV;AAAA,EACF;AAAA;AAAA,EAIQ,2BAA2B,KAAA,EAAwE;AACzG,IAAA,OAAOC,4CAAA,CAA2B,IAAA,CAAK,OAAA,EAAS,KAAK,CAAA;AAAA,EACvD;AACF","file":"applyRowVisibilityHandler-LXCOGESZ.cjs","sourcesContent":["// application/handlers/applyRowVisibilityHandler.ts — lazy module (loaded the\r\n// first time a row with `resolveOn` columns becomes active).\r\nimport { ColumnSchema } from '../../bootstrap/type';\r\nimport { DomainError } from '../../domain/errors/DomainError';\r\nimport { Actor, PermissionPolicy } from '../../domain/policies';\r\nimport { ColumnId, RowId } from '../../domain/value-objects';\r\nimport { ApplyRowVisibilityCommand } from '../commands';\r\nimport { TableEvent } from '../events';\r\nimport { AuditLogger } from '../ports/AuditLogger';\r\nimport { TableRepository } from '../ports/TableRepository';\r\nimport {\r\n applyRemoteVisibilityRules,\r\n DynamicConfig,\r\n logError,\r\n} from './cellCommandsHandler';\r\n\r\n/* ======================================================\r\n ApplyRowVisibilityHandler\r\n ====================================================== */\r\n\r\n/**\r\n * هنگام فعالشدن (active) شدن یک سطر اجرا میشود:\r\n * برای هر ستون دارای resolveOn که سلولش مقدار دارد، applyRemoteVisibilityRules\r\n * را (بدون پاککردن سلولهای وابسته) صدا میزند تا visibilityCondition سطر فعال\r\n * از سرویس ریموت بهروز شود. مقدار RowState سطر را تغییر نمیدهد.\r\n */\r\nexport class ApplyRowVisibilityHandler {\r\n /**\r\n * Dedupe guard: آخرین امضای (row + کالکشن + مقادیر ستونهای resolveOn) که\r\n * برایش سر ریموت صدا زده شد. بدون این، دو مسیر مستقل (کلیک سطر →\r\n * setActiveRow و کلیک سلول → setActiveCell) و رفرشهای متوالی، همان API را\r\n * چند بار صدا میزدند. وقتی مقادیر عوض شود امضای جدید است و API دوباره\r\n * صدا زده میشود.\r\n */\r\n private lastSignature: string | null = null;\r\n\r\n constructor(\r\n private readonly repo: TableRepository,\r\n private readonly audit: AuditLogger,\r\n private readonly permissionPolicy: PermissionPolicy,\r\n private readonly dynamic?: DynamicConfig,\r\n ) { }\r\n\r\n async execute(\r\n command: ApplyRowVisibilityCommand,\r\n actor: Actor,\r\n ): Promise<TableEvent[]> {\r\n const { store, tableKey, rowId } = command;\r\n const table = await this.repo.getById(store, tableKey);\r\n\r\n try {\r\n if (!this.dynamic) return [];\r\n\r\n const row = table.getRow(rowId);\r\n if (!row) {\r\n throw new DomainError('ROW_NOT_FOUND', `Row ${rowId} not found`, { rowId });\r\n }\r\n\r\n const previousVisibility = { ...(row.getVisibilityCondition() ?? {}) };\r\n const activeCollection = table.getActiveCollectionName() ?? 'default';\r\n\r\n // گارد کالکشن: هر کالکشن فقط resolveOnِ خودش را اجرا کند. بدون این،\r\n // دوقلوهای RpWayId سایر کالکشنها هم حلقه را طی میکردند و API به ازای\r\n // هر کالکشن (۴ بار) صدا زده میشد.\r\n const resolveOnColumns = Array.from(this.dynamic.columnMeta.values())\r\n .filter(\r\n (colCfg): colCfg is ColumnSchema & { resolveOn: NonNullable<ColumnSchema['resolveOn']> } =>\r\n colCfg.resolveOn != null,\r\n )\r\n .filter(\r\n colCfg => (colCfg.fieldCollection ?? 'default') === activeCollection,\r\n );\r\n\r\n if (resolveOnColumns.length === 0) return [];\r\n\r\n // امضای dedupe: مقادیر فعلی سلولهای resolveOn این سطر.\r\n const signatureParts = resolveOnColumns.map(colCfg =>\r\n String(row.getCell(colCfg.resolveOn.fieldName)?.getValue() ?? ''),\r\n );\r\n const signature =\r\n `${store}:${tableKey}:${rowId}:${activeCollection}:${signatureParts.join('|')}`;\r\n if (signature === this.lastSignature) {\r\n // همان سطر با همان مقادیر — فلگها عوض نشدهاند؛ API و save لازم نیست.\r\n return [];\r\n }\r\n\r\n // ثبت امضا «قبل» از فراخوانی ریموت: دو مسیر dispatch (کلیک سطر و\r\n // کلیک سلول) تقریباً همزمان اجرا میشوند و اگر امضا بعد از await ثبت\r\n // میشد، هر دو از فیلتر رد میشدند و API دوبار صدا زده میشد.\r\n this.lastSignature = signature;\r\n\r\n for (const colCfg of resolveOnColumns) {\r\n const cell = row.getCell(colCfg.resolveOn.fieldName);\r\n if (!cell) continue;\r\n const value = cell.getValue();\r\n if (value == null || value === '') continue;\r\n\r\n await this.applyRemoteVisibilityRules({\r\n table,\r\n rowId: new RowId(rowId),\r\n changedColumnId: new ColumnId(colCfg.resolveOn.fieldName),\r\n newValue: value,\r\n clearDependents: false,\r\n });\r\n }\r\n\r\n await this.repo.save(store, table);\r\n\r\n const out: TableEvent = {\r\n type: 'CELL_CHANGED',\r\n tableId: tableKey,\r\n rowId,\r\n columnId: 'visibilityCondition',\r\n previousValue: previousVisibility,\r\n newValue: row.getVisibilityCondition(),\r\n };\r\n this.audit.log({ type: 'INFORMATION', message: 'ROW_VISIBILITY_APPLIED', payload: out });\r\n return [out];\r\n\r\n } catch (e) {\r\n logError(this.audit, e, `ApplyRowVisibilityHandler[${tableKey}:${rowId}]`);\r\n return [];\r\n }\r\n }\r\n\r\n /* ── identical to ChangeCellValueHandler helper ───────────────────── */\r\n\r\n private applyRemoteVisibilityRules(input: Parameters<typeof applyRemoteVisibilityRules>[1]): Promise<void> {\r\n return applyRemoteVisibilityRules(this.dynamic, input);\r\n }\r\n}"]}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { R as RemoteApi } from './RemoteApi-CCQxiSf1.js';
|
|
2
|
-
|
|
3
|
-
type RemoteApiRequest = {
|
|
4
|
-
endpoint: string;
|
|
5
|
-
params?: Record<string, unknown>;
|
|
6
|
-
method?: 'GET' | 'POST';
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Wraps ANY host transport as a `RemoteApi` port — the grid never learns how
|
|
10
|
-
* requests are authenticated or where defaults come from.
|
|
11
|
-
*
|
|
12
|
-
* arianERP example (RTK Query base query with token refresh + Redux defaults):
|
|
13
|
-
*
|
|
14
|
-
* const remoteApi = new CallbackRemoteApi(async ({ endpoint, params, method }) => {
|
|
15
|
-
* const res = await baseQueryByToken(
|
|
16
|
-
* { url: endpoint, method: method ?? 'POST', body: params ?? {} },
|
|
17
|
-
* { getState: () => store.getState(), dispatch: store.dispatch } as never,
|
|
18
|
-
* {},
|
|
19
|
-
* );
|
|
20
|
-
* return res.data;
|
|
21
|
-
* });
|
|
22
|
-
*/
|
|
23
|
-
declare class CallbackRemoteApi implements RemoteApi {
|
|
24
|
-
private readonly send;
|
|
25
|
-
private readonly onError?;
|
|
26
|
-
constructor(send: (request: RemoteApiRequest) => Promise<unknown>, onError?: ((error: unknown) => void) | undefined);
|
|
27
|
-
request<TResponse = unknown>(input: RemoteApiRequest): Promise<TResponse>;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export { CallbackRemoteApi as C, type RemoteApiRequest as R };
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { R as RemoteApi } from './RemoteApi-CCQxiSf1.cjs';
|
|
2
|
-
|
|
3
|
-
type RemoteApiRequest = {
|
|
4
|
-
endpoint: string;
|
|
5
|
-
params?: Record<string, unknown>;
|
|
6
|
-
method?: 'GET' | 'POST';
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Wraps ANY host transport as a `RemoteApi` port — the grid never learns how
|
|
10
|
-
* requests are authenticated or where defaults come from.
|
|
11
|
-
*
|
|
12
|
-
* arianERP example (RTK Query base query with token refresh + Redux defaults):
|
|
13
|
-
*
|
|
14
|
-
* const remoteApi = new CallbackRemoteApi(async ({ endpoint, params, method }) => {
|
|
15
|
-
* const res = await baseQueryByToken(
|
|
16
|
-
* { url: endpoint, method: method ?? 'POST', body: params ?? {} },
|
|
17
|
-
* { getState: () => store.getState(), dispatch: store.dispatch } as never,
|
|
18
|
-
* {},
|
|
19
|
-
* );
|
|
20
|
-
* return res.data;
|
|
21
|
-
* });
|
|
22
|
-
*/
|
|
23
|
-
declare class CallbackRemoteApi implements RemoteApi {
|
|
24
|
-
private readonly send;
|
|
25
|
-
private readonly onError?;
|
|
26
|
-
constructor(send: (request: RemoteApiRequest) => Promise<unknown>, onError?: ((error: unknown) => void) | undefined);
|
|
27
|
-
request<TResponse = unknown>(input: RemoteApiRequest): Promise<TResponse>;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export { CallbackRemoteApi as C, type RemoteApiRequest as R };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../application/sync/resolveCellConflicts.ts","../application/sync/GridSyncService.ts"],"names":[],"mappings":"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","file":"chunk-633KP74Z.js","sourcesContent":["import type {\r\n SyncConflict,\r\n SyncConflictPolicy,\r\n ManualResolution,\r\n} from '../ports/SyncPort';\r\n\r\n/**\r\n * Pure conflict resolution (PR-138).\r\n * `manual` always returns unresolved so the UI can choose.\r\n */\r\nexport function resolveConflictChoice(\r\n conflict: SyncConflict,\r\n policy: SyncConflictPolicy,\r\n): ManualResolution | 'unresolved' {\r\n if (policy === 'manual') return 'unresolved';\r\n if (policy === 'serverWins') return 'remote';\r\n // lastWriteWins — tie-break on version then occurredAt\r\n if (conflict.remote.version !== conflict.local.version) {\r\n return conflict.remote.version > conflict.local.version\r\n ? 'remote'\r\n : 'local';\r\n }\r\n if (conflict.remote.occurredAt !== conflict.local.occurredAt) {\r\n return conflict.remote.occurredAt > conflict.local.occurredAt\r\n ? 'remote'\r\n : 'local';\r\n }\r\n return 'remote';\r\n}\r\n\r\nexport function cellKeyFromPayload(\r\n payload: unknown,\r\n): { rowId: number; columnId: string } | null {\r\n if (!payload || typeof payload !== 'object') return null;\r\n const p = payload as Record<string, unknown>;\r\n const columnId = p.columnId;\r\n if (typeof columnId !== 'string' || !columnId) return null;\r\n const rowRaw = p.rowId;\r\n const rowId =\r\n typeof rowRaw === 'number'\r\n ? rowRaw\r\n : typeof rowRaw === 'string'\r\n ? Number(rowRaw)\r\n : NaN;\r\n if (!Number.isFinite(rowId)) return null;\r\n return { rowId, columnId };\r\n}\r\n\r\nexport function cellKeyId(rowId: number, columnId: string): string {\r\n return `${rowId}:${columnId}`;\r\n}\r\n","import type { EventStore } from '../ports/EventStore';\r\nimport type { GridEvent } from '../../domain/types/GridEvent';\r\nimport type { OfflineStatus } from '../offline/OfflineStatus';\r\nimport type {\r\n ManualResolution,\r\n SyncConflict,\r\n SyncConflictPolicy,\r\n SyncPort,\r\n SyncResult,\r\n SyncTransport,\r\n} from '../ports/SyncPort';\r\nimport {\r\n cellKeyFromPayload,\r\n cellKeyId,\r\n resolveConflictChoice,\r\n} from './resolveCellConflicts';\r\n\r\nexport type GridSyncServiceOptions = {\r\n readonly tableId: string;\r\n readonly eventStore: EventStore;\r\n readonly offlineStatus: OfflineStatus;\r\n readonly transport: SyncTransport;\r\n /** Apply a winning remote CELL_CHANGED into the local domain. */\r\n readonly applyCellValue: (\r\n rowId: number,\r\n columnId: string,\r\n value: unknown,\r\n ) => Promise<void>;\r\n /** Initial pull cursor (default 0). */\r\n readonly initialCursor?: number;\r\n readonly policy?: SyncConflictPolicy;\r\n};\r\n\r\nfunction isCellChanged(event: GridEvent): boolean {\r\n return event.type === 'CELL_CHANGED';\r\n}\r\n\r\nfunction toSide(event: GridEvent): SyncConflict['local'] {\r\n const payload = event.payload as { newValue?: unknown };\r\n return {\r\n eventId: event.eventId,\r\n value: payload?.newValue,\r\n occurredAt: event.occurredAt,\r\n version: event.version,\r\n };\r\n}\r\n\r\n/**\r\n * SyncPort implementation over EventStore + OfflineStatus + SyncTransport (PR-138).\r\n */\r\nexport class GridSyncService implements SyncPort {\r\n private policy: SyncConflictPolicy;\r\n private cursor: number;\r\n private openConflicts: SyncConflict[] = [];\r\n private readonly conflictListeners = new Set<\r\n (conflicts: readonly SyncConflict[]) => void\r\n >();\r\n /** Remote events waiting on manual resolution (by conflict id). */\r\n private readonly deferredRemote = new Map<string, GridEvent>();\r\n\r\n constructor(private readonly options: GridSyncServiceOptions) {\r\n this.policy = options.policy ?? 'lastWriteWins';\r\n this.cursor = options.initialCursor ?? 0;\r\n }\r\n\r\n getPolicy(): SyncConflictPolicy {\r\n return this.policy;\r\n }\r\n\r\n setPolicy(policy: SyncConflictPolicy): void {\r\n this.policy = policy;\r\n }\r\n\r\n getOpenConflicts(): readonly SyncConflict[] {\r\n return this.openConflicts;\r\n }\r\n\r\n subscribeConflicts(\r\n listener: (conflicts: readonly SyncConflict[]) => void,\r\n ): () => void {\r\n this.conflictListeners.add(listener);\r\n listener(this.openConflicts);\r\n return () => this.conflictListeners.delete(listener);\r\n }\r\n\r\n async sync(): Promise<SyncResult> {\r\n const pending = this.options.offlineStatus.getPendingChanges();\r\n const pushable = pending\r\n .map((p) => p.event)\r\n .filter(\r\n (e): e is GridEvent =>\r\n Boolean(e) && e.tableId === this.options.tableId,\r\n );\r\n\r\n const { acceptedIds } = await this.options.transport.push(pushable);\r\n if (acceptedIds.length > 0) {\r\n this.options.offlineStatus.markSynced([...acceptedIds]);\r\n }\r\n\r\n // Locals just pushed (or still pending) — used to detect cell conflicts on pull.\r\n const localByCell = new Map<string, GridEvent>();\r\n for (const event of pushable) {\r\n if (!isCellChanged(event)) continue;\r\n const key = cellKeyFromPayload(event.payload);\r\n if (!key) continue;\r\n localByCell.set(cellKeyId(key.rowId, key.columnId), event);\r\n }\r\n for (const event of this.options.offlineStatus\r\n .getPendingChanges()\r\n .map((p) => p.event)\r\n .filter((e): e is GridEvent => Boolean(e))) {\r\n if (!isCellChanged(event) || event.tableId !== this.options.tableId) {\r\n continue;\r\n }\r\n const key = cellKeyFromPayload(event.payload);\r\n if (!key) continue;\r\n localByCell.set(cellKeyId(key.rowId, key.columnId), event);\r\n }\r\n\r\n const pulled = await this.options.transport.pull(this.cursor);\r\n this.cursor = pulled.cursor;\r\n\r\n let applied = 0;\r\n const conflicts: SyncConflict[] = [];\r\n\r\n for (const remote of pulled.events) {\r\n if (remote.tableId !== this.options.tableId) continue;\r\n if (!isCellChanged(remote)) {\r\n await this.ingestRemote(remote);\r\n applied += 1;\r\n continue;\r\n }\r\n const key = cellKeyFromPayload(remote.payload);\r\n if (!key) continue;\r\n const id = cellKeyId(key.rowId, key.columnId);\r\n const local = localByCell.get(id);\r\n if (local && toSide(local).value !== toSide(remote).value) {\r\n const conflict: SyncConflict = {\r\n id: `conflict:${id}:${remote.eventId}`,\r\n key,\r\n local: toSide(local),\r\n remote: toSide(remote),\r\n };\r\n const choice = resolveConflictChoice(conflict, this.policy);\r\n if (choice === 'unresolved') {\r\n conflicts.push(conflict);\r\n this.deferredRemote.set(conflict.id, remote);\r\n continue;\r\n }\r\n if (choice === 'remote') {\r\n await this.applyRemoteCell(remote, key.rowId, key.columnId);\r\n this.options.offlineStatus.markSynced([local.eventId]);\r\n applied += 1;\r\n } else {\r\n // Keep local — acknowledge remote without applying its value\r\n await this.ingestRemote(remote);\r\n }\r\n continue;\r\n }\r\n await this.applyRemoteCell(remote, key.rowId, key.columnId);\r\n applied += 1;\r\n }\r\n\r\n this.openConflicts = [\r\n ...this.openConflicts.filter((c) => this.deferredRemote.has(c.id)),\r\n ...conflicts,\r\n ];\r\n this.emitConflicts();\r\n\r\n return {\r\n pushed: acceptedIds.length,\r\n pulled: pulled.events.length,\r\n applied,\r\n conflicts: this.openConflicts,\r\n };\r\n }\r\n\r\n async resolveConflict(\r\n conflictId: string,\r\n choice: ManualResolution,\r\n ): Promise<void> {\r\n const conflict = this.openConflicts.find((c) => c.id === conflictId);\r\n const remote = this.deferredRemote.get(conflictId);\r\n if (!conflict || !remote) return;\r\n\r\n if (choice === 'remote') {\r\n await this.applyRemoteCell(\r\n remote,\r\n conflict.key.rowId,\r\n conflict.key.columnId,\r\n );\r\n this.options.offlineStatus.markSynced([conflict.local.eventId]);\r\n } else {\r\n await this.ingestRemote(remote);\r\n }\r\n\r\n this.deferredRemote.delete(conflictId);\r\n this.openConflicts = this.openConflicts.filter((c) => c.id !== conflictId);\r\n this.emitConflicts();\r\n }\r\n\r\n private async applyRemoteCell(\r\n remote: GridEvent,\r\n rowId: number,\r\n columnId: string,\r\n ): Promise<void> {\r\n await this.ingestRemote(remote);\r\n const before = new Set(\r\n this.options.offlineStatus.getPendingChanges().map((p) => p.eventId),\r\n );\r\n const value = (remote.payload as { newValue?: unknown })?.newValue;\r\n await this.options.applyCellValue(rowId, columnId, value);\r\n // CHANGE_CELL_VALUE may dual-write a new local event — treat as synced.\r\n const created = this.options.offlineStatus\r\n .getPendingChanges()\r\n .filter((p) => !before.has(p.eventId))\r\n .map((p) => p.eventId);\r\n if (created.length > 0) {\r\n this.options.offlineStatus.markSynced(created);\r\n }\r\n }\r\n\r\n private async ingestRemote(remote: GridEvent): Promise<void> {\r\n const streamId = remote.streamId || `table:${remote.tableId}`;\r\n const existing = await this.options.eventStore.read(streamId);\r\n if (existing.some((e) => e.eventId === remote.eventId)) {\r\n this.options.offlineStatus.markSynced([remote.eventId]);\r\n return;\r\n }\r\n await this.options.eventStore.append(streamId, [remote], -1);\r\n // Remote ingest must not look like a local pending mutation.\r\n this.options.offlineStatus.markSynced([remote.eventId]);\r\n }\r\n\r\n private emitConflicts(): void {\r\n for (const listener of this.conflictListeners) {\r\n listener(this.openConflicts);\r\n }\r\n }\r\n}\r\n"]}
|