@axinom/mosaic-ui 0.51.0-rc.9 → 0.52.0-rc.0

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 (100) hide show
  1. package/dist/components/Explorer/ConditionalSplit/ConditionalSplit.d.ts +8 -0
  2. package/dist/components/Explorer/ConditionalSplit/ConditionalSplit.d.ts.map +1 -0
  3. package/dist/components/Explorer/Explorer.d.ts +3 -1
  4. package/dist/components/Explorer/Explorer.d.ts.map +1 -1
  5. package/dist/components/Explorer/Explorer.model.d.ts +18 -1
  6. package/dist/components/Explorer/Explorer.model.d.ts.map +1 -1
  7. package/dist/components/Explorer/QuickEdit/QuickEditContext.d.ts +11 -0
  8. package/dist/components/Explorer/QuickEdit/QuickEditContext.d.ts.map +1 -0
  9. package/dist/components/Explorer/QuickEdit/useQuickEdit.d.ts +22 -0
  10. package/dist/components/Explorer/QuickEdit/useQuickEdit.d.ts.map +1 -0
  11. package/dist/components/Explorer/{InMemoryDataProvider.d.ts → helpers/InMemoryDataProvider.d.ts} +3 -3
  12. package/dist/components/Explorer/helpers/InMemoryDataProvider.d.ts.map +1 -0
  13. package/dist/components/Explorer/helpers/useActions.d.ts +31 -0
  14. package/dist/components/Explorer/helpers/useActions.d.ts.map +1 -0
  15. package/dist/components/Explorer/{useDataProvider.d.ts → helpers/useDataProvider.d.ts} +6 -6
  16. package/dist/components/Explorer/helpers/useDataProvider.d.ts.map +1 -0
  17. package/dist/components/Explorer/helpers/useFilters.d.ts +21 -0
  18. package/dist/components/Explorer/helpers/useFilters.d.ts.map +1 -0
  19. package/dist/components/Explorer/helpers/useStationMessage.d.ts +17 -0
  20. package/dist/components/Explorer/helpers/useStationMessage.d.ts.map +1 -0
  21. package/dist/components/Explorer/index.d.ts +2 -1
  22. package/dist/components/Explorer/index.d.ts.map +1 -1
  23. package/dist/components/FormStation/Create/Create.d.ts.map +1 -1
  24. package/dist/components/FormStation/FormStation.d.ts +4 -1
  25. package/dist/components/FormStation/FormStation.d.ts.map +1 -1
  26. package/dist/components/FormStation/FormStationHeader/FormStationHeader.d.ts +1 -0
  27. package/dist/components/FormStation/FormStationHeader/FormStationHeader.d.ts.map +1 -1
  28. package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts +11 -0
  29. package/dist/components/FormStation/SaveOnDemand/SaveOnDemand.d.ts.map +1 -0
  30. package/dist/components/FormStation/helpers/useDataProvider.d.ts.map +1 -1
  31. package/dist/components/Icons/Icons.d.ts.map +1 -1
  32. package/dist/components/Icons/Icons.models.d.ts +28 -24
  33. package/dist/components/Icons/Icons.models.d.ts.map +1 -1
  34. package/dist/components/List/List.d.ts +1 -1
  35. package/dist/components/List/List.d.ts.map +1 -1
  36. package/dist/components/List/List.model.d.ts +4 -0
  37. package/dist/components/List/List.model.d.ts.map +1 -1
  38. package/dist/components/PageHeader/PageHeader.d.ts.map +1 -1
  39. package/dist/components/PageHeader/PageHeaderAction/PageHeaderAction.d.ts.map +1 -1
  40. package/dist/components/PageHeader/PageHeaderAction/PageHeaderAction.model.d.ts +2 -1
  41. package/dist/components/PageHeader/PageHeaderAction/PageHeaderAction.model.d.ts.map +1 -1
  42. package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.d.ts +1 -1
  43. package/dist/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.d.ts.map +1 -1
  44. package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts +6 -0
  45. package/dist/components/PageHeader/helpers/useElementWidthObserver.d.ts.map +1 -0
  46. package/dist/index.es.js +4 -4
  47. package/dist/index.es.js.map +1 -1
  48. package/dist/index.js +4 -4
  49. package/dist/index.js.map +1 -1
  50. package/dist/initialize.d.ts +1 -1
  51. package/dist/initialize.d.ts.map +1 -1
  52. package/package.json +4 -3
  53. package/src/components/EmptyStation/EmptyStation.spec.tsx +24 -0
  54. package/src/components/Explorer/ConditionalSplit/ConditionalSplit.tsx +23 -0
  55. package/src/components/Explorer/Explorer.model.ts +19 -1
  56. package/src/components/Explorer/Explorer.scss +4 -0
  57. package/src/components/Explorer/Explorer.spec.tsx +28 -3
  58. package/src/components/Explorer/Explorer.stories.tsx +90 -5
  59. package/src/components/Explorer/Explorer.tsx +149 -185
  60. package/src/components/Explorer/NavigationExplorer/NavigationExplorer.spec.tsx +26 -0
  61. package/src/components/Explorer/NavigationExplorer/NavigationExplorer.stories.tsx +2 -2
  62. package/src/components/Explorer/QuickEdit/QuickEditContext.tsx +16 -0
  63. package/src/components/Explorer/QuickEdit/useQuickEdit.spec.tsx +461 -0
  64. package/src/components/Explorer/QuickEdit/useQuickEdit.tsx +169 -0
  65. package/src/components/Explorer/SelectionExplorer/SelectionExplorer.spec.tsx +6 -0
  66. package/src/components/Explorer/SelectionExplorer/SelectionExplorer.stories.tsx +2 -2
  67. package/src/components/Explorer/{InMemoryDataProvider.ts → helpers/InMemoryDataProvider.ts} +4 -4
  68. package/src/components/Explorer/helpers/useActions.ts +203 -0
  69. package/src/components/Explorer/{useDataProvider.tsx → helpers/useDataProvider.tsx} +11 -11
  70. package/src/components/Explorer/helpers/useFilters.tsx +77 -0
  71. package/src/components/Explorer/{useStationMessage.tsx → helpers/useStationMessage.tsx} +8 -6
  72. package/src/components/Explorer/index.ts +10 -6
  73. package/src/components/FormStation/Create/Create.tsx +1 -0
  74. package/src/components/FormStation/FormStation.spec.tsx +62 -73
  75. package/src/components/FormStation/FormStation.tsx +31 -15
  76. package/src/components/FormStation/FormStationHeader/FormStationHeader.tsx +38 -18
  77. package/src/components/FormStation/SaveOnDemand/SaveOnDemand.tsx +55 -0
  78. package/src/components/FormStation/helpers/useDataProvider.ts +1 -8
  79. package/src/components/Icons/Icons.models.ts +4 -0
  80. package/src/components/Icons/Icons.tsx +78 -0
  81. package/src/components/InlineMenu/InlineMenu.spec.tsx +18 -0
  82. package/src/components/List/List.model.ts +5 -0
  83. package/src/components/List/List.tsx +29 -5
  84. package/src/components/List/ListRow/ListRow.spec.tsx +0 -10
  85. package/src/components/List/ListRow/ListRow.tsx +1 -1
  86. package/src/components/PageHeader/PageHeader.scss +1 -2
  87. package/src/components/PageHeader/PageHeader.stories.tsx +6 -2
  88. package/src/components/PageHeader/PageHeader.tsx +10 -16
  89. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.model.ts +1 -0
  90. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.scss +7 -0
  91. package/src/components/PageHeader/PageHeaderAction/PageHeaderAction.tsx +1 -0
  92. package/src/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.spec.tsx +19 -7
  93. package/src/components/PageHeader/PageHeaderActionsGroup/PageHeaderActionsGroup.tsx +19 -12
  94. package/src/components/PageHeader/helpers/useElementWidthObserver.tsx +30 -0
  95. package/src/initialize.ts +2 -2
  96. package/dist/components/Explorer/InMemoryDataProvider.d.ts.map +0 -1
  97. package/dist/components/Explorer/useDataProvider.d.ts.map +0 -1
  98. package/dist/components/Explorer/useStationMessage.d.ts +0 -15
  99. package/dist/components/Explorer/useStationMessage.d.ts.map +0 -1
  100. /package/src/components/Explorer/{InMemoryDataProvider.spec.ts → helpers/InMemoryDataProvider.spec.ts} +0 -0
@@ -37,7 +37,7 @@ export interface PageHeaderActionsGroupProps {
37
37
  * Callback to emit when Group Actions is toggled
38
38
  * The expanded state is supplied as an argument
39
39
  */
40
- onActionsGroupToggled?: (expanded: boolean) => void;
40
+ onActionsGroupToggled?: (expanded: boolean) => Promise<void>;
41
41
  }
42
42
 
43
43
  /**
@@ -112,10 +112,14 @@ export const PageHeaderActionsGroup: React.FC<PageHeaderActionsGroupProps> = ({
112
112
  }
113
113
  }, [isConfirmOpen, isMouseOverMore, moreCollapse, moreExpanded]);
114
114
 
115
- const actionsSlice =
116
- availableActionSpace < actions.length
117
- ? availableActionSpace - 1
118
- : availableActionSpace;
115
+ const showMore = actions.length > availableActionSpace && actions.length > 1;
116
+ const visibleActions = showMore
117
+ ? Math.max(availableActionSpace, 1)
118
+ : actions.length;
119
+
120
+ const actionsSlice = showMore
121
+ ? Math.max(availableActionSpace - 1, 0)
122
+ : actions.length;
119
123
 
120
124
  return (
121
125
  <div
@@ -134,20 +138,23 @@ export const PageHeaderActionsGroup: React.FC<PageHeaderActionsGroupProps> = ({
134
138
  : PageHeaderActionType.Context
135
139
  }
136
140
  icon={icon}
137
- onClick={() => {
141
+ onClick={async () => {
138
142
  if (!isExpanded) {
139
143
  collapseAll();
140
144
  }
141
- toggleExpanded();
142
- onActionsGroupToggled(!isExpanded);
145
+ try {
146
+ await onActionsGroupToggled(!isExpanded);
147
+ toggleExpanded();
148
+ } catch (e) {
149
+ // Abort the action if an error occurs
150
+ return;
151
+ }
143
152
  }}
144
153
  disabled={disabled}
145
154
  />
146
155
  <div
147
156
  style={{
148
- maxWidth: isExpanded
149
- ? `${Math.min(availableActionSpace, actions.length) * 121}px`
150
- : `0px`,
157
+ maxWidth: isExpanded ? `${visibleActions * 121}px` : `0px`,
151
158
  opacity: isExpanded ? 1 : 0,
152
159
  }}
153
160
  className={classes.actions}
@@ -173,7 +180,7 @@ export const PageHeaderActionsGroup: React.FC<PageHeaderActionsGroupProps> = ({
173
180
  <PageHeaderAction key={idx} {...action} />
174
181
  ),
175
182
  )}
176
- {actions.length > availableActionSpace && (
183
+ {showMore && (
177
184
  <div onMouseEnter={() => setIsMouseOverMore(true)}>
178
185
  <PageHeaderAction
179
186
  label="More"
@@ -0,0 +1,30 @@
1
+ import { useEffect, useRef, useState } from 'react';
2
+
3
+ export const useElementWidthObserver = <T extends HTMLElement>(): {
4
+ width: number;
5
+ ref: React.RefObject<T>;
6
+ } => {
7
+ const [width, setWidth] = useState(0);
8
+ const ref = useRef<T>(null);
9
+
10
+ useEffect(() => {
11
+ const observer = new ResizeObserver((entries) => {
12
+ setWidth(entries[0].contentRect.width);
13
+ });
14
+
15
+ const current = ref.current;
16
+
17
+ if (current) {
18
+ observer.observe(current);
19
+ }
20
+
21
+ return () => {
22
+ current && observer.unobserve(current);
23
+ };
24
+ }, []);
25
+
26
+ return {
27
+ width,
28
+ ref,
29
+ };
30
+ };
package/src/initialize.ts CHANGED
@@ -21,11 +21,11 @@ export let removeIndicator: RemoveIndicator | (() => void) =
21
21
 
22
22
  export let on: CustomEventEmitter['on'] | (() => void) = polyfill('on');
23
23
 
24
+ export let setTitle: (title?: string) => void = polyfill('setTitle');
25
+
24
26
  export let setSaveIndicator: (type: SaveIndicatorType) => void =
25
27
  polyfill('setSaveIndicator');
26
28
 
27
- export let setTitle: (title?: string) => void = polyfill('setTitle');
28
-
29
29
  /**
30
30
  * Passes the PiralApi methods to the UI library.
31
31
  * @param app {UiConfig} object containing PiralApi methods for use in UI library.
@@ -1 +0,0 @@
1
- {"version":3,"file":"InMemoryDataProvider.d.ts","sourceRoot":"","sources":["../../../src/components/Explorer/InMemoryDataProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAgB,MAAM,YAAY,CAAC;AAEvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAExD,KAAK,cAAc,CAAC,CAAC,SAAS,IAAI,IAAI,CACpC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,CAAC,KACJ,OAAO,CAAC;AAEb,UAAU,uBAAuB,CAAC,CAAC,SAAS,IAAI;IAC9C,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE;QAChB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;KACvC,CAAC;CACH;AAED,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,IAAI,EACvD,IAAI,EAAE,CAAC,EAAE,EACT,EACE,iBAAyB,EACzB,eAAoB,GACrB,GAAE,uBAAuB,CAAC,CAAC,CAAM,GACjC,oBAAoB,CAAC,CAAC,CAAC,CAqBzB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,cAAc,CAAC,IAAI,CAE1C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,cAAc,CAAC,IAAI,CAErD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mCAAmC,EAAE,cAAc,CAAC,IAAI,CAKpE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDataProvider.d.ts","sourceRoot":"","sources":["../../../src/components/Explorer/useDataProvider.tsx"],"names":[],"mappings":";AAUA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EACL,oBAAoB,EACpB,8BAA8B,EAC/B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,UAAU,sBAAsB,CAAC,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC;IAClC,QAAQ,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpD,QAAQ,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,IAAI,CAAC;IACvC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,wBAAwB,CAAC,CAAC,SAAS,IAAI;IAC/C,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC;IACtC,WAAW,EAAE,KAAK,CAAC,YAAY,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC,CAAC;IACnE,iBAAiB,EAAE,KAAK,CAAC,QAAQ,CAC/B,KAAK,CAAC,cAAc,CAAC,cAAc,GAAG,SAAS,CAAC,CACjD,CAAC;IACF,gBAAgB,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC,CAAC;CACvB;AAED,wBAAgB,eAAe,CAAC,CAAC,SAAS,IAAI,EAAE,EAC9C,YAAY,EACZ,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,OAAO,EACP,WAAW,GACZ,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,sBAAsB,CAAC,CAAC,CAAC,CAsIzD"}
@@ -1,15 +0,0 @@
1
- import React from 'react';
2
- import { MessageBarProps } from '../MessageBar/MessageBar';
3
- export interface StationMessage {
4
- type: MessageBarProps['type'];
5
- title: MessageBarProps['title'];
6
- body?: React.ReactNode;
7
- canClose: boolean;
8
- onRetry?: MessageBarProps['onRetry'];
9
- }
10
- export declare const useStationMessage: () => {
11
- stationMessage: StationMessage | undefined;
12
- setStationMessage: React.Dispatch<React.SetStateAction<StationMessage | undefined>>;
13
- StationMessage: JSX.Element;
14
- };
15
- //# sourceMappingURL=useStationMessage.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useStationMessage.d.ts","sourceRoot":"","sources":["../../../src/components/Explorer/useStationMessage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAAc,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;CACtC;AAED,eAAO,MAAM,iBAAiB;;;oBAKZ,WAAW;CAwB5B,CAAC"}