@pega/react-sdk-components 0.25.3 → 0.25.5

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 (90) hide show
  1. package/lib/components/designSystemExtension/Banner/Banner.d.ts.map +1 -1
  2. package/lib/components/designSystemExtension/Banner/Banner.js +1 -1
  3. package/lib/components/designSystemExtension/Banner/Banner.js.map +1 -1
  4. package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.d.ts.map +1 -1
  5. package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js +29 -25
  6. package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js.map +1 -1
  7. package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.css +6 -13
  8. package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.d.ts.map +1 -1
  9. package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.js +11 -1
  10. package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.js.map +1 -1
  11. package/lib/components/field/Group/Group.d.ts.map +1 -1
  12. package/lib/components/field/Group/Group.js +2 -1
  13. package/lib/components/field/Group/Group.js.map +1 -1
  14. package/lib/components/field/Location/Location.css +4 -0
  15. package/lib/components/field/Location/Location.d.ts +1 -0
  16. package/lib/components/field/Location/Location.d.ts.map +1 -1
  17. package/lib/components/field/Location/Location.js +1 -0
  18. package/lib/components/field/Location/Location.js.map +1 -1
  19. package/lib/components/field/RadioButtons/RadioButtons.js +1 -1
  20. package/lib/components/field/RadioButtons/RadioButtons.js.map +1 -1
  21. package/lib/components/field/RichText/RichText.css +79 -0
  22. package/lib/components/field/RichText/RichText.d.ts +1 -0
  23. package/lib/components/field/RichText/RichText.d.ts.map +1 -1
  24. package/lib/components/field/RichText/RichText.js +1 -0
  25. package/lib/components/field/RichText/RichText.js.map +1 -1
  26. package/lib/components/field/SelectableCard/SelectableCard.js +2 -2
  27. package/lib/components/field/SelectableCard/SelectableCard.js.map +1 -1
  28. package/lib/components/field/UserReference/UserReference.d.ts.map +1 -1
  29. package/lib/components/field/UserReference/UserReference.js +1 -1
  30. package/lib/components/field/UserReference/UserReference.js.map +1 -1
  31. package/lib/components/helpers/simpleTableHelpers.js +1 -1
  32. package/lib/components/helpers/simpleTableHelpers.js.map +1 -1
  33. package/lib/components/infra/Assignment/Assignment.d.ts.map +1 -1
  34. package/lib/components/infra/Assignment/Assignment.js +29 -24
  35. package/lib/components/infra/Assignment/Assignment.js.map +1 -1
  36. package/lib/components/infra/MultiStep/MultiStep.css +44 -64
  37. package/lib/components/infra/MultiStep/MultiStep.d.ts.map +1 -1
  38. package/lib/components/infra/MultiStep/MultiStep.js +18 -36
  39. package/lib/components/infra/MultiStep/MultiStep.js.map +1 -1
  40. package/lib/components/infra/View/View.d.ts.map +1 -1
  41. package/lib/components/infra/View/View.js +2 -1
  42. package/lib/components/infra/View/View.js.map +1 -1
  43. package/lib/components/template/AppShell/AppShell.d.ts.map +1 -1
  44. package/lib/components/template/AppShell/AppShell.js +2 -4
  45. package/lib/components/template/AppShell/AppShell.js.map +1 -1
  46. package/lib/components/template/CaseSummary/CaseSummary.d.ts +2 -0
  47. package/lib/components/template/CaseSummary/CaseSummary.d.ts.map +1 -1
  48. package/lib/components/template/CaseSummary/CaseSummary.js +2 -68
  49. package/lib/components/template/CaseSummary/CaseSummary.js.map +1 -1
  50. package/lib/components/template/CaseView/CaseView.d.ts.map +1 -1
  51. package/lib/components/template/CaseView/CaseView.js +16 -12
  52. package/lib/components/template/CaseView/CaseView.js.map +1 -1
  53. package/lib/components/template/DefaultPage/DefaultPage.d.ts +36 -0
  54. package/lib/components/template/DefaultPage/DefaultPage.d.ts.map +1 -0
  55. package/lib/components/template/DefaultPage/DefaultPage.js +28 -0
  56. package/lib/components/template/DefaultPage/DefaultPage.js.map +1 -0
  57. package/lib/components/template/DefaultPage/index.d.ts +2 -0
  58. package/lib/components/template/DefaultPage/index.d.ts.map +1 -0
  59. package/lib/components/template/DefaultPage/index.js +2 -0
  60. package/lib/components/template/DefaultPage/index.js.map +1 -0
  61. package/lib/components/template/ListView/ListView.d.ts.map +1 -1
  62. package/lib/components/template/ListView/ListView.js +26 -31
  63. package/lib/components/template/ListView/ListView.js.map +1 -1
  64. package/lib/components/template/SelfServiceCaseView/SelfServiceCaseView.d.ts +2 -0
  65. package/lib/components/template/SelfServiceCaseView/SelfServiceCaseView.d.ts.map +1 -0
  66. package/lib/components/template/SelfServiceCaseView/SelfServiceCaseView.js +73 -0
  67. package/lib/components/template/SelfServiceCaseView/SelfServiceCaseView.js.map +1 -0
  68. package/lib/components/template/SelfServiceCaseView/index.d.ts +2 -0
  69. package/lib/components/template/SelfServiceCaseView/index.d.ts.map +1 -0
  70. package/lib/components/template/SelfServiceCaseView/index.js +2 -0
  71. package/lib/components/template/SelfServiceCaseView/index.js.map +1 -0
  72. package/lib/components/template/WssNavBar/WssNavBar.js +3 -3
  73. package/lib/components/template/WssNavBar/WssNavBar.js.map +1 -1
  74. package/lib/components/template/utils.d.ts +7 -0
  75. package/lib/components/template/utils.d.ts.map +1 -0
  76. package/lib/components/template/utils.js +52 -0
  77. package/lib/components/template/utils.js.map +1 -0
  78. package/lib/components/widget/ToDo/ToDo.d.ts.map +1 -1
  79. package/lib/components/widget/ToDo/ToDo.js +1 -5
  80. package/lib/components/widget/ToDo/ToDo.js.map +1 -1
  81. package/lib/samples/Embedded/styles.css +26 -0
  82. package/lib/sdk-pega-component-map.d.ts +4 -0
  83. package/lib/sdk-pega-component-map.d.ts.map +1 -1
  84. package/lib/sdk-pega-component-map.js +4 -0
  85. package/lib/sdk-pega-component-map.js.map +1 -1
  86. package/lib/theme.d.ts +7 -1
  87. package/lib/theme.d.ts.map +1 -1
  88. package/lib/theme.js +35 -15
  89. package/lib/theme.js.map +1 -1
  90. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/Banner/Banner.tsx"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAC;AAKtB,UAAU,WAAW;IAEnB,CAAC,EAAE,GAAG,CAAC;IACP,CAAC,EAAE,GAAG,CAAC;IACP,MAAM,EAAE;QACN,OAAO,EAAE,GAAG,CAAC;QACb,eAAe,EAAE,GAAG,CAAC;QACrB,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,EAAE,GAAG,CAAC;QACb,eAAe,EAAE,GAAG,CAAC;QACrB,SAAS,EAAE,GAAG,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,GAAG,CAAC;CACd;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW,2CA4BhD"}
1
+ {"version":3,"file":"Banner.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/Banner/Banner.tsx"],"names":[],"mappings":"AACA,OAAO,cAAc,CAAC;AAKtB,UAAU,WAAW;IAEnB,CAAC,EAAE,GAAG,CAAC;IACP,CAAC,EAAE,GAAG,CAAC;IACP,MAAM,EAAE;QACN,OAAO,EAAE,GAAG,CAAC;QACb,eAAe,EAAE,GAAG,CAAC;QACrB,KAAK,EAAE,GAAG,CAAC;QACX,OAAO,EAAE,GAAG,CAAC;QACb,eAAe,EAAE,GAAG,CAAC;QACrB,SAAS,EAAE,GAAG,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,GAAG,CAAC;CACd;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,WAAW,2CA+BhD"}
@@ -9,6 +9,6 @@ export default function Banner(props) {
9
9
  'narrow-wide': [4, 8],
10
10
  'wide-narrow': [8, 4]
11
11
  };
12
- return (_jsxs("div", { style: { marginBottom: '2rem' }, children: [_jsx("div", { className: 'background-image-style', style: { backgroundImage: `url(${backgroundImage})` }, children: _jsx("div", { className: 'background-style content', children: _jsxs("div", { children: [_jsx("h1", { className: 'title', children: title }), _jsx("p", { className: 'message', children: message })] }) }) }), _jsxs(Grid2, { container: true, size: 12, className: 'banner-layout', spacing: 1, children: [_jsx(Grid2, { size: { xs: variantMap[variant][0] }, style: { padding: '1em' }, children: a }), _jsx(Grid2, { size: { xs: variantMap[variant][1] }, style: { padding: '1em' }, children: b })] })] }));
12
+ return (_jsxs("div", { style: { marginBottom: '2rem' }, children: [_jsx("div", { className: 'background-image-style', style: { backgroundImage: `url(${backgroundImage})` }, children: _jsx("div", { className: 'background-style content', children: _jsxs("div", { children: [_jsx("h1", { className: 'title', children: title }), _jsx("p", { className: 'message', children: message })] }) }) }), _jsxs(Grid2, { container: true, size: 12, className: 'banner-layout', spacing: 1, children: [_jsx(Grid2, { size: { xs: variantMap[variant][0] }, style: { padding: '1rem', backgroundColor: 'var(--app-form-bg-color)', borderRadius: '16px', height: 'fit-content' }, children: a }), _jsx(Grid2, { size: { xs: variantMap[variant][1] }, style: { padding: '0rem 1rem' }, children: b })] })] }));
13
13
  }
14
14
  //# sourceMappingURL=Banner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/Banner/Banner.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,cAAc,CAAC;AAoBtB,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAkB;IAC/C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACnD,MAAM,UAAU,GAAG;QACjB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KACtB,CAAC;IACF,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,aAClC,cAAK,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,eAAe,GAAG,EAAE,YAC3F,cAAK,SAAS,EAAC,0BAA0B,YACvC,0BACE,aAAI,SAAS,EAAC,OAAO,YAAE,KAAK,GAAM,EAClC,YAAG,SAAS,EAAC,SAAS,YAAE,OAAO,GAAK,IAChC,GACF,GACF,EACN,MAAC,KAAK,IAAC,SAAS,QAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,CAAC,aAC7D,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YACnE,CAAC,GACI,EACR,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,YACnE,CAAC,GACI,IACF,IACJ,CACP,CAAC;AACJ,CAAC","sourcesContent":["import Grid2 from '@mui/material/Grid2';\nimport './Banner.css';\n\n// AlertBanner is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\n\ninterface BannerProps {\n // If any, enter additional props that only exist on this component\n a: any;\n b: any;\n banner: {\n variant: any;\n backgroundColor: any;\n title: any;\n message: any;\n backgroundImage: any;\n tintImage: any;\n };\n variant: any;\n}\n\nexport default function Banner(props: BannerProps) {\n const { a, b, banner, variant } = props;\n const { title, message, backgroundImage } = banner;\n const variantMap = {\n 'two-column': [6, 6],\n 'narrow-wide': [4, 8],\n 'wide-narrow': [8, 4]\n };\n return (\n <div style={{ marginBottom: '2rem' }}>\n <div className='background-image-style' style={{ backgroundImage: `url(${backgroundImage})` }}>\n <div className='background-style content'>\n <div>\n <h1 className='title'>{title}</h1>\n <p className='message'>{message}</p>\n </div>\n </div>\n </div>\n <Grid2 container size={12} className='banner-layout' spacing={1}>\n <Grid2 size={{ xs: variantMap[variant][0] }} style={{ padding: '1em' }}>\n {a}\n </Grid2>\n <Grid2 size={{ xs: variantMap[variant][1] }} style={{ padding: '1em' }}>\n {b}\n </Grid2>\n </Grid2>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"Banner.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/Banner/Banner.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,cAAc,CAAC;AAoBtB,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAkB;IAC/C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACxC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IACnD,MAAM,UAAU,GAAG;QACjB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACrB,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;KACtB,CAAC;IACF,OAAO,CACL,eAAK,KAAK,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,aAClC,cAAK,SAAS,EAAC,wBAAwB,EAAC,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,eAAe,GAAG,EAAE,YAC3F,cAAK,SAAS,EAAC,0BAA0B,YACvC,0BACE,aAAI,SAAS,EAAC,OAAO,YAAE,KAAK,GAAM,EAClC,YAAG,SAAS,EAAC,SAAS,YAAE,OAAO,GAAK,IAChC,GACF,GACF,EACN,MAAC,KAAK,IAAC,SAAS,QAAC,IAAI,EAAE,EAAE,EAAE,SAAS,EAAC,eAAe,EAAC,OAAO,EAAE,CAAC,aAC7D,KAAC,KAAK,IACJ,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EACpC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,YAEnH,CAAC,GACI,EACR,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,YACzE,CAAC,GACI,IACF,IACJ,CACP,CAAC;AACJ,CAAC","sourcesContent":["import Grid2 from '@mui/material/Grid2';\nimport './Banner.css';\n\n// AlertBanner is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\n\ninterface BannerProps {\n // If any, enter additional props that only exist on this component\n a: any;\n b: any;\n banner: {\n variant: any;\n backgroundColor: any;\n title: any;\n message: any;\n backgroundImage: any;\n tintImage: any;\n };\n variant: any;\n}\n\nexport default function Banner(props: BannerProps) {\n const { a, b, banner, variant } = props;\n const { title, message, backgroundImage } = banner;\n const variantMap = {\n 'two-column': [6, 6],\n 'narrow-wide': [4, 8],\n 'wide-narrow': [8, 4]\n };\n return (\n <div style={{ marginBottom: '2rem' }}>\n <div className='background-image-style' style={{ backgroundImage: `url(${backgroundImage})` }}>\n <div className='background-style content'>\n <div>\n <h1 className='title'>{title}</h1>\n <p className='message'>{message}</p>\n </div>\n </div>\n </div>\n <Grid2 container size={12} className='banner-layout' spacing={1}>\n <Grid2\n size={{ xs: variantMap[variant][0] }}\n style={{ padding: '1rem', backgroundColor: 'var(--app-form-bg-color)', borderRadius: '16px', height: 'fit-content' }}\n >\n {a}\n </Grid2>\n <Grid2 size={{ xs: variantMap[variant][1] }} style={{ padding: '0rem 1rem' }}>\n {b}\n </Grid2>\n </Grid2>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAiB1C,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;CACnC;AAED,QAAA,MAAM,cAAc,qFAgHlB,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"RichTextEditor.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAe1C,UAAU,mBAAmB;IAC3B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAChC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;CACnC;AAED,QAAA,MAAM,cAAc,qFAqHlB,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1,11 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React, { forwardRef } from 'react';
3
3
  import { Editor } from '@tinymce/tinymce-react';
4
- import { FormControl, FormHelperText, InputLabel } from '@mui/material';
4
+ import { FormControl, FormHelperText, InputLabel, useTheme } from '@mui/material';
5
5
  import makeStyles from '@mui/styles/makeStyles';
6
6
  import { useAfterInitialEffect, useConsolidatedRef, useUID } from '../../../hooks';
7
- import { theme } from '../../../theme';
8
- const useStyles = makeStyles(() => ({
7
+ const useStyles = makeStyles(theme => ({
9
8
  fieldLabel: {
10
9
  position: 'relative',
11
10
  transform: 'translate(0, 0px) scale(1)',
@@ -14,6 +13,7 @@ const useStyles = makeStyles(() => ({
14
13
  }
15
14
  }));
16
15
  const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
16
+ const theme = useTheme();
17
17
  const classes = useStyles();
18
18
  const uid = useUID();
19
19
  const { id = uid, defaultValue, label, labelHidden, info, testId, placeholder, disabled, required, readOnly, error, onBlur, onChange } = props;
@@ -55,30 +55,34 @@ const RichTextEditor = forwardRef(function RichTextEditor(props, ref) {
55
55
  richTextComponent = (_jsx(Editor, { tinymceScriptSrc: 'tinymce/tinymce.min.js', onInit: (_evt, editor) => {
56
56
  editorRef.current = editor;
57
57
  }, id: id, initialValue: defaultValue, disabled: disabled, init: {
58
- skin: 'oxide-dark', // or 'oxide' for light theme
58
+ skin: theme.palette.mode === 'dark' ? 'oxide-dark' : 'oxide',
59
59
  // ...other TinyMCE config...
60
60
  content_style: `
61
- body {
62
- font-family: ${theme.typography.fontFamily};
63
- font-size: ${theme.typography.fontSize}px;
64
- color: ${theme.palette.text.primary};
65
- background: ${theme.palette.background.paper};
66
- }
67
- a { color: ${theme.palette.primary.main}; }
68
- h1, h2, h3, h4, h5, h6 { color: ${theme.palette.text.primary}; font-family: ${theme.typography.fontFamily}; }
69
- blockquote { color: ${theme.palette.text.secondary}; border-left: 4px solid ${theme.palette.primary.light}; padding-left: 8px; }
70
- ul, ol { color: ${theme.palette.text.primary}; }
71
- input, textarea, select {
72
- background: ${theme.palette.background.paper};
73
- color: ${theme.palette.text.primary};
74
- border: 1px solid ${theme.palette.divider};
75
- border-radius: 4px;
76
- padding: 6px 10px;
77
- font-size: 1em;
78
- font-family: inherit;
79
- }
80
- /* Add more styles as needed */
81
- `,
61
+ body {
62
+ font-family: ${theme.typography.fontFamily};
63
+ font-size: ${theme.typography.fontSize}px;
64
+ color: ${theme.palette.text.primary};
65
+ background: ${theme.palette.background.paper};
66
+ }
67
+ a { color: ${theme.palette.primary.main}; }
68
+ h1, h2, h3, h4, h5, h6 { color: ${theme.palette.text.primary}; font-family: ${theme.typography.fontFamily}; }
69
+ blockquote { color: ${theme.palette.text.secondary}; border-left: 4px solid ${theme.palette.primary.light}; padding-left: 8px; }
70
+ ul, ol { color: ${theme.palette.text.primary}; }
71
+ input, textarea, select {
72
+ background: ${theme.palette.background.paper};
73
+ color: ${theme.palette.text.primary};
74
+ border: 1px solid ${theme.palette.divider};
75
+ border-radius: 4px;
76
+ padding: 6px 10px;
77
+ font-size: 1em;
78
+ font-family: inherit;
79
+ }
80
+ .mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before {
81
+ color: ${theme.palette.text.secondary};
82
+ opacity: 0.7;
83
+ }
84
+ /* Add more styles as needed */
85
+ `,
82
86
  placeholder,
83
87
  menubar: false,
84
88
  statusbar: false,
@@ -1 +1 @@
1
- {"version":3,"file":"RichTextEditor.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react';\nimport { Editor } from '@tinymce/tinymce-react';\nimport { FormControl, FormHelperText, InputLabel } from '@mui/material';\nimport makeStyles from '@mui/styles/makeStyles';\n\nimport { useAfterInitialEffect, useConsolidatedRef, useUID } from '../../../hooks';\nimport { theme } from '../../../theme';\n\nconst useStyles = makeStyles(() => ({\n fieldLabel: {\n position: 'relative',\n transform: 'translate(0, 0px) scale(1)',\n marginBottom: '5px',\n color: theme.palette.text.secondary\n }\n}));\n\ninterface RichTextEditorProps {\n id?: string;\n defaultValue: string;\n label: string;\n labelHidden: boolean;\n info: string;\n testId: string;\n placeholder: string;\n disabled: boolean;\n required: boolean;\n readOnly: boolean;\n error: boolean;\n onBlur: React.EventHandler<any>;\n onChange: React.EventHandler<any>;\n}\n\nconst RichTextEditor = forwardRef(function RichTextEditor(props: RichTextEditorProps, ref) {\n const classes = useStyles();\n const uid = useUID();\n const { id = uid, defaultValue, label, labelHidden, info, testId, placeholder, disabled, required, readOnly, error, onBlur, onChange } = props;\n\n const editorRef: any = useConsolidatedRef(ref);\n let richTextComponent: any = null;\n\n useAfterInitialEffect(() => {\n editorRef?.current.mode.set(readOnly || disabled ? 'readonly' : 'design');\n }, [readOnly, disabled]);\n\n const filePickerCallback = cb => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('accept', 'image/*');\n\n input.addEventListener('change', (e: any) => {\n const file = e.target.files[0];\n\n const reader: any = new FileReader();\n reader.addEventListener('load', () => {\n /*\n Note: Now we need to register the blob in TinyMCEs image blob\n registry. In the next release this part hopefully won't be\n necessary, as we are looking to handle it internally.\n */\n const blobId = `blobid${new Date().getTime()}`;\n const blobCache = editorRef.current.editorUpload.blobCache;\n const base64 = reader.result.split(',')[1];\n const blobInfo = blobCache.create(blobId, file, base64);\n blobCache.add(blobInfo);\n\n /* call the callback and populate the Title field with the file name */\n cb(blobInfo.blobUri(), { title: file.name });\n });\n reader.readAsDataURL(file);\n });\n\n input.click();\n };\n\n if (readOnly) {\n const value = defaultValue || '--';\n\n richTextComponent = <div key={id} id={id} className='readonly-richtext-editor' dangerouslySetInnerHTML={{ __html: value }} />;\n } else {\n richTextComponent = (\n <Editor\n tinymceScriptSrc='tinymce/tinymce.min.js'\n onInit={(_evt, editor) => {\n editorRef.current = editor;\n }}\n id={id}\n initialValue={defaultValue}\n disabled={disabled}\n init={{\n skin: 'oxide-dark', // or 'oxide' for light theme\n // ...other TinyMCE config...\n content_style: `\n body {\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.typography.fontSize}px;\n color: ${theme.palette.text.primary};\n background: ${theme.palette.background.paper};\n }\n a { color: ${theme.palette.primary.main}; }\n h1, h2, h3, h4, h5, h6 { color: ${theme.palette.text.primary}; font-family: ${theme.typography.fontFamily}; }\n blockquote { color: ${theme.palette.text.secondary}; border-left: 4px solid ${theme.palette.primary.light}; padding-left: 8px; }\n ul, ol { color: ${theme.palette.text.primary}; }\n input, textarea, select {\n background: ${theme.palette.background.paper};\n color: ${theme.palette.text.primary};\n border: 1px solid ${theme.palette.divider};\n border-radius: 4px;\n padding: 6px 10px;\n font-size: 1em;\n font-family: inherit;\n }\n /* Add more styles as needed */\n `,\n placeholder,\n menubar: false,\n statusbar: false,\n min_height: 130,\n plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],\n autoresize_bottom_margin: 0,\n toolbar: disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',\n toolbar_location: 'bottom',\n // content_style: 'body { font-family:Helvetica, Arial,sans-serif; font-size:14px }',\n branding: false,\n paste_data_images: true,\n file_picker_types: 'image',\n file_picker_callback: filePickerCallback\n }}\n onBlur={onBlur}\n onEditorChange={onChange}\n />\n );\n }\n\n return (\n <FormControl variant='standard' data-test-id={testId} error={error} required={required}>\n {!labelHidden && (\n <InputLabel id='demo-simple-select-error-label' className={classes.fieldLabel}>\n {label}\n </InputLabel>\n )}\n {richTextComponent}\n {info && <FormHelperText>{info}</FormHelperText>}\n </FormControl>\n );\n});\n\nexport default RichTextEditor;\n"]}
1
+ {"version":3,"file":"RichTextEditor.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/RichTextEditor/RichTextEditor.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { forwardRef } from 'react';\nimport { Editor } from '@tinymce/tinymce-react';\nimport { FormControl, FormHelperText, InputLabel, useTheme } from '@mui/material';\nimport makeStyles from '@mui/styles/makeStyles';\nimport { useAfterInitialEffect, useConsolidatedRef, useUID } from '../../../hooks';\n\nconst useStyles = makeStyles(theme => ({\n fieldLabel: {\n position: 'relative',\n transform: 'translate(0, 0px) scale(1)',\n marginBottom: '5px',\n color: theme.palette.text.secondary\n }\n}));\n\ninterface RichTextEditorProps {\n id?: string;\n defaultValue: string;\n label: string;\n labelHidden: boolean;\n info: string;\n testId: string;\n placeholder: string;\n disabled: boolean;\n required: boolean;\n readOnly: boolean;\n error: boolean;\n onBlur: React.EventHandler<any>;\n onChange: React.EventHandler<any>;\n}\n\nconst RichTextEditor = forwardRef(function RichTextEditor(props: RichTextEditorProps, ref) {\n const theme = useTheme();\n const classes = useStyles();\n const uid = useUID();\n const { id = uid, defaultValue, label, labelHidden, info, testId, placeholder, disabled, required, readOnly, error, onBlur, onChange } = props;\n\n const editorRef: any = useConsolidatedRef(ref);\n let richTextComponent: any = null;\n\n useAfterInitialEffect(() => {\n editorRef?.current.mode.set(readOnly || disabled ? 'readonly' : 'design');\n }, [readOnly, disabled]);\n\n const filePickerCallback = cb => {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('accept', 'image/*');\n\n input.addEventListener('change', (e: any) => {\n const file = e.target.files[0];\n\n const reader: any = new FileReader();\n reader.addEventListener('load', () => {\n /*\n Note: Now we need to register the blob in TinyMCEs image blob\n registry. In the next release this part hopefully won't be\n necessary, as we are looking to handle it internally.\n */\n const blobId = `blobid${new Date().getTime()}`;\n const blobCache = editorRef.current.editorUpload.blobCache;\n const base64 = reader.result.split(',')[1];\n const blobInfo = blobCache.create(blobId, file, base64);\n blobCache.add(blobInfo);\n\n /* call the callback and populate the Title field with the file name */\n cb(blobInfo.blobUri(), { title: file.name });\n });\n reader.readAsDataURL(file);\n });\n\n input.click();\n };\n\n if (readOnly) {\n const value = defaultValue || '--';\n\n richTextComponent = <div key={id} id={id} className='readonly-richtext-editor' dangerouslySetInnerHTML={{ __html: value }} />;\n } else {\n richTextComponent = (\n <Editor\n tinymceScriptSrc='tinymce/tinymce.min.js'\n onInit={(_evt, editor) => {\n editorRef.current = editor;\n }}\n id={id}\n initialValue={defaultValue}\n disabled={disabled}\n init={{\n skin: theme.palette.mode === 'dark' ? 'oxide-dark' : 'oxide',\n // ...other TinyMCE config...\n content_style: `\n body {\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.typography.fontSize}px;\n color: ${theme.palette.text.primary};\n background: ${theme.palette.background.paper};\n }\n a { color: ${theme.palette.primary.main}; }\n h1, h2, h3, h4, h5, h6 { color: ${theme.palette.text.primary}; font-family: ${theme.typography.fontFamily}; }\n blockquote { color: ${theme.palette.text.secondary}; border-left: 4px solid ${theme.palette.primary.light}; padding-left: 8px; }\n ul, ol { color: ${theme.palette.text.primary}; }\n input, textarea, select {\n background: ${theme.palette.background.paper};\n color: ${theme.palette.text.primary};\n border: 1px solid ${theme.palette.divider};\n border-radius: 4px;\n padding: 6px 10px;\n font-size: 1em;\n font-family: inherit;\n }\n .mce-content-body[data-mce-placeholder]:not(.mce-visualblocks)::before {\n color: ${theme.palette.text.secondary};\n opacity: 0.7;\n }\n /* Add more styles as needed */\n `,\n placeholder,\n menubar: false,\n statusbar: false,\n min_height: 130,\n plugins: ['lists', 'advlist', 'autolink', 'image', 'link', 'autoresize'],\n autoresize_bottom_margin: 0,\n toolbar: disabled ? false : 'blocks | bold italic strikethrough | bullist numlist outdent indent | link image',\n toolbar_location: 'bottom',\n // content_style: 'body { font-family:Helvetica, Arial,sans-serif; font-size:14px }',\n branding: false,\n paste_data_images: true,\n file_picker_types: 'image',\n file_picker_callback: filePickerCallback\n }}\n onBlur={onBlur}\n onEditorChange={onChange}\n />\n );\n }\n\n return (\n <FormControl variant='standard' data-test-id={testId} error={error} required={required}>\n {!labelHidden && (\n <InputLabel id='demo-simple-select-error-label' className={classes.fieldLabel}>\n {label}\n </InputLabel>\n )}\n {richTextComponent}\n {info && <FormHelperText>{info}</FormHelperText>}\n </FormControl>\n );\n});\n\nexport default RichTextEditor;\n"]}
@@ -1,36 +1,29 @@
1
1
  .quick-link-ul-list {
2
2
  list-style: none;
3
3
  padding: 0;
4
- grid-template-columns: repeat(auto-fill, minmax(min(40ch, 100%), 1fr));
4
+ grid-template-columns: repeat(auto-fit, minmax(min(20ch, 100%), 1fr));
5
5
  display: grid;
6
6
  gap: calc(1rem);
7
7
  }
8
8
 
9
- .quick-link-list {
10
- background-color: var(--link-button-color);
11
- color: var(--app-text-color);
12
- border-radius: 8px;
13
- }
14
-
15
9
  .quick-link-button {
16
10
  text-transform: capitalize !important;
17
11
  font-size: 16px !important;
18
12
  color: var(--app-text-color) !important;
19
- padding: calc(0.5rem * 2) !important;
20
- height: 6rem;
13
+ height: 10rem;
21
14
  width: 100%;
22
- justify-content: start !important;
23
15
  }
24
16
 
25
17
  .quick-link-icon {
26
- width: 1em;
27
- height: 1em;
28
18
  flex-shrink: 0;
29
- filter: var(--svg-color);
19
+ object-fit: contain;
20
+ width: 3rem;
21
+ height: 3rem;
30
22
  }
31
23
 
32
24
  .quick-link-button-span {
33
25
  display: flex;
26
+ flex-direction: column;
34
27
  align-items: center;
35
28
  gap: 0.5rem;
36
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WssQuickCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx"],"names":[],"mappings":"AACA,OAAO,sBAAsB,CAAC;AAI9B,UAAU,mBAAmB;IAE3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB;AAED,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CAyBhE"}
1
+ {"version":3,"file":"WssQuickCreate.d.ts","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAI9B,UAAU,mBAAmB;IAE3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC;CACjB;AAWD,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAAK,EAAE,mBAAmB,2CA0BhE"}
@@ -1,11 +1,21 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Button } from '@mui/material';
3
+ import { makeStyles } from '@mui/styles';
3
4
  import './WssQuickCreate.css';
5
+ const useStyles = makeStyles(theme => ({
6
+ quickLinkList: {
7
+ backgroundColor: theme.palette.mode === 'dark' ? 'var(--app-background-color)' : 'var(--link-button-color)',
8
+ color: 'var(--app-text-color)',
9
+ borderRadius: '16px',
10
+ border: '1px solid var(--app-primary-color)'
11
+ }
12
+ }));
4
13
  export default function WssQuickCreate(props) {
5
14
  const { heading, actions } = props;
15
+ const classes = useStyles();
6
16
  return (_jsxs("div", { children: [_jsx("h1", { id: 'quick-links-heading', className: 'quick-links-heading', children: heading }), _jsx("ul", { id: 'quick-links', className: 'quick-link-ul-list', children: actions &&
7
17
  actions.map(element => {
8
- return (_jsx("li", { className: 'quick-link-list', children: _jsx(Button, { className: 'quick-link-button', onClick: element.onClick, children: _jsxs("span", { className: 'quick-link-button-span', children: [element.icon && _jsx("img", { className: 'quick-link-icon', src: element.icon }), _jsx("span", { children: element.label })] }) }) }, element.label));
18
+ return (_jsx("li", { className: classes.quickLinkList, children: _jsx(Button, { className: 'quick-link-button', onClick: element.onClick, children: _jsxs("span", { className: 'quick-link-button-span', children: [element.icon && _jsx("img", { className: 'quick-link-icon', src: element.icon }), _jsx("span", { children: element.label })] }) }) }, element.label));
9
19
  }) })] }));
10
20
  }
11
21
  //# sourceMappingURL=WssQuickCreate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WssQuickCreate.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,sBAAsB,CAAC;AAU9B,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAA0B;IAC/D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IAEnC,OAAO,CACL,0BACE,aAAI,EAAE,EAAC,qBAAqB,EAAC,SAAS,EAAC,qBAAqB,YACzD,OAAO,GACL,EACL,aAAI,EAAE,EAAC,aAAa,EAAC,SAAS,EAAC,oBAAoB,YAChD,OAAO;oBACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBACpB,OAAO,CACL,aAAI,SAAS,EAAC,iBAAiB,YAC7B,KAAC,MAAM,IAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,YAC5D,gBAAM,SAAS,EAAC,wBAAwB,aACrC,OAAO,CAAC,IAAI,IAAI,cAAK,SAAS,EAAC,iBAAiB,EAAC,GAAG,EAAE,OAAO,CAAC,IAAI,GAAI,EACvE,yBAAO,OAAO,CAAC,KAAK,GAAQ,IACvB,GACA,IAN0B,OAAO,CAAC,KAAK,CAO7C,CACN,CAAC;oBACJ,CAAC,CAAC,GACD,IACD,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { Button } from '@mui/material';\nimport './WssQuickCreate.css';\n\n// WssQuickCreate is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\ninterface WssQuickCreateProps {\n // If any, enter additional props that only exist on this component\n heading: string;\n actions?: any[];\n}\n\nexport default function WssQuickCreate(props: WssQuickCreateProps) {\n const { heading, actions } = props;\n\n return (\n <div>\n <h1 id='quick-links-heading' className='quick-links-heading'>\n {heading}\n </h1>\n <ul id='quick-links' className='quick-link-ul-list'>\n {actions &&\n actions.map(element => {\n return (\n <li className='quick-link-list' key={element.label}>\n <Button className='quick-link-button' onClick={element.onClick}>\n <span className='quick-link-button-span'>\n {element.icon && <img className='quick-link-icon' src={element.icon} />}\n <span>{element.label}</span>\n </span>\n </Button>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"WssQuickCreate.js","sourceRoot":"","sources":["../../../../src/components/designSystemExtension/WssQuickCreate/WssQuickCreate.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,sBAAsB,CAAC;AAU9B,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACrC,aAAa,EAAE;QACb,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,0BAA0B;QAC3G,KAAK,EAAE,uBAAuB;QAC9B,YAAY,EAAE,MAAM;QACpB,MAAM,EAAE,oCAAoC;KAC7C;CACF,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,KAA0B;IAC/D,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC;IACnC,MAAM,OAAO,GAAG,SAAS,EAAE,CAAC;IAE5B,OAAO,CACL,0BACE,aAAI,EAAE,EAAC,qBAAqB,EAAC,SAAS,EAAC,qBAAqB,YACzD,OAAO,GACL,EACL,aAAI,EAAE,EAAC,aAAa,EAAC,SAAS,EAAC,oBAAoB,YAChD,OAAO;oBACN,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;wBACpB,OAAO,CACL,aAAI,SAAS,EAAE,OAAO,CAAC,aAAa,YAClC,KAAC,MAAM,IAAC,SAAS,EAAC,mBAAmB,EAAC,OAAO,EAAE,OAAO,CAAC,OAAO,YAC5D,gBAAM,SAAS,EAAC,wBAAwB,aACrC,OAAO,CAAC,IAAI,IAAI,cAAK,SAAS,EAAC,iBAAiB,EAAC,GAAG,EAAE,OAAO,CAAC,IAAI,GAAI,EACvE,yBAAO,OAAO,CAAC,KAAK,GAAQ,IACvB,GACA,IANgC,OAAO,CAAC,KAAK,CAOnD,CACN,CAAC;oBACJ,CAAC,CAAC,GACD,IACD,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { Button } from '@mui/material';\nimport { makeStyles } from '@mui/styles';\nimport './WssQuickCreate.css';\n\n// WssQuickCreate is one of the few components that does NOT have getPConnect.\n// So, no need to extend PConnProps\ninterface WssQuickCreateProps {\n // If any, enter additional props that only exist on this component\n heading: string;\n actions?: any[];\n}\n\nconst useStyles = makeStyles(theme => ({\n quickLinkList: {\n backgroundColor: theme.palette.mode === 'dark' ? 'var(--app-background-color)' : 'var(--link-button-color)',\n color: 'var(--app-text-color)',\n borderRadius: '16px',\n border: '1px solid var(--app-primary-color)'\n }\n}));\n\nexport default function WssQuickCreate(props: WssQuickCreateProps) {\n const { heading, actions } = props;\n const classes = useStyles();\n\n return (\n <div>\n <h1 id='quick-links-heading' className='quick-links-heading'>\n {heading}\n </h1>\n <ul id='quick-links' className='quick-link-ul-list'>\n {actions &&\n actions.map(element => {\n return (\n <li className={classes.quickLinkList} key={element.label}>\n <Button className='quick-link-button' onClick={element.onClick}>\n <span className='quick-link-button-span'>\n {element.icon && <img className='quick-link-icon' src={element.icon} />}\n <span>{element.label}</span>\n </span>\n </Button>\n </li>\n );\n })}\n </ul>\n </div>\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Group/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAW,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,UAAU,UAAW,SAAQ,eAAe;IAC1C,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAE,UAAU,kDAwB9C"}
1
+ {"version":3,"file":"Group.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Group/Group.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAW,MAAM,OAAO,CAAC;AAGnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,UAAU,UAAW,SAAQ,eAAe;IAC1C,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAK,EAAE,UAAU,kDA0B9C"}
@@ -1,8 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useMemo } from 'react';
3
3
  import Grid2 from '@mui/material/Grid2';
4
- import FieldGroup from '../../designSystemExtension/FieldGroup';
4
+ import { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';
5
5
  export default function Group(props) {
6
+ const FieldGroup = getComponentFromMap('FieldGroup');
6
7
  const { children, heading, showHeading, instructions, collapsible, displayMode, type } = props;
7
8
  const isReadOnly = displayMode === 'DISPLAY_ONLY';
8
9
  const content = useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../../src/components/field/Group/Group.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,OAAO,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,UAAU,MAAM,wCAAwC,CAAC;AAYhE,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAiB;IAC7C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/F,MAAM,UAAU,GAAG,WAAW,KAAK,cAAc,CAAC;IAElD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,CACL,KAAC,KAAK,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,YACxB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACtB,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,YACpB,KAAK,IADsB,KAAK,CAAC,GAAG,CAE/B,CACT,CAAC,GACI,CACT,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,OAAO,CACL,KAAC,UAAU,IAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,YACtG,OAAO,GACG,CACd,CAAC;AACJ,CAAC","sourcesContent":["import { type ReactElement, useMemo } from 'react';\nimport Grid2 from '@mui/material/Grid2';\nimport FieldGroup from '../../designSystemExtension/FieldGroup';\nimport type { PConnFieldProps } from '../../../types/PConnProps';\n\ninterface GroupProps extends PConnFieldProps {\n children: ReactElement[];\n heading: string;\n showHeading: boolean;\n instructions?: string;\n collapsible: boolean;\n type: string;\n}\n\nexport default function Group(props: GroupProps) {\n const { children, heading, showHeading, instructions, collapsible, displayMode, type } = props;\n\n const isReadOnly = displayMode === 'DISPLAY_ONLY';\n\n const content = useMemo(() => {\n return (\n <Grid2 container spacing={2}>\n {children?.map(child => (\n <Grid2 size={{ xs: 12 }} key={child.key}>\n {child}\n </Grid2>\n ))}\n </Grid2>\n );\n }, [children, type, isReadOnly]);\n\n if (!children) return null;\n\n return (\n <FieldGroup name={showHeading ? heading : undefined} collapsible={collapsible} instructions={instructions}>\n {content}\n </FieldGroup>\n );\n}\n"]}
1
+ {"version":3,"file":"Group.js","sourceRoot":"","sources":["../../../../src/components/field/Group/Group.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,OAAO,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,KAAK,MAAM,qBAAqB,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAYhF,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,KAAiB;IAC7C,MAAM,UAAU,GAAG,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAErD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC;IAE/F,MAAM,UAAU,GAAG,WAAW,KAAK,cAAc,CAAC;IAElD,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE;QAC3B,OAAO,CACL,KAAC,KAAK,IAAC,SAAS,QAAC,OAAO,EAAE,CAAC,YACxB,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CACtB,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,YACpB,KAAK,IADsB,KAAK,CAAC,GAAG,CAE/B,CACT,CAAC,GACI,CACT,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC;IAEjC,IAAI,CAAC,QAAQ;QAAE,OAAO,IAAI,CAAC;IAE3B,OAAO,CACL,KAAC,UAAU,IAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,YACtG,OAAO,GACG,CACd,CAAC;AACJ,CAAC","sourcesContent":["import { type ReactElement, useMemo } from 'react';\nimport Grid2 from '@mui/material/Grid2';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport type { PConnFieldProps } from '../../../types/PConnProps';\n\ninterface GroupProps extends PConnFieldProps {\n children: ReactElement[];\n heading: string;\n showHeading: boolean;\n instructions?: string;\n collapsible: boolean;\n type: string;\n}\n\nexport default function Group(props: GroupProps) {\n const FieldGroup = getComponentFromMap('FieldGroup');\n\n const { children, heading, showHeading, instructions, collapsible, displayMode, type } = props;\n\n const isReadOnly = displayMode === 'DISPLAY_ONLY';\n\n const content = useMemo(() => {\n return (\n <Grid2 container spacing={2}>\n {children?.map(child => (\n <Grid2 size={{ xs: 12 }} key={child.key}>\n {child}\n </Grid2>\n ))}\n </Grid2>\n );\n }, [children, type, isReadOnly]);\n\n if (!children) return null;\n\n return (\n <FieldGroup name={showHeading ? heading : undefined} collapsible={collapsible} instructions={instructions}>\n {content}\n </FieldGroup>\n );\n}\n"]}
@@ -0,0 +1,4 @@
1
+ /* Support for google map autocomplete */
2
+ .pac-container {
3
+ z-index: 2147483647;
4
+ }
@@ -1,4 +1,5 @@
1
1
  import type { PConnFieldProps } from '../../../types/PConnProps';
2
+ import './Location.css';
2
3
  interface LocationProps extends PConnFieldProps {
3
4
  coordinates?: string;
4
5
  onlyCoordinates?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"Location.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Location/Location.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,UAAU,aAAc,SAAQ,eAAe;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA0BD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAsNpD"}
1
+ {"version":3,"file":"Location.d.ts","sourceRoot":"","sources":["../../../../src/components/field/Location/Location.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,OAAO,gBAAgB,CAAC;AAExB,UAAU,aAAc,SAAQ,eAAe;IAC7C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA0BD,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,2CAsNpD"}
@@ -7,6 +7,7 @@ import IconButton from '@mui/material/IconButton';
7
7
  import { GoogleMap, Marker, useLoadScript } from '@react-google-maps/api';
8
8
  import { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';
9
9
  import handleEvent from '../../helpers/event-utils';
10
+ import './Location.css';
10
11
  const mapContainerStyle = {
11
12
  width: '100%',
12
13
  height: '300px',
@@ -1 +1 @@
1
- {"version":3,"file":"Location.js","sourceRoot":"","sources":["../../../../src/components/field/Location/Location.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState, useCallback, useRef } from 'react';\nimport { Box, TextField, Alert } from '@mui/material';\nimport AddLocationAltIcon from '@mui/icons-material/AddLocationAlt';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport IconButton from '@mui/material/IconButton';\nimport { GoogleMap, Marker, useLoadScript } from '@react-google-maps/api';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport type { PConnFieldProps } from '../../../types/PConnProps';\nimport handleEvent from '../../helpers/event-utils';\n\ninterface LocationProps extends PConnFieldProps {\n coordinates?: string;\n onlyCoordinates?: boolean;\n showMap?: boolean;\n showMapReadOnly?: boolean;\n}\n\nconst mapContainerStyle = {\n width: '100%',\n height: '300px',\n marginTop: '0px'\n};\n\nconst defaultCenter = {\n lat: 18.5204,\n lng: 73.8567\n};\n\nconst disabledMapOptions = {\n gestureHandling: 'none',\n keyboardShortcuts: false,\n disableDefaultUI: true,\n clickableIcons: false,\n zoomControl: false,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false\n};\n\nexport default function Location(props: LocationProps) {\n const TextInput = getComponentFromMap('TextInput');\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n required = false,\n disabled = false,\n value = '',\n validatemessage,\n status,\n readOnly = false,\n testId,\n displayMode,\n hideLabel = false,\n placeholder,\n helperText,\n coordinates = '',\n onlyCoordinates = false,\n showMap,\n showMapReadOnly\n } = props;\n\n const pConn = getPConnect();\n const actions = pConn.getActionsApi();\n const propName = (pConn.getStateProps() as any).value;\n const coordPropName = (pConn.getStateProps() as any).coordinates;\n\n const [inputValue, setInputValue] = useState<string>(value ?? '');\n const [mapCenter, setMapCenter] = useState(defaultCenter);\n const [markerPosition, setMarkerPosition] = useState<google.maps.LatLngLiteral | null>(null);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const autocompleteRef = useRef<google.maps.places.Autocomplete | null>(null);\n\n const { isLoaded } = useLoadScript({\n googleMapsApiKey: pConn.getGoogleMapsAPIKey?.() || '',\n libraries: ['places', 'geocoding']\n });\n\n const hasError = status === 'error' && !!validatemessage && !disabled;\n\n useEffect(() => {\n if (onlyCoordinates && coordinates) {\n setInputValue(coordinates);\n } else {\n setInputValue(value ?? '');\n }\n if (coordinates) {\n const [lat, lng] = coordinates.split(',').map(parseFloat);\n\n if (!isNaN(lat) && !isNaN(lng)) {\n setMapCenter({ lat, lng });\n setMarkerPosition({ lat, lng });\n }\n }\n }, [value, coordinates, onlyCoordinates]);\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value ?? '';\n setInputValue(newValue);\n handleEvent(actions, 'changeNblur', propName, newValue);\n\n if (newValue === '' && coordPropName) {\n actions.updateFieldValue(coordPropName, '');\n setMarkerPosition(null);\n }\n },\n [actions, propName, coordPropName]\n );\n\n const handlePlaceChanged = useCallback(() => {\n if (autocompleteRef.current) {\n const place = autocompleteRef.current.getPlace();\n if (place.geometry?.location) {\n const lat = place.geometry.location.lat();\n const lng = place.geometry.location.lng();\n const address = place.formatted_address || place.name || '';\n const coordinateString = `${lat}, ${lng}`;\n\n setMapCenter({ lat, lng });\n setMarkerPosition({ lat, lng });\n\n if (onlyCoordinates) {\n setInputValue(coordinateString);\n handleEvent(actions, 'changeNblur', propName, coordinateString);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n } else {\n setInputValue(address);\n handleEvent(actions, 'changeNblur', propName, address);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n }\n }\n }\n }, [actions, propName, coordPropName, onlyCoordinates]);\n\n useEffect(() => {\n if (isLoaded && inputRef.current && !autocompleteRef.current) {\n autocompleteRef.current = new google.maps.places.Autocomplete(inputRef.current);\n autocompleteRef.current.addListener('place_changed', handlePlaceChanged);\n }\n }, [isLoaded, handlePlaceChanged]);\n\n const handleGetCurrentLocation = useCallback(() => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n const lat = position.coords.latitude;\n const lng = position.coords.longitude;\n const coordinateString = `${lat}, ${lng}`;\n\n setMapCenter({ lat, lng });\n setMarkerPosition({ lat, lng });\n\n if (onlyCoordinates) {\n setInputValue(coordinateString);\n handleEvent(actions, 'changeNblur', propName, coordinateString);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n } else {\n const geocoder = new window.google.maps.Geocoder();\n geocoder.geocode({ location: { lat, lng } }, (results, responseStatus) => {\n if (responseStatus === 'OK' && results && results[0]) {\n const address = results[0].formatted_address;\n setInputValue(address);\n handleEvent(actions, 'changeNblur', propName, address);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n }\n });\n }\n },\n error => {\n console.error('Error getting current location: ', error);\n }\n );\n }\n }, [actions, propName, coordPropName, onlyCoordinates]);\n\n if (displayMode === 'DISPLAY_ONLY') {\n return <FieldValueList name={hideLabel ? '' : label} value={value} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;\n }\n\n const map = (\n <div style={{ opacity: disabled ? 0.7 : 1 }}>\n <Box mt={1} style={{ flex: 1 }}>\n <GoogleMap mapContainerStyle={mapContainerStyle} center={mapCenter} zoom={14} options={disabled ? disabledMapOptions : undefined}>\n {markerPosition && <Marker position={markerPosition} />}\n </GoogleMap>\n </Box>\n </div>\n );\n\n if (readOnly) {\n return (\n <div>\n <TextInput {...props} />\n {isLoaded && showMapReadOnly && map}\n </div>\n );\n }\n\n const testProps: any = { 'data-test-id': testId };\n\n return (\n <div>\n {hasError && (\n <Alert severity='error' sx={{ mb: 1 }}>\n {validatemessage}\n </Alert>\n )}\n\n {isLoaded && (\n <TextField\n fullWidth\n label={hideLabel ? '' : label}\n required={required}\n disabled={disabled}\n error={hasError}\n placeholder={placeholder ?? 'Search location'}\n helperText={helperText}\n value={inputValue}\n onChange={handleChange}\n inputRef={inputRef}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position='end'>\n <IconButton onClick={handleGetCurrentLocation} disabled={disabled} edge='end'>\n <AddLocationAltIcon />\n </IconButton>\n </InputAdornment>\n ),\n inputProps: { ...testProps }\n }\n }}\n />\n )}\n\n {isLoaded && showMap && map}\n </div>\n );\n}\n"]}
1
+ {"version":3,"file":"Location.js","sourceRoot":"","sources":["../../../../src/components/field/Location/Location.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useEffect, useState, useCallback, useRef } from 'react';\nimport { Box, TextField, Alert } from '@mui/material';\nimport AddLocationAltIcon from '@mui/icons-material/AddLocationAlt';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport IconButton from '@mui/material/IconButton';\nimport { GoogleMap, Marker, useLoadScript } from '@react-google-maps/api';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport type { PConnFieldProps } from '../../../types/PConnProps';\nimport handleEvent from '../../helpers/event-utils';\n\nimport './Location.css';\n\ninterface LocationProps extends PConnFieldProps {\n coordinates?: string;\n onlyCoordinates?: boolean;\n showMap?: boolean;\n showMapReadOnly?: boolean;\n}\n\nconst mapContainerStyle = {\n width: '100%',\n height: '300px',\n marginTop: '0px'\n};\n\nconst defaultCenter = {\n lat: 18.5204,\n lng: 73.8567\n};\n\nconst disabledMapOptions = {\n gestureHandling: 'none',\n keyboardShortcuts: false,\n disableDefaultUI: true,\n clickableIcons: false,\n zoomControl: false,\n mapTypeControl: false,\n scaleControl: false,\n streetViewControl: false,\n rotateControl: false,\n fullscreenControl: false\n};\n\nexport default function Location(props: LocationProps) {\n const TextInput = getComponentFromMap('TextInput');\n const FieldValueList = getComponentFromMap('FieldValueList');\n\n const {\n getPConnect,\n label,\n required = false,\n disabled = false,\n value = '',\n validatemessage,\n status,\n readOnly = false,\n testId,\n displayMode,\n hideLabel = false,\n placeholder,\n helperText,\n coordinates = '',\n onlyCoordinates = false,\n showMap,\n showMapReadOnly\n } = props;\n\n const pConn = getPConnect();\n const actions = pConn.getActionsApi();\n const propName = (pConn.getStateProps() as any).value;\n const coordPropName = (pConn.getStateProps() as any).coordinates;\n\n const [inputValue, setInputValue] = useState<string>(value ?? '');\n const [mapCenter, setMapCenter] = useState(defaultCenter);\n const [markerPosition, setMarkerPosition] = useState<google.maps.LatLngLiteral | null>(null);\n\n const inputRef = useRef<HTMLInputElement | null>(null);\n const autocompleteRef = useRef<google.maps.places.Autocomplete | null>(null);\n\n const { isLoaded } = useLoadScript({\n googleMapsApiKey: pConn.getGoogleMapsAPIKey?.() || '',\n libraries: ['places', 'geocoding']\n });\n\n const hasError = status === 'error' && !!validatemessage && !disabled;\n\n useEffect(() => {\n if (onlyCoordinates && coordinates) {\n setInputValue(coordinates);\n } else {\n setInputValue(value ?? '');\n }\n if (coordinates) {\n const [lat, lng] = coordinates.split(',').map(parseFloat);\n\n if (!isNaN(lat) && !isNaN(lng)) {\n setMapCenter({ lat, lng });\n setMarkerPosition({ lat, lng });\n }\n }\n }, [value, coordinates, onlyCoordinates]);\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value ?? '';\n setInputValue(newValue);\n handleEvent(actions, 'changeNblur', propName, newValue);\n\n if (newValue === '' && coordPropName) {\n actions.updateFieldValue(coordPropName, '');\n setMarkerPosition(null);\n }\n },\n [actions, propName, coordPropName]\n );\n\n const handlePlaceChanged = useCallback(() => {\n if (autocompleteRef.current) {\n const place = autocompleteRef.current.getPlace();\n if (place.geometry?.location) {\n const lat = place.geometry.location.lat();\n const lng = place.geometry.location.lng();\n const address = place.formatted_address || place.name || '';\n const coordinateString = `${lat}, ${lng}`;\n\n setMapCenter({ lat, lng });\n setMarkerPosition({ lat, lng });\n\n if (onlyCoordinates) {\n setInputValue(coordinateString);\n handleEvent(actions, 'changeNblur', propName, coordinateString);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n } else {\n setInputValue(address);\n handleEvent(actions, 'changeNblur', propName, address);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n }\n }\n }\n }, [actions, propName, coordPropName, onlyCoordinates]);\n\n useEffect(() => {\n if (isLoaded && inputRef.current && !autocompleteRef.current) {\n autocompleteRef.current = new google.maps.places.Autocomplete(inputRef.current);\n autocompleteRef.current.addListener('place_changed', handlePlaceChanged);\n }\n }, [isLoaded, handlePlaceChanged]);\n\n const handleGetCurrentLocation = useCallback(() => {\n if (navigator.geolocation) {\n navigator.geolocation.getCurrentPosition(\n position => {\n const lat = position.coords.latitude;\n const lng = position.coords.longitude;\n const coordinateString = `${lat}, ${lng}`;\n\n setMapCenter({ lat, lng });\n setMarkerPosition({ lat, lng });\n\n if (onlyCoordinates) {\n setInputValue(coordinateString);\n handleEvent(actions, 'changeNblur', propName, coordinateString);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n } else {\n const geocoder = new window.google.maps.Geocoder();\n geocoder.geocode({ location: { lat, lng } }, (results, responseStatus) => {\n if (responseStatus === 'OK' && results && results[0]) {\n const address = results[0].formatted_address;\n setInputValue(address);\n handleEvent(actions, 'changeNblur', propName, address);\n if (coordPropName) {\n actions.updateFieldValue(coordPropName, coordinateString);\n }\n }\n });\n }\n },\n error => {\n console.error('Error getting current location: ', error);\n }\n );\n }\n }, [actions, propName, coordPropName, onlyCoordinates]);\n\n if (displayMode === 'DISPLAY_ONLY') {\n return <FieldValueList name={hideLabel ? '' : label} value={value} />;\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return <FieldValueList name={hideLabel ? '' : label} value={value} variant='stacked' />;\n }\n\n const map = (\n <div style={{ opacity: disabled ? 0.7 : 1 }}>\n <Box mt={1} style={{ flex: 1 }}>\n <GoogleMap mapContainerStyle={mapContainerStyle} center={mapCenter} zoom={14} options={disabled ? disabledMapOptions : undefined}>\n {markerPosition && <Marker position={markerPosition} />}\n </GoogleMap>\n </Box>\n </div>\n );\n\n if (readOnly) {\n return (\n <div>\n <TextInput {...props} />\n {isLoaded && showMapReadOnly && map}\n </div>\n );\n }\n\n const testProps: any = { 'data-test-id': testId };\n\n return (\n <div>\n {hasError && (\n <Alert severity='error' sx={{ mb: 1 }}>\n {validatemessage}\n </Alert>\n )}\n\n {isLoaded && (\n <TextField\n fullWidth\n label={hideLabel ? '' : label}\n required={required}\n disabled={disabled}\n error={hasError}\n placeholder={placeholder ?? 'Search location'}\n helperText={helperText}\n value={inputValue}\n onChange={handleChange}\n inputRef={inputRef}\n slotProps={{\n input: {\n endAdornment: (\n <InputAdornment position='end'>\n <IconButton onClick={handleGetCurrentLocation} disabled={disabled} edge='end'>\n <AddLocationAltIcon />\n </IconButton>\n </InputAdornment>\n ),\n inputProps: { ...testProps }\n }\n }}\n />\n )}\n\n {isLoaded && showMap && map}\n </div>\n );\n}\n"]}
@@ -47,7 +47,7 @@ export default function RadioButtons(props) {
47
47
  };
48
48
  if (variant === 'card') {
49
49
  const stateProps = thePConn.getStateProps();
50
- return (_jsxs("div", { children: [_jsx("h4", { style: { marginTop: 0, marginBottom: 0 }, children: label }), _jsx("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 40ch), 1fr))', gridAutoRows: '1fr', gap: '0.5rem' }, children: _jsx(SelectableCard, { hideFieldLabels: hideFieldLabels, additionalProps: additionalProps, getPConnect: getPConnect, dataSource: datasource, image: {
50
+ return (_jsxs("div", { children: [_jsx("h4", { style: { marginTop: 0, marginBottom: 0 }, children: label }), _jsx("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(200px, 100%), 1fr))', gap: '1rem' }, children: _jsx(SelectableCard, { hideFieldLabels: hideFieldLabels, additionalProps: additionalProps, getPConnect: getPConnect, dataSource: datasource, image: {
51
51
  imagePosition,
52
52
  imageSize,
53
53
  showImageDescription,
@@ -1 +1 @@
1
- {"version":3,"file":"RadioButtons.js","sourceRoot":"","sources":["../../../../src/components/field/RadioButtons/RadioButtons.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport { Radio, RadioGroup, FormControl, FormControlLabel, FormLabel, FormHelperText } from '@mui/material';\n\nimport Utils from '../../helpers/utils';\nimport handleEvent from '../../helpers/event-utils';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport type { PConnFieldProps } from '../../../types/PConnProps';\n\n// Can't use RadioButtonProps until getLocaleRuleNameFromKeys is NOT private\ninterface RadioButtonsProps extends PConnFieldProps {\n // If any, enter additional props that only exist on RadioButtons here\n inline: boolean;\n fieldMetadata?: any;\n variant?: string;\n hideFieldLabels?: boolean;\n additionalProps?: any;\n imagePosition?: string;\n imageSize?: string;\n showImageDescription?: boolean;\n datasource?: any;\n}\n\nexport default function RadioButtons(props: RadioButtonsProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n const SelectableCard = getComponentFromMap('SelectableCard');\n\n const {\n getPConnect,\n label,\n value = '',\n readOnly,\n validatemessage,\n helperText,\n status,\n required,\n inline,\n displayMode,\n hideLabel,\n fieldMetadata,\n variant,\n hideFieldLabels,\n additionalProps,\n datasource,\n imagePosition,\n imageSize,\n showImageDescription\n } = props;\n const [theSelectedButton, setSelectedButton] = useState(value);\n\n const thePConn = getPConnect();\n const theConfigProps = thePConn.getConfigProps();\n const actionsApi = thePConn.getActionsApi();\n const propName = (thePConn.getStateProps() as any).value;\n const helperTextToDisplay = validatemessage || helperText;\n const className = thePConn.getCaseInfo().getClassName();\n\n let configProperty = (thePConn.getRawMetadata() as any)?.config?.value || '';\n configProperty = configProperty.startsWith('@P') ? configProperty.substring(3) : configProperty;\n configProperty = configProperty.startsWith('.') ? configProperty.substring(1) : configProperty;\n\n const metaData = Array.isArray(fieldMetadata) ? fieldMetadata.filter(field => field?.classID === className)[0] : fieldMetadata;\n let displayName = metaData?.datasource?.propertyForDisplayText;\n displayName = displayName?.slice(displayName.lastIndexOf('.') + 1);\n const localeContext = metaData?.datasource?.tableType === 'DataPage' ? 'datapage' : 'associated';\n const localeClass = localeContext === 'datapage' ? '@baseclass' : className;\n const localeName = localeContext === 'datapage' ? metaData?.datasource?.name : configProperty;\n const localePath = localeContext === 'datapage' ? displayName : localeName;\n\n // theOptions will be an array of JSON objects that are literally key/value pairs.\n // Ex: [ {key: \"Basic\", value: \"Basic\"} ]\n const theOptions = Utils.getOptionList(theConfigProps, thePConn.getDataObject(''));\n\n useEffect(() => {\n // This update theSelectedButton which will update the UI to show the selected button correctly\n setSelectedButton(value);\n }, [value]);\n\n if (displayMode === 'DISPLAY_ONLY') {\n return (\n <FieldValueList\n name={hideLabel ? '' : label}\n value={thePConn.getLocalizedValue(value, localePath, thePConn.getLocaleRuleNameFromKeys(localeClass, localeContext, localeName))}\n />\n );\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return (\n <FieldValueList\n name={hideLabel ? '' : label}\n value={thePConn.getLocalizedValue(value, localePath, thePConn.getLocaleRuleNameFromKeys(localeClass, localeContext, localeName))}\n variant='stacked'\n />\n );\n }\n\n const handleChange = event => {\n handleEvent(actionsApi, 'changeNblur', propName, event.target.value);\n };\n\n const handleBlur = event => {\n thePConn.getValidationApi().validate(event.target.value, ''); // 2nd arg empty string until typedef marked correctly as optional\n };\n\n if (variant === 'card') {\n const stateProps = thePConn.getStateProps();\n return (\n <div>\n <h4 style={{ marginTop: 0, marginBottom: 0 }}>{label}</h4>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(100%, 40ch), 1fr))', gridAutoRows: '1fr', gap: '0.5rem' }}>\n <SelectableCard\n hideFieldLabels={hideFieldLabels}\n additionalProps={additionalProps}\n getPConnect={getPConnect}\n dataSource={datasource}\n image={{\n imagePosition,\n imageSize,\n showImageDescription,\n imageField: stateProps.image?.split('.').pop(),\n imageDescription: stateProps.imageDescription?.split('.').pop()\n }}\n onChange={handleChange}\n recordKey={stateProps.value?.split('.').pop()}\n cardLabel={stateProps.primaryField?.split('.').pop()}\n radioBtnValue={value}\n type='radio'\n setIsRadioCardSelected={displayMode !== 'DISPLAY_ONLY' ? setSelectedButton : undefined}\n />\n </div>\n </div>\n );\n }\n\n return (\n <FormControl variant='standard' error={status === 'error'} required={required}>\n <FormLabel component='legend'>{label}</FormLabel>\n <RadioGroup value={theSelectedButton} onChange={handleChange} onBlur={!readOnly ? handleBlur : undefined} row={inline}>\n {theOptions.map(theOption => {\n return (\n <FormControlLabel\n value={theOption.key}\n key={theOption.key}\n label={thePConn.getLocalizedValue(\n theOption.value,\n localePath,\n thePConn.getLocaleRuleNameFromKeys(localeClass, localeContext, localeName)\n )}\n control={<Radio key={theOption.key} color='primary' disabled={readOnly} />}\n />\n );\n })}\n </RadioGroup>\n <FormHelperText>{helperTextToDisplay}</FormHelperText>\n </FormControl>\n );\n}\n"]}
1
+ {"version":3,"file":"RadioButtons.js","sourceRoot":"","sources":["../../../../src/components/field/RadioButtons/RadioButtons.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect } from 'react';\nimport { Radio, RadioGroup, FormControl, FormControlLabel, FormLabel, FormHelperText } from '@mui/material';\n\nimport Utils from '../../helpers/utils';\nimport handleEvent from '../../helpers/event-utils';\nimport { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';\nimport type { PConnFieldProps } from '../../../types/PConnProps';\n\n// Can't use RadioButtonProps until getLocaleRuleNameFromKeys is NOT private\ninterface RadioButtonsProps extends PConnFieldProps {\n // If any, enter additional props that only exist on RadioButtons here\n inline: boolean;\n fieldMetadata?: any;\n variant?: string;\n hideFieldLabels?: boolean;\n additionalProps?: any;\n imagePosition?: string;\n imageSize?: string;\n showImageDescription?: boolean;\n datasource?: any;\n}\n\nexport default function RadioButtons(props: RadioButtonsProps) {\n // Get emitted components from map (so we can get any override that may exist)\n const FieldValueList = getComponentFromMap('FieldValueList');\n const SelectableCard = getComponentFromMap('SelectableCard');\n\n const {\n getPConnect,\n label,\n value = '',\n readOnly,\n validatemessage,\n helperText,\n status,\n required,\n inline,\n displayMode,\n hideLabel,\n fieldMetadata,\n variant,\n hideFieldLabels,\n additionalProps,\n datasource,\n imagePosition,\n imageSize,\n showImageDescription\n } = props;\n const [theSelectedButton, setSelectedButton] = useState(value);\n\n const thePConn = getPConnect();\n const theConfigProps = thePConn.getConfigProps();\n const actionsApi = thePConn.getActionsApi();\n const propName = (thePConn.getStateProps() as any).value;\n const helperTextToDisplay = validatemessage || helperText;\n const className = thePConn.getCaseInfo().getClassName();\n\n let configProperty = (thePConn.getRawMetadata() as any)?.config?.value || '';\n configProperty = configProperty.startsWith('@P') ? configProperty.substring(3) : configProperty;\n configProperty = configProperty.startsWith('.') ? configProperty.substring(1) : configProperty;\n\n const metaData = Array.isArray(fieldMetadata) ? fieldMetadata.filter(field => field?.classID === className)[0] : fieldMetadata;\n let displayName = metaData?.datasource?.propertyForDisplayText;\n displayName = displayName?.slice(displayName.lastIndexOf('.') + 1);\n const localeContext = metaData?.datasource?.tableType === 'DataPage' ? 'datapage' : 'associated';\n const localeClass = localeContext === 'datapage' ? '@baseclass' : className;\n const localeName = localeContext === 'datapage' ? metaData?.datasource?.name : configProperty;\n const localePath = localeContext === 'datapage' ? displayName : localeName;\n\n // theOptions will be an array of JSON objects that are literally key/value pairs.\n // Ex: [ {key: \"Basic\", value: \"Basic\"} ]\n const theOptions = Utils.getOptionList(theConfigProps, thePConn.getDataObject(''));\n\n useEffect(() => {\n // This update theSelectedButton which will update the UI to show the selected button correctly\n setSelectedButton(value);\n }, [value]);\n\n if (displayMode === 'DISPLAY_ONLY') {\n return (\n <FieldValueList\n name={hideLabel ? '' : label}\n value={thePConn.getLocalizedValue(value, localePath, thePConn.getLocaleRuleNameFromKeys(localeClass, localeContext, localeName))}\n />\n );\n }\n\n if (displayMode === 'STACKED_LARGE_VAL') {\n return (\n <FieldValueList\n name={hideLabel ? '' : label}\n value={thePConn.getLocalizedValue(value, localePath, thePConn.getLocaleRuleNameFromKeys(localeClass, localeContext, localeName))}\n variant='stacked'\n />\n );\n }\n\n const handleChange = event => {\n handleEvent(actionsApi, 'changeNblur', propName, event.target.value);\n };\n\n const handleBlur = event => {\n thePConn.getValidationApi().validate(event.target.value, ''); // 2nd arg empty string until typedef marked correctly as optional\n };\n\n if (variant === 'card') {\n const stateProps = thePConn.getStateProps();\n return (\n <div>\n <h4 style={{ marginTop: 0, marginBottom: 0 }}>{label}</h4>\n <div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(min(200px, 100%), 1fr))', gap: '1rem' }}>\n <SelectableCard\n hideFieldLabels={hideFieldLabels}\n additionalProps={additionalProps}\n getPConnect={getPConnect}\n dataSource={datasource}\n image={{\n imagePosition,\n imageSize,\n showImageDescription,\n imageField: stateProps.image?.split('.').pop(),\n imageDescription: stateProps.imageDescription?.split('.').pop()\n }}\n onChange={handleChange}\n recordKey={stateProps.value?.split('.').pop()}\n cardLabel={stateProps.primaryField?.split('.').pop()}\n radioBtnValue={value}\n type='radio'\n setIsRadioCardSelected={displayMode !== 'DISPLAY_ONLY' ? setSelectedButton : undefined}\n />\n </div>\n </div>\n );\n }\n\n return (\n <FormControl variant='standard' error={status === 'error'} required={required}>\n <FormLabel component='legend'>{label}</FormLabel>\n <RadioGroup value={theSelectedButton} onChange={handleChange} onBlur={!readOnly ? handleBlur : undefined} row={inline}>\n {theOptions.map(theOption => {\n return (\n <FormControlLabel\n value={theOption.key}\n key={theOption.key}\n label={thePConn.getLocalizedValue(\n theOption.value,\n localePath,\n thePConn.getLocaleRuleNameFromKeys(localeClass, localeContext, localeName)\n )}\n control={<Radio key={theOption.key} color='primary' disabled={readOnly} />}\n />\n );\n })}\n </RadioGroup>\n <FormHelperText>{helperTextToDisplay}</FormHelperText>\n </FormControl>\n );\n}\n"]}
@@ -0,0 +1,79 @@
1
+ .tox .tox-toolbar {
2
+ background-color: var(--app-background-color) !important;
3
+ }
4
+
5
+ .tox .tox-toolbar__primary {
6
+ background-color: var(--app-background-color) !important;
7
+ }
8
+
9
+ .tox .tox-toolbar__button {
10
+ color: var(--app-text-color) !important;
11
+ }
12
+
13
+ .tox .tox-toolbar__button--enabled {
14
+ background: var(--app-primary-color) !important;
15
+ color: #fff !important;
16
+ }
17
+
18
+ .tox .tox-dialog {
19
+ background-color: var(--modal-top-color) !important;
20
+ color: var(--app-text-color) !important;
21
+ border: 1px solid var(--modal-border-color) !important;
22
+ padding: 20px !important;
23
+ box-shadow: 0 0 10px 3px var(--modal-box-shadow-color) !important;
24
+ }
25
+
26
+ .tox .tox-dialog__header {
27
+ background-color: var(--modal-top-color) !important;
28
+ color: var(--app-text-color) !important;
29
+ font-weight: 500;
30
+ border-bottom: 1px solid var(--modal-border-color);
31
+ }
32
+
33
+ .tox .tox-dialog__footer {
34
+ background: transparent !important;
35
+ border-top: 1px solid var(--modal-border-color);
36
+ }
37
+
38
+ .tox .tox-dialog-wrap__backdrop {
39
+ background-color: var(--modal-background-color) !important;
40
+ }
41
+
42
+ .tox .tox-dialog__body input,
43
+ .tox .tox-dialog__body textarea,
44
+ .tox .tox-dialog__body select {
45
+ background: initial !important;
46
+ color: var(--app-text-color) !important;
47
+ border: 1px solid var(--app-neutral-color) !important;
48
+ border-radius: 4px !important;
49
+ padding: 6px 10px !important;
50
+ font-size: 1em !important;
51
+ font-family: inherit !important;
52
+ }
53
+
54
+ .tox .tox-dialog__body button {
55
+ background: transparent;
56
+ color: #fff !important;
57
+ border: none !important;
58
+ border-radius: 4px !important;
59
+ padding: 8px 16px !important;
60
+ font-size: 1em !important;
61
+ cursor: pointer !important;
62
+ }
63
+
64
+ .tox .tox-dialog__footer .tox-button {
65
+ background: var(--app-primary-color) !important;
66
+ color: #fff !important;
67
+ border: none !important;
68
+ border-radius: 4px !important;
69
+ padding: 8px 16px !important;
70
+ font-size: 1em !important;
71
+ cursor: pointer !important;
72
+ }
73
+
74
+ .tox .tox-dialog__footer .tox-button--secondary {
75
+ background: var(--app-secondary-color) !important;
76
+ color: var(--secondary-button-text-color) !important;
77
+ font-size: 0.875rem !important;
78
+ cursor: pointer !important;
79
+ }
@@ -1,4 +1,5 @@
1
1
  import type { PConnFieldProps } from '../../../types/PConnProps';
2
+ import './RichText.css';
2
3
  interface RichTextProps extends PConnFieldProps {
3
4
  additionalProps?: object;
4
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../../../src/components/field/RichText/RichText.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,UAAU,aAAc,SAAQ,eAAe;IAE7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,OAoFpD"}
1
+ {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../../../src/components/field/RichText/RichText.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,gBAAgB,CAAC;AAExB,UAAU,aAAc,SAAQ,eAAe;IAE7C,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,KAAK,EAAE,aAAa,OAoFpD"}
@@ -2,6 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { useRef } from 'react';
3
3
  import handleEvent from '../../helpers/event-utils';
4
4
  import { getComponentFromMap } from '../../../bridge/helpers/sdk_component_map';
5
+ import './RichText.css';
5
6
  export default function RichText(props) {
6
7
  // Get emitted components from map (so we can get any override that may exist)
7
8
  const FieldValueList = getComponentFromMap('FieldValueList');