@pallasoft/ps-core-components 2.46.1 → 2.47.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.
Files changed (135) hide show
  1. package/dist/components/ps-data-boundary.d.ts +2 -1
  2. package/dist/components/ps-data-boundary.js +2 -2
  3. package/dist/components/ps-empty-value.d.ts +5 -0
  4. package/dist/components/ps-empty-value.js +8 -0
  5. package/dist/components/ps-image.d.ts +14 -0
  6. package/dist/components/ps-image.js +29 -0
  7. package/dist/components/ps-signed-value.d.ts +6 -0
  8. package/dist/components/ps-signed-value.js +9 -0
  9. package/dist/constants/ps-empty-value-config.d.ts +4 -0
  10. package/dist/constants/ps-empty-value-config.js +7 -0
  11. package/dist/constants/ps-image-config.d.ts +7 -0
  12. package/dist/constants/ps-image-config.js +10 -0
  13. package/dist/constants/ps-image-fit.d.ts +7 -0
  14. package/dist/constants/ps-image-fit.js +11 -0
  15. package/dist/constants/ps-image-status.d.ts +5 -0
  16. package/dist/constants/ps-image-status.js +9 -0
  17. package/dist/constants/ps-signed-value-classes.d.ts +2 -0
  18. package/dist/constants/ps-signed-value-classes.js +9 -0
  19. package/dist/esm/components/ps-data-boundary.js +2 -2
  20. package/dist/esm/components/ps-empty-value.js +4 -0
  21. package/dist/esm/components/ps-image.js +25 -0
  22. package/dist/esm/components/ps-signed-value.js +5 -0
  23. package/dist/esm/constants/ps-empty-value-config.js +4 -0
  24. package/dist/esm/constants/ps-image-config.js +7 -0
  25. package/dist/esm/constants/ps-image-fit.js +8 -0
  26. package/dist/esm/constants/ps-image-status.js +6 -0
  27. package/dist/esm/constants/ps-signed-value-classes.js +6 -0
  28. package/dist/esm/hooks/use-ps-cursor-pages.js +82 -0
  29. package/dist/esm/hooks/use-ps-draft-state.js +18 -0
  30. package/dist/esm/hooks/use-ps-optimistic-fetcher.js +2 -4
  31. package/dist/esm/hooks/use-ps-optimistic-save.js +1 -1
  32. package/dist/esm/hooks/use-ps-remote-read.js +31 -0
  33. package/dist/esm/hooks/use-ps-text-param.js +16 -0
  34. package/dist/esm/index.js +32 -12
  35. package/dist/esm/models/ps-image-state-data.js +1 -0
  36. package/dist/esm/models/ps-remote-read-state.js +1 -0
  37. package/dist/esm/models/ps-remote-settled-data.js +1 -0
  38. package/dist/esm/models/ps-text-param-data.js +1 -0
  39. package/dist/esm/models/ps-text-param-options.js +1 -0
  40. package/dist/esm/services/ps-cursor-pages-service.js +14 -0
  41. package/dist/esm/services/ps-draft-state-service.js +11 -0
  42. package/dist/esm/services/ps-image-service.js +11 -0
  43. package/dist/esm/services/ps-remote-read-service.js +19 -0
  44. package/dist/esm/services/ps-signed-value-service.js +13 -0
  45. package/dist/hooks/use-ps-cursor-pages.d.ts +3 -0
  46. package/dist/hooks/use-ps-cursor-pages.js +86 -0
  47. package/dist/hooks/use-ps-draft-state.d.ts +3 -0
  48. package/dist/hooks/use-ps-draft-state.js +22 -0
  49. package/dist/hooks/use-ps-optimistic-fetcher.js +7 -9
  50. package/dist/hooks/use-ps-optimistic-save.js +4 -4
  51. package/dist/hooks/use-ps-remote-read.d.ts +3 -0
  52. package/dist/hooks/use-ps-remote-read.js +35 -0
  53. package/dist/hooks/use-ps-text-param.d.ts +4 -0
  54. package/dist/hooks/use-ps-text-param.js +20 -0
  55. package/dist/index.d.ts +32 -12
  56. package/dist/index.js +39 -12
  57. package/dist/interfaces/ps-cursor-pages-input.d.ts +8 -0
  58. package/dist/interfaces/ps-cursor-pages-result.d.ts +7 -0
  59. package/dist/interfaces/ps-draft-state-options.d.ts +3 -0
  60. package/dist/interfaces/ps-draft-state-result.d.ts +7 -0
  61. package/dist/interfaces/ps-optimistic-failure.d.ts +1 -1
  62. package/dist/interfaces/ps-optimistic-save-input.d.ts +1 -1
  63. package/dist/interfaces/ps-remote-read-input.d.ts +5 -0
  64. package/dist/interfaces/ps-remote-read-result.d.ts +5 -0
  65. package/dist/models/ps-cursor-pages-state.d.ts +8 -0
  66. package/dist/models/ps-draft-state-data.d.ts +4 -0
  67. package/dist/models/ps-image-state-data.d.ts +5 -0
  68. package/dist/models/ps-image-state-data.js +2 -0
  69. package/dist/models/ps-remote-read-state.d.ts +6 -0
  70. package/dist/models/ps-remote-read-state.js +2 -0
  71. package/dist/models/ps-remote-settled-data.d.ts +4 -0
  72. package/dist/models/ps-remote-settled-data.js +2 -0
  73. package/dist/models/ps-text-param-data.d.ts +5 -0
  74. package/dist/models/ps-text-param-data.js +2 -0
  75. package/dist/models/ps-text-param-options.d.ts +5 -0
  76. package/dist/models/ps-text-param-options.js +2 -0
  77. package/dist/services/ps-cursor-pages-service.d.ts +6 -0
  78. package/dist/services/ps-cursor-pages-service.js +18 -0
  79. package/dist/services/ps-draft-state-service.d.ts +6 -0
  80. package/dist/services/ps-draft-state-service.js +15 -0
  81. package/dist/services/ps-image-service.d.ts +6 -0
  82. package/dist/services/ps-image-service.js +15 -0
  83. package/dist/services/ps-remote-read-service.d.ts +8 -0
  84. package/dist/services/ps-remote-read-service.js +23 -0
  85. package/dist/services/ps-signed-value-service.d.ts +5 -0
  86. package/dist/services/ps-signed-value-service.js +17 -0
  87. package/package.json +2 -2
  88. package/dist/constants/ps-optimistic-config.d.ts +0 -5
  89. package/dist/constants/ps-optimistic-config.js +0 -8
  90. package/dist/esm/constants/ps-optimistic-config.js +0 -5
  91. package/dist/esm/hooks/use-ps-change-queue.js +0 -36
  92. package/dist/esm/hooks/use-ps-debounced-value.js +0 -11
  93. package/dist/esm/hooks/use-ps-optimistic-rows.js +0 -29
  94. package/dist/esm/services/ps-deep-equal-service.js +0 -31
  95. package/dist/esm/services/ps-optimistic-fetcher-service.js +0 -12
  96. package/dist/esm/services/ps-optimistic-release-service.js +0 -38
  97. package/dist/esm/services/ps-optimistic-save-service.js +0 -64
  98. package/dist/hooks/use-ps-change-queue.d.ts +0 -3
  99. package/dist/hooks/use-ps-change-queue.js +0 -40
  100. package/dist/hooks/use-ps-debounced-value.d.ts +0 -1
  101. package/dist/hooks/use-ps-debounced-value.js +0 -15
  102. package/dist/hooks/use-ps-optimistic-rows.d.ts +0 -3
  103. package/dist/hooks/use-ps-optimistic-rows.js +0 -33
  104. package/dist/interfaces/ps-change-queue-input.d.ts +0 -5
  105. package/dist/interfaces/ps-change-queue-result.d.ts +0 -3
  106. package/dist/interfaces/ps-optimistic-changes.d.ts +0 -7
  107. package/dist/interfaces/ps-optimistic-failure-reason.d.ts +0 -1
  108. package/dist/interfaces/ps-optimistic-outcome.d.ts +0 -5
  109. package/dist/interfaces/ps-optimistic-rows-input.d.ts +0 -6
  110. package/dist/interfaces/ps-optimistic-rows-result.d.ts +0 -6
  111. package/dist/interfaces/ps-optimistic-save-spec.d.ts +0 -11
  112. package/dist/services/ps-deep-equal-service.d.ts +0 -5
  113. package/dist/services/ps-deep-equal-service.js +0 -35
  114. package/dist/services/ps-optimistic-fetcher-service.d.ts +0 -6
  115. package/dist/services/ps-optimistic-fetcher-service.js +0 -16
  116. package/dist/services/ps-optimistic-release-service.d.ts +0 -5
  117. package/dist/services/ps-optimistic-release-service.js +0 -42
  118. package/dist/services/ps-optimistic-save-service.d.ts +0 -11
  119. package/dist/services/ps-optimistic-save-service.js +0 -68
  120. /package/dist/esm/interfaces/{ps-change-queue-input.js → ps-cursor-pages-input.js} +0 -0
  121. /package/dist/esm/interfaces/{ps-change-queue-result.js → ps-cursor-pages-result.js} +0 -0
  122. /package/dist/esm/interfaces/{ps-optimistic-changes.js → ps-draft-state-options.js} +0 -0
  123. /package/dist/esm/interfaces/{ps-optimistic-failure-reason.js → ps-draft-state-result.js} +0 -0
  124. /package/dist/esm/interfaces/{ps-optimistic-outcome.js → ps-remote-read-input.js} +0 -0
  125. /package/dist/esm/interfaces/{ps-optimistic-rows-input.js → ps-remote-read-result.js} +0 -0
  126. /package/dist/esm/{interfaces/ps-optimistic-rows-result.js → models/ps-cursor-pages-state.js} +0 -0
  127. /package/dist/esm/{interfaces/ps-optimistic-save-spec.js → models/ps-draft-state-data.js} +0 -0
  128. /package/dist/interfaces/{ps-change-queue-input.js → ps-cursor-pages-input.js} +0 -0
  129. /package/dist/interfaces/{ps-change-queue-result.js → ps-cursor-pages-result.js} +0 -0
  130. /package/dist/interfaces/{ps-optimistic-changes.js → ps-draft-state-options.js} +0 -0
  131. /package/dist/interfaces/{ps-optimistic-failure-reason.js → ps-draft-state-result.js} +0 -0
  132. /package/dist/interfaces/{ps-optimistic-outcome.js → ps-remote-read-input.js} +0 -0
  133. /package/dist/interfaces/{ps-optimistic-rows-input.js → ps-remote-read-result.js} +0 -0
  134. /package/dist/{interfaces/ps-optimistic-rows-result.js → models/ps-cursor-pages-state.js} +0 -0
  135. /package/dist/{interfaces/ps-optimistic-save-spec.js → models/ps-draft-state-data.js} +0 -0
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PsOptimisticReleaseService = void 0;
4
- const ps_deep_equal_service_1 = require("./ps-deep-equal-service");
5
- class PsOptimisticReleaseService {
6
- static empty(rows) {
7
- return { base: rows, changes: [], drainBase: null, wasActive: false, wasHolding: false };
8
- }
9
- static next(remembered, rows, isActive, isHolding, apply) {
10
- if (isActive) {
11
- const wasHolding = remembered.wasHolding || isHolding;
12
- if (remembered.wasActive &&
13
- remembered.drainBase === null &&
14
- remembered.wasHolding === wasHolding)
15
- return remembered;
16
- return { ...remembered, drainBase: null, wasActive: true, wasHolding };
17
- }
18
- if (remembered.changes.length === 0) {
19
- if (remembered.base === rows && !remembered.wasActive)
20
- return remembered;
21
- return PsOptimisticReleaseService.empty(rows);
22
- }
23
- if (remembered.wasActive) {
24
- if (remembered.wasHolding && rows !== remembered.base) {
25
- return PsOptimisticReleaseService.empty(rows);
26
- }
27
- if (!ps_deep_equal_service_1.PsDeepEqualService.isEqual(rows, remembered.base)) {
28
- return PsOptimisticReleaseService.empty(rows);
29
- }
30
- return { ...remembered, drainBase: rows, wasActive: false, wasHolding: false };
31
- }
32
- const reference = remembered.drainBase === null ? remembered.base : remembered.drainBase;
33
- if (!ps_deep_equal_service_1.PsDeepEqualService.isEqual(rows, reference)) {
34
- return PsOptimisticReleaseService.empty(rows);
35
- }
36
- if (ps_deep_equal_service_1.PsDeepEqualService.isEqual(apply(rows, remembered.changes), rows)) {
37
- return PsOptimisticReleaseService.empty(rows);
38
- }
39
- return remembered;
40
- }
41
- }
42
- exports.PsOptimisticReleaseService = PsOptimisticReleaseService;
@@ -1,11 +0,0 @@
1
- import type { PsOptimisticSaveSpec } from '../interfaces/ps-optimistic-save-spec';
2
- export declare class PsOptimisticSaveService {
3
- static isPending(id: string): boolean;
4
- static pendingId(): string;
5
- static saveValues<Row, Values>(spec: PsOptimisticSaveSpec<Row, Values>, values: Values, existingId: string, scopeId: string): Record<string, string>;
6
- static removeValues<Row, Values>(spec: PsOptimisticSaveSpec<Row, Values>, ids: string[]): Record<string, string>;
7
- static apply<Row, Values>(rows: Row[], changes: Record<string, string>[], spec: PsOptimisticSaveSpec<Row, Values>): Row[];
8
- private static read;
9
- private static saved;
10
- private static removed;
11
- }
@@ -1,68 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PsOptimisticSaveService = void 0;
4
- const ps_optimistic_config_1 = require("../constants/ps-optimistic-config");
5
- class PsOptimisticSaveService {
6
- static isPending(id) {
7
- return id.startsWith(ps_optimistic_config_1.PsOptimisticConfig.pendingPrefix);
8
- }
9
- static pendingId() {
10
- return `${ps_optimistic_config_1.PsOptimisticConfig.pendingPrefix}${crypto.randomUUID()}`;
11
- }
12
- static saveValues(spec, values, existingId, scopeId) {
13
- const fields = spec.isFlat
14
- ? Object.fromEntries(Object.entries(values).map(([key, value]) => [key, String(value)]))
15
- : { values: JSON.stringify(values) };
16
- return {
17
- ...fields,
18
- [spec.idField]: existingId,
19
- intent: spec.intent,
20
- pendingId: PsOptimisticSaveService.pendingId(),
21
- scopeId,
22
- };
23
- }
24
- static removeValues(spec, ids) {
25
- return spec.remove === undefined
26
- ? {}
27
- : { [spec.remove.idsField]: JSON.stringify(ids), intent: spec.remove.intent };
28
- }
29
- static apply(rows, changes, spec) {
30
- return changes.reduce((current, change) => {
31
- if (change.intent === spec.intent)
32
- return PsOptimisticSaveService.saved(current, change, spec);
33
- if (spec.remove !== undefined && change.intent === spec.remove.intent)
34
- return PsOptimisticSaveService.removed(current, change, spec, spec.remove.idsField);
35
- return current;
36
- }, rows);
37
- }
38
- static read(raw) {
39
- if (raw === undefined)
40
- return null;
41
- try {
42
- return JSON.parse(raw);
43
- }
44
- catch {
45
- return null;
46
- }
47
- }
48
- static saved(rows, change, spec) {
49
- const parsed = spec.isFlat ? change : PsOptimisticSaveService.read(change.values);
50
- if (parsed === null || typeof parsed !== 'object')
51
- return rows;
52
- const existingId = change[spec.idField];
53
- const id = existingId === '' ? change.pendingId : existingId;
54
- const previous = rows.find((row) => spec.getId(row) === existingId);
55
- const built = spec.build(parsed, id, previous === undefined ? null : previous, change.scopeId);
56
- if (built === null)
57
- return rows;
58
- return previous === undefined
59
- ? [...rows, built]
60
- : rows.map((row) => (spec.getId(row) === existingId ? built : row));
61
- }
62
- static removed(rows, change, spec, idsField) {
63
- const parsed = PsOptimisticSaveService.read(change[idsField]);
64
- const ids = new Set(Array.isArray(parsed) ? parsed : []);
65
- return rows.filter((row) => !ids.has(spec.getId(row)));
66
- }
67
- }
68
- exports.PsOptimisticSaveService = PsOptimisticSaveService;