namirasoft-account-react 1.4.435 → 1.4.437

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 (141) hide show
  1. package/.env.template +15 -15
  2. package/SKILLS.md +514 -514
  3. package/config-overrides.js +72 -72
  4. package/dist/App.css +31 -31
  5. package/dist/App.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/NSAMasterMenu.d.ts +1 -1
  10. package/dist/components/NSAMasterMenu.module.css +248 -248
  11. package/dist/components/NSAMasterMenuItem.d.ts +1 -1
  12. package/dist/components/NSAMessageListDialog.d.ts +1 -1
  13. package/dist/components/NSAMessageListDialog.module.css +99 -99
  14. package/dist/components/NSANavigationGuard.d.ts +1 -1
  15. package/dist/components/NSAProductListDialog.d.ts +1 -1
  16. package/dist/components/NSAProductListDialog.module.css +44 -44
  17. package/dist/components/NSAReorderDialog.d.ts +1 -1
  18. package/dist/components/NSAReorderDialog.module.css +49 -49
  19. package/dist/components/NSASortDialog.d.ts +1 -1
  20. package/dist/components/NSATaskBar.d.ts +31 -7
  21. package/dist/components/NSATaskBar.js +74 -15
  22. package/dist/components/NSATaskBar.js.map +1 -1
  23. package/dist/components/NSATaskBar.module.css +57 -57
  24. package/dist/components/NSAUserDialog.d.ts +1 -1
  25. package/dist/components/NSAUserDialog.module.css +67 -67
  26. package/dist/components/NSAWorkspaceListDialog.d.ts +1 -1
  27. package/dist/components/NSAWorkspaceListDialog.module.css +41 -41
  28. package/dist/components/NSBoxSecret.d.ts +2 -1
  29. package/dist/components/NSBoxSecret.js +6 -2
  30. package/dist/components/NSBoxSecret.js.map +1 -1
  31. package/dist/components/NSBoxSecret.module.css +23 -23
  32. package/dist/components/NSLabelSecret.d.ts +1 -1
  33. package/dist/components/quickfilter/NSAFilterBoxEnum.module.css +44 -44
  34. package/dist/components/quickfilter/NSAQuickFilterBar.d.ts +1 -1
  35. package/dist/components/quickfilter/NSAQuickFilterBar.module.css +19 -19
  36. package/dist/components/quickfilter/NSAQuickFilterDialog.d.ts +1 -1
  37. package/dist/components/quickfilter/NSAQuickFilterDialog.module.css +74 -74
  38. package/dist/formatters/SecretFormatter.d.ts +1 -1
  39. package/dist/formatters/SecretFormatter.js +2 -2
  40. package/dist/formatters/SecretFormatter.js.map +1 -1
  41. package/dist/layouts/NSALayout.d.ts +5 -1
  42. package/dist/layouts/NSALayout.js +37 -39
  43. package/dist/layouts/NSALayout.js.map +1 -1
  44. package/dist/layouts/NSASectionEdit.d.ts +1 -1
  45. package/dist/layouts/NSASectionEditTabPage.d.ts +1 -1
  46. package/dist/layouts/NSASectionEditTabPage.module.css +4 -4
  47. package/dist/layouts/NSASectionList.d.ts +1 -1
  48. package/dist/layouts/NSASectionList.module.css +31 -31
  49. package/dist/layouts/NSASectionView.d.ts +1 -1
  50. package/dist/layouts/NSASectionViewTabMore.d.ts +1 -1
  51. package/dist/layouts/NSASectionViewTabPage.d.ts +1 -1
  52. package/dist/layouts/NSASectionViewTabPage.module.css +47 -47
  53. package/dist/pages/NSAConsentPage.module.css +26 -26
  54. package/dist/pages/NSAEmailVerificationPage.d.ts +1 -1
  55. package/dist/pages/NSAHomePage.d.ts +1 -1
  56. package/dist/pages/NSAHomePage.module.css +41 -41
  57. package/dist/pages/NSALoginPage.d.ts +1 -1
  58. package/dist/pages/NSALoginPage.module.css +26 -26
  59. package/dist/pages/NSAPhoneVerificationPage.d.ts +1 -1
  60. package/dist/pages/NSAVerificationPage.d.ts +1 -1
  61. package/dist/pages/NSAVerificationPage.module.css +31 -31
  62. package/package.json +94 -94
  63. package/public/index.html +21 -21
  64. package/src/App.css +31 -31
  65. package/src/App.tsx +19 -19
  66. package/src/CTFRow.ts +7 -7
  67. package/src/IEntityInfo.ts +33 -33
  68. package/src/NSACacheService.ts +120 -120
  69. package/src/NSAFilterOperators.ts +92 -92
  70. package/src/NSARouterMaker.tsx +140 -140
  71. package/src/NSARouterMakerConfig.ts +15 -15
  72. package/src/NSARouterMakerProps.ts +24 -24
  73. package/src/Router.tsx +45 -45
  74. package/src/UseParams.tsx +18 -18
  75. package/src/components/NSAAccessListDialog.module.css +71 -71
  76. package/src/components/NSAAccessListDialog.tsx +178 -178
  77. package/src/components/NSAMasterMenu.module.css +248 -248
  78. package/src/components/NSAMasterMenu.tsx +169 -169
  79. package/src/components/NSAMasterMenuItem.tsx +250 -250
  80. package/src/components/NSAMessageListDialog.module.css +99 -99
  81. package/src/components/NSAMessageListDialog.tsx +142 -142
  82. package/src/components/NSAProductListDialog.module.css +44 -44
  83. package/src/components/NSAProductListDialog.tsx +88 -88
  84. package/src/components/NSAReorderDialog.module.css +49 -49
  85. package/src/components/NSAReorderDialog.tsx +149 -149
  86. package/src/components/NSASortDialog.tsx +117 -117
  87. package/src/components/NSATable.tsx +498 -498
  88. package/src/components/NSATaskBar.module.css +57 -57
  89. package/src/components/NSATaskBar.tsx +193 -101
  90. package/src/components/NSAUserDialog.module.css +67 -67
  91. package/src/components/NSAUserDialog.tsx +122 -122
  92. package/src/components/NSAWorkspaceListDialog.module.css +41 -41
  93. package/src/components/NSAWorkspaceListDialog.tsx +147 -147
  94. package/src/components/NSBoxSecret.module.css +23 -23
  95. package/src/components/NSBoxSecret.tsx +263 -258
  96. package/src/components/NSLabelSecret.tsx +37 -37
  97. package/src/components/quickfilter/NSAFilterBoxBase.tsx +55 -55
  98. package/src/components/quickfilter/NSAFilterBoxBoolean.tsx +54 -54
  99. package/src/components/quickfilter/NSAFilterBoxDate.tsx +104 -104
  100. package/src/components/quickfilter/NSAFilterBoxDateTime.tsx +105 -105
  101. package/src/components/quickfilter/NSAFilterBoxEnum.module.css +44 -44
  102. package/src/components/quickfilter/NSAFilterBoxEnum.tsx +79 -79
  103. package/src/components/quickfilter/NSAFilterBoxNumber.tsx +136 -136
  104. package/src/components/quickfilter/NSAFilterBoxString.tsx +81 -81
  105. package/src/components/quickfilter/NSAFilterBoxTime.tsx +101 -101
  106. package/src/components/quickfilter/NSAQuickFilterBar.module.css +19 -19
  107. package/src/components/quickfilter/NSAQuickFilterBar.tsx +114 -114
  108. package/src/components/quickfilter/NSAQuickFilterDialog.module.css +74 -74
  109. package/src/components/quickfilter/NSAQuickFilterDialog.tsx +260 -260
  110. package/src/css.d.ts +13 -13
  111. package/src/formatters/SecretFormatter.tsx +24 -24
  112. package/src/index.tsx +26 -26
  113. package/src/layouts/Actions.ts +146 -146
  114. package/src/layouts/CFTUtil.ts +18 -18
  115. package/src/layouts/NSALayout.tsx +793 -790
  116. package/src/layouts/NSASectionEdit.tsx +279 -279
  117. package/src/layouts/NSASectionEditTabPage.module.css +4 -4
  118. package/src/layouts/NSASectionEditTabPage.tsx +250 -250
  119. package/src/layouts/NSASectionList.module.css +31 -31
  120. package/src/layouts/NSASectionList.tsx +149 -149
  121. package/src/layouts/NSASectionView.tsx +100 -100
  122. package/src/layouts/NSASectionViewTabMore.tsx +77 -77
  123. package/src/layouts/NSASectionViewTabPage.module.css +47 -47
  124. package/src/layouts/NSASectionViewTabPage.tsx +419 -419
  125. package/src/main.ts +46 -46
  126. package/src/pages/NSAConsentPage.module.css +26 -26
  127. package/src/pages/NSAConsentPage.tsx +120 -120
  128. package/src/pages/NSAEmailVerificationPage.tsx +30 -30
  129. package/src/pages/NSAHomePage.module.css +41 -41
  130. package/src/pages/NSAHomePage.tsx +102 -102
  131. package/src/pages/NSALoginPage.module.css +26 -26
  132. package/src/pages/NSALoginPage.tsx +87 -87
  133. package/src/pages/NSAPhoneVerificationPage.tsx +94 -94
  134. package/src/pages/NSAVerificationPage.module.css +31 -31
  135. package/src/pages/NSAVerificationPage.tsx +186 -186
  136. package/src/pages/PaymentRequired.tsx +76 -76
  137. package/tsconfig.json +43 -43
  138. package/dist/NSATaskService.d.ts +0 -35
  139. package/dist/NSATaskService.js +0 -80
  140. package/dist/NSATaskService.js.map +0 -1
  141. package/src/NSATaskService.ts +0 -123
@@ -1,100 +1,100 @@
1
- .nsa_message_icon {
2
- cursor: pointer;
3
- }
4
-
5
- .nsa_message_title {
6
- color: hsla(212, 100%, 51%, 1)
7
- }
8
-
9
- .nsa_message_item {
10
- background-color: hsla(157, 94%, 42%, 0.1);
11
- padding: 8px 16px;
12
- cursor: pointer !important;
13
- margin: 8px 0;
14
- border-radius: 8px;
15
- }
16
-
17
- .nsa_message_item_title {
18
- color: hsla(234, 64%, 22%, 1);
19
- font-size: 16px;
20
- font-weight: 600;
21
- text-align: left;
22
- }
23
-
24
- .nsa_message_item_content {
25
- color: hsla(234, 64%, 22%, 1);
26
- margin: 0;
27
- text-align: left;
28
- overflow: hidden;
29
- text-overflow: ellipsis;
30
- white-space: nowrap;
31
- }
32
-
33
- .nsa_message_item_ul {
34
- display: flex;
35
- padding-left: 16px !important;
36
- margin-bottom: 0px;
37
- }
38
-
39
- .nsa_message_item_ul li::marker {
40
- color: hsla(157, 94%, 42%, 1);
41
- padding: 20px;
42
- }
43
-
44
- .nsa_message_item_dot_green {
45
- width: 8px;
46
- height: 8px;
47
- background: hsla(157, 94%, 42%, 1);
48
- border-radius: 50%;
49
- }
50
-
51
- .nsa_message_item_dot_gray {
52
- width: 8px;
53
- height: 8px;
54
- background: hsla(228, 9%, 66%, 1);
55
- border-radius: 50%;
56
- }
57
-
58
- .nsa_body_gray {
59
- background-color: #fff;
60
- padding: 16px;
61
- box-shadow: 0px 2px 5px #e6e6e6;
62
- cursor: pointer !important;
63
- }
64
-
65
- .nsa_count {
66
- position: absolute;
67
- background: rgba(3, 119, 255, 1);
68
- right: -5px;
69
- top: -5px;
70
- color: #fff;
71
- width: 18px;
72
- height: 18px;
73
- border-radius: 50%;
74
- display: flex;
75
- justify-content: center;
76
- align-items: center;
77
- }
78
-
79
- .nsa_parent_count {
80
- position: relative;
81
- width: max-content;
82
- }
83
-
84
- .nsa_toast_body {
85
- padding: 0 !important;
86
- height: 100%;
87
- max-width: 302px;
88
- overflow-y: auto;
89
- }
90
-
91
- .nsa_toast_header {
92
- padding: 2px !important;
93
- display: flex;
94
- justify-content: space-between !important;
95
- align-items: center;
96
- }
97
-
98
- .nsa_close_icon {
99
- cursor: pointer;
1
+ .nsa_message_icon {
2
+ cursor: pointer;
3
+ }
4
+
5
+ .nsa_message_title {
6
+ color: hsla(212, 100%, 51%, 1)
7
+ }
8
+
9
+ .nsa_message_item {
10
+ background-color: hsla(157, 94%, 42%, 0.1);
11
+ padding: 8px 16px;
12
+ cursor: pointer !important;
13
+ margin: 8px 0;
14
+ border-radius: 8px;
15
+ }
16
+
17
+ .nsa_message_item_title {
18
+ color: hsla(234, 64%, 22%, 1);
19
+ font-size: 16px;
20
+ font-weight: 600;
21
+ text-align: left;
22
+ }
23
+
24
+ .nsa_message_item_content {
25
+ color: hsla(234, 64%, 22%, 1);
26
+ margin: 0;
27
+ text-align: left;
28
+ overflow: hidden;
29
+ text-overflow: ellipsis;
30
+ white-space: nowrap;
31
+ }
32
+
33
+ .nsa_message_item_ul {
34
+ display: flex;
35
+ padding-left: 16px !important;
36
+ margin-bottom: 0px;
37
+ }
38
+
39
+ .nsa_message_item_ul li::marker {
40
+ color: hsla(157, 94%, 42%, 1);
41
+ padding: 20px;
42
+ }
43
+
44
+ .nsa_message_item_dot_green {
45
+ width: 8px;
46
+ height: 8px;
47
+ background: hsla(157, 94%, 42%, 1);
48
+ border-radius: 50%;
49
+ }
50
+
51
+ .nsa_message_item_dot_gray {
52
+ width: 8px;
53
+ height: 8px;
54
+ background: hsla(228, 9%, 66%, 1);
55
+ border-radius: 50%;
56
+ }
57
+
58
+ .nsa_body_gray {
59
+ background-color: #fff;
60
+ padding: 16px;
61
+ box-shadow: 0px 2px 5px #e6e6e6;
62
+ cursor: pointer !important;
63
+ }
64
+
65
+ .nsa_count {
66
+ position: absolute;
67
+ background: rgba(3, 119, 255, 1);
68
+ right: -5px;
69
+ top: -5px;
70
+ color: #fff;
71
+ width: 18px;
72
+ height: 18px;
73
+ border-radius: 50%;
74
+ display: flex;
75
+ justify-content: center;
76
+ align-items: center;
77
+ }
78
+
79
+ .nsa_parent_count {
80
+ position: relative;
81
+ width: max-content;
82
+ }
83
+
84
+ .nsa_toast_body {
85
+ padding: 0 !important;
86
+ height: 100%;
87
+ max-width: 302px;
88
+ overflow-y: auto;
89
+ }
90
+
91
+ .nsa_toast_header {
92
+ padding: 2px !important;
93
+ display: flex;
94
+ justify-content: space-between !important;
95
+ align-items: center;
96
+ }
97
+
98
+ .nsa_close_icon {
99
+ cursor: pointer;
100
100
  }
@@ -3,4 +3,4 @@ export interface NSANavigationGuardProps {
3
3
  title?: string;
4
4
  message?: string;
5
5
  }
6
- export declare function NSANavigationGuard(props: NSANavigationGuardProps): import("react/jsx-runtime").JSX.Element | null;
6
+ export declare function NSANavigationGuard(props: NSANavigationGuardProps): import("react").JSX.Element | null;
@@ -12,6 +12,6 @@ export declare class NSAProductListDialog extends Component<NSAProductListDialog
12
12
  private cache;
13
13
  constructor(props: NSAProductListDialogProps);
14
14
  componentDidMount(): void;
15
- render(): import("react/jsx-runtime").JSX.Element;
15
+ render(): import("react").JSX.Element;
16
16
  }
17
17
  export {};
@@ -1,45 +1,45 @@
1
- .nsa_product_list_container {
2
- display: grid;
3
- flex-direction: row;
4
- grid-template-columns: repeat(3, 1fr);
5
- align-items: flex-start;
6
- justify-content: center;
7
- width: 100%;
8
- height: 400px;
9
- overflow: auto;
10
- margin-top: 16px;
11
- }
12
-
13
- .nsa_product_list_container::-webkit-scrollbar {
14
- width: 1rem;
15
- }
16
-
17
- .nsa_product_list_container::-webkit-scrollbar-track {
18
- box-shadow: inset 0 0 6px #E8EBF6;
19
- }
20
-
21
- .nsa_product_list_container::-webkit-scrollbar-thumb {
22
- background-color: #A1A4B0;
23
- border-radius: 8px;
24
- }
25
-
26
- .nsa_product_list {
27
- display: flex;
28
- flex-direction: column;
29
- justify-content: center;
30
- align-items: center;
31
- text-align: center;
32
- margin-top: 24px;
33
- gap: 8px;
34
- }
35
- .nsa_product_list a{
36
- text-decoration: none;
37
- color: rgba(20, 27, 92, 1);
38
- }
39
-
40
- .nsa_product_logo {
41
- display: flex;
42
- flex-direction: column;
43
- justify-content: center;
44
- align-items: center;
1
+ .nsa_product_list_container {
2
+ display: grid;
3
+ flex-direction: row;
4
+ grid-template-columns: repeat(3, 1fr);
5
+ align-items: flex-start;
6
+ justify-content: center;
7
+ width: 100%;
8
+ height: 400px;
9
+ overflow: auto;
10
+ margin-top: 16px;
11
+ }
12
+
13
+ .nsa_product_list_container::-webkit-scrollbar {
14
+ width: 1rem;
15
+ }
16
+
17
+ .nsa_product_list_container::-webkit-scrollbar-track {
18
+ box-shadow: inset 0 0 6px #E8EBF6;
19
+ }
20
+
21
+ .nsa_product_list_container::-webkit-scrollbar-thumb {
22
+ background-color: #A1A4B0;
23
+ border-radius: 8px;
24
+ }
25
+
26
+ .nsa_product_list {
27
+ display: flex;
28
+ flex-direction: column;
29
+ justify-content: center;
30
+ align-items: center;
31
+ text-align: center;
32
+ margin-top: 24px;
33
+ gap: 8px;
34
+ }
35
+ .nsa_product_list a{
36
+ text-decoration: none;
37
+ color: rgba(20, 27, 92, 1);
38
+ }
39
+
40
+ .nsa_product_logo {
41
+ display: flex;
42
+ flex-direction: column;
43
+ justify-content: center;
44
+ align-items: center;
45
45
  }
@@ -25,6 +25,6 @@ export declare class NSAReorderDialog extends Component<NSAReorderDialogProps, N
25
25
  private onDragEnd;
26
26
  private toggleChecked;
27
27
  private handleApply;
28
- render(): import("react/jsx-runtime").JSX.Element;
28
+ render(): import("react").JSX.Element;
29
29
  }
30
30
  export {};
@@ -1,50 +1,50 @@
1
- .column_item {
2
- width: 100%;
3
- display: flex;
4
- align-items: center;
5
- gap: 10px;
6
- padding: 8px 12px;
7
- border-radius: 6px;
8
- border: 2px solid transparent;
9
- background-color: rgba(20, 27, 92, 0.04);
10
- cursor: grab;
11
- user-select: none;
12
- box-sizing: border-box;
13
- transition: background-color 0.1s, border-color 0.1s;
14
- }
15
-
16
- .column_item:hover {
17
- background-color: rgba(20, 27, 92, 0.08);
18
- }
19
-
20
- .column_item_dragging {
21
- opacity: 0.35;
22
- }
23
-
24
- .column_item_drag_over {
25
- border-color: rgba(20, 27, 92, 0.45);
26
- border-style: dashed;
27
- background-color: rgba(20, 27, 92, 0.1);
28
- }
29
-
30
- .drag_handle {
31
- color: #bbb;
32
- font-size: 20px;
33
- line-height: 1;
34
- cursor: grab;
35
- flex-shrink: 0;
36
- }
37
-
38
- .checkbox {
39
- width: 18px;
40
- height: 18px;
41
- cursor: pointer;
42
- margin: 0;
43
- flex-shrink: 0;
44
- accent-color: rgba(20, 27, 92, 1);
45
- }
46
-
47
- .column_label {
48
- font-size: 14px;
49
- flex: 1;
1
+ .column_item {
2
+ width: 100%;
3
+ display: flex;
4
+ align-items: center;
5
+ gap: 10px;
6
+ padding: 8px 12px;
7
+ border-radius: 6px;
8
+ border: 2px solid transparent;
9
+ background-color: rgba(20, 27, 92, 0.04);
10
+ cursor: grab;
11
+ user-select: none;
12
+ box-sizing: border-box;
13
+ transition: background-color 0.1s, border-color 0.1s;
14
+ }
15
+
16
+ .column_item:hover {
17
+ background-color: rgba(20, 27, 92, 0.08);
18
+ }
19
+
20
+ .column_item_dragging {
21
+ opacity: 0.35;
22
+ }
23
+
24
+ .column_item_drag_over {
25
+ border-color: rgba(20, 27, 92, 0.45);
26
+ border-style: dashed;
27
+ background-color: rgba(20, 27, 92, 0.1);
28
+ }
29
+
30
+ .drag_handle {
31
+ color: #bbb;
32
+ font-size: 20px;
33
+ line-height: 1;
34
+ cursor: grab;
35
+ flex-shrink: 0;
36
+ }
37
+
38
+ .checkbox {
39
+ width: 18px;
40
+ height: 18px;
41
+ cursor: pointer;
42
+ margin: 0;
43
+ flex-shrink: 0;
44
+ accent-color: rgba(20, 27, 92, 1);
45
+ }
46
+
47
+ .column_label {
48
+ font-size: 14px;
49
+ flex: 1;
50
50
  }
@@ -16,6 +16,6 @@ export declare class NSASortDialog extends Component<NSASortDialogProps, NSASort
16
16
  private sortDirectionRef;
17
17
  constructor(props: NSASortDialogProps);
18
18
  private handleApply;
19
- render(): import("react/jsx-runtime").JSX.Element;
19
+ render(): import("react").JSX.Element;
20
20
  }
21
21
  export {};
@@ -1,13 +1,37 @@
1
1
  import { Component } from "react";
2
+ export type NSATaskStatus = "running" | "completed" | "cancelled";
3
+ export interface NSATask {
4
+ id: string;
5
+ title: string;
6
+ total: number;
7
+ completed: number;
8
+ succeeded: number;
9
+ failed: number;
10
+ status: NSATaskStatus;
11
+ cancel: () => void;
12
+ }
13
+ export interface NSATaskResult<T> {
14
+ succeeded: T[];
15
+ failed: T[];
16
+ cancelled: boolean;
17
+ }
18
+ export interface NSATaskBarProps<ItemType> {
19
+ title: string;
20
+ items: ItemType[];
21
+ handler: (item: ItemType, index: number) => Promise<void>;
22
+ onItemError?: (item: ItemType, error: any, index: number) => void;
23
+ }
2
24
  interface NSATaskBarState {
3
- tick: number;
25
+ tasks: NSATask[];
4
26
  }
5
- export declare class NSATaskBar extends Component<{}, NSATaskBarState> {
6
- private unsubscribe;
7
- constructor(props: {});
8
- componentDidMount(): void;
9
- componentWillUnmount(): void;
27
+ export declare class NSATaskBar<ItemType> extends Component<NSATaskBarProps<ItemType>, NSATaskBarState> {
28
+ private counter;
29
+ private removeDelayMs;
30
+ constructor(props: NSATaskBarProps<ItemType>);
31
+ private update;
32
+ dismiss(id: string): void;
33
+ run(): Promise<NSATaskResult<ItemType>>;
10
34
  private renderStatus;
11
- render(): import("react/jsx-runtime").JSX.Element | null;
35
+ render(): import("react").JSX.Element | null;
12
36
  }
13
37
  export {};
@@ -1,28 +1,87 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
1
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
11
  import { NSButtonRed } from "namirasoft-site-react";
3
12
  import NSProgressBar from "namirasoft-site-react/dist/components/NSProgressBar";
4
13
  import { Component } from "react";
5
- import { NSATaskService } from "../NSATaskService";
6
14
  import Styles from "./NSATaskBar.module.css";
7
15
  export class NSATaskBar extends Component {
8
16
  constructor(props) {
9
17
  super(props);
10
- this.unsubscribe = null;
11
- this.state = { tick: 0 };
18
+ this.counter = 0;
19
+ this.removeDelayMs = 4000;
20
+ this.state = { tasks: [] };
21
+ this.run = this.run.bind(this);
22
+ this.dismiss = this.dismiss.bind(this);
12
23
  }
13
- componentDidMount() {
14
- this.unsubscribe = NSATaskService.main.subscribe(() => {
15
- this.setState(prev => ({ tick: prev.tick + 1 }));
16
- });
24
+ update(id, patch) {
25
+ this.setState(prev => ({
26
+ tasks: prev.tasks.map(task => task.id === id ? Object.assign(Object.assign({}, task), patch) : task)
27
+ }));
28
+ }
29
+ dismiss(id) {
30
+ this.setState(prev => ({ tasks: prev.tasks.filter(task => task.id !== id) }));
17
31
  }
18
- componentWillUnmount() {
19
- var _a;
20
- (_a = this.unsubscribe) === null || _a === void 0 ? void 0 : _a.call(this);
21
- this.unsubscribe = null;
32
+ run() {
33
+ return __awaiter(this, void 0, void 0, function* () {
34
+ this.counter += 1;
35
+ const id = `nsa-task-${this.counter}`;
36
+ const items = this.props.items;
37
+ const handler = this.props.handler;
38
+ const onItemError = this.props.onItemError;
39
+ let cancelled = false;
40
+ const task = {
41
+ id,
42
+ title: this.props.title,
43
+ total: items.length,
44
+ completed: 0,
45
+ succeeded: 0,
46
+ failed: 0,
47
+ status: "running",
48
+ cancel: () => { cancelled = true; }
49
+ };
50
+ this.setState(prev => ({ tasks: [...prev.tasks, task] }));
51
+ const succeeded = [];
52
+ const failed = [];
53
+ for (let index = 0; index < items.length; index++) {
54
+ if (cancelled)
55
+ break;
56
+ const item = items[index];
57
+ try {
58
+ yield handler(item, index);
59
+ succeeded.push(item);
60
+ }
61
+ catch (error) {
62
+ failed.push(item);
63
+ onItemError === null || onItemError === void 0 ? void 0 : onItemError(item, error, index);
64
+ }
65
+ this.update(id, {
66
+ completed: succeeded.length + failed.length,
67
+ succeeded: succeeded.length,
68
+ failed: failed.length,
69
+ });
70
+ }
71
+ this.update(id, { status: cancelled ? "cancelled" : "completed" });
72
+ window.setTimeout(() => this.dismiss(id), this.removeDelayMs);
73
+ return { succeeded, failed, cancelled };
74
+ });
22
75
  }
23
76
  renderStatus(task) {
24
- if (task.status === "running")
25
- return `${task.completed}/${task.total}`;
77
+ if (task.status === "running") {
78
+ const remaining = task.total - task.completed;
79
+ let running = [`${task.succeeded} done`];
80
+ if (task.failed > 0)
81
+ running.push(`${task.failed} failed`);
82
+ running.push(`${remaining} left`);
83
+ return running.join(", ");
84
+ }
26
85
  const skipped = task.total - task.completed;
27
86
  let parts = [`${task.succeeded} done`];
28
87
  if (task.failed > 0)
@@ -33,13 +92,13 @@ export class NSATaskBar extends Component {
33
92
  return `${prefix} — ${parts.join(", ")}`;
34
93
  }
35
94
  render() {
36
- const tasks = NSATaskService.main.getTasks();
95
+ const tasks = this.state.tasks;
37
96
  if (tasks.length === 0)
38
97
  return null;
39
98
  return (_jsx("div", { className: Styles.nsa_task_bar, children: tasks.map(task => {
40
99
  const progress = task.total > 0 ? (task.completed / task.total) * 100 : 0;
41
100
  return (_jsxs("div", { className: Styles.nsa_task_card, children: [_jsxs("div", { className: Styles.nsa_task_header, children: [_jsx("span", { className: Styles.nsa_task_title, children: task.title }), task.status !== "running" &&
42
- _jsx("span", { className: Styles.nsa_task_close, onClick: () => NSATaskService.main.dismiss(task.id), children: "\u2715" })] }), _jsx(NSProgressBar, { progress: progress, title: this.renderStatus(task) }), task.status === "running" &&
101
+ _jsx("span", { className: Styles.nsa_task_close, onClick: () => this.dismiss(task.id), children: "\u2715" })] }), _jsx(NSProgressBar, { progress: progress, title: this.renderStatus(task) }), task.status === "running" &&
43
102
  _jsx("div", { className: Styles.nsa_task_actions, children: _jsx(NSButtonRed, { title: "Cancel", onClick: {
44
103
  showLoading: false,
45
104
  action: (onFinished) => {
@@ -1 +1 @@
1
- {"version":3,"file":"NSATaskBar.js","sourceRoot":"","sources":["../../src/components/NSATaskBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NSATaskBar.js","sourceRoot":"","sources":["../../src/components/NSATaskBar.tsx"],"names":[],"mappings":"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"}