@leav/ui 0.4.0-58529dc → 0.4.0-5a0192c5

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 (166) hide show
  1. package/README.md +1 -0
  2. package/dist/__mocks__/common/form.d.ts +632 -0
  3. package/dist/__mocks__/common/form.js +27 -22
  4. package/dist/__mocks__/common/form.js.map +1 -1
  5. package/dist/_gqlTypes/index.d.ts +3212 -2076
  6. package/dist/_gqlTypes/index.js +1548 -1242
  7. package/dist/_gqlTypes/index.js.map +1 -1
  8. package/dist/_queries/records/getRecordFormQuery.js +10 -5
  9. package/dist/_queries/records/getRecordFormQuery.js.map +1 -1
  10. package/dist/_queries/trees/treeNodeChildrenQuery.js +12 -2
  11. package/dist/_queries/trees/treeNodeChildrenQuery.js.map +1 -1
  12. package/dist/components/Explorer/DataView.js +4 -4
  13. package/dist/components/Explorer/DataView.js.map +1 -1
  14. package/dist/components/Explorer/Explorer.d.ts +5 -4
  15. package/dist/components/Explorer/Explorer.js +3 -2
  16. package/dist/components/Explorer/Explorer.js.map +1 -1
  17. package/dist/components/Explorer/ExplorerToolbar.d.ts +2 -1
  18. package/dist/components/Explorer/ExplorerToolbar.js +5 -4
  19. package/dist/components/Explorer/ExplorerToolbar.js.map +1 -1
  20. package/dist/components/Explorer/_queries/useExplorerData.js +2 -2
  21. package/dist/components/Explorer/_queries/useExplorerData.js.map +1 -1
  22. package/dist/components/Explorer/_types.d.ts +4 -1
  23. package/dist/components/Explorer/_types.js.map +1 -1
  24. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.d.ts +3 -1
  25. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +14 -6
  26. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  27. package/dist/components/Explorer/manage-view-settings/_shared/useTransformFilters.js +4 -0
  28. package/dist/components/Explorer/manage-view-settings/_shared/useTransformFilters.js.map +1 -1
  29. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js +2 -2
  30. package/dist/components/Explorer/manage-view-settings/filter-items/filter-type/FilterDropDown.js.map +1 -1
  31. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js +2 -1
  32. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsInitialState.js.map +1 -1
  33. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.d.ts +1 -0
  34. package/dist/components/Explorer/manage-view-settings/store-view-settings/viewSettingsReducer.js.map +1 -1
  35. package/dist/components/Explorer/useViewSettingsReducer.js +6 -2
  36. package/dist/components/Explorer/useViewSettingsReducer.js.map +1 -1
  37. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js +2 -2
  38. package/dist/components/LibraryItemsList/FiltersPanel/Filter/Filter.js.map +1 -1
  39. package/dist/components/LinkSelect/LinkSelect.d.ts +7 -4
  40. package/dist/components/LinkSelect/LinkSelect.js +60 -16
  41. package/dist/components/LinkSelect/LinkSelect.js.map +1 -1
  42. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js +59 -27
  43. package/dist/components/RecordEdition/EditRecordContent/EditRecordContent.js.map +1 -1
  44. package/dist/components/RecordEdition/EditRecordContent/_types.d.ts +14 -8
  45. package/dist/components/RecordEdition/EditRecordContent/_types.js.map +1 -1
  46. package/dist/components/RecordEdition/EditRecordContent/antdUtils.d.ts +6 -0
  47. package/dist/components/RecordEdition/EditRecordContent/antdUtils.js +7 -1
  48. package/dist/components/RecordEdition/EditRecordContent/antdUtils.js.map +1 -1
  49. package/dist/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.d.ts +15 -2
  50. package/dist/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.js +47 -24
  51. package/dist/components/RecordEdition/EditRecordContent/helpers/extractFormElements/extractFormElements.js.map +1 -1
  52. package/dist/components/RecordEdition/EditRecordContent/hooks/useFetchVisibleFormValue.d.ts +13 -0
  53. package/dist/components/RecordEdition/EditRecordContent/hooks/useFetchVisibleFormValue.js +117 -0
  54. package/dist/components/RecordEdition/EditRecordContent/hooks/useFetchVisibleFormValue.js.map +1 -0
  55. package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.d.ts +12 -0
  56. package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.js +39 -0
  57. package/dist/components/RecordEdition/EditRecordContent/hooks/useTabManagement.js.map +1 -0
  58. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.d.ts +2 -2
  59. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js +3 -5
  60. package/dist/components/RecordEdition/EditRecordContent/uiElements/Container/Container.js.map +1 -1
  61. package/dist/components/RecordEdition/EditRecordContent/uiElements/FormTabs/FormTabs.js +25 -5
  62. package/dist/components/RecordEdition/EditRecordContent/uiElements/FormTabs/FormTabs.js.map +1 -1
  63. package/dist/components/RecordEdition/EditRecordContent/uiElements/Frame/Frame.d.ts +1 -1
  64. package/dist/components/RecordEdition/EditRecordContent/uiElements/Frame/Frame.js +1 -3
  65. package/dist/components/RecordEdition/EditRecordContent/uiElements/Frame/Frame.js.map +1 -1
  66. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js +11 -10
  67. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/LinkField.js.map +1 -1
  68. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js +2 -2
  69. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-creation/useLinkRecordsInCreation.js.map +1 -1
  70. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.d.ts +3 -3
  71. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js +234 -48
  72. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record-in-edition/useLinkRecordsInEdition.js.map +1 -1
  73. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.d.ts +0 -2
  74. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +63 -72
  75. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  76. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js +2 -1
  77. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/DSInputWrapper.js.map +1 -1
  78. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.d.ts +2 -1
  79. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js +2 -1
  80. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/StandardFieldValue.js.map +1 -1
  81. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardFieldValue/_types.d.ts +1 -0
  82. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.d.ts +1 -1
  83. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +24 -19
  84. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  85. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.d.ts +2 -1
  86. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js +2 -2
  87. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js.map +1 -1
  88. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/{useDisplayTreeNode.d.ts → TreeNodeList.d.ts} +4 -4
  89. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeList.js +5 -0
  90. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeList.js.map +1 -0
  91. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +16 -4
  92. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +12 -13
  93. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
  94. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.d.ts +3 -2
  95. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js +56 -58
  96. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js.map +1 -1
  97. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js +4 -4
  98. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/calculatedInheritedFlags.js.map +1 -1
  99. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.d.ts +3 -3
  100. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js +8 -8
  101. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/useOutsideInteractionDetector.js.map +1 -1
  102. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.d.ts +6 -1
  103. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js +5 -1
  104. package/dist/components/RecordEdition/editRecordReducer/editRecordReducer.js.map +1 -1
  105. package/dist/components/RecordEdition/index.d.ts +1 -0
  106. package/dist/components/RecordEdition/index.js +1 -0
  107. package/dist/components/RecordEdition/index.js.map +1 -1
  108. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +2 -1
  109. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +2 -2
  110. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  111. package/dist/components/SelectTreeNode/SelectTreeNode.d.ts +5 -3
  112. package/dist/components/SelectTreeNode/SelectTreeNode.js +2 -3
  113. package/dist/components/SelectTreeNode/SelectTreeNode.js.map +1 -1
  114. package/dist/components/SelectTreeNode/SelectTreeNodeContent.d.ts +3 -1
  115. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +18 -23
  116. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  117. package/dist/components/SelectTreeNode/_types.d.ts +17 -0
  118. package/dist/components/SelectTreeNode/_types.js +2 -0
  119. package/dist/components/SelectTreeNode/_types.js.map +1 -0
  120. package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.d.ts → SelectTreeNodeModalOld/SelectTreeNodeModalOld.d.ts} +1 -1
  121. package/dist/components/{SelectTreeNodeModal/SelectTreeNodeModal.js → SelectTreeNodeModalOld/SelectTreeNodeModalOld.js} +4 -2
  122. package/dist/components/SelectTreeNodeModalOld/SelectTreeNodeModalOld.js.map +1 -0
  123. package/dist/components/SelectTreeNodeModalOld/index.d.ts +1 -0
  124. package/dist/components/{SelectTreeNodeModal → SelectTreeNodeModalOld}/index.js +1 -1
  125. package/dist/components/SelectTreeNodeModalOld/index.js.map +1 -0
  126. package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js +2 -2
  127. package/dist/components/ValuesVersionConfigurator/VersionTree/VersionTree.js.map +1 -1
  128. package/dist/components/index.d.ts +1 -2
  129. package/dist/components/index.js +1 -2
  130. package/dist/components/index.js.map +1 -1
  131. package/dist/hooks/index.d.ts +2 -0
  132. package/dist/hooks/index.js +2 -0
  133. package/dist/hooks/index.js.map +1 -1
  134. package/dist/hooks/useGetRecordForm/useGetRecordForm.d.ts +2 -1
  135. package/dist/hooks/useGetRecordForm/useGetRecordForm.js +3 -14
  136. package/dist/hooks/useGetRecordForm/useGetRecordForm.js.map +1 -1
  137. package/dist/hooks/useIFrameMessenger/messageHandlers.d.ts +3 -1
  138. package/dist/hooks/useIFrameMessenger/messageHandlers.js +13 -2
  139. package/dist/hooks/useIFrameMessenger/messageHandlers.js.map +1 -1
  140. package/dist/hooks/useIFrameMessenger/schema.d.ts +21 -0
  141. package/dist/hooks/useIFrameMessenger/schema.js +76 -0
  142. package/dist/hooks/useIFrameMessenger/schema.js.map +1 -0
  143. package/dist/hooks/useIFrameMessenger/types.d.ts +41 -6
  144. package/dist/hooks/useIFrameMessenger/types.js.map +1 -1
  145. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.d.ts +10 -1
  146. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js +55 -20
  147. package/dist/hooks/useIFrameMessenger/useIFrameMessenger.js.map +1 -1
  148. package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.d.ts +7 -0
  149. package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.js +13 -0
  150. package/dist/hooks/useIFrameMessengerClient/IFrameMessengerClient.js.map +1 -0
  151. package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.d.ts +13 -0
  152. package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.js +6 -0
  153. package/dist/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.js.map +1 -0
  154. package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.d.ts +13 -0
  155. package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.js +13 -0
  156. package/dist/hooks/useIFrameMessengerClient/useIFrameMessengerClient.js.map +1 -0
  157. package/dist/types/attributes.d.ts +2 -1
  158. package/package.json +22 -6
  159. package/dist/components/RecordEdition/EditRecordContent/hooks/useRecordEditionContext.d.ts +0 -3
  160. package/dist/components/RecordEdition/EditRecordContent/hooks/useRecordEditionContext.js +0 -7
  161. package/dist/components/RecordEdition/EditRecordContent/hooks/useRecordEditionContext.js.map +0 -1
  162. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js +0 -8
  163. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.js.map +0 -1
  164. package/dist/components/SelectTreeNodeModal/SelectTreeNodeModal.js.map +0 -1
  165. package/dist/components/SelectTreeNodeModal/index.d.ts +0 -1
  166. package/dist/components/SelectTreeNodeModal/index.js.map +0 -1
@@ -1,8 +1,10 @@
1
+ import { type RefObject, type ComponentProps, type Key, type JSXElementConstructor } from 'react';
2
+ import * as z from 'zod/v4';
1
3
  import { type KitNotification } from 'aristid-ds';
2
4
  import { type IKitConfirmDialog } from 'aristid-ds/dist/Kit/Feedback/Modal/types';
3
- import { type RefObject, type ComponentProps, type Key, type JSXElementConstructor } from 'react';
4
- import { EditRecordModal } from '../../components';
5
5
  import { type ToastedAlertProps } from 'aristid-ds/dist/Kit/Feedback/Alert/types';
6
+ import { type EditRecordModal } from '../../components';
7
+ import { ItemActionsSchema, type PanelIdSchema, PanelSchema } from '../../hooks/useIFrameMessenger/schema';
6
8
  export declare const packetId = "__fromIframeMessenger";
7
9
  export interface IEncodedMessage {
8
10
  payload: string;
@@ -59,27 +61,60 @@ export type RegisterMessage = IMessageBase & {
59
61
  type: 'register';
60
62
  id: string;
61
63
  };
62
- export type MessageToParent = SidePanelFormMessage | ModalConfirmMessage | ModalFormMessage | AlertMessage | NotificationMessage | SimpleMessage | RegisterMessage | ChangeLanguageMessage;
63
- export type MessageFromParent = IMessageBase & {
64
+ export type UnregisterMessage = IMessageBase & {
65
+ type: 'unregister';
66
+ id: string;
67
+ };
68
+ export type Panel = z.infer<typeof PanelSchema>;
69
+ type PanelId = z.infer<typeof PanelIdSchema>;
70
+ type ItemActions = z.infer<typeof ItemActionsSchema>;
71
+ export interface INestedPanel {
72
+ panelTargetId?: PanelId;
73
+ recordId?: string;
74
+ where: ItemActions[number]['where'];
75
+ what: Panel & {
76
+ recordId?: string;
77
+ };
78
+ }
79
+ export type NavigateToPanelMessage = IMessageBase & {
80
+ type: 'navigate-to-panel';
81
+ data: {
82
+ panelId: PanelId;
83
+ } | INestedPanel;
84
+ };
85
+ export type MessageToPanelMessage = IMessageBase & {
86
+ type: 'message-to-panel';
87
+ data: {
88
+ type: string;
89
+ target?: string;
90
+ payload: unknown;
91
+ };
92
+ };
93
+ export type MessageToParent = SidePanelFormMessage | ModalConfirmMessage | ModalFormMessage | AlertMessage | NotificationMessage | SimpleMessage | RegisterMessage | UnregisterMessage | NavigateToPanelMessage | MessageToPanelMessage;
94
+ export type MessageFromParent = (IMessageBase & {
64
95
  type: 'on-call-callback';
65
96
  path: string;
66
97
  data: unknown;
67
- };
98
+ }) | ChangeLanguageMessage;
68
99
  export type Message = MessageToParent | MessageFromParent;
69
100
  export type MessageHandler<T = Message> = (message: T, dispatch: MessageDispatcher<T>) => void;
70
101
  export type MessageDispatcher<T = Message> = (message: T, frameId?: string) => void;
71
102
  export type CallCbFunction = (path: string, data: unknown, frameId: string) => void;
72
103
  export type CallbackFunction = (...args: never[]) => void;
73
104
  export type Callbacks = Record<string, Record<string, CallbackFunction>>;
105
+ export type MessageToPanelMessageHandler = (data: MessageToPanelMessage['data']['payload']) => void;
106
+ export type AddMessageToPanelMessageHandler = (type: string, handler: MessageToPanelMessageHandler) => void;
74
107
  export interface IUseIFrameMessengerOptions {
75
108
  ref?: RefObject<HTMLIFrameElement>;
76
109
  id?: string;
77
110
  handlers?: {
78
- onSidePanelForm?: (data: SidePanelFormMessage['data'], dispatch: MessageDispatcher, callCb: CallCbFunction) => void;
111
+ onSidePanelForm?: (data: SidePanelFormMessage['data'], id: string, dispatch: MessageDispatcher, callCb: CallCbFunction) => void;
79
112
  onModalConfirm?: (data: ModalConfirmMessage['data'], id: string, dispatch: MessageDispatcher, callCb: CallCbFunction) => void;
80
113
  onModalForm?: (data: ModalFormMessage['data'], id: string, dispatch: MessageDispatcher, callCb: CallCbFunction) => void;
81
114
  onAlert?: (data: AlertMessage['data'], id: string, dispatch: MessageDispatcher, callCb: CallCbFunction) => void;
82
115
  onNotification?: (data: NotificationMessage['data'], id: string, dispatch: MessageDispatcher, callCb: CallCbFunction) => void;
83
116
  onMessage?: (data: unknown, id: string, dispatch: MessageDispatcher, callCb: CallCbFunction) => void;
117
+ onNavigateToPanel?: (data: NavigateToPanelMessage['data']) => void;
84
118
  };
85
119
  }
120
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessenger/types.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessenger/types.ts"],"names":[],"mappings":"AAWA,MAAM,CAAC,MAAM,QAAQ,GAAG,uBAAuB,CAAC"}
@@ -1,10 +1,19 @@
1
- import { type IUseIFrameMessengerOptions } from './types';
1
+ import { AddMessageToPanelMessageHandler, type IUseIFrameMessengerOptions } from './types';
2
+ export { IUseIFrameMessengerOptions };
3
+ /**
4
+ * This is the core of `useIFrameMessenger`. Should be used for top-level apps, such as **app-studio**.
5
+ * For client apps (apps that need to consume the messenger), please use the `useIFrameMessengerClient`
6
+ */
2
7
  export declare const useIFrameMessenger: (options?: IUseIFrameMessengerOptions) => {
8
+ unregister: () => void;
3
9
  changeLangInAllFrames: (newLanguage: string) => void;
10
+ addPanelMessageHandler: AddMessageToPanelMessageHandler;
4
11
  showSidePanelForm: (data: import("./types").SidePanelFormMessage["data"]) => void;
5
12
  showModalConfirm: (data: import("./types").ModalConfirmMessage["data"]) => void;
6
13
  showModalForm: (data: import("./types").ModalFormMessage["data"]) => void;
7
14
  showAlert: (data: import("./types").AlertMessage["data"]) => void;
8
15
  showNotification: (data: import("./types").NotificationMessage["data"]) => void;
9
16
  messageToParent: (data: import("./types").SimpleMessage["data"]) => void;
17
+ navigateToPanel: (data: import("./types").NavigateToPanelMessage["data"]) => void;
18
+ messageToPanel: (data: import("./types").MessageToPanelMessage["data"]) => void;
10
19
  };
@@ -5,6 +5,10 @@ import { useCallback, useContext, useEffect, useRef } from 'react';
5
5
  import { v4 as uuid } from 'uuid';
6
6
  import { LangContext } from '../../contexts';
7
7
  import { encodeMessage, decodeMessage, getExposedMethods, initClientHandlers } from './messageHandlers';
8
+ /**
9
+ * This is the core of `useIFrameMessenger`. Should be used for top-level apps, such as **app-studio**.
10
+ * For client apps (apps that need to consume the messenger), please use the `useIFrameMessengerClient`
11
+ */
8
12
  export const useIFrameMessenger = (options) => {
9
13
  const registry = useRef({});
10
14
  const selfId = useRef(options?.id ?? uuid());
@@ -15,6 +19,10 @@ export const useIFrameMessenger = (options) => {
15
19
  language: newLanguage
16
20
  }, 'all');
17
21
  };
22
+ const panelMessageHandlerRegistry = useRef({});
23
+ const addPanelMessageHandler = (type, handler) => {
24
+ panelMessageHandlerRegistry.current[type] = handler;
25
+ };
18
26
  const dispatch = useCallback((message, frameId) => {
19
27
  if (window !== window.top) {
20
28
  window.parent.postMessage(encodeMessage({ ...message, __frameId: selfId.current }), '*');
@@ -23,16 +31,29 @@ export const useIFrameMessenger = (options) => {
23
31
  registry.current[frameId].postMessage(encodeMessage({ ...message, __frameId: selfId.current }), '*');
24
32
  }
25
33
  else if (frameId === 'all') {
26
- Object.values(registry.current).forEach(frame => {
27
- frame.postMessage(encodeMessage({ ...message, __frameId: selfId.current }), '*');
34
+ Object.entries(registry.current).forEach(([id, frame]) => {
35
+ if (id !== message.__frameId) {
36
+ // DO not send the message to the sender
37
+ frame.postMessage(encodeMessage({ ...message, __frameId: selfId.current }), '*');
38
+ }
28
39
  });
29
40
  }
30
41
  }, [registry.current]);
31
42
  const callCb = useCallback((path, data, frameId) => {
32
43
  dispatch({ type: 'on-call-callback', path, data }, frameId);
33
44
  }, [dispatch]);
45
+ const unregister = () => {
46
+ if (window !== window.top) {
47
+ dispatch({ type: 'unregister', id: selfId.current });
48
+ }
49
+ };
34
50
  const callbacksStore = useRef({});
35
- const methods = useRef(getExposedMethods(callbacksStore, dispatch));
51
+ const methods = useRef({
52
+ ...getExposedMethods(callbacksStore, dispatch),
53
+ unregister,
54
+ changeLangInAllFrames,
55
+ addPanelMessageHandler
56
+ });
36
57
  useEffect(() => {
37
58
  const clientHandlers = initClientHandlers(callCb, { ...options, id: selfId.current }, callbacksStore);
38
59
  const onMessage = (event) => {
@@ -40,23 +61,37 @@ export const useIFrameMessenger = (options) => {
40
61
  if (message === undefined) {
41
62
  return;
42
63
  }
43
- if (message.type === 'register') {
44
- const frames = window.frames;
45
- // Due to weak typing on Window, we cannot iterate directly on window.frames
46
- // eslint-disable-next-line @typescript-eslint/prefer-for-of
47
- for (let i = 0; i < frames.length; i++) {
48
- if (event.source === frames[i]) {
49
- registry.current[message.id] = frames[i];
64
+ switch (message.type) {
65
+ case 'register':
66
+ const frames = window.frames;
67
+ // Due to weak typing on Window, we cannot iterate directly on window.frames
68
+ // eslint-disable-next-line @typescript-eslint/prefer-for-of
69
+ for (let i = 0; i < frames.length; i++) {
70
+ if (event.source === frames[i]) {
71
+ registry.current[message.id] = frames[i];
72
+ }
50
73
  }
51
- }
52
- }
53
- else {
54
- if (message.type === 'change-language') {
55
- setLang(message.language);
56
- }
57
- else {
58
- clientHandlers(message, dispatch);
59
- }
74
+ break;
75
+ case 'unregister':
76
+ if (registry.current[message.id]) {
77
+ delete registry.current[message.id];
78
+ }
79
+ break;
80
+ case 'message-to-panel':
81
+ panelMessageHandlerRegistry.current[message.data.type]?.(message.data.payload);
82
+ if (window === window.top) {
83
+ const target = message.data.target ?? 'all';
84
+ dispatch(message, target);
85
+ }
86
+ break;
87
+ default:
88
+ if (message.type === 'change-language') {
89
+ setLang(message.language);
90
+ }
91
+ else {
92
+ clientHandlers(message, dispatch);
93
+ }
94
+ break;
60
95
  }
61
96
  };
62
97
  window.addEventListener('message', onMessage);
@@ -68,6 +103,6 @@ export const useIFrameMessenger = (options) => {
68
103
  window.removeEventListener('message', onMessage);
69
104
  };
70
105
  }, []);
71
- return { ...methods.current, changeLangInAllFrames };
106
+ return methods.current;
72
107
  };
73
108
  //# sourceMappingURL=useIFrameMessenger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useIFrameMessenger.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessenger/useIFrameMessenger.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useIFrameMessenger.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessenger/useIFrameMessenger.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,WAAW,EAAE,UAAU,EAAE,SAAS,EAAW,MAAM,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAC,EAAE,IAAI,IAAI,EAAC,MAAM,MAAM,CAAC;AAChC,OAAO,EAAC,WAAW,EAAC,MAAM,cAAc,CAAC;AASzC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAE,iBAAiB,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC;AAItG;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAoC,EAAE,EAAE;IACvE,MAAM,QAAQ,GAAG,MAAM,CAAyB,EAAE,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;IAE7C,MAAM,EAAC,OAAO,EAAC,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,qBAAqB,GAAG,CAAC,WAAmB,EAAE,EAAE;QAClD,QAAQ,CACJ;YACI,IAAI,EAAE,iBAAiB;YACvB,QAAQ,EAAE,WAAW;SACxB,EACD,KAAK,CACR,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,MAAM,CAA+C,EAAE,CAAC,CAAC;IAC7F,MAAM,sBAAsB,GAAoC,CAC5D,IAAY,EACZ,OAAqC,EACvC,EAAE;QACA,2BAA2B,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;IACxD,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,WAAW,CACxB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE;QACjB,IAAI,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;YACxB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,EAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,OAAO,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7C,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAY,CAAC,WAAW,CAC7C,aAAa,CAAC,EAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,EACtD,GAAG,CACN,CAAC;QACN,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE;gBACrD,IAAI,EAAE,KAAK,OAAO,CAAC,SAAS,EAAE,CAAC;oBAC3B,wCAAwC;oBACxC,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,EAAC,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,EAAE,GAAG,CAAC,CAAC;gBACnF,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC;IACL,CAAC,EACD,CAAC,QAAQ,CAAC,OAAO,CAAC,CACrB,CAAC;IAEF,MAAM,MAAM,GAAG,WAAW,CACtB,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QACpB,QAAQ,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC,EACD,CAAC,QAAQ,CAAC,CACb,CAAC;IAEF,MAAM,UAAU,GAAG,GAAG,EAAE;QACpB,IAAI,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;YACxB,QAAQ,CAAC,EAAC,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAC;QACvD,CAAC;IACL,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,MAAM,CAAY,EAAE,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC;QACnB,GAAG,iBAAiB,CAAC,cAAc,EAAE,QAAQ,CAAC;QAC9C,UAAU;QACV,qBAAqB;QACrB,sBAAsB;KACzB,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,MAAM,cAAc,GAAG,kBAAkB,CAAC,MAAM,EAAE,EAAC,GAAG,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAC,EAAE,cAAc,CAAC,CAAC;QACpG,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxB,OAAO;YACX,CAAC;YACD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;gBACnB,KAAK,UAAU;oBACX,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;oBAC7B,4EAA4E;oBAC5E,4DAA4D;oBAC5D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBACrC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;4BAC7B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;wBAC7C,CAAC;oBACL,CAAC;oBACD,MAAM;gBACV,KAAK,YAAY;oBACb,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;wBAC/B,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;oBACxC,CAAC;oBACD,MAAM;gBACV,KAAK,kBAAkB;oBACnB,2BAA2B,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAC/E,IAAI,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;wBACxB,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC;wBAC5C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC9B,CAAC;oBACD,MAAM;gBACV;oBACI,IAAI,OAAO,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;wBACrC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAC9B,CAAC;yBAAM,CAAC;wBACJ,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACtC,CAAC;oBACD,MAAM;YACd,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAE9C,IAAI,MAAM,KAAK,MAAM,CAAC,GAAG,EAAE,CAAC;YACxB,qDAAqD;YACrD,QAAQ,CAAC,EAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,CAAC,OAAO,EAAC,CAAC,CAAC;QACrD,CAAC;QAED,OAAO,GAAG,EAAE;YACR,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACrD,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,OAAO,CAAC,OAAO,CAAC;AAC3B,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { FunctionComponent, ReactNode } from 'react';
2
+ interface IFrameMessengerClientProps {
3
+ children: ReactNode;
4
+ id?: string;
5
+ }
6
+ export declare const IFrameMessengerClient: FunctionComponent<IFrameMessengerClientProps>;
7
+ export {};
@@ -0,0 +1,13 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
3
+ // This file is released under LGPL V3
4
+ // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
+ import { useEffect } from 'react';
6
+ import { useIFrameMessenger } from '../useIFrameMessenger/useIFrameMessenger';
7
+ import { IframeMessengerClientContext } from './iFrameMessengerClientContext';
8
+ export const IFrameMessengerClient = ({ children, id }) => {
9
+ const iFrameMessenger = useIFrameMessenger({ id });
10
+ useEffect(() => () => iFrameMessenger.unregister(), []);
11
+ return (_jsx(IframeMessengerClientContext.Provider, { value: iFrameMessenger, children: children }));
12
+ };
13
+ //# sourceMappingURL=IFrameMessengerClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IFrameMessengerClient.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/IFrameMessengerClient.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAA+B,SAAS,EAAC,MAAM,OAAO,CAAC;AAC9D,OAAO,EAAC,kBAAkB,EAAC,MAAM,0CAA0C,CAAC;AAC5E,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAO5E,MAAM,CAAC,MAAM,qBAAqB,GAAkD,CAAC,EAAC,QAAQ,EAAE,EAAE,EAAC,EAAE,EAAE;IACnG,MAAM,eAAe,GAAG,kBAAkB,CAAC,EAAC,EAAE,EAAC,CAAC,CAAC;IAEjD,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,EAAE,EAAE,CAAC,CAAC;IAExD,OAAO,CACH,KAAC,4BAA4B,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe,YACxD,QAAQ,GAC2B,CAC3C,CAAC;AACN,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const IframeMessengerClientContext: import("react").Context<{
2
+ unregister: () => void;
3
+ changeLangInAllFrames: (newLanguage: string) => void;
4
+ addPanelMessageHandler: import("../useIFrameMessenger/types").AddMessageToPanelMessageHandler;
5
+ showSidePanelForm: (data: import("../useIFrameMessenger/types").SidePanelFormMessage["data"]) => void;
6
+ showModalConfirm: (data: import("../useIFrameMessenger/types").ModalConfirmMessage["data"]) => void;
7
+ showModalForm: (data: import("../useIFrameMessenger/types").ModalFormMessage["data"]) => void;
8
+ showAlert: (data: import("../useIFrameMessenger/types").AlertMessage["data"]) => void;
9
+ showNotification: (data: import("../useIFrameMessenger/types").NotificationMessage["data"]) => void;
10
+ messageToParent: (data: import("../useIFrameMessenger/types").SimpleMessage["data"]) => void;
11
+ navigateToPanel: (data: import("../useIFrameMessenger/types").NavigateToPanelMessage["data"]) => void;
12
+ messageToPanel: (data: import("../useIFrameMessenger/types").MessageToPanelMessage["data"]) => void;
13
+ }>;
@@ -0,0 +1,6 @@
1
+ // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
2
+ // This file is released under LGPL V3
3
+ // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
4
+ import { createContext } from 'react';
5
+ export const IframeMessengerClientContext = createContext(null);
6
+ //# sourceMappingURL=iFrameMessengerClientContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iFrameMessengerClientContext.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/iFrameMessengerClientContext.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAKpC,MAAM,CAAC,MAAM,4BAA4B,GAAG,aAAa,CAAoC,IAAI,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare const useIFrameMessengerClient: () => {
2
+ unregister: () => void;
3
+ changeLangInAllFrames: (newLanguage: string) => void;
4
+ addPanelMessageHandler: import("../useIFrameMessenger/types").AddMessageToPanelMessageHandler;
5
+ showSidePanelForm: (data: import("../useIFrameMessenger/types").SidePanelFormMessage["data"]) => void;
6
+ showModalConfirm: (data: import("../useIFrameMessenger/types").ModalConfirmMessage["data"]) => void;
7
+ showModalForm: (data: import("../useIFrameMessenger/types").ModalFormMessage["data"]) => void;
8
+ showAlert: (data: import("../useIFrameMessenger/types").AlertMessage["data"]) => void;
9
+ showNotification: (data: import("../useIFrameMessenger/types").NotificationMessage["data"]) => void;
10
+ messageToParent: (data: import("../useIFrameMessenger/types").SimpleMessage["data"]) => void;
11
+ navigateToPanel: (data: import("../useIFrameMessenger/types").NavigateToPanelMessage["data"]) => void;
12
+ messageToPanel: (data: import("../useIFrameMessenger/types").MessageToPanelMessage["data"]) => void;
13
+ };
@@ -0,0 +1,13 @@
1
+ // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
2
+ // This file is released under LGPL V3
3
+ // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
4
+ import { useContext } from 'react';
5
+ import { IframeMessengerClientContext } from './iFrameMessengerClientContext';
6
+ export const useIFrameMessengerClient = () => {
7
+ const context = useContext(IframeMessengerClientContext);
8
+ if (!context) {
9
+ throw new Error('IframeMessengerClientContext must be used within an IframeMessengerClient');
10
+ }
11
+ return context;
12
+ };
13
+ //# sourceMappingURL=useIFrameMessengerClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIFrameMessengerClient.js","sourceRoot":"","sources":["../../../src/hooks/useIFrameMessengerClient/useIFrameMessengerClient.tsx"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,UAAU,EAAC,MAAM,OAAO,CAAC;AACjC,OAAO,EAAC,4BAA4B,EAAC,MAAM,gCAAgC,CAAC;AAE5E,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACzC,MAAM,OAAO,GAAG,UAAU,CAAC,4BAA4B,CAAC,CAAC;IACzD,IAAI,CAAC,OAAO,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IACjG,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { AttributeFormat, AttributeType } from '../_gqlTypes';
2
2
  import { SystemTranslation } from './scalars';
3
- import { IParentAttributeData, ITreeData } from './search';
3
+ import { IAttribute, IParentAttributeData, ITreeData } from './search';
4
4
  export interface ISelectedAttribute {
5
5
  id: string;
6
6
  library: string;
@@ -19,3 +19,4 @@ export interface IEmbeddedFields {
19
19
  label: SystemTranslation;
20
20
  embedded_fields: IEmbeddedFields[];
21
21
  }
22
+ export type FullTextAttribute = Pick<IAttribute, 'id' | 'label'>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leav/ui",
3
- "version": "0.4.0-58529dc",
3
+ "version": "0.4.0-5a0192c5",
4
4
  "description": "Shared React components and hooks",
5
5
  "scripts": {
6
6
  "prepublishOnly": "yarn build",
@@ -13,7 +13,9 @@
13
13
  "test:ci": "jest --maxWorkers=2",
14
14
  "test:commit": "jest --maxWorkers=50% --onlyChanged",
15
15
  "create_comp": "scripts/createComponent.js",
16
- "publish-ui": "npm publish --access public"
16
+ "publish-ui": "npm publish --access public",
17
+ "get-version": "jq -r '.version' package.json",
18
+ "set-version": "jq --arg v $1 '.version = $v' package.json > package.tmp.json && mv package.tmp.json package.json"
17
19
  },
18
20
  "main": "dist/index",
19
21
  "files": [
@@ -23,6 +25,7 @@
23
25
  "license": "LGPL3",
24
26
  "repository": "https://github.com/leav-solutions/leav-engine",
25
27
  "devDependencies": {
28
+ "@apollo/client": "3.8.1",
26
29
  "@babel/preset-env": "7.20.2",
27
30
  "@babel/preset-react": "7.18.6",
28
31
  "@graphql-codegen/add": "5.0.0",
@@ -36,23 +39,35 @@
36
39
  "@types/jest": "29.0.2",
37
40
  "@types/lodash.isequal": "^4",
38
41
  "@types/object-path": "0.11.1",
42
+ "@types/react": "18.2.14",
39
43
  "@types/react-beautiful-dnd": "13.1.2",
44
+ "@types/react-dom": "18.2.6",
40
45
  "@types/react-table": "7.7.12",
41
46
  "@types/uuid": "^9",
47
+ "antd": "5.22.2",
48
+ "aristid-ds": "14.0.0-7e64d60",
42
49
  "babel-jest": "29.3.1",
43
50
  "commander": "9.5.0",
51
+ "graphql": "16.6.0",
52
+ "i18next": "22.5.0",
44
53
  "jest": "29.0.3",
45
54
  "jest-environment-jsdom": "29.3.1",
46
55
  "jest-styled-components": "7.1.1",
56
+ "react": "18.2.0",
57
+ "react-dom": "18.2.0",
58
+ "react-i18next": "12",
59
+ "react-router-dom": "6.22.0",
60
+ "styled-components": "6.0.8",
47
61
  "ts-jest": "29.0.1",
48
62
  "tsc-alias": "1.8.8",
49
- "typescript": "5.5.3"
63
+ "typescript": "5.5.3",
64
+ "vite": "4.5.14"
50
65
  },
51
66
  "peerDependencies": {
52
67
  "@ant-design/icons": ">=5.2",
53
68
  "@apollo/client": ">=3.8.1",
54
69
  "antd": "5.22.2",
55
- "aristid-ds": "13.0.0-d4d9bc3",
70
+ "aristid-ds": "14.0.0-7e64d60",
56
71
  "dayjs": "^1.11.13",
57
72
  "i18next": "22.5",
58
73
  "react": "18.2.0",
@@ -80,6 +95,7 @@
80
95
  "react-table": "7.8.0",
81
96
  "react-table-sticky": "1.1.3",
82
97
  "uuid": "9.0.1",
83
- "xlsx": "0.18.5"
98
+ "xlsx": "0.18.5",
99
+ "zod": "3.25.67"
84
100
  }
85
- }
101
+ }
@@ -1,3 +0,0 @@
1
- import { IRecordEditionContext } from '../_types';
2
- export declare const RecordEditionContext: import("react").Context<IRecordEditionContext>;
3
- export declare const useRecordEditionContext: () => IRecordEditionContext;
@@ -1,7 +0,0 @@
1
- // Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06
2
- // This file is released under LGPL V3
3
- // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
4
- import { createContext, useContext } from 'react';
5
- export const RecordEditionContext = createContext({ elements: {}, readOnly: false, record: null });
6
- export const useRecordEditionContext = () => useContext(RecordEditionContext);
7
- //# sourceMappingURL=useRecordEditionContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useRecordEditionContext.js","sourceRoot":"","sources":["../../../../../src/components/RecordEdition/EditRecordContent/hooks/useRecordEditionContext.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,aAAa,EAAE,UAAU,EAAC,MAAM,OAAO,CAAC;AAGhD,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAwB,EAAC,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAC,CAAC,CAAC;AAExH,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC"}
@@ -1,8 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import TreeNodeItem from './TreeNodeItem';
3
- import { TreeFieldWrapper } from './TreeFieldWrapper';
4
- export const useDisplayTreeNode = ({ attribute, backendValues, removeTreeNode }) => ({
5
- TreeNodeList: (_jsx(TreeFieldWrapper, { children: backendValues.map((value, index) => (_jsx(TreeNodeItem, { color: value.treeValue.record.whoAmI.color, label: value.treeValue.record.whoAmI.label, ancestors: value.treeValue.ancestors, canDelete: (attribute.required && attribute.multiple_values && backendValues.length > 1) ||
6
- (!attribute.required && attribute.multiple_values), onClickToDelete: () => removeTreeNode(value) }, index))) }))
7
- });
8
- //# sourceMappingURL=useDisplayTreeNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useDisplayTreeNode.js","sourceRoot":"","sources":["../../../../../../../src/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/useDisplayTreeNode.tsx"],"names":[],"mappings":";AAIA,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAQpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAC,SAAS,EAAE,aAAa,EAAE,cAAc,EAA2B,EAAE,EAAE,CAAC,CAAC;IACzG,YAAY,EAAE,CACV,KAAC,gBAAgB,cACZ,aAAa,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,KAAC,YAAY,IAET,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAC1C,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAC1C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,SAAS,EACpC,SAAS,EACL,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;gBAC7E,CAAC,CAAC,SAAS,CAAC,QAAQ,IAAI,SAAS,CAAC,eAAe,CAAC,EAEtD,eAAe,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,IARvC,KAAK,CASZ,CACL,CAAC,GACa,CACtB;CACJ,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"SelectTreeNodeModal.js","sourceRoot":"","sources":["../../../src/components/SelectTreeNodeModal/SelectTreeNodeModal.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAoB,QAAQ,EAAC,MAAM,OAAO,CAAC;AAClD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAC,cAAc,EAAC,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAC,MAAM,YAAY,CAAC;AAW/C,MAAM,CAAC,MAAM,mBAAmB,GAAiD,CAAC,EAC9E,MAAM,EACN,eAAe,EACf,QAAQ,EACR,SAAS,EACT,OAAO,EACP,aAAa,GAAG,KAAK,EACxB,EAAE,EAAE;IACD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAY;QACxD,EAAE,EAAE,eAAe;QACnB,GAAG,EAAE,eAAe;QACpB,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;KACf,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,YAAY,GAAG,GAAG,EAAE;QACtB,QAAQ,CAAC,YAAY,CAAC,CAAC;QACvB,OAAO,EAAE,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,IAAyB,EAAE,QAAiB,EAAE,EAAE;QAC/D,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,QAAQ,IACL,MAAM,EAAE,SAAS,EACjB,aAAa,QACb,OAAO,EAAE,aAAa,EACtB,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,aAAa,EACvB,KAAK,EAAE,CAAC,CAAC,2BAA2B,CAAC,EACrC,KAAK,EAAC,OAAO,EACb,MAAM,EAAE,EAAC,IAAI,EAAE,EAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAC,EAAC,EACtD,QAAQ,QACR,MAAM,EAAE;YACJ,KAAC,SAAS,IAAc,OAAO,EAAE,aAAa,YACzC,CAAC,CAAC,eAAe,CAAC,IADR,QAAQ,CAEX;YACZ,KAAC,SAAS,IAAC,IAAI,EAAC,SAAS,EAAW,OAAO,EAAE,YAAY,YACpD,CAAC,CAAC,cAAc,CAAC,IADQ,KAAK,CAEvB;SACf,EACD,cAAc,kBAEd,KAAC,cAAc,IACX,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,SAAS,EACnB,aAAa,EAAE,CAAC,YAAY,EAAE,GAAG,CAAC,EAClC,aAAa,EAAE,aAAa,GAC9B,GACK,CACd,CAAC;AACN,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- export { SelectTreeNodeModal } from './SelectTreeNodeModal';
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/SelectTreeNodeModal/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,mBAAmB,EAAC,MAAM,uBAAuB,CAAC"}