namirasoft-account-react 1.5.21 → 1.5.23

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 (143) hide show
  1. package/.env.template +15 -15
  2. package/SKILL.md +514 -514
  3. package/config-overrides.js +72 -72
  4. package/dist/App.d.ts +1 -1
  5. package/dist/Router.d.ts +1 -1
  6. package/dist/UseParams.d.ts +1 -1
  7. package/dist/components/NSAAccessListDialog.d.ts +2 -2
  8. package/dist/components/NSAAccessListDialog.module.css +71 -71
  9. package/dist/components/NSABoxSecret.d.ts +1 -1
  10. package/dist/components/NSABoxSecret.module.css +23 -23
  11. package/dist/components/NSAMasterMenu.d.ts +1 -1
  12. package/dist/components/NSAMasterMenu.module.css +250 -250
  13. package/dist/components/NSAMasterMenuItem.d.ts +1 -1
  14. package/dist/components/NSAMessageListDialog.d.ts +1 -1
  15. package/dist/components/NSAMessageListDialog.module.css +99 -99
  16. package/dist/components/NSANavigationGuard.d.ts +1 -1
  17. package/dist/components/NSAProductListDialog.d.ts +1 -1
  18. package/dist/components/NSAProductListDialog.module.css +44 -44
  19. package/dist/components/NSATaskBar.d.ts +1 -1
  20. package/dist/components/NSATaskBar.module.css +57 -57
  21. package/dist/components/NSAUserDialog.d.ts +1 -1
  22. package/dist/components/NSAUserDialog.module.css +67 -67
  23. package/dist/components/NSAWorkspaceListDialog.d.ts +1 -1
  24. package/dist/components/NSAWorkspaceListDialog.module.css +41 -41
  25. package/dist/components/NSFBoxCategoryScope.d.ts +1 -1
  26. package/dist/components/NSFBoxField.d.ts +1 -1
  27. package/dist/components/NSFBoxSlot.d.ts +1 -1
  28. package/dist/components/NSFBoxWrapper.d.ts +1 -1
  29. package/dist/components/NSLabelSecret.d.ts +1 -1
  30. package/dist/components/quickfilter/NSAFilterBoxEnum.module.css +44 -44
  31. package/dist/components/quickfilter/NSAQuickFilterBar.d.ts +1 -1
  32. package/dist/components/quickfilter/NSAQuickFilterBar.module.css +19 -19
  33. package/dist/components/quickfilter/NSAQuickFilterDialog.d.ts +1 -1
  34. package/dist/components/quickfilter/NSAQuickFilterDialog.module.css +74 -74
  35. package/dist/layouts/NSALayout.d.ts +1 -1
  36. package/dist/layouts/NSASectionEdit.d.ts +1 -1
  37. package/dist/layouts/NSASectionEditTabPage.d.ts +1 -1
  38. package/dist/layouts/NSASectionEditTabPage.module.css +4 -4
  39. package/dist/layouts/NSASectionList.d.ts +3 -1
  40. package/dist/layouts/NSASectionList.js +14 -6
  41. package/dist/layouts/NSASectionList.js.map +1 -1
  42. package/dist/layouts/NSASectionList.module.css +31 -31
  43. package/dist/layouts/NSASectionView.d.ts +1 -1
  44. package/dist/layouts/NSASectionViewTabMore.d.ts +1 -1
  45. package/dist/layouts/NSASectionViewTabPage.d.ts +1 -1
  46. package/dist/layouts/NSASectionViewTabPage.js +1 -0
  47. package/dist/layouts/NSASectionViewTabPage.js.map +1 -1
  48. package/dist/layouts/NSASectionViewTabPage.module.css +47 -47
  49. package/dist/pages/NSAConsentPage.module.css +26 -26
  50. package/dist/pages/NSAEmailVerificationPage.d.ts +1 -1
  51. package/dist/pages/NSAHomePage.d.ts +1 -1
  52. package/dist/pages/NSAHomePage.module.css +41 -41
  53. package/dist/pages/NSALoginPage.d.ts +1 -1
  54. package/dist/pages/NSALoginPage.module.css +26 -26
  55. package/dist/pages/NSAPhoneVerificationPage.d.ts +1 -1
  56. package/dist/pages/NSAVerificationPage.d.ts +1 -1
  57. package/dist/pages/NSAVerificationPage.module.css +31 -31
  58. package/package.json +95 -95
  59. package/public/index.html +21 -21
  60. package/src/App.tsx +19 -19
  61. package/src/CTFRow.ts +7 -7
  62. package/src/FieldCacheService.tsx +84 -84
  63. package/src/IEntityInfo.ts +33 -33
  64. package/src/NSACacheService.ts +120 -120
  65. package/src/NSAFilterOperators.ts +92 -92
  66. package/src/NSARouterMaker.tsx +140 -140
  67. package/src/NSARouterMakerProps.ts +23 -23
  68. package/src/NSARouterMakerResult.ts +24 -24
  69. package/src/NSFRouterMaker.tsx +35 -35
  70. package/src/NSFRouterProps.ts +7 -7
  71. package/src/NSFRoutes.ts +30 -30
  72. package/src/Router.tsx +48 -48
  73. package/src/UseParams.tsx +17 -17
  74. package/src/components/NSAAccessListDialog.module.css +71 -71
  75. package/src/components/NSAAccessListDialog.tsx +178 -178
  76. package/src/components/NSABoxSecret.module.css +23 -23
  77. package/src/components/NSABoxSecret.tsx +264 -264
  78. package/src/components/NSAMasterMenu.module.css +250 -250
  79. package/src/components/NSAMasterMenu.tsx +169 -169
  80. package/src/components/NSAMasterMenuItem.tsx +250 -250
  81. package/src/components/NSAMessageListDialog.module.css +99 -99
  82. package/src/components/NSAMessageListDialog.tsx +142 -142
  83. package/src/components/NSANavigationGuard.tsx +79 -79
  84. package/src/components/NSAProductListDialog.module.css +44 -44
  85. package/src/components/NSAProductListDialog.tsx +88 -88
  86. package/src/components/NSATable.tsx +494 -494
  87. package/src/components/NSATaskBar.module.css +57 -57
  88. package/src/components/NSATaskBar.tsx +193 -193
  89. package/src/components/NSAUserDialog.module.css +67 -67
  90. package/src/components/NSAUserDialog.tsx +122 -122
  91. package/src/components/NSAWorkspaceListDialog.module.css +41 -41
  92. package/src/components/NSAWorkspaceListDialog.tsx +147 -147
  93. package/src/components/NSFBoxCategoryScope.tsx +52 -52
  94. package/src/components/NSFBoxField.tsx +37 -37
  95. package/src/components/NSFBoxSlot.tsx +71 -71
  96. package/src/components/NSFBoxWrapper.tsx +69 -69
  97. package/src/components/NSLabelSecret.tsx +37 -37
  98. package/src/components/quickfilter/NSAFilterBoxBase.tsx +89 -89
  99. package/src/components/quickfilter/NSAFilterBoxBoolean.tsx +66 -66
  100. package/src/components/quickfilter/NSAFilterBoxDate.tsx +110 -110
  101. package/src/components/quickfilter/NSAFilterBoxDateTime.tsx +110 -110
  102. package/src/components/quickfilter/NSAFilterBoxEnum.module.css +44 -44
  103. package/src/components/quickfilter/NSAFilterBoxEnum.tsx +79 -79
  104. package/src/components/quickfilter/NSAFilterBoxNumber.tsx +145 -145
  105. package/src/components/quickfilter/NSAFilterBoxString.tsx +83 -83
  106. package/src/components/quickfilter/NSAFilterBoxTime.tsx +106 -106
  107. package/src/components/quickfilter/NSAQuickFilterBar.module.css +19 -19
  108. package/src/components/quickfilter/NSAQuickFilterBar.tsx +142 -142
  109. package/src/components/quickfilter/NSAQuickFilterDialog.module.css +74 -74
  110. package/src/components/quickfilter/NSAQuickFilterDialog.tsx +260 -260
  111. package/src/css.d.ts +13 -13
  112. package/src/formatters/SecretFormatter.tsx +24 -24
  113. package/src/index.tsx +26 -26
  114. package/src/layouts/Actions.ts +146 -146
  115. package/src/layouts/CFTUtil.ts +18 -18
  116. package/src/layouts/NSALayout.tsx +744 -744
  117. package/src/layouts/NSALayout_Field.ts +125 -125
  118. package/src/layouts/NSASectionEdit.tsx +281 -281
  119. package/src/layouts/NSASectionEditTabPage.module.css +4 -4
  120. package/src/layouts/NSASectionEditTabPage.tsx +256 -256
  121. package/src/layouts/NSASectionList.module.css +31 -31
  122. package/src/layouts/NSASectionList.tsx +166 -147
  123. package/src/layouts/NSASectionView.tsx +98 -98
  124. package/src/layouts/NSASectionViewTabMore.tsx +78 -78
  125. package/src/layouts/NSASectionViewTabPage.module.css +47 -47
  126. package/src/layouts/NSASectionViewTabPage.tsx +400 -399
  127. package/src/main.ts +52 -52
  128. package/src/pages/NSAConsentPage.module.css +26 -26
  129. package/src/pages/NSAConsentPage.tsx +120 -120
  130. package/src/pages/NSAEmailVerificationPage.tsx +30 -30
  131. package/src/pages/NSAHomePage.module.css +41 -41
  132. package/src/pages/NSAHomePage.tsx +124 -124
  133. package/src/pages/NSALoginPage.module.css +26 -26
  134. package/src/pages/NSALoginPage.tsx +87 -87
  135. package/src/pages/NSAPhoneVerificationPage.tsx +94 -94
  136. package/src/pages/NSAVerificationPage.module.css +31 -31
  137. package/src/pages/NSAVerificationPage.tsx +185 -185
  138. package/src/pages/NSFCategoryEditPage.tsx +87 -87
  139. package/src/pages/NSFCategoryListPage.tsx +23 -23
  140. package/src/pages/NSFCategoryViewPage.tsx +23 -23
  141. package/src/pages/NSFEntities.ts +58 -58
  142. package/src/pages/PaymentRequired.tsx +80 -80
  143. package/tsconfig.json +43 -43
@@ -1,126 +1,126 @@
1
- import { FilterLinkFullRow } from 'namirasoft-api-link';
2
- import { NamingConvention } from 'namirasoft-core';
3
- import { EntityResolveResponseRow, SlotEntityType, SlotRow } from 'namirasoft-field';
4
- import { NSFRoutes } from '../NSFRoutes';
5
-
6
- export class NSALayout_Field
7
- {
8
- static postprocess(
9
- filters: FilterLinkFullRow[],
10
- rows: EntityResolveResponseRow | null,
11
- ): FilterLinkFullRow[]
12
- {
13
- if (!rows || rows.slots.length === 0)
14
- return filters;
15
-
16
- const result: FilterLinkFullRow[] = [...filters];
17
- const id_counter = { value: -1_000_000 };
18
- const matched = new Set<string>();
19
-
20
- NSALayout_Field.walk(filters, null, rows, result, id_counter, matched);
21
-
22
- const fallback_filter_id = filters[0]?.filter_id ?? 0;
23
- const fallback_filter_ref = filters[0]?.filter ?? null;
24
- for (const slot of rows.slots)
25
- {
26
- if (matched.has(slot.id))
27
- continue;
28
-
29
- const parent = NSALayout_Field.make(id_counter, null, fallback_filter_id, fallback_filter_ref, slot.name, slot.description ?? "", "");
30
- result.push(parent);
31
-
32
- result.push(NSALayout_Field.make(id_counter, parent.id, fallback_filter_id, fallback_filter_ref, "Create", "", NSFRoutes.CategoryNew(slot.id, slot.name)));
33
- result.push(NSALayout_Field.make(id_counter, parent.id, fallback_filter_id, fallback_filter_ref, "List", "", NSFRoutes.CategoryList(slot.id, slot.name)));
34
- }
35
-
36
- return result;
37
- }
38
-
39
- private static findEntityRow(filter_name: string | null | undefined, rows: EntityResolveResponseRow): SlotRow | null
40
- {
41
- const n = NamingConvention.auto.convert((filter_name ?? "").trim(), NamingConvention.lower_case);
42
- if (n.length === 0)
43
- return null;
44
- for (const slot of rows.slots)
45
- {
46
- if (slot.entity_type != SlotEntityType.CategoryScope)
47
- continue;
48
- if (NamingConvention.auto.convert((slot.entity ?? "").trim(), NamingConvention.lower_case) === n)
49
- return slot;
50
- }
51
- return null;
52
- }
53
-
54
- private static make(
55
- id_counter: { value: number },
56
- parent_id: number | null,
57
- filter_id: number,
58
- filter_ref: any,
59
- label: string,
60
- description: string,
61
- url: string,
62
- ): FilterLinkFullRow
63
- {
64
- const now = new Date();
65
- const id = id_counter.value--;
66
- return {
67
- id,
68
- parent_id,
69
- filter_id,
70
- link_id: null,
71
- name: label,
72
- logo: "https://static.namirasoft.com/image/namirasoft/field/logo/base.png",
73
- order: 0,
74
- created_at: now,
75
- updated_at: now,
76
- filter: filter_ref,
77
- link: {
78
- id: 0,
79
- category_id: 0,
80
- domain_id: 0,
81
- name: label,
82
- url: url,
83
- logo: "https://static.namirasoft.com/image/namirasoft/field/logo/base.png",
84
- public: true,
85
- private: true,
86
- importance: 0,
87
- description,
88
- created_at: now,
89
- updated_at: now,
90
- category: null as any,
91
- domain: null as any,
92
- }
93
- };
94
- }
95
-
96
- private static walk(
97
- filters: FilterLinkFullRow[],
98
- parent_id: number | null,
99
- rows: EntityResolveResponseRow,
100
- result: FilterLinkFullRow[],
101
- id_counter: { value: number },
102
- matched: Set<string>,
103
- ): void
104
- {
105
- const children = filters.filter(f => f.parent_id === parent_id);
106
- for (const filter of children)
107
- {
108
- const filter_name = filter.name ?? filter.link?.name ?? "";
109
- const slot = NSALayout_Field.findEntityRow(filter_name, rows);
110
- if (slot)
111
- {
112
- matched.add(slot.id);
113
- const parent = NSALayout_Field.make(id_counter, filter.parent_id, filter.filter_id, filter.filter, slot.name, slot.description ?? "", "");
114
- parent.order = (filter.order ?? 0) - 1;
115
- const idx = result.indexOf(filter);
116
- if (idx >= 0)
117
- result.splice(idx, 0, parent);
118
- else
119
- result.push(parent);
120
- result.push(NSALayout_Field.make(id_counter, parent.id, filter.filter_id, filter.filter, "Create", "", NSFRoutes.CategoryNew(slot.id, slot.name)));
121
- result.push(NSALayout_Field.make(id_counter, parent.id, filter.filter_id, filter.filter, "List", "", NSFRoutes.CategoryList(slot.id, slot.name)));
122
- }
123
- NSALayout_Field.walk(filters, filter.id, rows, result, id_counter, matched);
124
- }
125
- }
1
+ import { FilterLinkFullRow } from 'namirasoft-api-link';
2
+ import { NamingConvention } from 'namirasoft-core';
3
+ import { EntityResolveResponseRow, SlotEntityType, SlotRow } from 'namirasoft-field';
4
+ import { NSFRoutes } from '../NSFRoutes';
5
+
6
+ export class NSALayout_Field
7
+ {
8
+ static postprocess(
9
+ filters: FilterLinkFullRow[],
10
+ rows: EntityResolveResponseRow | null,
11
+ ): FilterLinkFullRow[]
12
+ {
13
+ if (!rows || rows.slots.length === 0)
14
+ return filters;
15
+
16
+ const result: FilterLinkFullRow[] = [...filters];
17
+ const id_counter = { value: -1_000_000 };
18
+ const matched = new Set<string>();
19
+
20
+ NSALayout_Field.walk(filters, null, rows, result, id_counter, matched);
21
+
22
+ const fallback_filter_id = filters[0]?.filter_id ?? 0;
23
+ const fallback_filter_ref = filters[0]?.filter ?? null;
24
+ for (const slot of rows.slots)
25
+ {
26
+ if (matched.has(slot.id))
27
+ continue;
28
+
29
+ const parent = NSALayout_Field.make(id_counter, null, fallback_filter_id, fallback_filter_ref, slot.name, slot.description ?? "", "");
30
+ result.push(parent);
31
+
32
+ result.push(NSALayout_Field.make(id_counter, parent.id, fallback_filter_id, fallback_filter_ref, "Create", "", NSFRoutes.CategoryNew(slot.id, slot.name)));
33
+ result.push(NSALayout_Field.make(id_counter, parent.id, fallback_filter_id, fallback_filter_ref, "List", "", NSFRoutes.CategoryList(slot.id, slot.name)));
34
+ }
35
+
36
+ return result;
37
+ }
38
+
39
+ private static findEntityRow(filter_name: string | null | undefined, rows: EntityResolveResponseRow): SlotRow | null
40
+ {
41
+ const n = NamingConvention.auto.convert((filter_name ?? "").trim(), NamingConvention.lower_case);
42
+ if (n.length === 0)
43
+ return null;
44
+ for (const slot of rows.slots)
45
+ {
46
+ if (slot.entity_type != SlotEntityType.CategoryScope)
47
+ continue;
48
+ if (NamingConvention.auto.convert((slot.entity ?? "").trim(), NamingConvention.lower_case) === n)
49
+ return slot;
50
+ }
51
+ return null;
52
+ }
53
+
54
+ private static make(
55
+ id_counter: { value: number },
56
+ parent_id: number | null,
57
+ filter_id: number,
58
+ filter_ref: any,
59
+ label: string,
60
+ description: string,
61
+ url: string,
62
+ ): FilterLinkFullRow
63
+ {
64
+ const now = new Date();
65
+ const id = id_counter.value--;
66
+ return {
67
+ id,
68
+ parent_id,
69
+ filter_id,
70
+ link_id: null,
71
+ name: label,
72
+ logo: "https://static.namirasoft.com/image/namirasoft/field/logo/base.png",
73
+ order: 0,
74
+ created_at: now,
75
+ updated_at: now,
76
+ filter: filter_ref,
77
+ link: {
78
+ id: 0,
79
+ category_id: 0,
80
+ domain_id: 0,
81
+ name: label,
82
+ url: url,
83
+ logo: "https://static.namirasoft.com/image/namirasoft/field/logo/base.png",
84
+ public: true,
85
+ private: true,
86
+ importance: 0,
87
+ description,
88
+ created_at: now,
89
+ updated_at: now,
90
+ category: null as any,
91
+ domain: null as any,
92
+ }
93
+ };
94
+ }
95
+
96
+ private static walk(
97
+ filters: FilterLinkFullRow[],
98
+ parent_id: number | null,
99
+ rows: EntityResolveResponseRow,
100
+ result: FilterLinkFullRow[],
101
+ id_counter: { value: number },
102
+ matched: Set<string>,
103
+ ): void
104
+ {
105
+ const children = filters.filter(f => f.parent_id === parent_id);
106
+ for (const filter of children)
107
+ {
108
+ const filter_name = filter.name ?? filter.link?.name ?? "";
109
+ const slot = NSALayout_Field.findEntityRow(filter_name, rows);
110
+ if (slot)
111
+ {
112
+ matched.add(slot.id);
113
+ const parent = NSALayout_Field.make(id_counter, filter.parent_id, filter.filter_id, filter.filter, slot.name, slot.description ?? "", "");
114
+ parent.order = (filter.order ?? 0) - 1;
115
+ const idx = result.indexOf(filter);
116
+ if (idx >= 0)
117
+ result.splice(idx, 0, parent);
118
+ else
119
+ result.push(parent);
120
+ result.push(NSALayout_Field.make(id_counter, parent.id, filter.filter_id, filter.filter, "Create", "", NSFRoutes.CategoryNew(slot.id, slot.name)));
121
+ result.push(NSALayout_Field.make(id_counter, parent.id, filter.filter_id, filter.filter, "List", "", NSFRoutes.CategoryList(slot.id, slot.name)));
122
+ }
123
+ NSALayout_Field.walk(filters, filter.id, rows, result, id_counter, matched);
124
+ }
125
+ }
126
126
  }