namirasoft-account-react 1.5.2 → 1.5.4

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 (59) hide show
  1. package/SKILLS.md +5 -5
  2. package/dist/FieldCacheService.d.ts +6 -0
  3. package/dist/FieldCacheService.js +40 -0
  4. package/dist/FieldCacheService.js.map +1 -0
  5. package/dist/components/{NSBoxSecret.d.ts → NSABoxSecret.d.ts} +4 -4
  6. package/dist/components/{NSBoxSecret.js → NSABoxSecret.js} +3 -3
  7. package/dist/components/NSABoxSecret.js.map +1 -0
  8. package/dist/components/NSATable.d.ts +2 -3
  9. package/dist/components/NSATable.js +16 -15
  10. package/dist/components/NSATable.js.map +1 -1
  11. package/dist/components/NSFBoxCategoryScope.d.ts +16 -0
  12. package/dist/components/NSFBoxCategoryScope.js +34 -0
  13. package/dist/components/NSFBoxCategoryScope.js.map +1 -0
  14. package/dist/components/NSFBoxField.d.ts +15 -0
  15. package/dist/components/NSFBoxField.js +16 -0
  16. package/dist/components/NSFBoxField.js.map +1 -0
  17. package/dist/components/NSFBoxSlot.d.ts +22 -0
  18. package/dist/components/NSFBoxSlot.js +49 -0
  19. package/dist/components/NSFBoxSlot.js.map +1 -0
  20. package/dist/components/NSFBoxWrapper.d.ts +15 -0
  21. package/dist/components/NSFBoxWrapper.js +44 -0
  22. package/dist/components/NSFBoxWrapper.js.map +1 -0
  23. package/dist/layouts/NSALayout.d.ts +3 -4
  24. package/dist/layouts/NSALayout.js +14 -52
  25. package/dist/layouts/NSALayout.js.map +1 -1
  26. package/dist/layouts/NSASectionEdit.d.ts +4 -5
  27. package/dist/layouts/NSASectionEdit.js +4 -5
  28. package/dist/layouts/NSASectionEdit.js.map +1 -1
  29. package/dist/layouts/NSASectionEditTabPage.d.ts +3 -5
  30. package/dist/layouts/NSASectionEditTabPage.js +60 -52
  31. package/dist/layouts/NSASectionEditTabPage.js.map +1 -1
  32. package/dist/layouts/NSASectionList.d.ts +2 -3
  33. package/dist/layouts/NSASectionList.js.map +1 -1
  34. package/dist/layouts/NSASectionView.d.ts +2 -3
  35. package/dist/layouts/NSASectionView.js.map +1 -1
  36. package/dist/layouts/NSASectionViewTabPage.d.ts +2 -3
  37. package/dist/layouts/NSASectionViewTabPage.js +45 -53
  38. package/dist/layouts/NSASectionViewTabPage.js.map +1 -1
  39. package/dist/main.d.ts +1 -1
  40. package/dist/main.js +1 -1
  41. package/dist/main.js.map +1 -1
  42. package/package.json +6 -5
  43. package/src/FieldCacheService.ts +39 -0
  44. package/src/components/{NSBoxSecret.tsx → NSABoxSecret.tsx} +6 -5
  45. package/src/components/NSATable.tsx +13 -14
  46. package/src/components/NSFBoxCategoryScope.tsx +53 -0
  47. package/src/components/NSFBoxField.tsx +38 -0
  48. package/src/components/NSFBoxSlot.tsx +72 -0
  49. package/src/components/NSFBoxWrapper.tsx +70 -0
  50. package/src/layouts/NSALayout.tsx +17 -68
  51. package/src/layouts/NSASectionEdit.tsx +9 -10
  52. package/src/layouts/NSASectionEditTabPage.tsx +79 -72
  53. package/src/layouts/NSASectionList.tsx +2 -3
  54. package/src/layouts/NSASectionView.tsx +2 -3
  55. package/src/layouts/NSASectionViewTabPage.tsx +52 -71
  56. package/src/main.ts +1 -1
  57. package/dist/components/NSBoxSecret.js.map +0 -1
  58. /package/dist/components/{NSBoxSecret.module.css → NSABoxSecret.module.css} +0 -0
  59. /package/src/components/{NSBoxSecret.module.css → NSABoxSecret.module.css} +0 -0
@@ -1,9 +1,10 @@
1
1
  import { EnvService, FilterItem, FilterItemOperator, IStorageLocal, NamingConvention } from "namirasoft-core";
2
- import { CategoryRow, FieldRow } from "namirasoft-field";
2
+ import { EntityResolveResponseRow, SlotEntityType, SlotRow } from "namirasoft-field";
3
3
  import { HistoryRow, NamirasoftHistoryServer } from "namirasoft-history";
4
4
  import { NamirasoftMap } from "namirasoft-site-map";
5
5
  import { BaseColumnFormatter, DateTimeFormatter, IBaseComponentProps, IDFormatter, NSInfoProps, NSLabel, NSLoading, NSNoData, NSTable, NSTabPage, NSTabPageTab, StringFormatter, StringFormatterSizeType, TableColumnInfo } from "namirasoft-site-react";
6
6
  import { Component, createRef, Fragment, ReactNode } from "react";
7
+ import { NSFBoxWrapper } from "../components/NSFBoxWrapper";
7
8
  import { IEntityInfo } from "../IEntityInfo";
8
9
  import { NSARouterMakerProps } from "../NSARouterMakerProps";
9
10
  import { CFTUtil } from "./CFTUtil";
@@ -68,8 +69,7 @@ export interface NSASectionViewTabPageProps<RowType extends { id: string }, RowT
68
69
  entity: IEntityInfo<RowType, RowTypeInput>;
69
70
  ctf: {
70
71
  enabled: boolean;
71
- fields: FieldRow[] | null;
72
- categories: CategoryRow[] | null;
72
+ rows: EntityResolveResponseRow | null;
73
73
  };
74
74
  model: {
75
75
  id: string | null;
@@ -124,6 +124,34 @@ export class NSASectionViewTabPage<RowType extends { id: string }, RowTypeInput
124
124
  const tabs: NSTabPageTab[] = [];
125
125
  let namirasoft = new NamirasoftMap(this.props.account.token_manager, this.props.notifier.onError);
126
126
 
127
+ let rows = (this.props.model.id && this.props.ctf.enabled) ? this.props.ctf.rows : null;
128
+ let slots = rows?.slots ?? [];
129
+
130
+ let renderSlot = (slot: SlotRow): ReactNode =>
131
+ {
132
+ if (!this.state.row || !rows)
133
+ return null;
134
+ let ctf = CFTUtil.get(this.props.entity.name, this.state.row);
135
+ let value = "";
136
+ if (slot.entity_type === SlotEntityType.Field)
137
+ value = ctf.fields.filter(x => x.field_id === slot.entity_id).map(x => x.value).join(", ");
138
+ else if (slot.entity_type === SlotEntityType.CategoryScope)
139
+ {
140
+ let ids = ctf.categories.map(x => x.category_id);
141
+ value = rows.categories
142
+ .filter(category => category.category_scope_id === slot.entity_id && ids.includes(category.id))
143
+ .map(category => category.name)
144
+ .join(", ");
145
+ }
146
+ return <NSLabel
147
+ key={`NSASectionViewTabPage_NSLabel_Slot_${slot.id}`}
148
+ title={slot.name + ":"}
149
+ classList={[Styles.nsa_section_tab_page_item]}
150
+ >
151
+ <div>{value}</div>
152
+ </NSLabel>;
153
+ };
154
+
127
155
  let pushTabs = (ts?: NSASectionViewTabPageTabPageTab<RowType>[]) =>
128
156
  {
129
157
  if (ts)
@@ -211,25 +239,29 @@ export class NSASectionViewTabPage<RowType extends { id: string }, RowTypeInput
211
239
  if (!render_items)
212
240
  return (
213
241
  <div className={Styles.nsa_section_tab_page_parent}>
214
- {tab_columns.map((col, index) => renderColumn(col, tab, index))}
242
+ <NSFBoxWrapper slots={slots.filter(x => x.tab === tab)} renderSlot={renderSlot}>
243
+ {tab_columns.map((col, index) => renderColumn(col, tab, index))}
244
+ </NSFBoxWrapper>
215
245
  </div>
216
246
  )
217
247
 
218
248
  return (
219
249
  <div className={Styles.nsa_section_tab_page_parent}>
220
- {
221
- render_items.map((render_item, index) =>
250
+ <NSFBoxWrapper slots={slots.filter(x => x.tab === tab)} renderSlot={renderSlot}>
222
251
  {
223
- if (render_item.type === "column")
224
- return renderColumn(render_item.column, tab, index);
252
+ render_items.map((render_item, index) =>
253
+ {
254
+ if (render_item.type === "column")
255
+ return renderColumn(render_item.column, tab, index);
225
256
 
226
- return (
227
- <Fragment key={`NSASectionViewTabPage_Custom_${tab}_${index}`}>
228
- {render_item.node}
229
- </Fragment>
230
- );
231
- })
232
- }
257
+ return (
258
+ <Fragment key={`NSASectionViewTabPage_Custom_${tab}_${index}`}>
259
+ {render_item.node}
260
+ </Fragment>
261
+ );
262
+ })
263
+ }
264
+ </NSFBoxWrapper>
233
265
  </div>
234
266
  );
235
267
  }
@@ -279,76 +311,25 @@ export class NSASectionViewTabPage<RowType extends { id: string }, RowTypeInput
279
311
  if (this.props.model.id)
280
312
  if (this.props.ctf.enabled)
281
313
  {
282
- let groups = Array.from(new Set(this.props.ctf.fields?.map(x => x.group) ?? []));
283
- groups.forEach(group =>
314
+ let known = new Set(tabs.map(tab => tab.title));
315
+ let slot_tabs = Array.from(new Set(slots.map(x => x.tab))).filter(tab => !known.has(tab));
316
+ slot_tabs.forEach(tab =>
284
317
  {
285
318
  tabs.push({
286
- title: group,
319
+ title: tab,
287
320
  clicked: false,
288
321
  getContent: () =>
289
322
  {
290
323
  if (this.state.row == null)
291
324
  return <NSLoading></NSLoading>;
292
- let ctf = CFTUtil.get(this.props.entity.name, this.state.row);
293
- if (ctf.fields.length === 0)
294
- return <NSNoData
295
- lable="No field found" />
296
325
  return <div className={Styles.nsa_section_tab_page_parent}>
297
- {
298
- this.props.ctf.fields?.filter(x => x.group === group).map((field, index) =>
299
- {
300
- return <NSLabel
301
- key={`NSASectionViewTabPage_NSLabel_Field_${index}`}
302
- title={field.name + ":"}
303
- classList={[Styles.nsa_section_tab_page_item]}
304
- >
305
- <div>{ctf.fields.filter(f => f.field_id === field.id).map(f => f.value).join(", ")}</div>
306
- </NSLabel>
307
- })
308
- }
326
+ <NSFBoxWrapper slots={slots.filter(x => x.tab === tab)} renderSlot={renderSlot} />
309
327
  </div>;
310
328
  }
311
329
  });
312
330
  });
313
331
  }
314
332
  pushTabs(this.props.ui?.tabs?.extra?.after_field);
315
-
316
- if (this.props.ui?.tabs?.category ?? true)
317
- if (this.props.model.id)
318
- if (this.props.ctf.enabled)
319
- {
320
- let groups = Array.from(new Set(this.props.ctf.categories?.map(x => x.group) ?? []));
321
- groups.forEach(group =>
322
- {
323
- tabs.push({
324
- title: group,
325
- clicked: false,
326
- getContent: () =>
327
- {
328
- if (this.state.row == null)
329
- return <NSLoading></NSLoading>;
330
- let ctf = CFTUtil.get(this.props.entity.name, this.state.row);
331
- if (ctf.tags.length === 0)
332
- return <NSNoData
333
- lable="No category found" />
334
- let ids = ctf.categories.map(c => c.category_id);
335
- return <div className={Styles.nsa_section_tab_page_parent}>
336
- {
337
- this.props.ctf.categories?.filter(x => x.group === group && ids.includes(x.id)).map((category, index) =>
338
- {
339
- return <NSLabel
340
- key={`NSASectionViewTabPage_NSLabel_Category_${index}`}
341
- title={category.name}
342
- classList={[Styles.nsa_section_tab_page_item]}
343
- >
344
- </NSLabel>
345
- })
346
- }
347
- </div>;
348
- }
349
- });
350
- });
351
- }
352
333
  pushTabs(this.props.ui?.tabs?.extra?.after_category);
353
334
 
354
335
  if (this.props.ui?.tabs?.tag ?? true)
package/src/main.ts CHANGED
@@ -18,7 +18,7 @@ export * from "./components/NSASortDialog";
18
18
  export * from "./components/NSATable";
19
19
  export * from "./components/NSAUserDialog";
20
20
  export * from "./components/NSAWorkspaceListDialog";
21
- export * from "./components/NSBoxSecret";
21
+ export * from "./components/NSABoxSecret";
22
22
  export * from "./components/NSLabelSecret";
23
23
  export * from "./formatters/SecretFormatter";
24
24
  export * from "./layouts/Actions";
@@ -1 +0,0 @@
1
- {"version":3,"file":"NSBoxSecret.js","sourceRoot":"","sources":["../../src/components/NSBoxSecret.tsx"],"names":[],"mappings":"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"}