@j2inn/fin5-ui-utils 5.2.2-beta.8 → 6.0.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 (231) hide show
  1. package/README.md +5 -5
  2. package/dist/fantomProps/createFin5Props/index.d.ts +12 -12
  3. package/dist/fantomProps/createFin5Props/index.js +146 -146
  4. package/dist/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  5. package/dist/fantomProps/createFin5Props/runCreateFin5Props.js +16 -16
  6. package/dist/fantomProps/fantomPropsToObject.d.ts +8 -8
  7. package/dist/fantomProps/fantomPropsToObject.js +183 -183
  8. package/dist/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  9. package/dist/fantomProps/generateJsonFromFantomPropsFile.js +41 -41
  10. package/dist/fantomProps/localePropsToJson.d.ts +1 -1
  11. package/dist/fantomProps/localePropsToJson.js +50 -50
  12. package/dist/fantomProps/readFantomPropsFile.d.ts +5 -5
  13. package/dist/fantomProps/readFantomPropsFile.js +61 -61
  14. package/dist/fin5Top/fin5FileUpload.d.ts +24 -24
  15. package/dist/fin5Top/fin5FileUpload.js +51 -51
  16. package/dist/fin5Top/fin5Top.d.ts +124 -124
  17. package/dist/fin5Top/fin5Top.js +58 -58
  18. package/dist/fin5Top/finEdge2Cloud.d.ts +6 -6
  19. package/dist/fin5Top/finEdge2Cloud.js +15 -15
  20. package/dist/fin5Top/getFin5BinUrl.d.ts +2 -2
  21. package/dist/fin5Top/getFin5BinUrl.js +9 -9
  22. package/dist/fin5Top/openFin5Alarm.d.ts +22 -22
  23. package/dist/fin5Top/openFin5Alarm.js +23 -23
  24. package/dist/fin5Top/openFin5Historian.d.ts +3 -3
  25. package/dist/fin5Top/openFin5Historian.js +19 -19
  26. package/dist/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  27. package/dist/fin5Top/useFin5AppURLHashParameter.js +133 -133
  28. package/dist/index.d.ts +31 -36
  29. package/dist/index.js +65 -70
  30. package/dist/index.js.map +1 -1
  31. package/dist/jobs/jobUtils.d.ts +14 -14
  32. package/dist/jobs/jobUtils.js +15 -15
  33. package/dist/react/app/Fin5AppContainer.d.ts +36 -36
  34. package/dist/react/app/Fin5AppContainer.js +102 -102
  35. package/dist/react/app/Fin5AppRootStore.d.ts +38 -39
  36. package/dist/react/app/Fin5AppRootStore.js +68 -69
  37. package/dist/react/app/Fin5AppRootStore.js.map +1 -1
  38. package/dist/react/components/ErrorBoundary.d.ts +57 -57
  39. package/dist/react/components/ErrorBoundary.js +150 -150
  40. package/dist/react/components/ErrorDisplayer.d.ts +19 -19
  41. package/dist/react/components/ErrorDisplayer.js +36 -36
  42. package/dist/react/components/Loader.d.ts +9 -9
  43. package/dist/react/components/Loader.js +17 -17
  44. package/dist/react/components/LoadingSpinner.d.ts +2 -2
  45. package/dist/react/components/LoadingSpinner.js +27 -27
  46. package/dist/react/components/RecordImage.d.ts +20 -20
  47. package/dist/react/components/RecordImage.js +51 -51
  48. package/dist/react/components/charts/QRCode.d.ts +25 -25
  49. package/dist/react/components/charts/QRCode.js +81 -82
  50. package/dist/react/components/charts/QRCode.js.map +1 -1
  51. package/dist/react/components/charts/pie/PieChart.d.ts +93 -94
  52. package/dist/react/components/charts/pie/PieChart.js +202 -204
  53. package/dist/react/components/charts/pie/PieChart.js.map +1 -1
  54. package/dist/react/components/charts/pie/SimplePieChart.d.ts +20 -21
  55. package/dist/react/components/charts/pie/SimplePieChart.js +55 -55
  56. package/dist/react/components/charts/pie/SimplePieChart.js.map +1 -1
  57. package/dist/react/components/graphics/GraphicViewer.d.ts +10 -10
  58. package/dist/react/components/graphics/GraphicViewer.js +29 -29
  59. package/dist/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  60. package/dist/react/components/graphics/GraphicsTabViewer.js +90 -90
  61. package/dist/react/components/navigation/BasicLayout.d.ts +41 -41
  62. package/dist/react/components/navigation/BasicLayout.js +155 -155
  63. package/dist/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  64. package/dist/react/components/navigation/HeaderSiderLayout.js +110 -110
  65. package/dist/react/components/navigation/MenuPage.d.ts +37 -37
  66. package/dist/react/components/navigation/MenuPage.js +36 -36
  67. package/dist/react/components/navigation/MenuTrigger.d.ts +9 -9
  68. package/dist/react/components/navigation/MenuTrigger.js +33 -33
  69. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  70. package/dist/react/components/navigation/ReactRouterHeaderSiderLayout.js +25 -25
  71. package/dist/react/components/navigation/ReactRouterLayout.d.ts +46 -46
  72. package/dist/react/components/navigation/ReactRouterLayout.js +132 -132
  73. package/dist/react/components/navigation/customRouting/Router.d.ts +12 -12
  74. package/dist/react/components/navigation/customRouting/Router.js +45 -45
  75. package/dist/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  76. package/dist/react/components/navigation/customRouting/RouterLayout.js +61 -61
  77. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  78. package/dist/react/components/resolvable/configurationForm/ConfigurationForm.js +95 -95
  79. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  80. package/dist/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +88 -88
  81. package/dist/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  82. package/dist/react/components/resolvable/configurationForm/getSectionDefault.js +99 -99
  83. package/dist/react/hooks/useFin5BinUrl.d.ts +6 -6
  84. package/dist/react/hooks/useFin5BinUrl.js +15 -15
  85. package/dist/react/hooks/useFin5ColorScheme.d.ts +2 -2
  86. package/dist/react/hooks/useFin5ColorScheme.js +42 -42
  87. package/dist_es/fantomProps/createFin5Props/index.d.ts +12 -12
  88. package/dist_es/fantomProps/createFin5Props/index.js +140 -140
  89. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.d.ts +2 -2
  90. package/dist_es/fantomProps/createFin5Props/runCreateFin5Props.js +11 -11
  91. package/dist_es/fantomProps/fantomPropsToObject.d.ts +8 -8
  92. package/dist_es/fantomProps/fantomPropsToObject.js +178 -178
  93. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.d.ts +4 -4
  94. package/dist_es/fantomProps/generateJsonFromFantomPropsFile.js +12 -12
  95. package/dist_es/fantomProps/localePropsToJson.d.ts +1 -1
  96. package/dist_es/fantomProps/localePropsToJson.js +21 -21
  97. package/dist_es/fantomProps/readFantomPropsFile.d.ts +5 -5
  98. package/dist_es/fantomProps/readFantomPropsFile.js +35 -35
  99. package/dist_es/fin5Top/fin5FileUpload.d.ts +24 -24
  100. package/dist_es/fin5Top/fin5FileUpload.js +47 -47
  101. package/dist_es/fin5Top/fin5Top.d.ts +124 -124
  102. package/dist_es/fin5Top/fin5Top.js +54 -54
  103. package/dist_es/fin5Top/finEdge2Cloud.d.ts +6 -6
  104. package/dist_es/fin5Top/finEdge2Cloud.js +11 -11
  105. package/dist_es/fin5Top/getFin5BinUrl.d.ts +2 -2
  106. package/dist_es/fin5Top/getFin5BinUrl.js +5 -5
  107. package/dist_es/fin5Top/openFin5Alarm.d.ts +22 -22
  108. package/dist_es/fin5Top/openFin5Alarm.js +19 -19
  109. package/dist_es/fin5Top/openFin5Historian.d.ts +3 -3
  110. package/dist_es/fin5Top/openFin5Historian.js +15 -15
  111. package/dist_es/fin5Top/useFin5AppURLHashParameter.d.ts +18 -18
  112. package/dist_es/fin5Top/useFin5AppURLHashParameter.js +124 -124
  113. package/dist_es/index.d.ts +31 -36
  114. package/dist_es/index.js +49 -54
  115. package/dist_es/index.js.map +1 -1
  116. package/dist_es/jobs/jobUtils.d.ts +14 -14
  117. package/dist_es/jobs/jobUtils.js +9 -9
  118. package/dist_es/react/app/Fin5AppContainer.d.ts +36 -36
  119. package/dist_es/react/app/Fin5AppContainer.js +73 -73
  120. package/dist_es/react/app/Fin5AppRootStore.d.ts +38 -39
  121. package/dist_es/react/app/Fin5AppRootStore.js +64 -65
  122. package/dist_es/react/app/Fin5AppRootStore.js.map +1 -1
  123. package/dist_es/react/components/ErrorBoundary.d.ts +57 -57
  124. package/dist_es/react/components/ErrorBoundary.js +123 -123
  125. package/dist_es/react/components/ErrorDisplayer.d.ts +19 -19
  126. package/dist_es/react/components/ErrorDisplayer.js +28 -28
  127. package/dist_es/react/components/Loader.d.ts +9 -9
  128. package/dist_es/react/components/Loader.js +12 -12
  129. package/dist_es/react/components/LoadingSpinner.d.ts +2 -2
  130. package/dist_es/react/components/LoadingSpinner.js +20 -20
  131. package/dist_es/react/components/RecordImage.d.ts +20 -20
  132. package/dist_es/react/components/RecordImage.js +24 -24
  133. package/dist_es/react/components/charts/QRCode.d.ts +25 -25
  134. package/dist_es/react/components/charts/QRCode.js +53 -52
  135. package/dist_es/react/components/charts/QRCode.js.map +1 -1
  136. package/dist_es/react/components/charts/pie/PieChart.d.ts +93 -94
  137. package/dist_es/react/components/charts/pie/PieChart.js +175 -177
  138. package/dist_es/react/components/charts/pie/PieChart.js.map +1 -1
  139. package/dist_es/react/components/charts/pie/SimplePieChart.d.ts +20 -21
  140. package/dist_es/react/components/charts/pie/SimplePieChart.js +25 -25
  141. package/dist_es/react/components/charts/pie/SimplePieChart.js.map +1 -1
  142. package/dist_es/react/components/graphics/GraphicViewer.d.ts +10 -10
  143. package/dist_es/react/components/graphics/GraphicViewer.js +22 -22
  144. package/dist_es/react/components/graphics/GraphicsTabViewer.d.ts +17 -17
  145. package/dist_es/react/components/graphics/GraphicsTabViewer.js +60 -60
  146. package/dist_es/react/components/navigation/BasicLayout.d.ts +41 -41
  147. package/dist_es/react/components/navigation/BasicLayout.js +124 -124
  148. package/dist_es/react/components/navigation/HeaderSiderLayout.d.ts +13 -13
  149. package/dist_es/react/components/navigation/HeaderSiderLayout.js +80 -80
  150. package/dist_es/react/components/navigation/MenuPage.d.ts +37 -37
  151. package/dist_es/react/components/navigation/MenuPage.js +30 -30
  152. package/dist_es/react/components/navigation/MenuTrigger.d.ts +9 -9
  153. package/dist_es/react/components/navigation/MenuTrigger.js +28 -28
  154. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.d.ts +11 -11
  155. package/dist_es/react/components/navigation/ReactRouterHeaderSiderLayout.js +18 -18
  156. package/dist_es/react/components/navigation/ReactRouterLayout.d.ts +46 -46
  157. package/dist_es/react/components/navigation/ReactRouterLayout.js +99 -99
  158. package/dist_es/react/components/navigation/customRouting/Router.d.ts +12 -12
  159. package/dist_es/react/components/navigation/customRouting/Router.js +18 -18
  160. package/dist_es/react/components/navigation/customRouting/RouterLayout.d.ts +11 -11
  161. package/dist_es/react/components/navigation/customRouting/RouterLayout.js +34 -34
  162. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.d.ts +27 -27
  163. package/dist_es/react/components/resolvable/configurationForm/ConfigurationForm.js +64 -64
  164. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.d.ts +16 -16
  165. package/dist_es/react/components/resolvable/configurationForm/ConfigurationFormEntry.js +58 -58
  166. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.d.ts +16 -16
  167. package/dist_es/react/components/resolvable/configurationForm/getSectionDefault.js +94 -94
  168. package/dist_es/react/hooks/useFin5BinUrl.d.ts +6 -6
  169. package/dist_es/react/hooks/useFin5BinUrl.js +11 -11
  170. package/dist_es/react/hooks/useFin5ColorScheme.d.ts +2 -2
  171. package/dist_es/react/hooks/useFin5ColorScheme.js +38 -38
  172. package/package.json +8 -11
  173. package/dist/react/components/charts/line-bar/Chart.d.ts +0 -166
  174. package/dist/react/components/charts/line-bar/Chart.js +0 -443
  175. package/dist/react/components/charts/line-bar/Chart.js.map +0 -1
  176. package/dist/react/components/charts/line-bar/HGridChart.d.ts +0 -58
  177. package/dist/react/components/charts/line-bar/HGridChart.js +0 -289
  178. package/dist/react/components/charts/line-bar/HGridChart.js.map +0 -1
  179. package/dist/react/components/charts/line-bar/ZincGridChart.d.ts +0 -12
  180. package/dist/react/components/charts/line-bar/ZincGridChart.js +0 -24
  181. package/dist/react/components/charts/line-bar/ZincGridChart.js.map +0 -1
  182. package/dist/react/components/makeCustomElement.d.ts +0 -12
  183. package/dist/react/components/makeCustomElement.js +0 -137
  184. package/dist/react/components/makeCustomElement.js.map +0 -1
  185. package/dist/react/hooks/useScreenSize.d.ts +0 -8
  186. package/dist/react/hooks/useScreenSize.js +0 -31
  187. package/dist/react/hooks/useScreenSize.js.map +0 -1
  188. package/dist_es/react/app/Fin5AppContainer.jsx +0 -82
  189. package/dist_es/react/app/Fin5AppContainer.jsx.map +0 -1
  190. package/dist_es/react/components/ErrorBoundary.jsx +0 -150
  191. package/dist_es/react/components/ErrorBoundary.jsx.map +0 -1
  192. package/dist_es/react/components/ErrorDisplayer.jsx +0 -36
  193. package/dist_es/react/components/ErrorDisplayer.jsx.map +0 -1
  194. package/dist_es/react/components/Loader.jsx +0 -13
  195. package/dist_es/react/components/Loader.jsx.map +0 -1
  196. package/dist_es/react/components/LoadingSpinner.jsx +0 -22
  197. package/dist_es/react/components/LoadingSpinner.jsx.map +0 -1
  198. package/dist_es/react/components/charts/line-bar/Chart.d.ts +0 -166
  199. package/dist_es/react/components/charts/line-bar/Chart.js +0 -416
  200. package/dist_es/react/components/charts/line-bar/Chart.js.map +0 -1
  201. package/dist_es/react/components/charts/line-bar/HGridChart.d.ts +0 -58
  202. package/dist_es/react/components/charts/line-bar/HGridChart.js +0 -251
  203. package/dist_es/react/components/charts/line-bar/HGridChart.js.map +0 -1
  204. package/dist_es/react/components/charts/line-bar/ZincGridChart.d.ts +0 -12
  205. package/dist_es/react/components/charts/line-bar/ZincGridChart.js +0 -17
  206. package/dist_es/react/components/charts/line-bar/ZincGridChart.js.map +0 -1
  207. package/dist_es/react/components/graphics/GraphicViewer.jsx +0 -23
  208. package/dist_es/react/components/graphics/GraphicViewer.jsx.map +0 -1
  209. package/dist_es/react/components/graphics/GraphicsTabViewer.jsx +0 -63
  210. package/dist_es/react/components/graphics/GraphicsTabViewer.jsx.map +0 -1
  211. package/dist_es/react/components/makeCustomElement.d.ts +0 -12
  212. package/dist_es/react/components/makeCustomElement.js +0 -129
  213. package/dist_es/react/components/makeCustomElement.js.map +0 -1
  214. package/dist_es/react/components/navigation/BasicLayout.jsx +0 -133
  215. package/dist_es/react/components/navigation/BasicLayout.jsx.map +0 -1
  216. package/dist_es/react/components/navigation/MenuPage.jsx +0 -31
  217. package/dist_es/react/components/navigation/MenuPage.jsx.map +0 -1
  218. package/dist_es/react/components/navigation/Router.d.ts +0 -12
  219. package/dist_es/react/components/navigation/Router.js +0 -19
  220. package/dist_es/react/components/navigation/Router.js.map +0 -1
  221. package/dist_es/react/components/navigation/Router.jsx +0 -19
  222. package/dist_es/react/components/navigation/Router.jsx.map +0 -1
  223. package/dist_es/react/components/navigation/react-router/BasicLayout.d.ts +0 -23
  224. package/dist_es/react/components/navigation/react-router/BasicLayout.js +0 -82
  225. package/dist_es/react/components/navigation/react-router/BasicLayout.js.map +0 -1
  226. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.d.ts +0 -24
  227. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js +0 -82
  228. package/dist_es/react/components/navigation/react-router/ReactRouterBasicLayout.js.map +0 -1
  229. package/dist_es/react/hooks/useScreenSize.d.ts +0 -8
  230. package/dist_es/react/hooks/useScreenSize.js +0 -29
  231. package/dist_es/react/hooks/useScreenSize.js.map +0 -1
@@ -1,11 +1,11 @@
1
- import React from 'react';
2
- import { BasicLayoutProps } from '../BasicLayout';
3
- import { MenuPage } from '../MenuPage';
4
- export interface RouterLayoutProps extends BasicLayoutProps<MenuPage> {
5
- page?: string;
6
- onPageChange?: (page: string) => void;
7
- }
8
- /**
9
- * Basic layout that uses a custom router.
10
- */
11
- export declare const RouterLayout: React.FC<RouterLayoutProps>;
1
+ import React from 'react';
2
+ import { BasicLayoutProps } from '../BasicLayout';
3
+ import { MenuPage } from '../MenuPage';
4
+ export interface RouterLayoutProps extends BasicLayoutProps<MenuPage> {
5
+ page?: string;
6
+ onPageChange?: (page: string) => void;
7
+ }
8
+ /**
9
+ * Basic layout that uses a custom router.
10
+ */
11
+ export declare const RouterLayout: React.FC<RouterLayoutProps>;
@@ -1,35 +1,35 @@
1
- /*
2
- * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
- */
4
- import { Button } from '@j2inn/ui';
5
- import React, { useCallback, useEffect, useState } from 'react';
6
- import { ErrorDisplayer } from '../../ErrorDisplayer';
7
- import { BasicLayout } from '../BasicLayout';
8
- import { findPageByName } from '../MenuPage';
9
- import { Router } from './Router';
10
- /**
11
- * Basic layout that uses a custom router.
12
- */
13
- export const RouterLayout = ({ pages = [], defaultPage = pages?.[0].key ?? '', onPageChange, page, ...otherProps }) => {
14
- const [currentPage, setCurrentPage] = useState(page ?? defaultPage);
15
- useEffect(() => {
16
- if (page) {
17
- setCurrentPage(page);
18
- }
19
- }, [page]);
20
- // Fire onChange
21
- useEffect(() => {
22
- onPageChange?.(currentPage);
23
- }, [currentPage]);
24
- const onSelect = useCallback((key) => {
25
- const page = findPageByName(pages, key);
26
- if (page?.component) {
27
- setCurrentPage(key);
28
- }
29
- }, [pages]);
30
- return (React.createElement(BasicLayout, { ...otherProps, pages: pages, defaultPage: defaultPage, onSelect: onSelect, selectedPages: [currentPage] },
31
- React.createElement(Router, { pages: pages, currentPage: currentPage, fallbackComponent: React.createElement(ErrorDisplayer, { error: new Error('Page Not Found'), extra: [
32
- React.createElement(Button, { type: 'primary', key: 'refresh', onClick: () => setCurrentPage(defaultPage) }, "Go Home"),
33
- ] }) })));
34
- };
1
+ /*
2
+ * Copyright (c) 2022, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { Button } from '@j2inn/ui';
5
+ import React, { useCallback, useEffect, useState } from 'react';
6
+ import { ErrorDisplayer } from '../../ErrorDisplayer';
7
+ import { BasicLayout } from '../BasicLayout';
8
+ import { findPageByName } from '../MenuPage';
9
+ import { Router } from './Router';
10
+ /**
11
+ * Basic layout that uses a custom router.
12
+ */
13
+ export const RouterLayout = ({ pages = [], defaultPage = pages?.[0].key ?? '', onPageChange, page, ...otherProps }) => {
14
+ const [currentPage, setCurrentPage] = useState(page ?? defaultPage);
15
+ useEffect(() => {
16
+ if (page) {
17
+ setCurrentPage(page);
18
+ }
19
+ }, [page]);
20
+ // Fire onChange
21
+ useEffect(() => {
22
+ onPageChange?.(currentPage);
23
+ }, [currentPage]);
24
+ const onSelect = useCallback((key) => {
25
+ const page = findPageByName(pages, key);
26
+ if (page?.component) {
27
+ setCurrentPage(key);
28
+ }
29
+ }, [pages]);
30
+ return (React.createElement(BasicLayout, { ...otherProps, pages: pages, defaultPage: defaultPage, onSelect: onSelect, selectedPages: [currentPage] },
31
+ React.createElement(Router, { pages: pages, currentPage: currentPage, fallbackComponent: React.createElement(ErrorDisplayer, { error: new Error('Page Not Found'), extra: [
32
+ React.createElement(Button, { type: 'primary', key: 'refresh', onClick: () => setCurrentPage(defaultPage) }, "Go Home"),
33
+ ] }) })));
34
+ };
35
35
  //# sourceMappingURL=RouterLayout.js.map
@@ -1,27 +1,27 @@
1
- /// <reference types="react" />
2
- import { ParametersOfSection, UiElementData } from '@j2inn/resolvable-ui-elements';
3
- import { HDict } from 'haystack-core';
4
- declare type Layout = 'horizontal' | 'vertical';
5
- interface ConfigurationFormProps<T extends UiElementData> {
6
- section: T;
7
- params: ParametersOfSection<T>;
8
- readOnlySection?: UiElementData;
9
- onSave: (config: HDict) => void | Promise<unknown>;
10
- saveText?: string;
11
- formatKey?: (key: string) => string;
12
- options?: HDict;
13
- layout?: Layout;
14
- className?: string;
15
- entryClassName?: string;
16
- saveBtnClassName?: string;
17
- animateSaveButton?: boolean;
18
- }
19
- export declare const ConfigurationForm: <T extends UiElementData<import("@j2inn/resolvable-ui-elements/dist/resolvableElements/elements/UiElement").UiElementMeta>>({ section, params, readOnlySection, onSave, formatKey, saveText, options, layout, className, entryClassName, saveBtnClassName, animateSaveButton, }: ConfigurationFormProps<T>) => JSX.Element;
20
- interface ConfigurationFormReadOnlyEntriesProps<T extends UiElementData> {
21
- params: ParametersOfSection<T>;
22
- readOnlySection: T;
23
- formatKey?: (key: string) => string;
24
- className?: string;
25
- }
26
- export declare const ConfigurationFormReadOnlyEntries: <T extends UiElementData<import("@j2inn/resolvable-ui-elements/dist/resolvableElements/elements/UiElement").UiElementMeta>>({ readOnlySection, params, formatKey, className, }: ConfigurationFormReadOnlyEntriesProps<T>) => JSX.Element;
27
- export {};
1
+ /// <reference types="react" />
2
+ import { ParametersOfSection, UiElementData } from '@j2inn/resolvable-ui-elements';
3
+ import { HDict } from 'haystack-core';
4
+ declare type Layout = 'horizontal' | 'vertical';
5
+ interface ConfigurationFormProps<T extends UiElementData> {
6
+ section: T;
7
+ params: ParametersOfSection<T>;
8
+ readOnlySection?: UiElementData;
9
+ onSave: (config: HDict) => void | Promise<unknown>;
10
+ saveText?: string;
11
+ formatKey?: (key: string) => string;
12
+ options?: HDict;
13
+ layout?: Layout;
14
+ className?: string;
15
+ entryClassName?: string;
16
+ saveBtnClassName?: string;
17
+ animateSaveButton?: boolean;
18
+ }
19
+ export declare const ConfigurationForm: <T extends UiElementData<import("@j2inn/resolvable-ui-elements/dist/resolvableElements/elements/UiElement").UiElementMeta>>({ section, params, readOnlySection, onSave, formatKey, saveText, options, layout, className, entryClassName, saveBtnClassName, animateSaveButton, }: ConfigurationFormProps<T>) => JSX.Element;
20
+ interface ConfigurationFormReadOnlyEntriesProps<T extends UiElementData> {
21
+ params: ParametersOfSection<T>;
22
+ readOnlySection: T;
23
+ formatKey?: (key: string) => string;
24
+ className?: string;
25
+ }
26
+ export declare const ConfigurationFormReadOnlyEntries: <T extends UiElementData<import("@j2inn/resolvable-ui-elements/dist/resolvableElements/elements/UiElement").UiElementMeta>>({ readOnlySection, params, formatKey, className, }: ConfigurationFormReadOnlyEntriesProps<T>) => JSX.Element;
27
+ export {};
@@ -1,65 +1,65 @@
1
- /*
2
- * Copyright (c) 2023, J2 Innovations. All Rights Reserved
3
- */
4
- import { useResolveSection, } from '@j2inn/resolvable-ui-elements';
5
- import { Button } from '@j2inn/ui';
6
- import cn from 'classnames';
7
- import { HDict } from 'haystack-core';
8
- import React, { useMemo, useState } from 'react';
9
- import { createUseStyles } from 'react-jss';
10
- import { ConfigurationFormEntry, } from './ConfigurationFormEntry';
11
- import { getSectionDefault } from './getSectionDefault';
12
- const useStyles = createUseStyles({
13
- formGrid: ({ layout }) => ({
14
- display: 'grid',
15
- gridTemplateColumns: layout === 'horizontal' ? '1fr 1fr' : '1fr',
16
- gap: '0.5em 2em',
17
- }),
18
- saveButtonRow: ({ layout }) => ({
19
- gridColumn: layout === 'horizontal' ? 'span 2' : 'span 1',
20
- transition: 'transform 0.75s, max-height 0.75s, opacity 0.75s',
21
- maxHeight: 200,
22
- transform: 'scaleY(1)',
23
- marginTop: '1em',
24
- }),
25
- saveButtonRowNotVisible: {
26
- transform: 'scaleY(0)',
27
- maxHeight: 0,
28
- opacity: 0,
29
- },
30
- saveButton: {
31
- transition: 'all 0.75s',
32
- width: 120,
33
- float: 'right',
34
- },
35
- });
36
- export const ConfigurationForm = ({ section, params, readOnlySection, onSave, formatKey, saveText, options, layout = 'horizontal', className, entryClassName, saveBtnClassName, animateSaveButton = true, }) => {
37
- const classes = useStyles({ layout });
38
- const [resolvedSection] = useResolveSection(section, params);
39
- const entries = useMemo(() => getSectionDefault(section), [section]);
40
- const [changes, setChanges] = useState();
41
- const [canSave, setCanSave] = useState(false);
42
- const [isSaving, setIsSaving] = useState(false);
43
- return (React.createElement("div", { className: cn(classes.formGrid, className) },
44
- Object.entries(entries).map(([key, defaultValue]) => (React.createElement(ConfigurationFormEntry, { key: key, options: options?.get(key), name: formatKey ? formatKey(key) : key, value: resolvedSection[key] ?? defaultValue, onChange: (val) => {
45
- setChanges({ ...changes, [key]: val });
46
- setCanSave(true);
47
- }, className: entryClassName }))),
48
- readOnlySection && (React.createElement(ConfigurationFormReadOnlyEntries, { readOnlySection: readOnlySection, formatKey: formatKey, params: params, className: entryClassName })),
49
- React.createElement("div", { className: cn(classes.saveButtonRow, {
50
- [classes.saveButtonRowNotVisible]: animateSaveButton && !canSave,
51
- }) },
52
- React.createElement(Button, { disabled: !canSave, className: cn(classes.saveButton, saveBtnClassName), type: 'primary', loading: isSaving, onClick: async () => {
53
- setIsSaving(true);
54
- await onSave(HDict.make(changes));
55
- setChanges(undefined); // Reset changes dict
56
- setIsSaving(false);
57
- setCanSave(false);
58
- } }, saveText ?? 'Save'))));
59
- };
60
- export const ConfigurationFormReadOnlyEntries = ({ readOnlySection, params, formatKey, className, }) => {
61
- const [resolvedReadOnlySection] = useResolveSection(readOnlySection, params);
62
- return (React.createElement(React.Fragment, null, resolvedReadOnlySection &&
63
- Object.entries(resolvedReadOnlySection).map(([key, value]) => (React.createElement(ConfigurationFormEntry, { key: key, name: formatKey ? formatKey(key) : key, disabled: true, value: value, className: className })))));
64
- };
1
+ /*
2
+ * Copyright (c) 2023, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { useResolveSection, } from '@j2inn/resolvable-ui-elements';
5
+ import { Button } from '@j2inn/ui';
6
+ import cn from 'classnames';
7
+ import { HDict } from 'haystack-core';
8
+ import React, { useMemo, useState } from 'react';
9
+ import { createUseStyles } from 'react-jss';
10
+ import { ConfigurationFormEntry, } from './ConfigurationFormEntry';
11
+ import { getSectionDefault } from './getSectionDefault';
12
+ const useStyles = createUseStyles({
13
+ formGrid: ({ layout }) => ({
14
+ display: 'grid',
15
+ gridTemplateColumns: layout === 'horizontal' ? '1fr 1fr' : '1fr',
16
+ gap: '0.5em 2em',
17
+ }),
18
+ saveButtonRow: ({ layout }) => ({
19
+ gridColumn: layout === 'horizontal' ? 'span 2' : 'span 1',
20
+ transition: 'transform 0.75s, max-height 0.75s, opacity 0.75s',
21
+ maxHeight: 200,
22
+ transform: 'scaleY(1)',
23
+ marginTop: '1em',
24
+ }),
25
+ saveButtonRowNotVisible: {
26
+ transform: 'scaleY(0)',
27
+ maxHeight: 0,
28
+ opacity: 0,
29
+ },
30
+ saveButton: {
31
+ transition: 'all 0.75s',
32
+ width: 120,
33
+ float: 'right',
34
+ },
35
+ });
36
+ export const ConfigurationForm = ({ section, params, readOnlySection, onSave, formatKey, saveText, options, layout = 'horizontal', className, entryClassName, saveBtnClassName, animateSaveButton = true, }) => {
37
+ const classes = useStyles({ layout });
38
+ const [resolvedSection] = useResolveSection(section, params);
39
+ const entries = useMemo(() => getSectionDefault(section), [section]);
40
+ const [changes, setChanges] = useState();
41
+ const [canSave, setCanSave] = useState(false);
42
+ const [isSaving, setIsSaving] = useState(false);
43
+ return (React.createElement("div", { className: cn(classes.formGrid, className) },
44
+ Object.entries(entries).map(([key, defaultValue]) => (React.createElement(ConfigurationFormEntry, { key: key, options: options?.get(key), name: formatKey ? formatKey(key) : key, value: resolvedSection[key] ?? defaultValue, onChange: (val) => {
45
+ setChanges({ ...changes, [key]: val });
46
+ setCanSave(true);
47
+ }, className: entryClassName }))),
48
+ readOnlySection && (React.createElement(ConfigurationFormReadOnlyEntries, { readOnlySection: readOnlySection, formatKey: formatKey, params: params, className: entryClassName })),
49
+ React.createElement("div", { className: cn(classes.saveButtonRow, {
50
+ [classes.saveButtonRowNotVisible]: animateSaveButton && !canSave,
51
+ }) },
52
+ React.createElement(Button, { disabled: !canSave, className: cn(classes.saveButton, saveBtnClassName), type: 'primary', loading: isSaving, onClick: async () => {
53
+ setIsSaving(true);
54
+ await onSave(HDict.make(changes));
55
+ setChanges(undefined); // Reset changes dict
56
+ setIsSaving(false);
57
+ setCanSave(false);
58
+ } }, saveText ?? 'Save'))));
59
+ };
60
+ export const ConfigurationFormReadOnlyEntries = ({ readOnlySection, params, formatKey, className, }) => {
61
+ const [resolvedReadOnlySection] = useResolveSection(readOnlySection, params);
62
+ return (React.createElement(React.Fragment, null, resolvedReadOnlySection &&
63
+ Object.entries(resolvedReadOnlySection).map(([key, value]) => (React.createElement(ConfigurationFormEntry, { key: key, name: formatKey ? formatKey(key) : key, disabled: true, value: value, className: className })))));
64
+ };
65
65
  //# sourceMappingURL=ConfigurationForm.js.map
@@ -1,16 +1,16 @@
1
- /// <reference types="react" />
2
- import { HDict, HGrid, HNum, HRef, HStr, HVal } from 'haystack-core';
3
- export interface ConfigurationFormEntryOption extends HDict {
4
- value: HStr | HNum | HRef;
5
- label: HStr;
6
- }
7
- interface ConfigurationFormEntryProps {
8
- name: string;
9
- value: HVal | unknown;
10
- onChange?: (val: HVal) => void;
11
- disabled?: boolean;
12
- options?: HGrid<ConfigurationFormEntryOption>;
13
- className?: string;
14
- }
15
- export declare const ConfigurationFormEntry: ({ name, value, onChange, disabled, options, className, }: ConfigurationFormEntryProps) => JSX.Element;
16
- export {};
1
+ /// <reference types="react" />
2
+ import { HDict, HGrid, HNum, HRef, HStr, HVal } from 'haystack-core';
3
+ export interface ConfigurationFormEntryOption extends HDict {
4
+ value: HStr | HNum | HRef;
5
+ label: HStr;
6
+ }
7
+ interface ConfigurationFormEntryProps {
8
+ name: string;
9
+ value: HVal | unknown;
10
+ onChange?: (val: HVal) => void;
11
+ disabled?: boolean;
12
+ options?: HGrid<ConfigurationFormEntryOption>;
13
+ className?: string;
14
+ }
15
+ export declare const ConfigurationFormEntry: ({ name, value, onChange, disabled, options, className, }: ConfigurationFormEntryProps) => JSX.Element;
16
+ export {};
@@ -1,59 +1,59 @@
1
- /*
2
- * Copyright (c) 2023, J2 Innovations. All Rights Reserved
3
- */
4
- import { ant_prefix, HInput, Input, Select } from '@j2inn/ui';
5
- import cn from 'classnames';
6
- import { HNum, HRef, HStr, isHVal, Kind, valueIsKind, } from 'haystack-core';
7
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
8
- import { createUseStyles } from 'react-jss';
9
- const useStyles = createUseStyles((theme) => ({
10
- formEntry: {
11
- [`& .${ant_prefix}-input`]: {
12
- height: 32,
13
- },
14
- },
15
- entryTitle: {
16
- fontWeight: 600,
17
- fontSize: '1em',
18
- color: theme.textColorSecondary,
19
- },
20
- select: {
21
- width: '100%',
22
- },
23
- }));
24
- const getHValFromSelectValue = (selectValue, initialHVal) => {
25
- if (valueIsKind(initialHVal, Kind.Number)) {
26
- return HNum.make(selectValue, initialHVal.unit);
27
- }
28
- else if (valueIsKind(initialHVal, Kind.Ref)) {
29
- return HRef.make(selectValue);
30
- }
31
- return HStr.make(selectValue);
32
- };
33
- export const ConfigurationFormEntry = ({ name, value, onChange, disabled, options, className, }) => {
34
- const classes = useStyles();
35
- if (!isHVal(value)) {
36
- return React.createElement(React.Fragment, null, `${name} = ${value}`);
37
- }
38
- const [showedVal, setShowedVal] = useState(value);
39
- useEffect(() => {
40
- setShowedVal(value);
41
- }, [value]);
42
- const selectOptions = useMemo(() => options?.getRows().map((cfeOpt) => ({
43
- value: cfeOpt.value.value,
44
- label: cfeOpt.label.value,
45
- })), [options]);
46
- const onInputChange = useCallback((val) => {
47
- setShowedVal(val);
48
- onChange?.(val);
49
- }, [onChange]);
50
- return (React.createElement("div", { className: cn(classes.formEntry, className) },
51
- React.createElement("div", { className: classes.entryTitle }, name),
52
- selectOptions ? (React.createElement(Select, { showSearch: true, className: classes.select, value: showedVal.value, options: selectOptions, disabled: disabled, onChange: (val) => {
53
- if (val != null) {
54
- const newVal = getHValFromSelectValue(val, value);
55
- onInputChange(newVal);
56
- }
57
- } })) : !disabled ? (React.createElement(HInput, { value: showedVal, editable: true, onChange: onInputChange })) : (React.createElement(Input, { disabled: true, value: showedVal.toString() }))));
58
- };
1
+ /*
2
+ * Copyright (c) 2023, J2 Innovations. All Rights Reserved
3
+ */
4
+ import { ant_prefix, HInput, Input, Select } from '@j2inn/ui';
5
+ import cn from 'classnames';
6
+ import { HNum, HRef, HStr, isHVal, Kind, valueIsKind, } from 'haystack-core';
7
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
8
+ import { createUseStyles } from 'react-jss';
9
+ const useStyles = createUseStyles((theme) => ({
10
+ formEntry: {
11
+ [`& .${ant_prefix}-input`]: {
12
+ height: 32,
13
+ },
14
+ },
15
+ entryTitle: {
16
+ fontWeight: 600,
17
+ fontSize: '1em',
18
+ color: theme.textColorSecondary,
19
+ },
20
+ select: {
21
+ width: '100%',
22
+ },
23
+ }));
24
+ const getHValFromSelectValue = (selectValue, initialHVal) => {
25
+ if (valueIsKind(initialHVal, Kind.Number)) {
26
+ return HNum.make(selectValue, initialHVal.unit);
27
+ }
28
+ else if (valueIsKind(initialHVal, Kind.Ref)) {
29
+ return HRef.make(selectValue);
30
+ }
31
+ return HStr.make(selectValue);
32
+ };
33
+ export const ConfigurationFormEntry = ({ name, value, onChange, disabled, options, className, }) => {
34
+ const classes = useStyles();
35
+ if (!isHVal(value)) {
36
+ return React.createElement(React.Fragment, null, `${name} = ${value}`);
37
+ }
38
+ const [showedVal, setShowedVal] = useState(value);
39
+ useEffect(() => {
40
+ setShowedVal(value);
41
+ }, [value]);
42
+ const selectOptions = useMemo(() => options?.getRows().map((cfeOpt) => ({
43
+ value: cfeOpt.value.value,
44
+ label: cfeOpt.label.value,
45
+ })), [options]);
46
+ const onInputChange = useCallback((val) => {
47
+ setShowedVal(val);
48
+ onChange?.(val);
49
+ }, [onChange]);
50
+ return (React.createElement("div", { className: cn(classes.formEntry, className) },
51
+ React.createElement("div", { className: classes.entryTitle }, name),
52
+ selectOptions ? (React.createElement(Select, { showSearch: true, className: classes.select, value: showedVal.value, options: selectOptions, disabled: disabled, onChange: (val) => {
53
+ if (val != null) {
54
+ const newVal = getHValFromSelectValue(val, value);
55
+ onInputChange(newVal);
56
+ }
57
+ } })) : !disabled ? (React.createElement(HInput, { value: showedVal, editable: true, onChange: onInputChange })) : (React.createElement(Input, { disabled: true, value: showedVal.toString() }))));
58
+ };
59
59
  //# sourceMappingURL=ConfigurationFormEntry.js.map
@@ -1,16 +1,16 @@
1
- import { UiElementData } from '@j2inn/resolvable-ui-elements';
2
- import { HVal } from 'haystack-core';
3
- /**
4
- * Get default values for all elements that should resolve into an HVal.
5
- * @param section a section element
6
- * @returns an object containing as key the section element name and as value the default HVal.
7
- */
8
- export declare const getSectionDefault: (section: UiElementData) => {
9
- [key: string]: HVal;
10
- };
11
- /**
12
- * Get a default for a specific kind of HVal.
13
- * @param kind can be expressed as new or old Hayson, or alternatively the haystack-core type name
14
- * @returns
15
- */
16
- export declare const getDefaultHVal: (kind?: string) => HVal | undefined;
1
+ import { UiElementData } from '@j2inn/resolvable-ui-elements';
2
+ import { HVal } from 'haystack-core';
3
+ /**
4
+ * Get default values for all elements that should resolve into an HVal.
5
+ * @param section a section element
6
+ * @returns an object containing as key the section element name and as value the default HVal.
7
+ */
8
+ export declare const getSectionDefault: (section: UiElementData) => {
9
+ [key: string]: HVal;
10
+ };
11
+ /**
12
+ * Get a default for a specific kind of HVal.
13
+ * @param kind can be expressed as new or old Hayson, or alternatively the haystack-core type name
14
+ * @returns
15
+ */
16
+ export declare const getDefaultHVal: (kind?: string) => HVal | undefined;